public function onMenuConfig($event) { $models = Page::find()->select(["id", "parent", "title"])->asArray()->all(); array_unshift($models, Page::getAppDefaultPage()); $data = []; $tree = new Tree($models); $nodes = $tree->getRootNodes(); $data = []; foreach ($nodes as $node) { $node = $node->toArray(); $data[] = call_user_func([$this, "repalceKey"], $node); } $event->parameters->set($this->id, ["name" => "页面", "id" => $this->id, "tree" => $data]); }
public function createLink($name, $original) { $appDefaultPage = Page::getAppDefaultPage(); if ($original == $appDefaultPage["id"]) { if (empty($name)) { $name = $appDefaultPage["title"]; } $urlManager = HASS_APP_BACKEND == true ? \Yii::$app->get("appUrlManager") : \Yii::$app->getUrlManager(); if ($urlManager->showScriptName) { $url = $urlManager->getScriptUrl(); } else { $url = $urlManager->getBaseUrl() . '/'; } return [$name, $url]; } $model = Page::findOne($original); if (empty($name)) { $name = $model->title; } return [$name, Util::getEntityUrl($model)]; }
public function getCanParentNodes() { $models = Page::find()->select(["id", "parent", "title"])->asArray()->all(); $tree = new Tree($models); $nodes = $tree->getNodes(); // 去处当前节点和子节点 if ($this->primaryKey) { $node = $tree->getNodeById($this->primaryKey); $ancestors = $node->getDescendantsAndSelf(); $nodes = array_diff($nodes, $ancestors); } $result = []; foreach ($nodes as $node) { $result[$node->get("id")] = str_repeat("--", $node->getLevel() - 1) . $node->get("title"); } return $result; }