Псевдоним пункта меню

Menu Item Alia

После обновления до Joomla 3.6? некоторые пользователи столкнулись с невозможностью создать псевдоним пункта меню (Menu Item Alias), если в этом или другом меню содержался аналогичный пункт с тем же именем.

Attachments:
Download this file (plg_content_menudatealiasghsvs-2016.08.14.zip)plg_content_menudatealiasghsvs-2016.08.14.zip[Menu Item Alias]14 kB

Условия в шаблонах Joomla для различных компонентов. VirtueMart

Рассматриваем для Joomla 1.5.x

Что это? Условия, определяющие вывод модулей на различных страницах компонентов. Сейчас первая часть. VirtueMart

<?php
$option = JRequest::getVar('option', null);
$page = JRequest::getVar('page', null);
?>

<?php if ( $this->countModules('НАЗВАНИЕ_МОДУЛЯ') && $option=='com_virtuemart' && $page !='checkout.index' && $page!='shop.cart' && $page!='account.order_details' && $page !='shop.browse' && $page !='checkout.thankyou' && $page !='shop.product_details' ) { ?>
<jdoc:include type="modules" name="НАЗВАНИЕ_МОДУЛЯ" />
<?php } ?>

Что делает этот код. Осуществляет вывод определенного модуля на страницах VirtueMart, кроме таких страниц как - оформление заказа, корзина и т.д.

Если мы хотим, чтобы модуль выводился также на, к примеру, странице "Корзина", необходимо изменить значение

$page!='shop.cart'

на

$page=='shop.cart'

В этом случае общий блок кода примет вид

<?php
$option = JRequest::getVar('option', null);
$page = JRequest::getVar('page', null);
?>

<?php if ( $this->countModules('НАЗВАНИЕ_МОДУЛЯ') && $option=='com_virtuemart' && $page !='checkout.index' && $page=='shop.cart' && $page!='account.order_details' && $page !='shop.browse' && $page !='checkout.thankyou' && $page !='shop.product_details' ) { ?>
<jdoc:include type="modules" name="НАЗВАНИЕ_МОДУЛЯ" />
<?php } ?>

Для определения страниц используются option и page из адресной строки

Вторая часть будет посвящена аналогичному вопросу для Zoo

Условия в шаблонах Joomla для различных компонентов. Zoo

Рассматриваем для Joomla 1.5.x

Что это? Условия, определяющие вывод модулей на различных страницах компонентов. Часть вторая. Zoo

<?php
$option = JRequest::getVar('option', null);
$task = JRequest::getVar('task', null);
?>
<?php if ( $this->countModules('НАЗВАНИЕ_МОДУЛЯ') && $option=='com_zoo' and $task !='category' && $task !='item' && $task !='tag' ) { ?>
<jdoc:include type="modules" name="НАЗВАНИЕ_МОДУЛЯ" style="xhtml" />

Что делает этот код. Осуществляет вывод определенного модуля на страницах компонента Zoo, кроме категорий, элементов и тегов. Т.е. в данном примере, по сути, только на главной странице компонента

Если мы хотим, чтобы модуль выводился также на, к примеру, страницах тегов, необходимо изменить значение

$task !='tag'

на

$task =='tag'

В этом случае общий блок кода примет вид

<?php
$option = JRequest::getVar('option', null);
$task = JRequest::getVar('task', null);
?>
<?php if ( $this->countModules('НАЗВАНИЕ_МОДУЛЯ') && $option=='com_zoo' and $task !='category' && $task !='item' && $task =='tag' ) { ?>
<jdoc:include type="modules" name="НАЗВАНИЕ_МОДУЛЯ" style="xhtml" />

Для определения страниц используются option и task из адресной строки.

Аналогичное возможно и для других компонентов.

Убираем копирайт в компоненте Phoca Documentation

В компоненте Phoca Documentation надо убрать выводимый копирайт

Рассматриваю версию Phoca Documentation 1.1.0

Открываем файл administrator/components/com_phocadocumentation/helpers/phocadocumentation.php

В строке ~ 74 закомментируем строку

$output    .= $t . ' <a href="'.$l.'" '.$s.' '.$b.' title="'.$p.'">'. $p. '</a>';

 

Переход с Xoops (RunCMS) на Joomla

Написал скрипт миграции БД с Xoops (RunCMS) на Joomla 1.5.x. С другими версиями джумлы не тестировал, но вполне, думаю, реально.

Пока работает - перенос пользователей и материалов, с датами и прочими атрибутами.

Скрипт не будет распространяться в открытую до его доведения в отдельное приложение/расширение, но тем, кто желает перейти с CMS на базе Xoops, можете обращаться. Услуга не бесплатная, но стоит того, чтобы в ручную не переносить все материалы.

Проверено - был выполнен перенос ~ 5000 материалов из разных таблиц и около 1000 пользователей.

VirtueMart. Советы и рекомендации. Часть 1

1. Отключаем исполнение fetchscript.php

В файле конфигурации VirtueMart /administrator/components/com_virtuemart/virtuemart.cfg.php добавляем запись:

$_REQUEST['usefetchscript'] = "0";  

2. В версии 1.1.9 есть проблема с отображением дочерних категорий.

\administrator\components\com_virtuemart\html\shop.browse.php

Строка ~ 86

Заменить в строку

elseif( $num_rows == 0 && empty($product_type_id) && empty($child_list)) {

на

elseif( $num_rows == 0 && empty($product_type_id) && !empty($child_list)) {

Разница в восклицательном знаке (!) перед empty($child_list)

 

3. Добавляем CAPTCHA в блок "Задайте вопрос по этому товару"

  • регистрируемся на сайте http://recaptcha.net/ и добаляем свой сайт для получения ключей
  • скачиваем с сайта http://www.joomlaez.com/ плагин интеграции Joomla reCAPTCHA Integrator Plugin
  • настройки плагина:
    • Опубликовываем плагин
    • Указываем public и private keys, полученные с сайта recaptcha.net
    • Устанавливаем Inclusion Syntax в положение YES
    • Устанавливаем Auto-verify в положение YES
    • Применяем или сохраняем настройки
  • Открываем файл components\com_virtuemart\themes\default\templates\pages\shop.ask.tpl.php
  • Ищем строку 35 (ориентировочно). Перед кодом <input type="button" name="send".....  добавляем текст {captcha}
  • Обновляем файл

p.s. Не забываем включить поддержку плагинов в настройках VirtueMart в административной части сайта.

 

4. Убираем скобки из названия производителя.

Открываем файл administrator\components\com_virtuemart\html\shop.product_details.php

Ищем вхождение строки

$text = '( '.$manufacturer_name.' )';

Убираем скобки, оставляя

$text = ''.$manufacturer_name.'';

5. Убираем ссылку из названия производителя.

Открываем файл administrator\components\com_virtuemart\html\shop.product_details.php

В строке ниже, указанной в п.4, находим запись

$manufacturer_link .= vmPopupLink( $link, $text );

Меняем ее на

$manufacturer_link .= $manufacturer_name;

6. Переводим сообщения в CAPTCHA на русский язык

В дополнение к п.3 - Добавляем CAPTCHA в блок "Задайте вопрос по этому товару"

Есть два способа

Первый. Используя шаблон сайта.

Добавляем в файлы /templates/название_шаблона/index.php и templates/название_шаблона/component.php перед закрывающим тегом </head> следующий код

<script type="text/javascript" language="javascript"><!-- // --><![CDATA[
var RecaptchaOptions = {
   lang : 'ru'
};
// ]]></script>

Второй. Используем шаблон магазина.

Работаем с файлом components\com_virtuemart\themes\default\templates\pages\shop.ask.tpl.php, который ранее уже правили в п.3

Добавляем этот файл перед вставкой {captcha} следующий код

<?php
$document =& JFactory::getDocument();
$document->addScriptDeclaration("
var RecaptchaOptions = {
   lang : 'ru'
};
");
?>

По аналогии, можно перевести и на любой другой язык