Делаем ЧПУ у новостей в webasyst

Очень часто нас спрашивают или просят сделать изменения в движке интернет магазина ВебАсист в области модуля новостей/блога. Если быть еще точнее, просят сделать изменения в чпу адресе. Не будем долго расписывать, тем более кто завершил создание интернет магазина давно, уже в курсе о чем идет речь. Приступаем сразу.

ВНИМАНИЕ перед работой обязательно!!! Просто обязательно сделайте резервную копию файлов.

Итак, сразу отвечаем на вопрос:

Как сделать ЧПУ новостей в транслите?

Для начала открываем базу данных и создаем там новое поле в таблице SC_news_table, в нашем примере это поле мы назовем link_slug. При создании нового поля мы использовали тип varchar с параметром 75. После того как мы создали поле можно смело закрывать базу данных.

Переходим к программной части

Открываем файл public_html/published/SC/html/scripts/modules/news/class.newsmodule.php

В нем находим строчку которая начинает запрос так

case 'SAVE_NEWS':
if(isset($_POST['DATA'])){

и в этот запрос, перед строкой $this->saveNews($_POST); аккуратно вписываем вот такой код, чтобы получилось

if(!isset($_POST['link_slug'])||trim($_POST['link_slug'])==''){
$cur_lang = LanguagesManager::getCurrentLanguage();
$_POST['link_slug'] = make_slug($_POST['title_'.$cur_lang->iso2]);
}else $_POST['link_slug'] = make_slug($_POST['link_slug']);

$this->saveNews($_POST);

Чуть ниже идет блок

case 'ADD_NEWS':
if(!$_POST['DATA']['title'] && !$_POST['DATA']['textToPublication']){

в него мы перед строкой Redirect(set_query('?ukey=manage_news&msg=add_ok')); добавляем код

if(!isset($_POST['link_slug'])||trim($_POST['link_slug'])==''){
$cur_lang = LanguagesManager::getCurrentLanguage();
$_POST['link_slug'] = make_slug($_POST['title_'.$cur_lang->iso2]);
}else $_POST['link_slug'] = make_slug($_POST['link_slug']);

Сохраняем файл и закачиваем его на сервер к остальным файлам сайта.

Теперь нам необходимо вывести поле в панели администратора. То есть переходим к следующему шагу.

Добавляем поле на странице добавления/редактирования новости.

Открываем папку с шаблоном backend, которая находится на сервере. В папке находим файлы: news.backend.html и news_add.html

Открываем их, в любой последовательности, можно хоть оба сразу.

В нашем примере мы откроем сначала файл news.backend.html (или news.admin_list.tpl.html зависит от версиии). Итак, в нем ищем блок

<tr>
<td>{"blog_post_title"|translate} <span class="notice">({"blog_str_not_html"|translate})</span>:</td>
<td>
{html_text name="title" values=$NewsInfo}
</td>
</tr>

После которого нам необходимо вставлить новый дополнительный блок для нашего поле  с ЧПУ, и ставим наш блок с вот с таким кодом

<tr>
<td>links:</td>
<td>
<input type=text name='link_slug' value="{if $NewsInfo.link_slug}{$NewsInfo.link_slug}{else}{/if}" size="12" />
</td>
</tr>

Сохраняем и переходим к следующему файлу news_add.html, в нем так же нам необходимо найти блок с кодом

<tr>
<td>{"blog_postdate"|translate}:
</td>
<td>
{if $NewsInfo.add_date}{$NewsInfo.add_date}{else}{$current_date}{/if}
</td>
</tr>

После добавляем наш код

<tr>
<td> links:</td>
<td>
<input type=text name='link_slug' value="{if $NewsInfo.link_slug}{$NewsInfo.link_slug}{else}{/if}" size="12" />
</td>
</tr>

Сохраняем. Оба измененных файла закачиваем обратно на сервер к остальным файлам.

Отметим, что наши строки можно вставлять в удобное для вас место, в нашем случае, строка появится после даты.

Переходим к видимой части для пользователя.

Далее идем в папку с дизайном (frontend), копируем, открываем файл с шаблоном новостей и меняем вид ссылки на такой вот вид

{"?ukey=blog&blog_id="|cat:$news_posts[i].link_slug|set_query_html}

Сохраняем, закачиваем обратно на сервер.

Заходим создаем новую новость, проверяем.

Теперь должно работать.

Как настроить ЧПУ у старых новостей?

Для этого открываем панель администратора, заходим в раздел новости/блог, нажимаем редактировать и копируем название новости в новое поле, которое у нас появилось под датой.

Нажимаем изменить/сохранить. Готово.

////////////////

Наша компания предупреждает сразу, будьте внимательны, делайте резервные копии, за не предвиденные обстоятельства, потерю данных или прочий форс мажор, мы ответственность не несем, данная информация указывается в ознакомительных целя.

Список всех статей Просмотров: 15138 раз

Подписаться на полезные статьи RSS Подписаться на полезные статьи или
График работы:

Будни: с 10 до 22 (мск.)Выходные: с 1130 до 2130 (мск.)

Новости:
20.12.2017

Яндекс закрывает раздел Яндекс.Каталог

Яндекс.Каталог был запущен в 2000 году и быстро стал одним из самых популярных сайтов Рунета, на который постоянно заходили миллионы пользователей
05.01.2015

Ежегодная традиционная скидка на услуги

Отгремели салюты, фейерверки и звон бокалов Ежегодная акция стартует
29.10.2014

Обновление портфолио

Завершены несколько сайтов и добавлены в портфолио

все новости

Подпишитесь на новости

Случайные работы

  • Bar & restaurant TRIBUNE
  • Официальный сайт дистрибьютора Rilbaum
  • Магазин сантехники
  • Страховой брокер "Каско-М"
  • Березовый сок
  • Салон красоты "Версайс"
  • Студия праздника Мистера Пимперли
  • Магазин строительных инструментов "Бифай"
  • Сумки саквояжи SHMELEFF
  • Сайт визитка Квадр СК
  • Сайт для фотографа
  • Интернет-сайт для компании Ферросталь.
  • Эксклюзивные дизайнерские огнетушители
  • Простой сайт о бухгалтерских услугах
  • Интернет - Магазин спортивного питания

Наше полное портфолио

  Электронная почта: info@vamsite.ru
обратная связь
© 2007 - 2014 разработка сайтов москва,
разработка интернет сайтов, создание интернет сайта "VamSite"
Rambler's Top100