Как разделить верхнее меню |

Вопросы и ответы по изменению функционала, смене дизайна, переносу сайта и т.п.

Модераторы: Xpycm, Koduc

Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.

На форуме действует ограничение в 3 сообщения / сутки.
Если Вы хотите сказать "спасибо", то воспользуйтесь функцией "Повысить репутацию" - зелёная иконка "плюс" под ником ответившего.

Как разделить верхнее меню |

Сообщение lomuk » 13 сен 2013, 09:46

Подскажите как разделить верхнее меню
Изначально оно так:
Код: Выделить всё
Главная Новости Вопросы-Ответы Спец.предложения Дополнительно

Нужно так
Код: Выделить всё
Главная | Новости | Вопросы-Ответы | Спец.предложения | Дополнительно
http://odessa-dom.com.ua - На Open Real Estate Pro
lomuk
Гражданин
Гражданин
 
Сообщения: 164
Зарегистрирован: 13 сен 2013, 09:42
Очки репутации: 0

Re: Как разделить верхнее меню |

Сообщение fisher » 13 сен 2013, 11:13

файл protected/modules/menumanager/models/Menu.php
в функции getMenuItems надо дописать строки.
было
Код: Выделить всё
if(!$menu){
            return array();
        }
        return 
$menu

должно быть
Код: Выделить всё
if(!$menu){
            return array();
        }
        
$t=0;
        
$newmenu = array();
        
$newmenu[0]=$menu[0];
        
$t++;
        for(
$i=1;$i<count($menu);$i++){
                
$newmenu[$t]=array('label' => '|');
                
$t++;
            
$newmenu[$t]=$menu[$i];
            
$t++;
        }
        if(
count($newmenu)>0){
            
$menu $newmenu;
        }
        return 
$menu
fisher
Разработчик
Разработчик
 
Сообщения: 285
Зарегистрирован: 15 апр 2013, 09:25
Очки репутации: 8

Re: Как разделить верхнее меню |

Сообщение lomuk » 13 сен 2013, 11:47

Спасибо
http://odessa-dom.com.ua - На Open Real Estate Pro
lomuk
Гражданин
Гражданин
 
Сообщения: 164
Зарегистрирован: 13 сен 2013, 09:42
Очки репутации: 0

Re: Как разделить верхнее меню |

Сообщение lomuk » 01 июн 2014, 22:51

Подскажите как сделать тоже самое только в 1.8.1
http://odessa-dom.com.ua - На Open Real Estate Pro
lomuk
Гражданин
Гражданин
 
Сообщения: 164
Зарегистрирован: 13 сен 2013, 09:42
Очки репутации: 0

Re: Как разделить верхнее меню |

Сообщение Xpycm » 02 июн 2014, 08:42

Файл protected/modules/menumanager/models/Menu.php метод normalizeMenuItems

после:
Код: Выделить всё
if ($node['is_blank'] && $node['type'] == self::LINK_NEW_MANUAL)
    
$menu[$i]['linkOptions'] = array('target' => '_blank');
if (
$children)
    
$menu[$i]['items'] = $children


вставить:
Код: Выделить всё
if($depth == 0) {
    
$i++;
    
$menu[$i] = array(
        
'label' => '|',
        
'url' => ''
    
);
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

Re: Как разделить верхнее меню |

Сообщение lomuk » 02 июн 2014, 15:55

Данных строк нет в движке

да и в файле menu есть только ф-ция

Код: Выделить всё
    public function normalize(){
        $pages=self::model()->findAll(array(
            'condition'=>'parentId=:parentId AND number>=:number AND id!=:id',
            'params'=>array(
                'id'=>$this->id,
                'parentId'=>$this->parentId,
                'number'=>$this->number,
            ),
        ));
        $num=$this->number;
        foreach($pages as $page){
            if($num==$page->number){
                $page->number++;
                $page->update();
            }else
                break;
            ++$num;
        }
    }
 
http://odessa-dom.com.ua - На Open Real Estate Pro
lomuk
Гражданин
Гражданин
 
Сообщения: 164
Зарегистрирован: 13 сен 2013, 09:42
Очки репутации: 0

Re: Как разделить верхнее меню |

Сообщение lomuk » 02 июн 2014, 16:00

Нашел только такое, не знаю имеет ли значение но ORE 1.8.1 PRO

Код: Выделить всё
    public static function getMenuItems($parentId, $depth = 0){
        # не выводим более 3 уровней
        if ($depth > self::MAX_LEVEL) {
            return array();
        }

        $pages = self::model();
        $pages = $pages->findAll(array(
            //'select'=>'id, parentId, title_'.Yii::app()->language.' AS title, special, href_'.Yii::app()->language.' AS href, type',
            'condition'=>"parentId = :parentId AND active = :active",
            'params'=>array(
                'parentId' => $parentId,
                'active' => 1,
            ),
            'order'=>'t.number',
        ));

        if(!count($pages)) return array();

        $menu = array();
        foreach ($pages as $k => $v) {
            $menu[$k] = array();
            $children = self::getMenuItems($v->id, $depth + 1);

            $menu[$k]['label'] = $v->getTitle();
            $menu[$k]['url'] = $v->getUrl();

            if ($v->is_blank && $v->type == self::LINK_NEW_MANUAL) {
                $menu[$k]['linkOptions'] = array('target' => '_blank');
            }

            if ($children)
                $menu[$k]['items'] = $children; 


если добавляю тут, то выходит вот так
Код: Выделить всё
Главная Новости Вопросы-ответы Спец.предложения Отзывы Дополнительно | 
http://odessa-dom.com.ua - На Open Real Estate Pro
lomuk
Гражданин
Гражданин
 
Сообщения: 164
Зарегистрирован: 13 сен 2013, 09:42
Очки репутации: 0

Re: Как разделить верхнее меню |

Сообщение Xpycm » 02 июн 2014, 16:13

Вместо:
Код: Выделить всё
$menu = array();
foreach (
$pages as $k => $v) {
    
$menu[$k] = array();
    
$children self::getMenuItems($v->id$depth 1);

    
$menu[$k]['label'] = $v->getTitle();
    
$menu[$k]['url'] = $v->getUrl();

    if (
$v->is_blank && $v->type == self::LINK_NEW_MANUAL) {
        
$menu[$k]['linkOptions'] = array('target' => '_blank');
    }

    if (
$children)
        
$menu[$k]['items'] = $children;
        


Вставить:
Код: Выделить всё
$menu = array();
$i 0;
foreach (
$pages as $k => $v) {
    
$menu[$i] = array();
    
$children self::getMenuItems($v->id$depth 1);

    
$menu[$i]['label'] = $v->getTitle();
    
$menu[$i]['url'] = $v->getUrl();

    if (
$v->is_blank && $v->type == self::LINK_NEW_MANUAL) {
        
$menu[$i]['linkOptions'] = array('target' => '_blank');
    }

    if (
$children)
        
$menu[$i]['items'] = $children;
        
    if(
$depth == 0) {
        
$i++;
        
$menu[$i] = array(
            
'label' => '|',
            
'url' => ''
        
);
    } 
    
    
$i++;
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

Re: Как разделить верхнее меню |

Сообщение lomuk » 02 июн 2014, 17:35

Все выводится, спасибо.

Но подскажите как убрать последний |

Сейчас
Код: Выделить всё
Главная | Новости | Вопросы-ответы | Спец.предложения | Отзывы | Дополнительно | 


Надо
Код: Выделить всё
Главная | Новости | Вопросы-ответы | Спец.предложения | Отзывы | Дополнительно
http://odessa-dom.com.ua - На Open Real Estate Pro
lomuk
Гражданин
Гражданин
 
Сообщения: 164
Зарегистрирован: 13 сен 2013, 09:42
Очки репутации: 0

Re: Как разделить верхнее меню |

Сообщение Xpycm » 03 июн 2014, 06:48

lomuk писал(а):Но подскажите как убрать последний |


Пусть это будет "домашним заданием"
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50


Вернуться в Вопросы и помощь по изменениям

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

cron