Перейти к содержанию
Официальный форум поддержки Simpla

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


Перейти к решению Решено Des,

Рекомендуемые сообщения

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

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

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

 

Спасибо!

Ссылка на сообщение
Поделиться на другие сайты

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


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

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

view/ProductsView.php

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

 

view/ProductsView.php

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

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

Ссылка на сообщение
Поделиться на другие сайты
  • Решение

И того:

 

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

 

 

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

Ссылка на сообщение
Поделиться на другие сайты
  • 1 год спустя...

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

 

Так-же нужно сделать изменения в файле 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
Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Ссылка на сообщение
Поделиться на другие сайты
  • 7 месяцев спустя...

Здравствуйте! в шаблоне 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?

Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте! в шаблоне 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

Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

 

, а нужно 

 

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

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

Ссылка на сообщение
Поделиться на другие сайты

Вот конкретная страница: http://tilibom.13-th.ru/products/casio-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
Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

Изменено пользователем daiv
Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

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

то

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

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

http://maxsite.org/page/routing

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

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

http://forum.simplacms.ru/topic/7565-%D1%80%D0%BE%D1%83%D1%82%D0%B8%D0%BD%D0%B3-%D0%BD%D0%B0-%D1%81%D0%B8%D0%BC%D0%BF%D0%BB%D0%B5/?do=findComment&comment=65128

Ссылка на сообщение
Поделиться на другие сайты
  • 1 год спустя...

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

 

Я просмотрел тему, но что-то так и не въехал, чем же и как правильно заменить указанные строки в файле .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
Ссылка на сообщение
Поделиться на другие сайты

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

 

 

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

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

 

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

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

 

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

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

 

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

 

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

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

 

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

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

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

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

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...