Шаблоны ONEPAGE на Joomla 3

  • 6 Ответов
  • 1070 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн apikron

Шаблоны ONEPAGE на Joomla 3
« : 19.02.2015, 14:57:12 »
Установил один из шаблонов для Joomla 3 из разряда ONEPAGE, в данном случае LT Personal http://ltheme.com/project/lt-personal-free-onepage-portfolio-personal-joomla-template/
Демо шаблона http://demo2.ltheme.com/joomla-one-page-templates/lt-personal/

Народ! Подскажите, пожалуйста, как работать с меню?! Не понял как настраивать ссылки, чтобы при нажатии подгружался нужный материал (как я понимаю из нужной модульной позиции).
На простейшем застрял  ^-^ Уже решил просто "Якорь" использовать, как вариант, но хочется реально понять как правильно работать с меню в шаблонах ONEPAGE.

*

Оффлайн apikron

Re: Шаблоны ONEPAGE на Joomla 3
« Ответ #1 : 19.02.2015, 15:22:09 »
Неужели "Якорями" и работает?!

*

Оффлайн vdm-m3

Re: Шаблоны ONEPAGE на Joomla 3
« Ответ #2 : 08.05.2015, 14:25:35 »
Вот здесь посмотрите: http://joomlaforum.ru/index.php/topic,297332.new.html
Но окончательно вопрос не решен как быть с пунктами меню и заголовками модулей на русском.
Если есть какая информация о решении проблемы, пожалуйста отпишитесь. Буду очень благодарен.

*

Оффлайн apikron

Re: Шаблоны ONEPAGE на Joomla 3
« Ответ #3 : 08.05.2015, 14:46:19 »
Если мы правильно друг-друга понимаем, то решил всё обычными якорями. Отключаю показ названия модуля, вписываю название модуля в тексте, ставлю <h>- тег, оформляю как надо средствами редактора. Потом соответственно ставлю якорь в название и прописываю якорь в необходимом пункте меню.

*

Оффлайн vdm-m3

Re: Шаблоны ONEPAGE на Joomla 3
« Ответ #4 : 08.05.2015, 17:34:12 »
Конечно и так тоже можно, но это можно просто сделать в модуле custom_html, а если в других модулях это делать, то уже посложнее...

Вот только что, на другом форуме очень помогли и предложили такое решение:

В файл modules.php добавляется транслитерация названий модулей. Русские символы переводятся в транслит.
Вот такой файл \public_html\templates\ja_onepage\html\modules.php  должен получиться:

<?php
function rus2translit($string)
{
    
$converter = array(
        
'&#1072;' => 'a',   '&#1073;' => 'b',   '&#1074;' => 'v',
        
'&#1075;' => 'g',   '&#1076;' => 'd',   '&#1077;' => 'e',
        
'&#1105;' => 'e',   '&#1078;' => 'zh',  '&#1079;' => 'z',
        
'&#1080;' => 'i',   '&#1081;' => 'y',   '&#1082;' => 'k',
        
'&#1083;' => 'l',   '&#1084;' => 'm',   '&#1085;' => 'n',
        
'&#1086;' => 'o',   '&#1087;' => 'p',   '&#1088;' => 'r',
        
'&#1089;' => 's',   '&#1090;' => 't',   '&#1091;' => 'u',
        
'&#1092;' => 'f',   '&#1093;' => 'h',   '&#1094;' => 'c',
        
'&#1095;' => 'ch',  '&#1096;' => 'sh',  '&#1097;' => 'sch',
        
'&#1100;' => '',    '&#1099;' => 'y',   '&#1098;' => '',
        
'&#1101;' => 'e',   '&#1102;' => 'yu',  '&#1103;' => 'ya',
        
'&#1040;' => 'A',   '&#1041;' => 'B',   '&#1042;' => 'V',
        
'&#1043;' => 'G',   '&#1044;' => 'D',   '&#1045;' => 'E',
        
'&#1025;' => 'E',   '&#1046;' => 'Zh',  '&#1047;' => 'Z',
        
'&#1048;' => 'I',   '&#1049;' => 'Y',   '&#1050;' => 'K',
        
'&#1051;' => 'L',   '&#1052;' => 'M',   '&#1053;' => 'N',
        
'&#1054;' => 'O',   '&#1055;' => 'P',   '&#1056;' => 'R',
        
'&#1057;' => 'S',   '&#1058;' => 'T',   '&#1059;' => 'U',
        
'&#1060;' => 'F',   '&#1061;' => 'H',   '&#1062;' => 'C',
        
'&#1063;' => 'Ch',  '&#1064;' => 'Sh',  '&#1065;' => 'Sch',
        
'&#1068;' => '',  '&#1067;' => 'Y',   '&#1066;' => '',
        
'&#1069;' => 'E',   '&#1070;' => 'Yu',  '&#1071;' => 'Ya',
        
'?' => '',    '!' => '',    '.' => '',
        
',' => '',
    );
    return 
strtr($string$converter);
}
?>

<?php


defined
('_JEXEC') or die('Restricted access');

/**
* This is a file to add template specific chrome to module rendering.  To use it you would
* set the style attribute for the given module(s) include in your template to use the style
* for each given modChrome function.
*
* eg.  To render a module mod_test in the sliders style, you would use the following include:
* <jdoc:include type="module" name="test" style="slider" />
*
* This gives template designers ultimate control over how modules are rendered.
*
* NOTICE: All chrome wrapping methods should be named: modChrome_{STYLE} and take the same
* three arguments.
*/


/*
* Default Module Chrome that has sematic markup and has best SEO support
*/
function modChrome_JAxhtml($module, &$params, &$attribs)
{
  
$badge preg_match ('/badge/'$params->get('moduleclass_sfx'))?"<span class=\"badge\">&nbsp;</span>\n":"";
?>

  <div class="ja-module module<?php echo $params->get('moduleclass_sfx'); ?>" id="Mod<?php echo $module->id?>">
    <div class="module-inner">
      <?php echo $badge?>
      <?php if ($module->showtitle != 0) : ?>
      <h3 class="module-title"><span><?php echo $module->title?></span></h3>
      <?php endif; ?>
      <div class="module-ct">
      <?php echo $module->content?>
      </div>
    </div>
  </div>
  <?php
}

function 
modChrome_onepage($module, &$params, &$attribs)
{
  
$key strtoupper(str_replace (' ''_'stripslashes($module->title)));
  
$subtitlekey 'TPL_SUBTITLE_'.$key;
  
$subtitle JText::_($subtitlekey);
  
$menuid strtolower(str_replace (' ''_'stripslashes($module->title)));
?>

  <section class="section onepage<?php echo $params->get('moduleclass_sfx'); ?>" id="<?php echo rus2translit($menuid)?>">
    <div class="container">

      <?php if ($module->showtitle != 0) : ?>
        <div class="section-title" id="<?php echo rus2translit($menuid)?>">
          <h2><span><?php echo $module->title?></span></h2>
          <span class="section-subtitle"><?php echo $subtitle ?></span>
        </div>
      <?php endif; ?>   

      <div class="row-fluid">
        <?php echo $module->content?>
      </div>

    </div>

  </section>
  <?php
}

Таким образом у Вас названия модулей будут переведены в транслит и всё заработает. Названия же самих модулей останутся на русском.
см. как работает: http://tablo-dlya-azs.ru

Останется только зайти в редактирование пунктов меню и там сделать транслитерацию ссылок на модули в соответствии с транслитерацией в файле mudule.php

Обратите внимание также на то, что если название модуля начинается с заглавной буквы, то и в настройках адреса ссылки пункта меню тоже надо указывать с заглавной, например: Название модуля: Наша продукция, Адрес в пункте меню: index.php?Itemid=435#Nasha_produkciya
« Последнее редактирование: 08.05.2015, 17:39:10 от vdm-m3 »

*

Оффлайн apikron

Re: Шаблоны ONEPAGE на Joomla 3
« Ответ #5 : 08.05.2015, 17:51:58 »
Да! Полезно! Спасибо за подсказку!

*

Оффлайн vdm-m3

Re: Шаблоны ONEPAGE на Joomla 3
« Ответ #6 : 08.05.2015, 17:57:47 »
Да не стоит благодарности. Мне тоже подскзали. Да это даже не "подсказали" :)   Это уже готовое решение.  ;D