|
Правила •
Регистрация •
Справка Сообщения за день • Поиск |
|
|
|
Опции темы | Опции просмотра |
|
Участник
|
Хочу сделать ссылки на новотси не ввида
/modules/news/article_storyid_1.html а хотя бы типо /modules/news/1_[название темы транчлитом].html 1) в .htacess не силен, но что бы не пытался там переделать, неполучилось. (PS в названии статьи могут быть числа и "_"). Прошу помочь с тем, как этонадо прописать. 2) в каком файле подправтиь, что б сылки были такого типа? используя функцию транслит. модули на сайте ЦитатникБашОрг / ТВ программа / Погода / Гороскоп / Курсы валют по Республике БашкортостанБ + другие |
||||
|
|
[исход]
![]() |
В двух словах написать как это сделать не получится. Это полноценный хак. Объяснение равносильно его написанию.
Копать надо в сторону: метода get_url() класса NewsStory (/modules/news/class/class.newsstory.php), функции news_url_story() (/modules/news/include/functions.inc.php), функции rc_mod_url() (/include/functions.php), и метода rewrited_url() класса XoopsModule (/class/xoopsmodule.php). Правила нашего Форума :: О клубе пользователей RUNCMS :: Рекомендации по публикации сообщений :: Прежде чем задать вопрос воспользуйтесь Поиском ------------------------------------------------------------------- Если что-то не работает, задавая вопрос, ! ОБЯЗАТЕЛЬНО ! пишите версию RUNCMS/модуля/PHP/MySQL и текст самой ошибки. |
||||
|
|
Участник
|
спасибо. буду копать.
модули на сайте ЦитатникБашОрг / ТВ программа / Погода / Гороскоп / Курсы валют по Республике БашкортостанБ + другие |
||||
|
|
Участник
|
Все спасибо за подсказку. Сделал что хотел в новом модуле RNEWS клон от стандартного NEWS.
Модуль залил на этот серв, надеюсь осле проверки он появится в разделе КЛОНЫ МОДУЛЕЙ. (вроде есть проблема с блоками только, если кто подскажет как исправить, буду благодарен) рабочий пример: http://info.ac-b.ru/modules/news/art...skojj_pro.html модули на сайте ЦитатникБашОрг / ТВ программа / Погода / Гороскоп / Курсы валют по Республике БашкортостанБ + другие |
||||
|
|
Участник
|
http://www.runcms.ru/modules/files/s...67&order=0#867
Вот обещанный модуль. модули на сайте ЦитатникБашОрг / ТВ программа / Погода / Гороскоп / Курсы валют по Республике БашкортостанБ + другие |
||||
|
|
): ǝҺɐни dиw ɐн иd⊥оwɔ
![]() |
Идея хорошая, но так быстро выкладывать не потестив не есть гуд, может стоило не в файлах выкладывать как конечный продукт, а на форуме ввиде описания хака ?
Напильник для RUNCMS Строим помаленьку Для гурманов Мебель для дома |
||||
|
|
Участник
|
Я потестил, единственная проблема только с блоками. (описал в первом комменте к файлу). Конкретных изменений как таковых нет, поэтому на безопасность повлиять не должна.
В виде хака пришлось бы описать все подробно. Попробую в двух словах: 1) заменяем функции news_url_story() (/modules/news/include/functions.inc.php); Код:
function NEWS_url_story($id, $title="", $hint="") { global $newsConfig, $myts, $xoopsConfig; $url = rc_mod_url("article.php?storyid=".intval($id),"news"); if (($title)) { $ntitle=GotoTranslit($title); if ($xoopsConfig['mod_rewrite']) { $url = rc_mod_url("article/".intval($id)."_".$ntitle,"news"); }; }; if (($title) && ($hint!=-1)) { if($newsConfig['show_hints'] == 0) $hint = ""; // don't show hint if($hint) { $hint = " title=\"".$myts->oopsHtmlSpecialChars(strip_tags($hint))."\""; } $title = $myts->makeTboxData4Show($title); // TBD: is real need for it? $url = "<a href=\"$url\" $hint>$title</a>"; } return $url; } Код:
function GotoTranslit($var){ $NpjLettersFrom = "абвгдезиклмнопрстуфцы"; $NpjLettersTo = "abvgdeziklmnoprstufcy"; $NpjBiLetters = array( "й" => "jj", "ё" => "jo", "ж" => "zh", "х" => "kh", "ч" => "ch", "ш" => "sh", "щ" => "shh", "э" => "je", "ю" => "yu", "я" => "ya", "ъ" => "", "ь" => "",); $NpjBLettersFrom = "АБВГДЕЗИКЛМНОПРСТУАЦЫ"; $NpjBLettersTo = "ABVGDEZIKLMNOPRSTUACY"; $NpjBiGLetters = array( "Й" => "JJ", "Ё" => "JO", "Ж" => "ZH", "Х" => "KH", "Ч" => "CH", "Ш" => "SH", "Щ" => "SHH", "Э" => "JE", "Ю" => "YU", "Я" => "YA", "Ъ" => "", "Ь" => "",); $NpjCaps = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯ"; $NpjSmall = "абвгдеёжзийклмнопрстуфхцчшщьъыэюя"; $var = str_replace(".php", "", $var); $var = trim(strip_tags($var)); $var = preg_replace( "/\s+/ms", "_", $var ); $var = strtr( $var, $NpjBiGLetters ); $var = strtr( $var, $NpjBLettersFrom, $NpjBLettersTo ); $var = strtr( $var, $NpjLettersFrom, $NpjLettersTo ); $var = strtr( $var, $NpjBiLetters ); $var = preg_replace("/[^a-z0-9\_\-.]+/mi", "", $var); $var = preg_replace('#[\-]+#i', '_', $var); $var = str_replace(".", "", $var); //этой строчки нету, В выложенном файле, если название новости длинное, то из за ее отсутствия могут возникать проблемы. $var = str_replace(",", "", $var); // на всякий случай тоже return $var; } 4) изменяем .htacess в корне модуля (modules/news/.htacess), добавляя вначало Код:
RewriteRule ^article/([0-9]*_[A-z0-9]*+).html article.php?storyid=$1 [L] Последний раз редактировалось Radli, 03-09-2009 в 11:53 модули на сайте ЦитатникБашОрг / ТВ программа / Погода / Гороскоп / Курсы валют по Республике БашкортостанБ + другие |
||||
|
|
Участник
|
как с топиками (еще так же транслит и топиков делаю) и номерами страниц (если в контенте есть тег [pagebreak]) разберусь, то может быть.
Не раньще следующих выходных только. модули на сайте ЦитатникБашОрг / ТВ программа / Погода / Гороскоп / Курсы валют по Республике БашкортостанБ + другие |
||||
|
|
Участник
|
Jurastik, с блоками посмотрел.
проблема возникала у меня из за дублирования функции GotoTranslit($var), так как у меня использовался и в модуле NEWS и в модуле RARTICLE. Перенес эту функцию из modules/[название модуля]/include/function.php в файл /include/function.php корневого каталога. Разбираюсь со страницами. Последний раз редактировалось Radli, 03-10-2009 в 21:16 модули на сайте ЦитатникБашОрг / ТВ программа / Погода / Гороскоп / Курсы валют по Республике БашкортостанБ + другие |
||||
|
|
|
|
|
![]() |
Powered by: vBulletin Version 3.0 Copyright ©2000-2025, Jelsoft Enterprises Ltd. |
Все разделы прочитаны - Руководство форума - Архив - Вверх |