Сайт сообщества | Клуб пользователей | О проекте

Имя
Пароль
ПравилаРегистрацияСправка
Сообщения за деньПоиск

Вернуться   Клуб пользователей портальной системы RUNCMS > Портал > Модули и блоки

Ответ
 
Опции темы Опции просмотра
Radli вне форума Radli
Участник

Аватар для Radli

| Цитировать Старый #1 03-07-2009, 11:09

Хочу сделать ссылки на новотси не ввида
/modules/news/article_storyid_1.html
а хотя бы типо
/modules/news/1_[название темы транчлитом].html

1) в .htacess не силен, но что бы не пытался там переделать, неполучилось. (PS в названии статьи могут быть числа и "_"). Прошу помочь с тем, как этонадо прописать.

2) в каком файле подправтиь, что б сылки были такого типа? используя функцию транслит.


модули на сайте ЦитатникБашОрг / ТВ программа / Погода / Гороскоп / Курсы валют по Республике БашкортостанБ + другие
  Сообщения: 125 c 22.03.2008 | Репутация: 15
LARK вне форума LARK
[исход]

Аватар для LARK

| Цитировать Старый #2 03-08-2009, 00:07

В двух словах написать как это сделать не получится. Это полноценный хак. Объяснение равносильно его написанию.

Копать надо в сторону:

метода 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 и текст самой ошибки.
Посетить домашнюю страницу LARK
  Сообщения: 4,185 c 20.09.2003 | Репутация: 223
Radli вне форума Radli
Участник

Аватар для Radli

| Цитировать Старый #3 03-08-2009, 13:02

спасибо. буду копать.


модули на сайте ЦитатникБашОрг / ТВ программа / Погода / Гороскоп / Курсы валют по Республике БашкортостанБ + другие
  Сообщения: 125 c 22.03.2008 | Репутация: 15
Radli вне форума Radli
Участник

Аватар для Radli

| Цитировать Старый #4 03-08-2009, 20:14

Все спасибо за подсказку. Сделал что хотел в новом модуле RNEWS клон от стандартного NEWS.

Модуль залил на этот серв, надеюсь осле проверки он появится в разделе КЛОНЫ МОДУЛЕЙ. (вроде есть проблема с блоками только, если кто подскажет как исправить, буду благодарен)

рабочий пример:
http://info.ac-b.ru/modules/news/art...skojj_pro.html


модули на сайте ЦитатникБашОрг / ТВ программа / Погода / Гороскоп / Курсы валют по Республике БашкортостанБ + другие
  Сообщения: 125 c 22.03.2008 | Репутация: 15
Radli вне форума Radli
Участник

Аватар для Radli

| Цитировать Старый #5 03-09-2009, 01:06

http://www.runcms.ru/modules/files/s...67&order=0#867
Вот обещанный модуль.


модули на сайте ЦитатникБашОрг / ТВ программа / Погода / Гороскоп / Курсы валют по Республике БашкортостанБ + другие
  Сообщения: 125 c 22.03.2008 | Репутация: 15
pan вне форума pan
): ǝҺɐни dиw ɐн иd⊥оwɔ

Аватар для pan

| Цитировать Старый #6 03-09-2009, 11:20

Идея хорошая, но так быстро выкладывать не потестив не есть гуд, может стоило не в файлах выкладывать как конечный продукт, а на форуме ввиде описания хака ?


Напильник для RUNCMS
Строим помаленьку
Для гурманов
Мебель для дома
Посетить домашнюю страницу pan
  Сообщения: 4,777 c 15.03.2004 | Репутация: 121
Radli вне форума Radli
Участник

Аватар для Radli

| Цитировать Старый #7 03-09-2009, 11:45

Я потестил, единственная проблема только с блоками. (описал в первом комменте к файлу). Конкретных изменений как таковых нет, поэтому на безопасность повлиять не должна.
В виде хака пришлось бы описать все подробно. Попробую в двух словах:
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;
}
2) туда же добаляем новую функцию (можно в один из основных, если нету, чтоб потом везде использовать) для ТРАНСЛИТА
Код:
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; 
}
3) Во всех функциях NEWS_url_story(), там где используется 1 параметр $ID? добавляем ТИТУЛ (в разных местах по разному [$title, $this->title(), $r['title']]). (у себя и в выложенным сделано не у всех)
4) изменяем .htacess в корне модуля (modules/news/.htacess), добавляя вначало
Код:
RewriteRule ^article/([0-9]*_[A-z0-9]*+).html 	article.php?storyid=$1 [L]
Сейчас модифицирую под модуль статей, пример тут: http://love.ac-b.ru/modules/rarticle/
Оценка сообщения (репутация)
+6 pan положительно: молодэс :)

Последний раз редактировалось Radli, 03-09-2009 в 11:53


модули на сайте ЦитатникБашОрг / ТВ программа / Погода / Гороскоп / Курсы валют по Республике БашкортостанБ + другие
  Сообщения: 125 c 22.03.2008 | Репутация: 15
Jurastik вне форума Jurastik
Старший участник

Аватар для Jurastik

| Цитировать Старый #8 03-09-2009, 14:08

классно, давно хотел так сделать... СПС!
править будешь проблему с блоками?


LaMeRs MuSt DiE
Посетить домашнюю страницу Jurastik
  Сообщения: 539 c 29.01.2005 | Репутация: 10
Radli вне форума Radli
Участник

Аватар для Radli

| Цитировать Старый #9 03-09-2009, 18:19

как с топиками (еще так же транслит и топиков делаю) и номерами страниц (если в контенте есть тег [pagebreak]) разберусь, то может быть.
Не раньще следующих выходных только.


модули на сайте ЦитатникБашОрг / ТВ программа / Погода / Гороскоп / Курсы валют по Республике БашкортостанБ + другие
  Сообщения: 125 c 22.03.2008 | Репутация: 15
Radli вне форума Radli
Участник

Аватар для Radli

| Цитировать Старый #10 03-10-2009, 21:14

Jurastik, с блоками посмотрел.

проблема возникала у меня из за дублирования функции GotoTranslit($var), так как у меня использовался и в модуле NEWS и в модуле RARTICLE.

Перенес эту функцию из modules/[название модуля]/include/function.php в файл /include/function.php корневого каталога.

Разбираюсь со страницами.

Последний раз редактировалось Radli, 03-10-2009 в 21:16


модули на сайте ЦитатникБашОрг / ТВ программа / Погода / Гороскоп / Курсы валют по Республике БашкортостанБ + другие
  Сообщения: 125 c 22.03.2008 | Репутация: 15
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Рейтинг@Mail.ru Хостинг провайдер Majordomo. Powered by: vBulletin Version 3.0
Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Все разделы прочитаны - Руководство форума - Архив - Вверх
Rambler's Top100
Output: 89.89 Kb. compressed to 82.41 Kb. by saving 7.48 Kb. (8.32%)
Page generated in 0.11897 seconds with 9 queries