Форум русской поддержки Joomla!® CMS
07.12.2016, 01:55:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Условие по языковой версии сайта

 (Прочитано 261 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Duiate
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« : 07.06.2016, 14:46:48 »

Добрый день, уважаемые форумчане!
У меня возникла проблема, поэтому пишу, чтобы помогли написать нужный мне кусок кода или подсказали, как можно выкрутиться из этой ситуации.
В общем, закачал для Joomla замечательный шаблон от vtem, написал до фига всего в материалах, картинки долго и упорно подбирал под шаблон, редактировал, фотошопил и т.д. Добрался до второй версии сайта, на другом языке, сделал, как положено, три меню: для всех, англ, третий язык.
И тут надо ставить для второго меню ту же позицию, что для первого. Смотрю, а для меню нет вообще никакого модуля, ну, думаю, как так?! Начал разбираться, и вот что выяснилось.
Оказывается:
1. меню написано кодом(без модуля)
2. позиция, на которой стоит сейчас первое меню, вообще не прописана в Joomla, как возможная, т.е. туда, где первое меню, не поставишь второе в админке.
3. если поменять оба меню на прописанную позицию в шаблоне, будет очень коряво смотреться.

Поковырявшись в файлах, я нашел такой файл default.php.
Начало файла такое:

Код:
<?php
defined('_JEXEC') or die('Restricted access');
///  Renderer modules  //////////////////////////////////////////////////////////////////////////////////////////
function VTEMShowModule($name, $style, $modnumber, $logopos = '', $menupos = ''){
    $modmodule = $modstep = $modwidthmanual = $showlogo = '';
    $countmodule = 0;
    jimport( 'joomla.application.module.helper' );
    $customParams = JFactory::getApplication()->getTemplate(true)->params;
    $doc = JFactory::getDocument();
    $app = JFactory::getApplication();
   
    //// MENU /////////////////////////////////////////////////
    $custommenu = $customParams->get("custommenu", 0);
    $menu_name = $customParams->get("menutype", "mainmenu");
    $menustyle = $customParams->get("menustyle", 1);
    $startLevel = $customParams->get("startLevel", 0);
    $endLevel = $customParams->get("endLevel", 10);
    $mootransition = $customParams->get("mootransition", 'Quad');
    $renderer    = $doc->loadRenderer( 'module' );
    $options    = array( 'style' => "raw" );
    $module = JModuleHelper::getModule( 'mod_menu', '$menu_name' );
    $modulem = JModuleHelper::getModule( 'mod_menu', '$menu_name' );
    $vtemmainmenu = false; $subnav = false; $sidenav = false;
    if($menustyle == 1){$menustyle1 = "_vtem_nav";}else{$menustyle1 = "_vtem_dropline";}
    $module->params    = "menutype=$menu_name\nshowAllChildren=1\nstartLevel=$startLevel\nendLevel=$endLevel\nclass_sfx=$menustyle1";
    $modulem->params    = "menutype=$menu_name\nshowAllChildren=1\nstartLevel=$startLevel\nendLevel=$endLevel\nclass_sfx=-mobi";
    if($custommenu == 0){
    $vtemmainmenu = '<div id="vt_main_menu" class="vt_menufix clearfix"><div class="vt_bgmain_menuleft"></div>
                         <div class="vt_bgmain_menuright"></div><div id="vtem_menu" class="mlmenu plus '.$mootransition.'">' .$renderer->render( $module, $options ).'</div>';
    $vtemmainmenu .= '<a href="#vtem_menu_mobile" class="vtemdrildown vtemdrillround" id="vtflatmenu">Mobile menu</a><div id="vtem_menu_mobile" class="hidden vt_drilldown_menu" style="display:none;">' .$renderer->render( $modulem, $options ).'</div></div>';
    }else{
    $vtemmainmenu = '';
    }

В этом коде я выявил одну закономерность:
$menu_name = $customParams->get("menutype", "mainmenu");
В этой строчке меняв параметры под get(); я могу свое главное меню поменять, но тогда получается либо одно, либо другое, а мне нужно оба, т.е. нужно условие, а условие нужно сделать по текущему языку. Либо сделать сразу два, но я так понимаю, это намного сложнее и нужно перелопачивать все файлы, все логические цепочки (зависимости).

Если нужно скинуть еще файлы, напишите, скину, сразу как смогу.

Проделав приличную работу, я хочу все-таки продолжить работать, а не бросать и искать новый шаблон, и начинать опять все заново. Помогите, пожалуйста.
Записан
Ilhom666
Живу я здесь
******

Репутация: +157/-0
Offline Offline

Сообщений: 1340



« Ответ #1 : 07.06.2016, 16:16:59 »

если выбор главного меню вшито в шаблон, то читайте здесь
Записан
Duiate
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #2 : 07.06.2016, 17:10:57 »

Просмотрел тему, объясните, пожалуйста, поподробней. У меня шаблон использует меню с определенным типом, а тип задается уникально, модуля к меню не стоит. Как мне прикрепить правильно второе меню ко второму шаблону(дублю)?
Записан
Ilhom666
Живу я здесь
******

Репутация: +157/-0
Offline Offline

Сообщений: 1340



« Ответ #3 : 07.06.2016, 20:09:56 »

где вообще у вас определяется какое меню выводить? Задается в настройках шаблона?
Записан
Duiate
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #4 : 07.06.2016, 20:30:56 »

В файле default.php папки шаблона.



Записан
Ilhom666
Живу я здесь
******

Репутация: +157/-0
Offline Offline

Сообщений: 1340



« Ответ #5 : 07.06.2016, 20:36:46 »

как вообще шаблон называется?
Записан
Duiate
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #6 : 07.06.2016, 20:40:05 »

Ilhom666, спасибо, у меня получилось, а настройки для шаблона я нашел, там как раз и оказалась смена главного меню.

 Cheesy Wink Smiley
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet