Создание интересного сайта — залог успешного продвижения Бизнеса... 
Документация sh404sef FAQs Создание плагина для sh404SEF — Формирование ЧПУ

Создание плагина для sh404SEF — Формирование ЧПУ

Вы должны узнать несколько важных вещейдо того как приступить к написанию своего плагина или разработке кода формирования ЧПУ ссылок.

Вы должны создать только часть ЧПУ для URL-адреса, после имени домена.

Например, если Вы сформируете URL так:

  • http://www.mysite.com/product-infos/giant-cliffhanger/

Тогда Вам необходимо включить в Ваш плагин следующее:

  • $title[] = 'product-infos';
    $title[] = 'giant-cliffhanger';

Все параметры, содержащиеся в URL без ЧПУ уже извлечены, и доступны в файле плагина. Например, вы можете сразу использовать что-то вроде:

  • if (isset($task))
    $title[] = $task;

Если URL-адрес без ЧПУ содержит: ...&task=view... ,— то сформированный URL будет содержать /view/

Пожалуйста, проверьте наличие переменной isset() или empty() перед использованием. Мы обнаружили, что многие люди на их серверах/хостинге получают сообщение об ошибке. Она может быть вызвана перед заголовками Joomla!, имеющие ошибки.

sh404SEF, по умолчанию, каждый параметр задается как GET параметр.

Вы должны сообщить sh404SEF переменной информацию о том, был ли превращен URL в ЧПУ ссылку или нет. Вы можете сделать это, с помощью shRemoveFromGETVarsList() функции. Например, если у вас есть GET параметр:

  • ...&task=viewUserDetails....

и Вы решили, вместо этого вставить ЧПУ, такие например, как /View-user-Details/, то Вам надо сделать следующее:

  • if (isset($task) &&($task == 'viewUserDetails')) {
    $title[] = 'View-user-Details';
    shRemoveFromGETVarsList('task');
    }

Что означает:

Если $task соответствует View user detail:

  • Вставить соответствующий текст в URL
  • Сообщить sh404SEF, что не нужно больше добавлять $task в URL

Если вызов shRemoveFromGETVarsList() отсутствует, то в ЧПУ URL будет добавлено: ?task=viewUserDetails. Это не вызывает никаких конфликтов, и не будет препятствовать операциям Joomla!.

Большинство плагинов должны иметь следующий код:

  • shRemoveFromGETVarsList('option');
    shRemoveFromGETVarsList('lang');
    if (!empty($Itemid))
  • shRemoveFromGETVarsList('Itemid');
    // optional removal of limit and limitstart
    if (!empty($limit)) // use empty to test $limit as $limit is not allowed to be zero
  • shRemoveFromGETVarsList('limit'); 
    if (isset($limitstart)) // use isset to test $limitstart, as it can be zero
  • shRemoveFromGETVarsList('limitstart');
  1. Очистка, кодирование URL, замены символов, и т.д. осуществляется автоматически компонентом sh404SEF. Вам не нужно делать это самостоятельно. Просто добавьте текст, который Вы хотите, чтобы он появился, прямо из базы данных, если хотите.
  2. Вы не должны вставлять код языка в ЧПУ URL. Это автоматически обрабатывается sh404SEF, опять же, с учетом пользователей, и определенных параметров.
  3. Если Вы используете название в качестве параметра в URL, то это будет мешать названию массива $title. Чтобы избежать этой проблемы, если таковая имеется, ...&title=.... был изменен на переменную $sh404SEF_title.
    Вы должны использовать $sh404SEF_title вместо $title для создания URL.
  4. Не добавляйте промежуточную косую черту, они будут автоматически добавлены позже. Однако, последним элементом в URL (то есть последний элемент в $title) может быть /. Если да, то окончательный ЧПУ URL закончится косой чертой. Если последний элемент является ничем иным, как слэш, то, возможно,будет добавлен суффикс. Пользователи могут настроить суффикс в административной панели sh404SEF по своему усмотрению. Суффикс добавляется также, автоматически.
  5. В любом месте, в плагине, Вы можете установить $dosef, это будет URL без ЧПУ. Он может быть использован, например, если некоторые конкретные ссылки получаются слишком сложными или их слишком много.
  6. Полезная функция: getMenuTitle()

Эта функция возвращает название пункта меню соответствующим либо опции (option=com_content, например), либо Itemid. 

Она может быть вызвана:

  • $title[] = getMenuTitle($option, (isset($task) ? @$task : null), $shCurrentItemid, null, $shLangName );
    $option
    всегда доступна, это имя компонента (com_HeyJoe, например).
    $task можно включить или нет, в соответствии с работой Вашего компонента.

$shCurrentItemid всегда доступна.

Она расположена в sh404SEF и содержит текущий Itemid страницы. Просто помните, что Ваш плагин призывает правило, в рамках JRoute::_(), когда Joomla! готовит содержание страницы, чтобы преобразовать все ссылки на этой странице в ЧПУ формат. $ShCurrentItemid эта страница с Itemid. Просто замените $shCurrentItemid Вашим собственным Itemid.

  • $shLangName необходима для обработки перевода.
  • Полезная функция: getContentTitles() 

Эта функция использует почти те же параметры, что и предыдущая. Она вернет название элемента контента. 
Она может быть вызвана так:

  • $title[] = sef_404::getContentTitles($task,$id,$Itemid, $shLangName)

(Пожалуйста, убедитесь, что $task и $Id существуют, перед их использованием

  • $task может быть разделом, категорией, разделом блога, категорией блога или просмотрами. 
  • $Id (идентификационный номер) раздела, категории или элемента контента. Если $Id установлен, то соответствующий раздел, категориz или элемент будет выбран из базы данных и вернется. Если $Id не передается функции, то он вернет заголовок элемента меню.

Рекомендуемый хостинг для сайта:

Лучшие видеокурсы по созданию сайтов:

Оптимизация сайта

При заказе оптимизации и продвижения сайта - новый сайт или редизайн старого - сделаем бесплатно
(обращайтесь лично ко мне: Игорь Вялов )
Обсуждение SEO-энциклопедии на форуме
Видео-уроки SEO — оптимизация Joomla »

  • Категория: FAQs
  • Просмотров: 6033

Комментарии (0)

Оставить комментарий

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

Навигатор: Документация sh404sef FAQs Создание плагина для sh404SEF — Формирование ЧПУ