Перейти к содержимому


Фото
* * * * * 2 голосов

Переименовать /products/ в адресе


Best Answer Des , 08.01.2015 - 23:17

И того:

 

Если надо заменить products на что-то другое, надо изменить строки в файле .htaccess и все адреса в шаблоне, где идут обращения к товару.

 

Файл .htaccess в корне папки с сайтом, заменяем данные строки:

RewriteRule ^products/([^/]+)/?$	index.php?module=ProductView&product_url=$1 [L,QSA]
RewriteRule ^products/?$	index.php?module=ProductsView [L,QSA]

 

Так-же в файле simpla/design/html/product.tpl нужно изменить две строки:

 

<a class="link" target="_blank" href="../products/{$product->url}">Открыть товар на сайте</a>
<li><label class=property>Адрес</label><div class="page_url"> /products/</div><input name="url" class="page_url" type="text" value="{$product->url|escape}" /></li>

А так-же нужно изменить строку-результат поиска, для этого, нужно в вашем шаблоне, а именно в файле index.tpl изменить:

<!-- Поиск-->
<div id="search">
  <form action="products">
	<input class="input_search" type="text" name="keyword" value="{$keyword|escape}" placeholder="Поиск"/>
         <input class="button_search" value="" type="submit" />
  </form>
</div>
<!-- Поиск (The End)-->

 

А именно:

<form action="products">

 

И последнее:

 

view/ProductsView.php

		// Если искали товар и найден ровно один - перенаправляем на него
		if(!empty($keyword) && $products_count == 1)
			header('Location: '.$this->config->root_url.'/products/'.$p->url);

 

 

Всем огромное Спасибо!

Перейти к посту


  • Чтобы отвечать, сперва войдите на форум
32 ответов в теме

#21 Maksclub

Maksclub
  • Фрилансер
  • 1 398 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 16.09.2016 - 13:14

Примерно по той же причине, что летают на самолетах, а не на телевизорах...
Только Баба-Яга умела летать на метле. И то, видимо, метла была не обычная, а специально доработанная...


Телефон заменил слово роутинг

#22 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 16.09.2016 - 14:40

Если Ваш вопрос надо понимать как

"А почему везде руками это задаётся а не роутингом?",

то

1. Лучше всего про это знает создатель Simpla. Пробуйте спросить у него. Шансы на ответ, по-моему, крайне малы.

2. Многое зависит еще от того, какой конкретный смысл в Вашем вопросе  вкладывается в  "роутинг" (понятие довольно многозначное) и   "'это". Если речь о том, что надо прописывать products/  или другое подобное слово во многих шаблонах и посмотреть толкование термина "роутинг", например, на

http://maxsite.org/page/routing

то легко увидеть, что роутинг занимается только работой с УЖЕ ИМЕЮЩИМСЯ адресом. Поэтому сформировать  адреса роутингом  нельзя В ПРИНЦИПЕ.

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

http://forum.simplac...пле/#entry65128



#23 Bassdriver

Bassdriver
  • Пользователь
  • 4 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 23.09.2017 - 21:42

Здравствуйте!

 

Я просмотрел тему, но что-то так и не въехал, чем же и как правильно заменить указанные строки в файле .htaccess и в других.

На сайте 3 категории продуктов: хлеб, печенье, десерт. Задача сделать урл на продукт следующего вида: site.ru/категория/название продукта, т.е. чтобы вместо имеющегося по умолчанию /products/ было название выбранной категории продуктов.

 

Как сейчас: site.ru/products/ржаной, site.ru/products/имбирное

 

Как нужно: site.ru/хлеб/ржаной, site.ru/печенье/имбирное и т.п.

 

В предложенном решении не пойму, на что конкретно нужно менять /products/ ?

 

В файле  simpla/design/html/product.tpl предлагается изменить 2 строки. Если я правильно понял, в том месте, где /products/? Что вписывать вместо? Пробовал {$category->url} — не помогает.

 

В файле view/ProductsView.php пробовал /products/ заменить на {$category->url} — не совсем подходит, на .$c->url. так же. В обоих случаях ссылка меняется с site.ru/products/имбирное на site.ru/печенье/имбирное, но сам переход со страницы печенья на страницу имбирного печенья не происходит.

 

В файлах sitemap.php, design/шаблон/html/products.tpl и других, где есть /products/ тоже пробовал менять и так и эдак.

 

Прошу пояснения.


Изменено: Bassdriver, 23.09.2017 - 21:50


#24 with54fz

with54fz
  • Пользователь
  • 43 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 23.09.2017 - 21:57

Как нужно: site.ru/хлеб/ржаной, site.ru/печенье/имбирное и т.п.

 

 

Прошу пояснения.

RewriteRule ^products/([^/]+)/([^/]+)/?$ index.php?module=ProductView&product_url=$2 [L,QSA]

 

ВОТ ТАКАЯ СТРОКА БУДЕТ ПРОСТО ИГНОРИРОВАТЬ ХЛЕБ И ПЕЧЕНЬЕ

А ГДЕ ПРАВИТЬ В ШАБЛОНАХ СМ В ШАПКЕ.

 

РЕШЕНИЕ БЫСТРОЕ С БОЛЬШОЙ СВИНЬЕЙ 

/PRODUCTS/ПЕЧЕНЬЕ/РЖАНОЙ  - ТОЖЕ 200 ВМЕСТО 404

 

А ТАК НАДО ЕЩЕ ДОБАВИТЬ В РЕВРАЙТ &PRODUCT_CAT=$1

И НАУЧИТЬ КОНТРОЛЕР ПРОВЕРЯТЬ СООСТЕТСТВИЕ



#25 Bassdriver

Bassdriver
  • Пользователь
  • 4 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 23.09.2017 - 22:14

RewriteRule ^products/([^/]+)/([^/]+)/?$ index.php?module=ProductView&product_url=$2 [L,QSA]

 

ВОТ ТАКАЯ СТРОКА БУДЕТ ПРОСТО ИГНОРИРОВАТЬ ХЛЕБ И ПЕЧЕНЬЕ

А ГДЕ ПРАВИТЬ В ШАБЛОНАХ СМ В ШАПКЕ.

 

РЕШЕНИЕ БЫСТРОЕ С БОЛЬШОЙ СВИНЬЕЙ 

/PRODUCTS/ПЕЧЕНЬЕ/РЖАНОЙ  - ТОЖЕ 200 ВМЕСТО 404

 

А ТАК НАДО ЕЩЕ ДОБАВИТЬ В РЕВРАЙТ &PRODUCT_CAT=$1

И НАУЧИТЬ КОНТРОЛЕР ПРОВЕРЯТЬ СООСТЕТСТВИЕ

Спасибо за ответ. Ну,свинью не хочется. Я поэтому убрал /catalog/, чтобы урл был покороче. Мне вообще не понятно, зачем автор внедрил /catalog/ и /products/

Есть категории товаров, типа столы, в категориях конкретные названия товаров: круглые, квадратные, овальные и тд. Все просто. Теперь приходиться изъёбываться и делать изменения в куче файлов



#26 with54fz

with54fz
  • Пользователь
  • 43 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 23.09.2017 - 22:27

потому , что тянется из лохматых годов.

роутинг .htacess

авторизация там же

и даже сейчас в чпу остается защитый контролер, который должен вызваться

/brand_name/

/goods_name/

различить без поиска там и там не получиться.

а вот 

/brand_name/

/goods_name.html

 

или 

/brand_name/  - вывод рурики

/brand_name/goods_name.html - вывод товара

легко

 

почитайте про rewrite 

https://habrahabr.ru...st/blog/129560/



#27 with54fz

with54fz
  • Пользователь
  • 43 сообщений
  • Программирование
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 23.09.2017 - 22:31

а вообще не страдайте фигней.

99% людей забыли про строку адреса.

 

Даже vk.com  легче открыть написав  "вконтакте"  и нажать ентер



#28 loxter

loxter
  • Забаненый
  • 118 сообщений
  • Дизайн
  • Откуда:paris

Опубликовано 24.09.2017 - 09:33

Я просмотрел тему, но что-то так и не въехал, чем же и как правильно заменить указанные строки в файле .htaccess и в других.
На сайте 3 категории продуктов: хлеб, печенье, десерт. Задача сделать урл на продукт следующего вида: site.ru/категория/название продукта, т.е. чтобы вместо имеющегося по умолчанию /products/ было название выбранной категории продуктов.
 
Как сейчас: site.ru/products/ржаной, site.ru/products/имбирное
 
Как нужно: site.ru/хлеб/ржаной, site.ru/печенье/имбирное и т.п.

 

В теме обсуждается, как изменить в адресации /products/ на другое ФИКСИРОВАННОЕ значение, например /googs/ для всех товаров ОДИНАКОВО. Вам же надо более сложным образом, а это уже требуют специального программирования. И судя по тому, что Вы даже не знаете,  ЧЕМ заменяют строки в файле, Вам такое будет тяжело. Так что лучше всего подумайте лишний раз, действительно ли Вам это надо. И если решите, что  непременно позарез требуется, то обращайтесь к спецам, чтобы сделали за денежку.

 

http://simpla-tuning...svobodnoj-forme


Изменено: loxter, 24.09.2017 - 09:34


#29 Bassdriver

Bassdriver
  • Пользователь
  • 4 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 25.09.2017 - 16:46

потому , что тянется из лохматых годов.
роутинг .htacess
авторизация там же
и даже сейчас в чпу остается защитый контролер, который должен вызваться
/brand_name/
/goods_name/
различить без поиска там и там не получиться.
а вот
/brand_name/
/goods_name.html

или
/brand_name/ - вывод рурики
/brand_name/goods_name.html - вывод товара
легко

почитайте про rewrite
https://habrahabr.ru...st/blog/129560/



#30 Bassdriver

Bassdriver
  • Пользователь
  • 4 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 25.09.2017 - 16:51

Ладно, пока для себя этот момент оставлю как есть. Может действительно, если потребуется, обращусь за деньги.

#31 madison21

madison21
  • Пользователь
  • 213 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 16.06.2019 - 20:53

Ребят, а если нужно поменять ещё и /catalog/
по такой же схеме или ещё где дополнительно нужно внести изменения?



#32 Kami

Kami
  • Пользователь
  • 349 сообщений
  • Откуда:Россия

Опубликовано 16.06.2019 - 21:45

Ребят, а если нужно поменять ещё и /catalog/
по такой же схеме или ещё где дополнительно нужно внести изменения?

 

Вот ответ на ваш вопрос.

http://forum.simplac...товара/?p=64660


Изменено: Kami, 16.06.2019 - 21:46


#33 madison21

madison21
  • Пользователь
  • 213 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 16.06.2019 - 21:53

Благодарю за помощь!






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых