为添Yootheme pro的Offcanvas菜单加手风琴"Accordion"效果

Yootheme pro的Offcanvas菜单较为简单,很多时候不适合实际需求,这里我分享一个让Offcanvas菜单加手风琴"Accordion"效果的教程,这教程修改,基于YOOtheme 版本 2.4.6,如果是其他版本,代码位置可能会有差异,但原理一样,方法类似。

还有,这教程实现的效果比较简单直接,如果有更高要求的可以根据自己情况再进一步定制。

以下是教程步骤:

建议使用子主题的方法来进行定制,创建yootheme的子主题定制,在网站根目录下的templates目录,添加yootheme_ycway,的文件夹,ycway就是你的子主题名称。

复制文件templates/yootheme/templates/menu/menu.php 至 templates/yootheme_ycway/templates/menu/menu.php。如果文件夹尚不存在,请创建它们。

编辑 templates/yootheme_ycway/templates/menu/menu.php 文件

找到代码16~20行

if (preg_match('/^(offcanvas|modal)/', $layout)) {
$type = 'nav';
$attrs['class'][] = "uk-nav uk-nav-{$config('~navbar.toggle_menu_style')}";
$attrs['class'][] = $config('~navbar.toggle_menu_center') ? 'uk-nav-center' : '';

在代码下面添加代码

// activate "Accordion" feature
$attrs['uk-nav'] = true;
// add parent icons
$attrs['class'][] = 'uk-nav-parent-icon';
// allow multiple open subnavs
$attrs['uk-nav'] = 'multiple: true';

找到代码74~77行

if ($config('~menu.position') == 'mobile') {
$attrs['class'][] = "uk-nav-{$config('~mobile.menu_style')}";
$attrs['class'][] = $config('~mobile.menu_center') ? 'uk-nav-center' : '';

在代码下面添加代码

// activate "Accordion" feature
$attrs['uk-nav'] = true;
// add parent icons
$attrs['class'][] = 'uk-nav-parent-icon';
// allow multiple open subnavs
$attrs['uk-nav'] = 'multiple: true';

然后,你在Yootheme pro 的设置 - 高级 - 子主题,选择并应用ycway子主题即可。