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


Фото
* * * * * 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 ответов в теме

#1 Des

Des
  • Пользователь
  • 117 сообщений
  • Дизайн, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 07.01.2015 - 03:04

Здравствуйте, хочу поинтересоваться, для того чтоб переименовать /products/товар нужно:

 

Изменить строки в файле .htaccess и все адреса в шаблоне, где идут обращения к товару? Или нужно переписывать какие-то системные файлы Симплы?



#2 Rash

Rash
  • Пользователь
  • 450 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x
  • Откуда:Russian Federation

Опубликовано 07.01.2015 - 10:44

Решение тут



#3 Kors

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

Опубликовано 07.01.2015 - 11:00

Здравствуйте, хочу поинтересоваться, для того чтоб переименовать /products/товар нужно:

 

Изменить строки в файле .htaccess и все адреса в шаблоне, где идут обращения к товару? Или нужно переписывать какие-то системные файлы Симплы?

 

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

 

Ссылка, которую дал Rash, подходит на несколько иной случай, именно  если надо УБРАТЬ  products из адресов.



#4 Des

Des
  • Пользователь
  • 117 сообщений
  • Дизайн, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 07.01.2015 - 14:35

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

 

Ссылка, которую дал Rash, подходит на несколько иной случай, именно  если надо УБРАТЬ  products из адресов.

 

Так-же в файле 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>

А так-же нужно изменить строку-результат поиска, но пока не разобрался где она находиться...

 

Спасибо!



#5 Kors

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

Опубликовано 08.01.2015 - 09:15

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

Конечно, нужно, но не "также", а в частности. Про это Вы сами сказали в начале темы: "Изменить ... все адреса в шаблоне, где идут обращения к товару". Шаблон из админки - это тоже шаблон...

Адрес результатов поиска формируется в 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)-->


Там и менять...



#6 Des

Des
  • Пользователь
  • 117 сообщений
  • Дизайн, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 08.01.2015 - 22:38

Спасибо, но что нужно менять <form action="products"> я понял, но вот дольше, после нажатия на товар, мы должны попасть на его страницу, но попадаем на страницу //сайт/products/товар, хм...



#7 Kosjak76

Kosjak76
  • Модератор
  • 3 829 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 08.01.2015 - 22:55

view/ProductsView.php

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


#8 Des

Des
  • Пользователь
  • 117 сообщений
  • Дизайн, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 08.01.2015 - 23:07

view/ProductsView.php

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

Большое Вам спасибо!))



#9 Des

Des
  • Пользователь
  • 117 сообщений
  • Дизайн, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 08.01.2015 - 23:17   Best Answer

И того:

 

Если надо заменить 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);

 

 

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



#10 Des

Des
  • Пользователь
  • 117 сообщений
  • Дизайн, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 15.01.2016 - 00:41

Небольшое дополнение:

 

Так-же нужно сделать изменения в файле sitemap.php, который находится в корне сайта. В той части, которая отвечает за формирование урла товара:

// Товары
$simpla->db->query("SELECT url FROM __products WHERE visible=1");
foreach($simpla->db->results() as $p)
{
	$url = $simpla->config->root_url.'/products/'.esc($p->url);
	print "\t<url>"."\n";
	print "\t\t<loc>$url</loc>"."\n";
	print "\t</url>"."\n";
}

И заменить следующую строку на необходимую:

	$url = $simpla->config->root_url.'/products/'.esc($p->url);

Изменено: Des, 15.01.2016 - 00:42


#11 Kors

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

Опубликовано 15.01.2016 - 11:03

Так-же нужно сделать изменения в файле sitemap.php...

 

А еще есть подобный файл yandex.php ...



#12 Des

Des
  • Пользователь
  • 117 сообщений
  • Дизайн, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 16.01.2016 - 04:31

А еще есть подобный файл yandex.php ...

Точно, в нём тоже нужно делать правки...

 

У себя не использую данный файл, по этому забыл(



#13 VladimirTar

VladimirTar
  • Пользователь
  • 7 сообщений
  • Программирование, Верстка, Пользователь
  • Версия CMS:2.x
  • Откуда:Ставрополь

Опубликовано 06.09.2016 - 21:28

Здравствуйте! в шаблоне index.tpl у меня ссылки на вход и регистрацию. При просмотре карточки товара к url добавляется /products. Как его убрать? Привожу код в index.tpl


{if $content ==$products->url}<a id="login" href="../user/login/">
                <img src="/design/{$settings->theme}/images/i1.png" alt="">вход</a>
         <a id="register" href="../user/register/">
                <img src="/design/{$settings->theme}/images/i2.png" alt="">регистрация</a>
{else}<a id="login" href="user/login/">
                <img src="/design/{$settings->theme}/images/i1.png" alt="">вход</a>
         <a id="register" href="user/register/">
                <img src="/design/{$settings->theme}/images/i2.png" alt="">регистрация</a>
{/if}

Где ошибка и как можно сделать без  .htaccess?



#14 mishanya

mishanya
  • Фрилансер
  • 2 566 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 06.09.2016 - 21:41

Здравствуйте! в шаблоне index.tpl у меня ссылки на вход и регистрацию. При просмотре карточки товара к url добавляется /products. Как его убрать? Привожу код в index.tpl


{if $content ==$products->url}<a id="login" href="../user/login/">
                <img src="/design/{$settings->theme}/images/i1.png" alt="">вход</a>
         <a id="register" href="../user/register/">
                <img src="/design/{$settings->theme}/images/i2.png" alt="">регистрация</a>
{else}<a id="login" href="user/login/">
                <img src="/design/{$settings->theme}/images/i1.png" alt="">вход</a>
         <a id="register" href="user/register/">
                <img src="/design/{$settings->theme}/images/i2.png" alt="">регистрация</a>
{/if}

Где ошибка и как можно сделать без  .htaccess?

 

а при чем тут регистрация к ссылкам на товары? вам нужен не индекс а main.tpl там есть блоки, которые отвечают за товары на главной. это первое. еще у вас в самом выше написанном коде есть ошибка. нет такой переменной $products->url



#15 VladimirTar

VladimirTar
  • Пользователь
  • 7 сообщений
  • Программирование, Верстка, Пользователь
  • Версия CMS:2.x
  • Откуда:Ставрополь

Опубликовано 06.09.2016 - 23:04

а при чем тут регистрация к ссылкам на товары? вам нужен не индекс а main.tpl там есть блоки, которые отвечают за товары на главной. это первое. еще у вас в самом выше написанном коде есть ошибка. нет такой переменной $products->url

Вот конкретная страница: http://tilibom.13-th...o-ga-1000-3b44. У ссылок входа и регистрации ссылка

 

 http://tilibom.13-th.ru/products/user/register/
 

 

, а нужно 

 

http://tilibom.13-th.ru/user/register/
 

Ссылка зависит от того, какой шаблон находится в переменной contain.



#16 mishanya

mishanya
  • Фрилансер
  • 2 566 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 06.09.2016 - 23:08

Вот конкретная страница: http://tilibom.13-th...o-ga-1000-3b44. У ссылок входа и регистрации ссылка

 

 http://tilibom.13-th.ru/products/user/register/
 

 

, а нужно 

 

http://tilibom.13-th.ru/user/register/
 

Ссылка зависит от того, какой шаблон находится в переменной contain.

 

дело в том, что у вас вообще не будет никогда срабатывать условие {if $content ==$products->url}, потому что в карточке товара нет такой переменной, есть только $product

 

чтобы работали ссылки добавьте в индекс после <head>

 

<base href="{$config->root_url}/"/>

или доставьте слеш тут <a id="login" href="/user/login/"> и <a id="login" href="/user/register">


Изменено: mishanya, 06.09.2016 - 23:11


#17 VladimirTar

VladimirTar
  • Пользователь
  • 7 сообщений
  • Программирование, Верстка, Пользователь
  • Версия CMS:2.x
  • Откуда:Ставрополь

Опубликовано 07.09.2016 - 11:30

дело в том, что у вас вообще не будет никогда срабатывать условие {if $content ==$products->url}, потому что в карточке товара нет такой переменной, есть только $product

 

чтобы работали ссылки добавьте в индекс после <head>

 

<base href="{$config->root_url}/"/>

или доставьте слеш тут <a id="login" href="/user/login/"> и <a id="login" href="/user/register">

Спасибо, помогло, и решило сопутствующие проблемы.



#18 daiv

daiv
  • Пользователь
  • 43 сообщений
  • Пользователь
  • Откуда:Москва

Опубликовано 13.09.2016 - 11:02

Да частенько стал замечать, что products или catalog переименовывают в buy или kupit. Даже Apple использует ЧПУ ссылки http://www.apple.com/shop/buy-mac/macbook-pro http://www.apple.com/shop/buy-iphone/iphone-7


Изменено: daiv, 13.09.2016 - 11:09


#19 Maksclub

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

Опубликовано 16.09.2016 - 12:55

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

#20 Kors

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

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

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

 

Примерно по той же причине, что летают на самолетах, а не на телевизорах...

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






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

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