承接 positibe/menu-bundle 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

positibe/menu-bundle

Composer 安装命令:

composer require positibe/menu-bundle

包简介

Symfony PositibeMenuBundle

README 文档

README

This bundle provide a Orm Provider to use KnpMenuBundle with menus loaded from database and it's inspired by Symfony-Cmf MenuBundle.

Installation

To install the bundle just add the dependent bundles:

php composer.phar require positibe/orm-menu-bundle

Next, be sure to enable the bundles in your application kernel:

<?php
// app/AppKernel.php
public function registerBundles()
{
    return array(
        // Dependency (check if you already have this bundle included)
        new Symfony\Cmf\Bundle\CoreBundle\CmfCoreBundle(),
        // Vendor specifics bundles
        new Knp\Bundle\MenuBundle\KnpMenuBundle(),
        new Positibe\Bundle\MenuBundle\PositibeMenuBundle(),

        // ...
    );
}

Configuration

Copy the configuration on yuor configuration packages:

# config/packages/positibe_menu.yaml
parameters:
#    locales: [es, en, fr] # Maybe you already have it configured
   positibe.menu_node.class: Positibe\Bundle\MenuBundle\Doctrine\Orm\MenuNode

knp_menu:
    providers:
        builder_alias: false
        container_aware: false
    twig:  # use "twig: false" to disable the Twig extension and the TwigRenderer
        template: PositibeMenuBundle::_knp_menu.html.twig
    templating: false # if true, enables the helper for PHP templates
    default_renderer: twig # The renderer to use, list is also available by default

doctrine:
    orm:
        resolve_target_entities:
            Positibe\Bundle\MenuBundle\Model\MenuNodeInterface: "%positibe.menu_node.class%"

Caution:: This bundle use the timestampable, sluggable, softdeletable, translatable and sortable extension of GedmoDoctrineExtension. Be sure you already have its listeners enabled. You can also to use StofDoctrineExtensionBundle.

Remember to update the schema:

php app/console doctrine:schema:update --force

Using link type menus

[php]
<?php
$menuClass = $this->container->getParameter('positibe.menu_node.class');
// Creating the root menu that is a container for submenus
$menu = new $menuClass('footer');
$menu->setChildrenAttributes(['class' => 'nav navbar-nav']); //You can set the ul attributes here

$manager->persist($menu);

//Creating an URI menu, that link to a external or internal full url.
/** @var \Positibe\Bundle\MenuBundle\Doctrine\Orm\MenuNode $menuExternalUrl */
$menuExternalUrl = new $menuClass('Github');
$menuExternalUrl->setLinkUri('https://github.com/Positibe/MenuBundle');
$menu->addChild($menuExternalUrl);

$manager->persist($menuExternalUrl); //The menu is configured with cascade persist, so you don't need to do this

// Creating a route menu, that link to a route in the routing configuration of your application
/** @var \Positibe\Bundle\MenuBundle\Doctrine\Orm\MenuNode $menuHomePage */
$menuHomePage = new $menuClass();
$menuHomePage->setName('homepage'); //You can define a code name to have better control of the menus
$menuHomePage->setLabel('Inicio'); //And you can define a proper label to show in the views
$menuHomePage->setLinkRoute('homepage');
$menu->addChild($menuHomePage);

$manager->persist($menuHomePage); //The menu is configured with cascade persist, so you don't need to do this

$manager->flush();

Translate a menu label

[php]
<?php
$menuClass = $this->container->getParameter('positibe.menu_node.class');

$menuContact = $manager->getRepository($menuClass)->findOneBy(['name' => 'homepage']);

$menuContact->setLabel('Inicio'); //Change the label normally
$menuContact->setLocale('es'); //Then set the proper locale
$manager->persist($menuContact);
$manager->flush();

Rendering the menu

You only need to use the knp_menu_render function in your twig template:

{% app/Resources/views/base.html.twig %}
{{ knp_menu_render('footer') }}

Set an entity into a menu

You can also integrate this bundle with SymfonyCMf RoutingBundle by implementing an entity that has route.

See Positibe ContentBundle

For more information see the Symfony Cmf MenuBundle documentation and KnpMenuBundle Documentation

统计信息

  • 总下载量: 13
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2017-01-09

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固