Code Monkey home page Code Monkey logo

yii2-wordpress-menu's Introduction

yii2-wordperss-menu

Это расширение позволить создавать меню по типу wordpress. Тоесть в админке вы устанвливаете меню как с уровнеями вложености так и добавляете заранее созданые меню. Устанавливается

composer require sirgalas/yii2-wordpress-menu

Подключается

backend/config/main.php 
'menu'  =>[
            'class' =>  'sirgalas\menu\MenuModule',
            'imageDownloadPath'     =>  Yii::getAlias('@frontend/').'web/image/menu/',
            'imageSetPath'     =>  Yii::getAlias('@frontendWebroot').'/image/menu/',
            'imageResize'   =>  [[80, 40],[179,156]],
            'extra_menu'    =>  2,
            'models' =>  [
                'class' =>  '\common\models\Category',
                'title' =>  'name',
                'label' =>  'выбирите категорию',
                'id'    =>  'id',
                'alias' =>  'slug_category',
                'path'  =>  '/category',
                'image' =>  'true'
            ],
],

  • imageDownloadPath, imageSetPath - указание путей при загрузке картинок (если к меню планируется подключить картинки)
  • imageResize - массив с желаемыми размерами картинок
  • extra_menu - дополнительные меню можно использовать для создания
  • models - масссив выборок для добавления пунктов меню
  • models - модель которую хотие добавить к выборке
  • label - название выпадающего списка в админке
  • title - из какого столбца брать пункты меню
  • id - из какого столбца брать id
  • alias - если вы указали алиасы в базе данных укажите столбец
  • path - путь для роутинга на frontend
  • image - если вы хотите добавлять картинки

common

common\config\main.php
'menu'  =>[
            'class' =>  'sirgalas\menu\MenuModule',
            'modelDb' =>  '\common\models\YourModel',
        ],
  • modelDb - в случае если используется своя база данных без использования миграции

frontend

<?= MenuView::widget([
       'name'              =>  'Футер лево',
        'nameAlias'         =>  'slug',
        'menu'              =>['linkTemplate' => '<a href="{url}"><span class="fa fa-angle-right"></span>{label}</a>','options'=>['class' => false]]
]);
?>
  • name - id базы
  • nameAlias - как в pattern будет называться get - запрос
  • nav - Если вы используете виджет Nav необходимо указать этот ключ значением к которому будет настроики виджета в виде пасива согласно документации виджета
  • menu - Если вы используете виджет Menu необходимо указать этот ключ значением к которому будет настроики виджета в виде пасива согласно документации виджета
  • navBar - Если вы используете виджет NavBar необходимо указать этот ключ значением к которому будет настроики виджета в виде пасива согласно документации виджета
  • в остальном я попытался подключить все настройки этих виджетов

если вам не желаете использовать подключение этой модели sirgalas\menu\models\Menu и её метода renderMenu у которого обязательный атрибут является вызываемое меню и наименование гет параметра которое будет использоваться в роутинге. Пердположительно такокая запись

 $modelMenu= new Menu();
 $modelMenu->renderMenu($menu,'alias');

А в случае использования встроиной таблицы необходимо указать атрибуты в следуюшем порядке

   $modelMenu= new Menu();
   $modelMenu->renderMenu($allMenu,$menu,'content','alias');

миграция

php yii migrate/ --migrationPath=@vendor/sirgalas/yii2-wordperss-menu/migrations

Если вы хотите использовать свою базу то для этого необходимо (повторяю ещё раз) в

commom\config\main.php
'menu'  =>[
            'class' =>  'sirgalas\menu\MenuModule',
            'modelDb' =>  '\common\models\YourModel',
        ],

в моделе необходимо подключить поведение

use sirgalas\menu\behaviors\MenuBaseWordpressBehavior;
'BaseMenu' => [
                'class'             =>  MenuBaseWordpressBehavior::className(),
                'nameModel'         =>  '\common\models\YourModel',
                'dbName'            =>  'yourtable',
                'idBehavior'        =>  'id',
                'name'              =>  'name',
                'content'           =>  'content',
                'serviceField'      =>  'description',
                'nameServiceField'  =>  'menus'
            ],
  • nameModel namespace модели
  • dbName название таблицы
  • idBehavior столбец id
  • name столбец содержащий название строки базы
  • content солбец куда необходимо сохранять данные меню
  • serviceField nameServiceField используются для поисковой модели, это поисковое поле для выборки из вашей базы всех меню

в общем итоге вот так у меня получилось это backend вложеное меню (выпадающее меню) https://nimbus.everhelper.me/client/notes/share/1033948/fpvyz4o96inaqhpv7246 основное меню https://nimbus.everhelper.me/client/notes/share/1033957/qc2xb6wgcwysaac2gsfz

есть возможность определять вложенность таким образом https://nimbus.everhelper.me/client/notes/share/1033970/aycfg9ylkiy8uwvrh2xi

frontend https://dl.dropboxusercontent.com/1/view/hlv8uxg4wm53s6t/Apps/Shutter/%C3%90%C2%92%C3%91%C2%8B%C3%90%C2%B4%C3%90%C2%B5%C3%90%C2%BB%C3%90%C2%B5%C3%90%C2%BD%C3%90%C2%B8%C3%90%C2%B5_004.png https://dl.dropboxusercontent.com/1/view/8glnfop5ozhmdal/Apps/Shutter/%C3%90%C2%92%C3%91%C2%8B%C3%90%C2%B4%C3%90%C2%B5%C3%90%C2%BB%C3%90%C2%B5%C3%90%C2%BD%C3%90%C2%B8%C3%90%C2%B5_005.png

вот ссылки на сайты где использовано расширение магазин одежды, магазин косметики в планах допилить верстку и отойти от json формата докумената. Буду рад любой помощи. Присоединяйтесь php 'description'=>'menus'

yii2-wordpress-menu's People

Contributors

sirgalas avatar

Stargazers

Phuc Nguyen avatar Artem Konstantinov avatar Igor Maliy avatar Andrey avatar

Watchers

James Cloos avatar  avatar

yii2-wordpress-menu's Issues

Как с вами связаться?

Здравствуйте, я хотел обсудить с вами возможность посотрудничать, мне нужен backend php разработчик, на Laravel. Подскажите пожалуйста, как с Вами связаться? Напишите пожалуйста мне в телеграмм : https://t.me/bairamovstudio

Предложение о работе.

Здравствуйте, увидел ваше резюме, но из контактов там только гитхаб. Я являюсь руководителем севастопольского подразделения разработки приложений МТС, возможно вам интересна наша вакансия backend-разработчика (на текущий момент PHP- https://sevastopol.hh.ru/vacancy/23625693), то буду рад продолжить общение.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.