好的,伙计们 .. 最终,我的工作是从我开发的插件及其表记录中获取数据,并使用使用 Static Pages 插件创建的页眉或页脚菜单。
首先,如果你想在 OctoberCMS 中创建 API 或 web 服务,你需要创建一个插件并创建一个名为 routes.php 的文件,或者你可以简单地在一个文件中创建相同的文件你的插件。
所以我现在只是在我开发的插件之一中创建了 routes.php 文件来测试并让我的网络服务暂时运行。
首先我想从我的插件中获取数据,该插件使用数据表来存储它..所以我刚刚做了这个
routes.php
use technobrave\sociallinks\Models\Sociallink;
Route::post('/getSocialLinks', function () {
$social_links_data = Sociallink::all();
$arr = array();
foreach($social_links_data as $current_social_links_data)
{
$arr[] = array(
'id'=> $current_social_links_data['id'],
'social_logo'=> $current_social_links_data->social_logo->getPath()
);
}
return $arr;
});
而且我能够得到我想要的记录。
然后我使用Static Pages 插件来获取我的标题菜单,这就是我想出的。
routes.php
/* Code to get menu item starts */
use Cms\Classes\ComponentBase;
use RainLab\Pages\Classes\Router;
use Cms\Classes\Theme;
use RainLab\Pages\Classes\Menu as PagesMenu;
/* Code to get menu item ends */
Route::post('/getHeaderMenu', function ()
{
$menuCode = 'main-menu'; // menu code
$theme = Theme::getActiveTheme();
$menu = PagesMenu::loadCached($theme, $menuCode);
$header_menu_list = array();
if ($menu)
{
$menu_list = $menu->attributes['items'];
if($menu_list)
{
$i=0;
foreach ($menu_list as $current_menu_list)
{
if($current_menu_list->reference == '')
{
$current_menu_list->reference = "#";
}
$header_menu_list[$i] = array(
'title'=>$current_menu_list->title,
'url'=>$current_menu_list->reference,
);
$header_menu_list[$i]['submenu_list'] = array();
if($current_menu_list->items)
{
$sub_menu_list = $current_menu_list->items;
foreach ($sub_menu_list as $current_submenu_list)
{
if($current_submenu_list->reference == '')
{
$current_submenu_list->reference = "#";
}
$header_menu_list[$i]['submenu_list'][] = array(
'title'=>$current_submenu_list->title,
'url'=>$current_submenu_list->reference,
);
}
}
$i++;
}
}
}
return $header_menu_list;
});
这将简单地获得我在我的 OctoberCMS 项目中创建的 标题菜单 的列表。
希望这对您有所帮助并感谢您的支持。
高度赞赏。