Добрый день, уважаемые форумчане!
У меня возникла проблема, поэтому пишу, чтобы помогли написать нужный мне кусок кода или подсказали, как можно выкрутиться из этой ситуации.
В общем, закачал для 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(); я могу свое главное меню поменять, но тогда получается либо одно, либо другое, а мне нужно оба, т.е. нужно условие, а условие нужно сделать по текущему языку. Либо сделать сразу два, но я так понимаю, это намного сложнее и нужно перелопачивать все файлы, все логические цепочки (зависимости).
Если нужно скинуть еще файлы, напишите, скину, сразу как смогу.
Проделав приличную работу, я хочу все-таки продолжить работать, а не бросать и искать новый шаблон, и начинать опять все заново. Помогите, пожалуйста.