А как сделать с этим ЧПУ? Какую переменную надо подставить в canonical?Дописал вывод canonical для каждой страницы
Простенький модуль ЧПУ, версия 2
#141
Отправлено 04 October 2016 - 06:09 PM
#142
Отправлено 04 October 2016 - 06:59 PM
Чтобы вывелась ЧПУ ссылка.А как сделать с этим ЧПУ?
Например, для полной новости:
<link rel="canonical" href="{$smarty.const.CONF_FULL_SHOP_URL}{$smarty.const.ARTICLES_ROOT}/{$articles_full_array.uri}.html">
я вывел так в head.tpl.html:
{if $main_content_template eq "show_full_articles.tpl.html"}
<link rel="canonical" href="{$smarty.const.CONF_FULL_SHOP_URL}{$smarty.const.ARTICLES_ROOT}/{$articles_full_array.uri}.html">
{/if}
С остальными страницами аналогично.
#143
Отправлено 04 October 2016 - 08:46 PM
Вот это откуда взять для карточки товара с указанием категории?{$smarty.const.ARTICLES_ROOT}/{$articles_full_array.uri}.html
#144
Отправлено 04 October 2016 - 10:40 PM
{if $main_content_template eq "product_detailed.tpl.html"}
<link rel="canonical" href="{$smarty.const.CONF_FULL_SHOP_URL}{if $product_info.cpu eq ''}/{/if}product_{$product_info.productID}.html">
{/if}
Да, чуть не забыл, вывод product_info["cpu"] прописывал в product_detailed.php - там ничего сложного нет.
PS. Наверное, забыл. Посмотрел только что - никаких дописок не нашел (
#145
Отправлено 05 October 2016 - 05:03 PM
#146
Отправлено 06 October 2016 - 03:08 PM
#147
Отправлено 21 March 2017 - 01:52 PM
ERROR: 1054:Unknown column 'dahx_products.uri' in 'field list'И ее в таблице действительно нет. Ошибок из шапки темы не наблюдаю.
#148
Отправлено 21 March 2017 - 03:33 PM
Встречный вопрос - зачем я пишу инструкции и описания?ЧПУ все заработали, но нет редиректа со старых страниц (product_XXX.html, category_XXX.html), он должен быть или нет?
В моем модуле нет поля uri вообще. Это поле для ЧПУ-ссылки на товар от другого ЧПУ-модуля.Unknown column 'dahx_products.uri'
А раз запрос с этим полем есть, но поля такого в таблице нет, значит Вы поверх нового пустого сайта раскатали базу и файлы от старого сайта.
Не самая лучшая идея - устанавливать еще один ЧПУ-модуль поверх сайта с уже имеющимся кодом другого ЧПУ-модуля.
#149
Отправлено 22 March 2017 - 12:01 PM
Наиболее вероятным мне представляется отсутствие необходимых исправлений в .htaccess.нет редиректа со старых страниц (product_XXX.html, category_XXX.html)
#150
Отправлено 12 June 2017 - 10:53 PM
Но что можно достигнуть при переходе - это отсутствие лишних запросов к базе т.к. сама ссылка будет храниться в той же таблице, что и категория или товар и при запросе товара ссылка будет получаться автоматически и без лишних запросов.
#151
Отправлено 13 June 2017 - 10:09 AM
Странный тезис. Этот модуль ЧПУ писался вовсе не для того, чтобы облегчить переход к "полноценному ЧПУ".Хочу отметить, что простота модуля, к сожалению, создает определенные сложности. Например, наличие отдельной таблицы для ЧПУ ссылок усложняет переход к полноценному ЧПУ
Поля ЧПУ, где ссылки хранятся раздельно в таблицах категорий/товаров/страниц/новостей заполняются четырьмя SQL-запросами - по запросу на таблицу. Или вообще получаются через JOIN LEFT из единой таблицы. Не вижу ни капли проблемы.когда ссылки хранятся в отдельном поле таблиц категорий и товаров
Достигнуть-то можно, но известные мне ЧПУ (трикивебовский, остальное клоны, использующие ту же идею) точно так же делают как минимум один запрос на каждую ссылку. В силу конструкции типа {$productID|function}, где function - функция, делающая запрос к таблице (в данном случае товаров) и возвращающая соответствующую productID ЧПУ-ссылку.Но что можно достигнуть при переходе - это отсутствие лишних запросов к базе т.к. сама ссылка будет храниться в той же таблице,
Другими словами, для того, что Вы хотите надо (1) заметно глубже влезать в потроха ShoCMS, хотя это и не сложно. Просто чтобы ЧПУ-ссылка изначально (и тем же запросом) была в массиве информации от категории, товаре, странице, новости. (2) модифицировать КАЖДЫЙ сторонний модуль, где есть ссылки. Правда, для трикивебовского их и тоже надо модифицировать.
#152
Отправлено 13 June 2017 - 07:54 PM
Вот этого я и добиваюсь. Уже даже все работает как мне надо ))Просто чтобы ЧПУ-ссылка изначально (и тем же запросом) была в массиве информации от категории, товаре, странице, новости.
Со временем думаю, вообще убрать функцию replace_to_cpu, а файлы index.php и index_old.php снова объединить в один.
Все чпу ссылки уже разнесены по соотв. таблицам и берутся оттуда, а таблица cpu еще используется для функции replace_from_cpu.
Кеширование SMARTY тоже включено и корректно работает для поисковых ботов.
#153
Отправлено 13 June 2017 - 08:27 PM
Это надо было сразу делать.Вот этого я и добиваюсь. Уже даже все работает как мне надо )) Со временем думаю, вообще убрать функцию replace_to_cpu, а файлы index.php и index_old.php снова объединить в один.
Сейчас (опыт, знания) я не вижу в этом никакой проблемы - выводить в шаблон не product_{$product_info.ProductID}.html, а сразу {$product_info.url}, который будет сформирован еще на PHP-уровне и без дополнительных SQL-запросов.
Несколько изменений (вполне конечное количество, около десятка) в PHP-коде и кууууча правок в шаблоне, абсолютно единообразных. И в каждом стороннем модуле, имеющем ссылки - как в PHP, так и в шаблоне.
#154
Отправлено 13 June 2017 - 08:47 PM
#155
Отправлено 17 June 2017 - 03:11 PM
'"feedback.html' => '"/feedback.html',
Не проще исправить это один раз в шаблоне(добавить слеш)?
Также непонятна идея хранить в базе ЧПУ с начальным слешем в каждой строке адреса.
Из-за этого возникают некоторые неприятности с двойными слешами при попытке вывести тег canonical и т.:
<link rel="canonical" href="https://mykrasa.com{if $product_info.cpu}{$product_info.cpu}...
не говоря уже о совершенно лишних данных в базе, но и приходится в таких местах изворачиваться.
Я не в укор, ведь именно при обсуждении можно найти истину.
Использовать {$smarty.const.CONF_FULL_SHOP_URL} не удобно т.к. он уже содержит слеш и приходится усекать строку чтобы он не удваивался.
#156
Отправлено 17 June 2017 - 06:13 PM
Не проще. Лишняя правка, а убирание одного элемента из массива добавления слэшей ничего не ускорит.Не проще исправить это один раз в шаблоне(добавить слеш)?
Тут я ничего не могу сказать, т.к. это было сделано лет этак пять назад, если не больше.Также непонятна идея хранить в базе ЧПУ с начальным слешем в каждой строке адреса.
Возможно, дело в том, что ссылка из .htaccess передается именно со слэшем в начале.
Упрощается код поиска.
Это каких?не говоря уже о совершенно лишних данных в базе
Да, есть такое дело. Не только в ЧПУ - во многих местах и модулях приходится отрезать завершающий слэш в CONF_FULL_SHOP_URL.Использовать {$smarty.const.CONF_FULL_SHOP_URL} не удобно т.к. он уже содержит слеш и приходится усекать строку чтобы он не удваивался.