CMS Eleanor - Поиск
Полная версия этой страницы: Официальный форум Eleanor CMS » Как убрать news из ссылки?
Официальный форум Eleanor CMS » Поддержка пользователей системы Eleanor CMS » Первые шаги
scanread
Приветствую!

В общем, задалбался создавать клоны новостей (а мне их надо порядка 10 штук). На 4-5 уже начинаешь путаться.

В общем, хочу упростить процес такми образом:

Создавать категории и подкатегории, к примеру:

1. Новости
1.1. Политика
1.2. Бизнес
1.3. Знаменитости
2. Бла бла бла
2.1. Бла бла бла
2.2. Бла бла бла бла
2.3. Бла бла бла бла бла

По стандарту ссылки новостей имеют вид _http://site.ru/news/наши-новости/eleanor-cms.html

Так вот, как убрать это news из ссылки? Чтобы после домена было так: _http://site.ru/наши-новости/(подкатегория, если есть, или как в стандарте?)/eleanor-cms.html

Думаю, если убрать news, на производительности это не скажется...

Благодарю.
Flynt
scanread, хотите уменьшить путь до страниц?
Управление -> Управление модулями -> Новости, и в поле "Секция модуля" вписываем любое слово.И да кстати, пробовал оставлять поле пустым, т.е. сделать так как вы сейчас хотите, на что получил ошибку, которая описана здесь.
scanread
Flynt, у меня нету поля "Секция модуля". Это наверное в альфа версии, у меня RC 5. И чтобы не работало потом много чего - не охотно :) Надо правильный вариант какой-нить...
Flynt
scanread, в альфе он есть.Может кто-то другой что-то предложит.
scanread
Flynt, я альфу не юзаю просто :)

В общем, буду ждать еще каких-либо предложений...
Alexander
Во-первых какой смысл в таком действии? Уменьшение ради чего? Ну ладно...
У меня идея такая. Это только наброски:
В файле index.php найти:
$module_name=isset($_GET['module']) ? $_GET['module'] : $Mainclass->Url->ParseToValue('module');

Добавить перед:

$origurl=$Mainclass->Url->string;


Найти:

	$Mainclass->Db->FQuery('SELECT `id`,`services`,`name`,`title`,`path`,`multiservice`,`file`,`is_class`,`resources`,`image`,`user_gr</span>oups`,`blocks`,`editor` FROM {"0"} WHERE `name`={"1"} AND `active`=1 LIMIT 1',array('modules','s_'.$module_name),__file__,__line__);
	if($Mainclass->Db->Num_rows()==0)
		MainPage($module_name);


Заменить на:
	$Mainclass->Db->FQuery('SELECT `id`,`services`,`name`,`title`,`path`,`multiservice`,`file`,`is_class`,`resources`,`image`,`user_groups`,`blocks`,`editor` FROM {"0"} WHERE `name`={"1"} AND `active`=1 LIMIT 1',array('modules','s_'.$module_name),__file__,__line__);
	if($Mainclass->Db->Num_rows()==0)
	{
		$Mainclass->Url->string=$origurl;
		$Mainclass->Db->Query('SELECT `id`,`services`,`name`,`title`,`path`,`multiservice`,`file`,`is_class`,`resources`,`image`,`user_gr</span>oups`,`blocks`,`editor` FROM `f_modules` WHERE `name`=\'news\' AND `active`=1 LIMIT 1',__file__,__line__);
		if($Mainclass->Db->Num_rows()==0)
			MainPage($module_name);
	}


Найти:
$Mainclass-&gt;Url-&gt;SetPrefix($Mainclass-&gt;vars[&#039;multilang&#039;] ? array(&#039;lang&#039;=&gt;$Mainclass-&gt;get_lang,&#039;module&#039;=&gt;$Mainclass-&gt;module[&#039;name&#039;]) : array(&#039;module&#039;=&gt;$Mainclass-&gt;module[&#039;name&#039;]));


Заменить на:
$nm=$Mainclass->module['name']=='news' ? '' : $Mainclass->module['name'];
$Mainclass->Url->SetPrefix($Mainclass->vars['multilang'] ? array('lang'=>$Mainclass->get_lang,'module'=>$nm) : array('module'=>$nm));


Дальше сами...
scanread
Alexander, уменьшать ради того, чтобы не клонировать модуль.

Вот смотри, к примеру, у меня на сайте: музыка, фильмы, игры, статьи, новости и бла бла бла, это все имеет по несколько категорий. Какой мне смысл клонировать несколько раз модули, если можно просто убрать эту часточку news? Ну не будет же у меня ссылка вида сайт.ру/news/films/comedy/film.html? Как-то не красиво да и не логично, если там фильмы, а не новости с фильмов. Потому как бы зачем делать несколько клонов, если можно обойтись и без этого?
scanread
Сделал все как написано выше - ссылки прежние остались :(

Оу, работал сайт, а терь бац, и получил еще в придачу :

Произошла ошибка
При выполнении запроса произошла ошибка: (error #1146) Table 'bd.f_modules' doesn't exist

Адрес ошибки: /www/сайт/index.php[162].
Сохраняйте спокойствие: ошибка записана - админ придет, разберется.
Loader
Цитата (scanread @ 2021-07-30 11:14)
Оу, работал сайт, а терь бац, и получил еще в придачу :

Замени все
Цитата
f_имя таблицы
на
Цитата
prefix_имя таблицы
scanread
Loader, спасибо!

Но еще осталось кое-что....

Новости доступны с главной по адресу сайт.ру/news/наши-новости/eleanor-cms.html,
а с syte.ru/news.html - по syte.ru/наши-новости/eleanor-cms.html

По двом разным адресам одна и так же новость... Как исцелить, чтобы и там и там было все одинаково?

И еще, прежний вопрос: что же лучше? Клонировать модуль новостей по несколько раз, сколько необходимо, или вкоротить ссылку и в модуле Новости создавать категории и подкатегории, и туда все тулить, выходит, в одну таблицу БД. На производительность как-то влиять будет? Хуже или лучше?

Loader
Цитата (scanread @ 2021-07-30 11:14)
По двом разным адресам одна и так же новость... Как исцелить, чтобы и там и там было все одинаково?

Делай канонические страницы и не парься! ;)
scanread
Loader, бррр... чтобы знал как - сделал, а так - увы. И он под все ПС-ы идет, кроме Яндекса....как тут быть?
Alexander
Цитата (scanread @ 2021-07-30 11:14)
Loader, бррр... чтобы знал как - сделал, а так - увы. И он под все ПС-ы идет, кроме Яндекса....как тут быть?

Нет. Канонические УРЛы тут не подойдут, поскольку домены разные. Если следовать мануалам Яндекса, то rel cannonical не учитывается для других доменов.

scanread, есть у Вас еще какие-то проблемы?
scanread
Alexander, http://forum.eleanor-cms.ru/index.php?act=findpost&pid=30599 в этом посте написал :)
scanread
Плз, подскажите, где еще подправить, чтобы на главной было все ок...
Alexander
Готовое решение для альфы
Alex31
Alexander, огромное спасибо, забиру, пригодится.
А в релизе Eleanor CMS ты сможешь сделать возможно включения этой функции в настройках модуля NEWS?
kdv1978
Заметил что в альфе слово /news/ заменяется на /новости/ а в рц5 такого у меня нет или что-то у меня не то?
Alexander
kdv1978, /новости/ - для русского языка, /news/ - для англиского, /новини/ - для украинского. Правильные УРЛы для своих языков.
baron66
Цитата (scanread @ 2011-08-29, 21:40)
Плз, подскажите, где еще подправить, чтобы на главной было все ок...


тут \addons\blocks\block_categories.php меняем news на нужное слово

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.