siv1987 2628 07/13/13 14:08 Может кто делал уже, подскажите, пожалуйста:Пагинация через темплейты чпу не меняется. А правкой скриптов и редактирования не простой системы ЧПУ вряд ли кто-то стал бы заниматься. Поделиться сообщением Ссылка на сообщение
CompForum 2 07/14/13 10:44 (изменено) Да, сложности. Правил publicOutput, coreVariables + темплейты, но так и не заработало :blink: :D Тем не менее, форумы по компьютерной и технической тематике в топе яндекса предпочитают формат (но у многих vBulletin):/t5.html/t5-2.html/t5-2.html#post56А потом уже дополнительные параметры типа короткой ссылки на пост через ?p=56, либо просто #post56.Ещё так очень часто встречается:/t5//t5-2//t5-2/#post56 - этот вариант какой-то неправильный по сравнению с предыдущим с html ;)Ещё так делают:/f5/t5p2/ - 5-й форум, 5-й топик, 2-ая страница.В этом варианте последовательность какая-то присутствует. Если бы так как на vBulletin можно было бы отдельный пост выводить, тогда бы хорошо было сделать так:хттп://форум.ру/f5/ - 5-й форумхттп://форум.ру/t5/ - 5-й топикхттп://форум.ру/t5p2/ - 5-й топик 2-ая страницахттп://форум.ру/p56/ - 567 пост, выводящийся в VB на отдельных страницах... Но для IPB получается ближе так:хттп://форум.ру/f5/ - 5-й форумхттп://форум.ру/t5/ - 5-й топикхттп://форум.ру/t5/p2/ - 5-й топик 2-ая страница (page-2 = p2/)хттп://форум.ру/t5/p2/#entry567 - 567 пост на второй странице 5-ой темы. В раздумьях :blink: Очень не нравятся городульки:хттп://форум.ру/topic5.html/page-2#entry79005Особенно, когда после html идет / <_<Можно поставить 'isPagesMode' => 0, и получить вместо слеша знак вопроса, но тогда смысл всего... Изменено 14 июля 2013 пользователем CompForum Поделиться сообщением Ссылка на сообщение
siv1987 2628 07/14/13 16:50 Тем не менее, форумы по компьютерной и технической тематике в топе яндекса предпочитают формат (но у многих vBulletin):Предпочитают потому что все это вбуллетин, а там другая система ЧПУ. И вряд ли это зависит от того, чего они предпочитают - на ипб так, и все предпочитают именно так. Если бы так как на vBulletin можно было бы отдельный пост выводить, тогда бы хорошо было сделать так:Отдельного поста в ипб нету.Сейчас все наоборот стараются избегать дублей страниц, как отдельная ссылка на пост и тд. Очень не нравятся городульки:Исключительно личные предпочтения. Пользователям и всем остальным, поверьте, это мало заботит. И, если вы полагаете что сменив тип чпу окажетесь в топе со стопиццот пользователями - боюсь вас сильно разочаровать. Ру-боард до сих пор на динамических урл-ах сидит. Поделиться сообщением Ссылка на сообщение
CompForum 2 07/17/13 02:37 Сделал так:хттп://forum.ru/f1/ - первая страница подфорумахттп://forum.ru/f1/page2/ - вторая страница подфорумахттп://forum.ru/t1/ - первая страница темыхттп://forum.ru/t1/page2/ - вторая страница темыхттп://forum.ru/t1/page2/#entry727 - ссылка на 727 пост темыхттп://forum.ru/userid1/ - ссылка на профиль пользователя Изменения в файлах: coreVariables.php// Найти: 'varPage' => 'page-', // Заменить на: 'varPage' => 'page', ipsRegistry.php// Найти: preg_match( '#(' . preg_quote( self::$_seoTemplates['__data__']['varPage'], '#' ) . '(\d+?))(?:$|' . preg_quote( self::$_seoTemplates['__data__']['varBlock'], '#' ) . ')#', $_toTest, $pageMatches ); // Заменить на: preg_match( '#(' . preg_quote( self::$_seoTemplates['__data__']['varPage'], '#' ) . '(\d+?))/(?:$|' . preg_quote( self::$_seoTemplates['__data__']['varBlock'], '#' ) . ')#', $_toTest, $pageMatches ); publicOutput.php// Найти: $_page .= $this->seoTemplates['__data__']['varPage'] . $vv; // Заменить на: $_page .= $this->seoTemplates['__data__']['varPage'] . $vv . '/'; // Найти: $_toTest = preg_replace( '#^(.*)/(.)?#', '\1/' . $this->seoTemplates['__data__']['varPage'] . $page . '\2', $_toTest ); // Заменить на: $_toTest = preg_replace( '#^(.*)/(.)?#', '\1/' . $this->seoTemplates['__data__']['varPage'] . $page . '/\2', $_toTest ); // Найти: preg_match( '#(' . preg_quote( $this->seoTemplates['__data__']['varPage'], '#' ) . '(\d+?))(?:$|' . preg_quote( $this->seoTemplates['__data__']['varBlock'], '#' ) . ')#', $_toTest, $pageMatches ); // Заменить на: preg_match( '#(' . preg_quote( $this->seoTemplates['__data__']['varPage'], '#' ) . '(\d+?))/(?:$|' . preg_quote( $this->seoTemplates['__data__']['varBlock'], '#' ) . ')#', $_toTest, $pageMatches ); sitemapgenerator.php// Найти: $_page .= self::$_seoTemplates['__data__']['varPage'] . $vv; // Заменить на: $_page .= self::$_seoTemplates['__data__']['varPage'] . $vv . '/'; furlTemplates.php (из members)// Найти: 'showuser' => array( 'app' => 'members', 'allowRedirect' => 1, 'out' => array( '#showuser=(.+?)((?:&|&)f=(.+?))?(&|$)#i', 'user/$1-#{__title__}/$2$4' ), 'in' => array( 'regex' => "#^/user/(\d+?)-#i", 'matches' => array( array( 'showuser', '$1' ) ) ) ), // Заменить на: 'showuser' => array( 'app' => 'members', 'allowRedirect' => 1, 'out' => array( '#showuser=(\d+)((?:&|&)f=(\d+))?(&|$)#i', 'userid$1/$2$4' ), 'in' => array( 'regex' => "#^/userid(\d+)#i", 'matches' => array( array( 'showuser', '$1' ) ) ) ), furlTemplates.php (из forums)// Найти: $_SEOTEMPLATES = array( 'showannouncement' => array( 'app' => 'forums', 'allowRedirect' => 1, 'out' => array( '#showannouncement=(.+?)((?:&|&)f=(.+?))?(&|$)#i', 'forum-$3/announcement-$1-#{__title__}/$4' ), 'in' => array( 'regex' => '#/forum-(\d+?)?/announcement-(\d+?)-#i', 'matches' => array( array( 'showannouncement', '$2' ), array( 'f', '$1' ) ) ) ), 'showforum' => array( 'app' => 'forums', 'allowRedirect' => 1, 'isPagesMode' => 1, 'out' => array( '#showforum=(.+?)(&|$)#i', 'forum/$1-#{__title__}/$2' ), 'in' => array( 'regex' => '#^/forum/(\d+?)-#i', 'matches' => array( array( 'showforum', '$1' ) ) ) ), 'showtopic' => array( 'app' => 'forums', 'allowRedirect' => 1, 'isPagesMode' => 1, 'out' => array( '#showtopic=(.+?)(\#|&|$)#i', 'topic/$1-#{__title__}/$2' ), 'in' => array( 'regex' => '#^/topic/(\d+?)-#i', 'matches' => array( array( 'showtopic', '$1' ) ) ) ), 'acteqst' => array( 'app' => 'forums', 'allowRedirect' => 1, 'out' => array( '#act=ST(.*?)&t=(.+?)(&|$)#i', 'topic/$2-#{__title__}/$3' ), 'in' => array( 'regex' => '#^notavalidrequest$#i', 'matches' => array( array( 'showtopic', '0' ) ) ) ), 'act=idx' => array( 'app' => 'forums', 'allowRedirect' => 0, 'out' => array( '#act=idx(&|$)#i', 'index$1' ), 'in' => array( 'regex' => '#^/index(/|$|\?)#i', 'matches' => array( array( 'act', 'idx' ) ) ) ), ); // Заменить на: $_SEOTEMPLATES = array( 'showannouncement' => array( 'app' => 'forums', 'allowRedirect' => 1, 'out' => array( '#showannouncement=(\d+)((?:&|&)f=(\d+))?(&|$)#i', 'f$3/announcement$1/$4' ), 'in' => array( 'regex' => '#/f(\d+)?/announcement(\d+)#i', 'matches' => array( array( 'showannouncement', '$2' ), array( 'f', '$1' ) ) ) ), 'showforum' => array( 'app' => 'forums', 'allowRedirect' => 1, 'isPagesMode' => 1, 'out' => array( '#showforum=(\d+)(&|$)#i', 'f$1/$2' ), 'in' => array( 'regex' => '#^/f(\d+)#i', 'matches' => array( array( 'showforum', '$1' ) ) ) ), 'showtopic' => array( 'app' => 'forums', 'allowRedirect' => 1, 'isPagesMode' => 1, 'out' => array( '#showtopic=(\d+)(\#|&|$)#i', 't$1/$2' ), 'in' => array( 'regex' => '#^/t(\d+)#i', 'matches' => array( array( 'showtopic', '$1' ) ) ) ), 'acteqst' => array( 'app' => 'forums', 'allowRedirect' => 1, 'out' => array( '#act=ST(.*?)&t=(\d+)(&|$)#i', 't$2/$3' ), 'in' => array( 'regex' => '#^notavalidrequest$#i', 'matches' => array( array( 'showtopic', '0' ) ) ) ), 'act=idx' => array( 'app' => 'forums', 'allowRedirect' => 0, 'out' => array( '#act=idx(&|$)#i', 'index$1' ), 'in' => array( 'regex' => '#^/index(/|$|\?)#i', 'matches' => array( array( 'act', 'idx' ) ) ) ), ); Особо не проверял, вроде бы работает B) 2 Поделиться сообщением Ссылка на сообщение
CompForum 2 07/28/13 00:47 Вторая замена в publicOutput.php для версии IPB 3.4.3 будет такой:// Найти: $_toTest = preg_replace( '#^(.*)/(.)?#', '\1/page-' . $page . '\2', $_toTest ); // Заменить на: $_toTest = preg_replace( '#^(.*)/(.)?#', '\1/page' . $page . '/\2', $_toTest ); Поделиться сообщением Ссылка на сообщение
HHPauk 0 10/17/13 06:49 прошу помощи:версия 3.4.5 IPS, необходимо изменить ссылки с кирилицы на транслит заранее благодарен Поделиться сообщением Ссылка на сообщение
HHPauk 0 10/17/13 07:02 прошу прощения - чуть позже нашел хук Поделиться сообщением Ссылка на сообщение
Alien2001 10 11/23/13 14:47 Хочу изменить ссылку на Правила форума, чтобы они не были жуткого вида index.php?app=forums&module=extras§ion=boardrules, а попроще /boardrules Вписал в furltemplates: 'boardrules' => array( 'app' => 'forums', 'allowRedirect' => 0, 'out' => array( '#app=forums(&|&)module=extras(&|&)section=boardrules(&|&|?)#i', 'boardrules/' ), 'in' => array( 'regex' => "#/boardrules(/|$|\?)#i", 'matches' => array( array( 'app', 'forums' ), array( 'module', 'extras' ), array( 'section', 'boardrules' ) ) ) ),При прямом заходе на /boardrules все работает, но ссылка на главной странице не парсится и по-прежнему выводится кривой. Чего-то я не доделал явно. Кстати, а название правила (в данном случае имя массива boardrules) оно вообще имеет значение и куда-то еще вносится, кроме файла furlTemplates.php? Поделиться сообщением Ссылка на сообщение
siv1987 2628 11/23/13 15:17 К ссылки boardrules не применяется чпу преобразование. 1. admin\applications\forums\extensions\furlTemplates.php 'boardrules' => array( 'app' => 'forums', 'allowRedirect' => 0, 'out' => array( '#app=forums(?:&|&)module=extras(?:&|&)section=boardrules#i', 'boardrules/' ), 'in' => array( 'regex' => '#/boardrules/#i', 'matches' => array( array( 'app', 'forums' ), array( 'module', 'extras' ), array( 'section', 'boardrules' ) ) ) ), 2. Перестроить кеш чпу 3. Внешний вид -> Шаблон -> globalTemplateНайти {parse url="app=forums&module=extras§ion=boardrules" base="public"} Заменить {parse url="app=forums&module=extras§ion=boardrules" base="public" seotitle="boardrules" template="boardrules"} 2 Поделиться сообщением Ссылка на сообщение
sudakturizmnet 0 03/06/14 11:49 Подскажите как сделать что-бы был такой адрес,дапустим я создал тему рецепта Лосось с апельсиновым джемом,мне нужно что-бы адрес был такой http:адрес сайта/forum/losos_s_apelsinovym_djemomкак это сделать Поделиться сообщением Ссылка на сообщение
siv1987 2628 03/06/14 15:13 Никак. Только с ид/topic/%id-lososi-s-apelsinon.html .html можно убрать, ид в конце переместить,но без него никак. Поделиться сообщением Ссылка на сообщение
Trotor 27 12/06/14 12:13 Кстати в ЧПУ есть можно так сказать дыра в безопасности. Если ссылка на тему или раздел имеет вид к примеру http://домен/topic/ид темы-название темы/ то посетитель не имея доступа к такой теме (разделу) с лёгкость может прочитать его.Считаю это дырой в безопасности. Поделиться сообщением Ссылка на сообщение
siv1987 2628 12/06/14 12:20 Если дыра и есть, то это не в чпу, так как чпу только парсит параметры из урл'а. За проверкой прав отвечают другие функции. О таком баге что можно зайти в тему без прав слышу впервые. Был такой, но он касался ответов и не имел отношения к чпу. Поделиться сообщением Ссылка на сообщение
Trotor 27 12/06/14 13:37 О таком баге что можно зайти в тему без прав слышу впервые.Вы не так меня поняли. Зайти в тему конечно невозможно, а вот прочитать её название с ЧПУ - легко. За проверкой прав отвечают другие функции.Странно что разрабы не предусмотрели это. Скажем при заходе в такую тему что бы был редирект на страницу ошибки. Поделиться сообщением Ссылка на сообщение