DANFA

phpFox: Как сделать короткие URLs

Доброго дня.

Для продвижения форума на движке PHPFox версия 3.5.0 очень не удобно иметь слишком длинные русскоязычные кракобябры, сложно найти доноров т.к. длина УРЛ на русском языке более 300 знаков.

У Вас мы заметили эта проблема решена, пример: "danfa.net/forum/thread/990/", Вы как то вообще их убрали. Будем признательны если создадите урок по данному вопросу.

Вообще то конечно в идеале знать, как и в других разделах все это лишнее убрать, но сейчас больше интересует именно форум.

За ранее с благодарностью.
Во всем модуле "форум" необходимо "изолировать" элемент массива с ключом title_url (например: $thread['title_url']).

В некоторых местах элемент с ключом title_url можно просто удалить, а в некоторых удаление может привести к ошибки, вплоть до пустой странице. Чтобы этого не произошло, можно вместо title_url вставлять null.
Спасибо за быстрый ответ. Вы так быстро объяснили.

Если мы Вас правильно поняли идем: module/forum/template/default/block/forum.html.php
В крайнем файле: forum.html.php меняем, что на что? Можно пожалуйста точнее.

У нас прописано:
<a href="{if $aForum.post_id}{permalink module='forum.thread' id=$aForum.thread_id title:$aForum.thread_title_url}post_{$aForum.post_id}/{else}{permalink module='forum.thread' id=$aForum.thread_id title:$aForum.thread_title_url}{/if}" title:"{$aForum.thread_title|clean}">{$aForum.thread_title|clean|split:120|shorten:150:'...'}

Вы пишите, что нужно изолировать, это что прописывать: $thread и запись: title_url заключать в одинарные кавычки '' и квадратные скобки [].
Или покажите на нашем примере, как точно нужно. И нужно ли в других файлах модуля Форум вносить такие же изменения.
Спасибо.
По коду из вашего сообщения, должно быть примерно так:
<a href="{if $aForum.post_id}{permalink module='forum.thread' id=$aForum.thread_id}post_{$aForum.post_id}/{else}{permalink module='forum.thread' id=$aForum.thread_id}{/if}" title:"{$aForum.thread_title|clean}">{$aForum.thread_title|clean|split:120|shorten:150:'...'}

То есть я дважды удалил из:
{permalink module='forum.thread' id=$aForum.thread_id title:$aForum.thread_title_url}

Параметр title:
title:$aForum.thread_title_url

Получилось так:
{permalink module='forum.thread' id=$aForum.thread_id}

Кстати, условие можно сократить:
<a href="{permalink module='forum.thread' id=$aForum.thread_id}{if $aForum.post_id}post_{$aForum.post_id}/{/if}" title:"{$aForum.thread_title|clean}">{$aForum.thread_title|clean|split:120|shorten:150:'...'}

То же самое, но кода меньше.

Кроме шаблонов, придется редактировать и "файлы.class.php". Там тоже имеются генераторы URL.
Вот путь: module/forum/include/component/controller/ редактируем файл: forum.class.php.
У нас такая запись:
$aCallback['url_home'] = 'group.' . $aCallback['title_url'] . '.forum';

Что в ней нужно изменить, исправьте нам пожалуйста для наглядности. Это все или ещё нужно, где то править, мы будем пробовать вносить все рекомендованные Вами изменения и хотим напомнить Вам, что мы нулевые программисты, нас нужно носом тыкать.
Спасибо, ждем инструкции.
Попробуйте так:
$aCallback['url_home'] = 'group.forum';

Я уже не помню сколько и в каких местах надо изменять, но это далеко не все. Надо искать в каждом файле. Искать можно при помощи NotePad++ (Поиск по файлам).
[quote=1 post=3418]Я уже не помню сколько и в каких местах надо изменять, но это далеко не все.

Скажите пожалуйста, что Вы имели в виду искать? файлы.html.php или файлы.class.php
Искать надо во всех файлах, и в шаблонах (файл.html.php) и в классах (файл.class.php).
Нашли еще один файл: module/forum/include/component/controller/group.class.php
Файл: group.class.php
В нём нужно, что то менять - исправьте нам пожалуйста.
'url_home' => 'group.' . $aGroup['title_url'] . '.forum',
'url_home' => 'group.forum',
module/forum/include/component/controller/
файл: post.class.php
У нас так 221 строка:
'sReturnLink' => ($bIsEdit ? ($aCallback === false ? $this->url()->makeUrl('forum', array($aForum['name_url'] . '-' . $aForum['forum_id'], $aThread['title_url'])) : $this->url()->makeUrl($aCallback['url_home'] . '.forum', $aThread['title_url'])) : ''),

Поправьте пожалуйста.

436 строка:
->setBreadcrumb($aThread['title'], ($aCallback === false ? $this->url()->makeUrl('forum', array($aForum['name_url'] . '-' . $aForum['forum_id'], $aThread['title_url'])) : $this->url()->makeUrl($aCallback['url_home'] . '.forum', $aThread['title_url'])))

Поправьте пожалуйста

437 строка у нас так:
->setBreadcrumb(($bIsEdit ? Phpfox::getPhrase('forum.editing_post') . ': ' . (empty($aPost['title']) ? '#' . $aPost['post_id'] : $aPost['title']) : Phpfox::getPhrase('forum.post_new_reply')), ($bIsEdit ? ($aCallback === false ? $this->url()->makeUrl('forum', array($aThread['forum_url'] . '-' . $aThread['forum_id'], $aThread['title_url'], 'post_' . $aPost['post_id'])) : $this->url()->makeUrl($aCallback['url_home'] . '.forum', array($aThread['title_url'], 'post' => $aPost['post_id']))) : null), true)

Поправьте пожалуйста

444 строка у нс так:
'sReturnLink' => ($bIsEdit ? ($aCallback === false ? $this->url()->makeUrl('forum', array($aThread['forum_url'] . '-' . $aThread['forum_id'], $aThread['title_url'], 'post_' . $aPost['post_id'])) : $this->url()->makeUrl($aCallback['url_home'] . '.forum', $aThread['title_url'])) : ''),

Поправьте пожалуйста

445 строка у нас так:
'sThreadReturnLink' => ($aCallback === false ? $this->url()->makeUrl('forum', array($aThread['forum_url'] . '-' . $aThread['forum_id'], $aThread['title_url'])) : $this->url()->makeUrl($aCallback['url_home'], array('forum', $aThread['title_url']))),

Поправьте пожалуйста, за ранее спасибо.
Просто удаляете то, о чем я говорил ранее.

Строка 221:
'sReturnLink' => ($bIsEdit ? ($aCallback === false ? $this->url()->makeUrl('forum', array($aForum['name_url'] . '-' . $aForum['forum_id'])) : $this->url()->makeUrl($aCallback['url_home'] . '.forum')) : ''),

Строка 436:
->setBreadcrumb($aThread['title'], ($aCallback === false ? $this->url()->makeUrl('forum', array($aForum['name_url'] . '-' . $aForum['forum_id'])) : $this->url()->makeUrl($aCallback['url_home'] . '.forum')))

Строка 437:
->setBreadcrumb(($bIsEdit ? Phpfox::getPhrase('forum.editing_post') . ': ' . (empty($aPost['title']) ? '#' . $aPost['post_id'] : $aPost['title']) : Phpfox::getPhrase('forum.post_new_reply')), ($bIsEdit ? ($aCallback === false ? $this->url()->makeUrl('forum', array($aThread['forum_url'] . '-' . $aThread['forum_id'], 'post_' . $aPost['post_id'])) : $this->url()->makeUrl($aCallback['url_home'] . '.forum', array('post' => $aPost['post_id']))) : null), true)

Строка 444:
'sReturnLink' => ($bIsEdit ? ($aCallback === false ? $this->url()->makeUrl('forum', array($aThread['forum_url'] . '-' . $aThread['forum_id'], 'post_' . $aPost['post_id'])) : $this->url()->makeUrl($aCallback['url_home'] . '.forum')) : ''),

Строка 445:
'sThreadReturnLink' => ($aCallback === false ? $this->url()->makeUrl('forum', array($aThread['forum_url'] . '-' . $aThread['forum_id'])) : $this->url()->makeUrl($aCallback['url_home'], array('forum'))),

Изменения на работоспособность проверить не могу.
[quote=1 post=3433]Просто удаляете то, о чем я говорил ранее.


Мы все делаем по точной аналогии, но иногда она не совпадает, поэтому и спрашиваем, как и в этом случае:
У нас так: файл: rss.class.php строка: 76
'href' => '', // Phpfox::getLib('url')->makeUrl('forum', array($aGroup['title_url'])),

Поправьте пожалуйста.

[quote=1 post=3433]Изменения на работоспособность проверить не могу.

Пока и мы не добились, того что нужно, но ещё не все файлы проверили.
Еще дело в том, что этот полный урок останется в полном виде всем и на всегда, мы сами будем еще не раз к нему возвращаться, нам нужно еще не один сайт править.
Вам огромное спасибо за оказываемую помощь!
А это наверное самые крайние фалы для правки - все папки модуля форума перепроверили.

Файл thread.class.php
строка 50 у нас так:
$this->url()->send($aCallback['url_home'], array('forum', $aThread['title_url']));

Поправьте пожалуйста.

строка 53 у нас так:
$this->url()->send('forum', array($aThread['forum_url'] . '-' . $aThread['forum_id'], $aThread['title_url']));

Поправьте пожалуйста.

строка 257 у нас так:
$sCurrentThreadLink = ($aCallback === null ? $this->url()->makeUrl('forum', array($aForum['name_url'] . '-' . $aForum['forum_id'], $aThread['title_url'])) : $this->url()->makeUrl($aCallback['url_home'], $aThread['title_url']));

Поправьте пожалуйста.

module/forum/template/default/block/
у нас так: файл - parent.html.php
<a href="{url link='group.'$aGroup.title_url'.forum.'$aThread.title_url'}">{$aThread.title|clean|shorten:125:'...'|split:120}</a>

Поправьте пожалуйста.

module/forum/include/component/controller/
файл group.class.php 48 строка у нас такой
module/forum/include/component/controller/
Поправьте пожалуйста.

module/forum/include/component/controller/
файл - rss.class.php у нас такой 76 строка
'href' => '', // Phpfox::getLib('url')->makeUrl('forum', array($aGroup['title_url'])),

Поправьте пожалуйста.

module/forum/include/component/controller/
файл - thread.class.php
строка 50
$this->url()->send($aCallback['url_home'], array('forum', $aThread['title_url']));

Поправьте пожалуйста.

строка 53
$this->url()->send('forum', array($aThread['forum_url'] . '-' . $aThread['forum_id'], $aThread['title_url']));

Поправьте пожалуйста.

строка 257
$sCurrentThreadLink = ($aCallback === null ? $this->url()->makeUrl('forum', array($aForum['name_url'] . '-' . $aForum['forum_id'], $aThread['title_url'])) : $this->url()->makeUrl($aCallback['url_home'], $aThread['title_url']));

Поправьте пожалуйста.

module/forum/include/component/ajax/
файл - ajax.class.php
строка 369
$sUrl = Phpfox::getLib('url')->makeUrl('forum', array($aForum['name_url'] . '-' . $aForum['forum_id'], $aThread['title_url']));

Поправьте пожалуйста.

строка 404
$sUrl = Phpfox::getLib('url')->makeUrl('forum', array($aForum['name_url'] . '-' . $aForum['forum_id'], Phpfox::getLib('parse.input')->prepareTitle('forum', $this->get('title'), 'title_url', null, Phpfox::getT('forum_thread'), true)));

Поправьте пожалуйста.

module/forum/install/
файл phpfox.xml.php у нас такой
строка: 558
<tables><![CDATA[a:12:{s:12:"phpfox_forum";a:3:{s:7:"COLUMNS";a:14:{s:8:"forum_id";a:4:{i:0;s:5:"USINT";i:1;N;i:2;s:14:"auto_increment";i:3;s:2:"NO";}s:9:"parent_id";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:7:"view_id";a:4:{i:0;s:6:"TINT:1";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:11:"is_category";a:4:{i:0;s:6:"TINT:1";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:4:"name";a:4:{i:0;s:9:"VCHAR:255";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:8:"name_url";a:4:{i:0;s:9:"VCHAR:255";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:11:"description";a:4:{i:0;s:5:"MTEXT";i:1;N;i:2;s:0:"";i:3;s:3:"YES";}s:9:"is_closed";a:4:{i:0;s:6:"TINT:1";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:9:"thread_id";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:7:"post_id";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:12:"last_user_id";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:10:"total_post";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:12:"total_thread";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:8:"ordering";a:4:{i:0;s:5:"USINT";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}}s:11:"PRIMARY_KEY";s:8:"forum_id";s:4:"KEYS";a:3:{s:7:"view_id";a:2:{i:0;s:5:"INDEX";i:1;s:7:"view_id";}s:7:"post_id";a:2:{i:0;s:5:"INDEX";i:1;s:7:"post_id";}s:9:"thread_id";a:2:{i:0;s:5:"INDEX";i:1;s:9:"thread_id";}}}s:19:"phpfox_forum_access";a:2:{s:7:"COLUMNS";a:4:{s:8:"forum_id";a:4:{i:0;s:5:"USINT";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:13:"user_group_id";a:4:{i:0;s:6:"TINT:3";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:8:"var_name";a:4:{i:0;s:9:"VCHAR:150";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:9:"var_value";a:4:{i:0;s:6:"TINT:1";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}}s:4:"KEYS";a:2:{s:8:"forum_id";a:2:{i:0;s:5:"INDEX";i:1;a:2:{i:0;s:8:"forum_id";i:1;s:13:"user_group_id";}}s:13:"user_group_id";a:2:{i:0;s:5:"INDEX";i:1;a:2:{i:0;s:13:"user_group_id";i:1;s:8:"var_name";}}}}s:25:"phpfox_forum_announcement";a:3:{s:7:"COLUMNS";a:3:{s:15:"announcement_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:14:"auto_increment";i:3;s:2:"NO";}s:8:"forum_id";a:4:{i:0;s:5:"USINT";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:9:"thread_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}}s:11:"PRIMARY_KEY";s:15:"announcement_id";s:4:"KEYS";a:2:{s:8:"forum_id";a:2:{i:0;s:5:"INDEX";i:1;s:8:"forum_id";}s:9:"thread_id";a:2:{i:0;s:5:"INDEX";i:1;s:9:"thread_id";}}}s:22:"phpfox_forum_moderator";a:3:{s:7:"COLUMNS";a:3:{s:12:"moderator_id";a:4:{i:0;s:5:"USINT";i:1;N;i:2;s:14:"auto_increment";i:3;s:2:"NO";}s:8:"forum_id";a:4:{i:0;s:5:"USINT";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:7:"user_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}}s:11:"PRIMARY_KEY";s:12:"moderator_id";s:4:"KEYS";a:2:{s:8:"forum_id";a:2:{i:0;s:5:"INDEX";i:1;a:2:{i:0;s:8:"forum_id";i:1;s:7:"user_id";}}s:10:"forum_id_2";a:2:{i:0;s:5:"INDEX";i:1;s:8:"forum_id";}}}s:29:"phpfox_forum_moderator_access";a:2:{s:7:"COLUMNS";a:2:{s:12:"moderator_id";a:4:{i:0;s:5:"USINT";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:8:"var_name";a:4:{i:0;s:9:"VCHAR:150";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}}s:4:"KEYS";a:1:{s:12:"moderator_id";a:2:{i:0;s:5:"INDEX";i:1;s:12:"moderator_id";}}}s:17:"phpfox_forum_post";a:3:{s:7:"COLUMNS";a:11:{s:7:"post_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:14:"auto_increment";i:3;s:2:"NO";}s:9:"thread_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:7:"view_id";a:4:{i:0;s:6:"TINT:1";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:7:"user_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:5:"title";a:4:{i:0;s:9:"VCHAR:255";i:1;N;i:2;s:0:"";i:3;s:3:"YES";}s:16:"total_attachment";a:4:{i:0;s:7:"UINT:11";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:10:"time_stamp";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:11:"update_time";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:11:"update_user";a:4:{i:0;s:9:"VCHAR:100";i:1;N;i:2;s:0:"";i:3;s:3:"YES";}s:10:"total_like";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:13:"total_dislike";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}}s:11:"PRIMARY_KEY";s:7:"post_id";s:4:"KEYS";a:4:{s:9:"thread_id";a:2:{i:0;s:5:"INDEX";i:1;s:9:"thread_id";}s:7:"user_id";a:2:{i:0;s:5:"INDEX";i:1;s:7:"user_id";}s:11:"thread_id_2";a:2:{i:0;s:5:"INDEX";i:1;a:2:{i:0;s:9:"thread_id";i:1;s:7:"view_id";}}s:7:"view_id";a:2:{i:0;s:5:"INDEX";i:1;s:7:"view_id";}}}s:22:"phpfox_forum_post_text";a:2:{s:7:"COLUMNS";a:3:{s:7:"post_id";a:4:{i:0;s:7:"UINT:11";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:4:"text";a:4:{i:0;s:5:"MTEXT";i:1;N;i:2;s:0:"";i:3;s:3:"YES";}s:11:"text_parsed";a:4:{i:0;s:5:"MTEXT";i:1;N;i:2;s:0:"";i:3;s:3:"YES";}}s:4:"KEYS";a:1:{s:7:"post_id";a:2:{i:0;s:6:"UNIQUE";i:1;s:7:"post_id";}}}s:22:"phpfox_forum_subscribe";a:3:{s:7:"COLUMNS";a:3:{s:12:"subscribe_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:14:"auto_increment";i:3;s:2:"NO";}s:9:"thread_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:7:"user_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}}s:11:"PRIMARY_KEY";s:12:"subscribe_id";s:4:"KEYS";a:2:{s:9:"thread_id";a:2:{i:0;s:5:"INDEX";i:1;a:2:{i:0;s:9:"thread_id";i:1;s:7:"user_id";}}s:11:"thread_id_2";a:2:{i:0;s:5:"INDEX";i:1;s:9:"thread_id";}}}s:18:"phpfox_forum_thank";a:3:{s:7:"COLUMNS";a:4:{s:8:"thank_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:14:"auto_increment";i:3;s:2:"NO";}s:7:"post_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:7:"user_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:10:"time_stamp";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}}s:11:"PRIMARY_KEY";s:8:"thank_id";s:4:"KEYS";a:2:{s:7:"post_id";a:2:{i:0;s:5:"INDEX";i:1;a:2:{i:0;s:7:"post_id";i:1;s:7:"user_id";}}s:9:"post_id_2";a:2:{i:0;s:5:"INDEX";i:1;s:7:"post_id";}}}s:19:"phpfox_forum_thread";a:3:{s:7:"COLUMNS";a:18:{s:9:"thread_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:14:"auto_increment";i:3;s:2:"NO";}s:8:"forum_id";a:4:{i:0;s:5:"USINT";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:8:"group_id";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:7:"poll_id";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:7:"view_id";a:4:{i:0;s:6:"TINT:1";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:8:"start_id";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:15:"is_announcement";a:4:{i:0;s:6:"TINT:1";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:9:"is_closed";a:4:{i:0;s:6:"TINT:1";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:7:"user_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:5:"title";a:4:{i:0;s:9:"VCHAR:255";i:1;N;i:2;s:0:"";i:3;s:3:"YES";}s:9:"title_url";a:4:{i:0;s:9:"VCHAR:255";i:1;N;i:2;s:0:"";i:3;s:3:"YES";}s:10:"time_stamp";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:11:"time_update";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:8:"order_id";a:4:{i:0;s:6:"TINT:1";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:7:"post_id";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:12:"last_user_id";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:10:"total_post";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}s:10:"total_view";a:4:{i:0;s:7:"UINT:10";i:1;s:1:"0";i:2;s:0:"";i:3;s:2:"NO";}}s:11:"PRIMARY_KEY";s:9:"thread_id";s:4:"KEYS";a:9:{s:8:"forum_id";a:2:{i:0;s:5:"INDEX";i:1;a:3:{i:0;s:8:"forum_id";i:1;s:8:"group_id";i:2;s:7:"view_id";}}s:8:"group_id";a:2:{i:0;s:5:"INDEX";i:1;a:3:{i:0;s:8:"group_id";i:1;s:7:"view_id";i:2;s:9:"title_url";}}s:10:"forum_id_2";a:2:{i:0;s:5:"INDEX";i:1;s:8:"forum_id";}s:10:"group_id_2";a:2:{i:0;s:5:"INDEX";i:1;a:3:{i:0;s:8:"group_id";i:1;s:7:"view_id";i:2;s:15:"is_announcement";}}s:10:"group_id_3";a:2:{i:0;s:5:"INDEX";i:1;a:2:{i:0;s:8:"group_id";i:1;s:9:"title_url";}}s:7:"view_id";a:2:{i:0;s:5:"INDEX";i:1;s:7:"view_id";}s:9:"thread_id";a:2:{i:0;s:5:"INDEX";i:1;a:2:{i:0;s:9:"thread_id";i:1;s:8:"group_id";}}s:8:"start_id";a:2:{i:0;s:5:"INDEX";i:1;s:8:"start_id";}s:9:"view_id_2";a:2:{i:0;s:5:"INDEX";i:1;a:2:{i:0;s:7:"view_id";i:1;s:5:"title";}}}}s:25:"phpfox_forum_thread_track";a:2:{s:7:"COLUMNS";a:3:{s:9:"thread_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:7:"user_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:10:"time_stamp";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}}s:4:"KEYS";a:2:{s:7:"item_id";a:2:{i:0;s:5:"INDEX";i:1;a:2:{i:0;s:9:"thread_id";i:1;s:7:"user_id";}}s:9:"thread_id";a:2:{i:0;s:5:"INDEX";i:1;s:9:"thread_id";}}}s:18:"phpfox_forum_track";a:2:{s:7:"COLUMNS";a:3:{s:8:"forum_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:7:"user_id";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}s:10:"time_stamp";a:4:{i:0;s:7:"UINT:10";i:1;N;i:2;s:0:"";i:3;s:2:"NO";}}s:4:"KEYS";a:1:{s:7:"item_id";a:2:{i:0;s:5:"INDEX";i:1;a:2:{i:0;s:8:"forum_id";i:1;s:7:"user_id";}}}}}]]></tables>

Поправьте пожалуйста.

module/forum/include/service/
файл - forum.class.php строка 67
$aLiveForums = $this->database()->select('f.forum_id, f.thread_id, f.total_thread, f.total_post, f.post_id, ft.title AS thread_title, ft.title_url AS thread_title_url, ft.time_update AS thread_time_stamp, ' . Phpfox::getUserField())

Поправьте пожалуйста.

строка 669
$sLink = $oUrl->makeUrl('forum', array($aForum['name_url'] . '-' . $aForum['forum_id'], $aForum['thread_title_url'], 'post' => $aForum['post_id']));

Поправьте пожалуйста.

строка 673
if (isset($aForum['thread_title_url']))

Поправьте пожалуйста.

строка 675
$sLink = $oUrl->makeUrl('forum', array($aForum['name_url'] . '-' . $aForum['forum_id'], $aForum['thread_title_url']));

Поправьте пожалуйста.

module/forum/include/service/post/
файл - post.class.php
строка 147
$aPosts = $this->database()->select('f.forum_id, f.name AS forum_name, f.name_url AS forum_url, ft.title AS thread_title, ft.group_id, ft.thread_id, ft.title_url AS thread_title_url, fp.post_id, fp.view_id, fp.time_stamp, fp.title, ' . (Phpfox::getParam('core.allow_html') ? 'fpt.text_parsed' : 'fpt.text') . ' AS text, ' . Phpfox::getUserField())

Поправьте пожалуйста.

строка 164
$sLink = Phpfox::getLib('url')->makeUrl($this->_aCallback['url_home'], array($aPost['thread_title_url'], 'post' => $aPost['post_id']));

Поправьте пожалуйста.

строка 168
$sLink = Phpfox::getLib('url')->makeUrl('forum', array($aPost['forum_url'] . '-' . $aPost['forum_id'], $aPost['thread_title_url'], 'post' => $aPost['post_id']));

Поправьте пожалуйста.

строка 225
$aRows = $this->database()->select('fp.post_id, ft.title, ft.title_url, ft.forum_id, ft.group_id, ft.time_stamp, ' . (Phpfox::getParam('core.allow_html') ? 'fpt.text_parsed' : 'fpt.text') . ' AS description, f.name AS forum_name, f.name_url AS forum_url, ' . Phpfox::getUserField())

Поправьте пожалуйста.

строка 242
$aRows[$iKey]['link'] = ($aRow['group_id'] ? Phpfox::getLib('url')->makeUrl('group.forum', array($aRow['title_url'], 'id' => $aRow['group_id'], 'post' => $aRow['post_id'])) : Phpfox::getLib('url')->makeUrl('forum', array($aRow['forum_url'] . '-' . $aRow['forum_id'], $aRow['title_url'], 'post' => $aRow['post_id'])));

Поправьте пожалуйста.

строка 247
'href' => Phpfox::getLib('url')->makeUrl('forum', array($aRows[0]['forum_url'] . '-' . $aRows[0]['forum_id'], $aRows[0]['title_url'])),

Поправьте пожалуйста.

module/forum/include/service/
файл - callback.class.php
строка 154
$aThread = $this->database()->select('ft.thread_id, ft.forum_id, ft.group_id, ft.title_url, u.user_id, u.user_name, f.name_url AS forum_url')

Поправьте пожалуйста.

строка 168
return Phpfox::getLib('url')->makeUrl('group.forum', array($aThread['title_url'], 'id' => $aThread['group_id']));

Поправьте пожалуйста.

строка 172
return Phpfox::getLib('url')->makeUrl('forum', array($aThread['forum_url'] . '-' . $aThread['forum_id'], $aThread['title_url']));

Поправьте пожалуйста.

строка 211
fp.thread_id as item_id, ft.title, ft.title_url')

Поправьте пожалуйста.

строка 226
$aThread['link'] = Phpfox::getLib('url')->makeUrl('forum.'.$aThread['name_url'].'.'.$aThread['title_url']);

Поправьте пожалуйста.

строка 391
'url_field' => 'title_url',

Поправьте пожалуйста.

строка 401
return array('forum', array($aItem['forum_name_url'] . '-' . $aItem['forum_id'], $aItem['title_url']));

Поправьте пожалуйста.

/module/forum/include/service/thread/
файл process.class.php
строка 84
'title_url' => $oParseInput->prepareTitle('forum', $aVals['title'], 'title_url', null, $this->_sTable, null, false, false),

Поправьте пожалуйста.

строка 238
Phpfox::getService('feed.process')->update('forum_reply', $aPost['post_id'], serialize(array('post_id' => $aPost['post_id'], 'forum_id' => $aThread['forum_id'], 'forum_url' => $aThread['forum_url'], 'thread_url' => $aThread['title_url'], 'thread_title' => $aThread['title'])));

Поправьте пожалуйста.

строка 571
return Phpfox::getLib('url')->makeUrl('forum', array($aForum['name_url'] . '-' . $aForum['forum_id'], $aOldThread['title_url']));

module/forum/include/service/thread/
файл - thread.class.php
стр 279
$aThread = $this->database()->select('ft.thread_id, ft.forum_id, ft.group_id, ft.title_url, f.name_url AS forum_url')

Исправьте пожа-а

стр 300
$aThread = $this->database()->select('ft.thread_id, ft.group_id, ft.view_id, ft.forum_id, ft.is_closed, ft.user_id, ft.is_announcement, ft.order_id, ft.title_url, ft.time_update AS last_time_stamp, ft.title, fs.subscribe_id AS is_subscribed, ft.poll_id')

Исправьте пожа-а

стр 514
$aRows = $this->database()->select('ft.thread_id, ft.title, ft.title_url, ft.forum_id, ft.group_id, ft.time_stamp, ' . (Phpfox::getParam('core.allow_html') ? 'fpt.text_parsed' : 'fpt.text') . ' AS description, f.name AS forum_name, f.name_url AS forum_url, ' . Phpfox::getUserField())

стр 535
$aRows = $this->database()->select('ft.title, ft.title_url, ft.time_stamp, ' . Phpfox::getUserField())

Исправьте пожа-а.
[quote=464 post=3439]дело в том, что этот полный урок останется в полном виде всем и на всегда

Вот вам урок, еще раз: Удаляете элементы массива с ключом title_url или заменяете его на null, все.
Если у вас такой код:
'href' => '', // Phpfox::getLib('url')->makeUrl('forum', array($aGroup['title_url'])),

То тут можно ни чего не удалять, так как тут генерация ссылки закомментирована (интерпретатор ее не читает). Можно сделать так (Тоже самое):
'href' => '',

Если строка выглядит так:
$this->url()->send($aCallback['url_home'], array('forum', $aThread['title_url']));

Делаете так:
$this->url()->send($aCallback['url_home'], array('forum'));

Если такая строка:
$sUrl = Phpfox::getLib('url')->makeUrl('forum', array($aForum['name_url'] . '-' . $aForum['forum_id'], Phpfox::getLib('parse.input')->prepareTitle('forum', $this->get('title'), 'title_url', null, Phpfox::getT('forum_thread'), true)));

То тут следует title_url заменить на null:
$sUrl = Phpfox::getLib('url')->makeUrl('forum', array($aForum['name_url'] . '-' . $aForum['forum_id'], Phpfox::getLib('parse.input')->prepareTitle('forum', $this->get('title'), null, null, Phpfox::getT('forum_thread'), true)));

Так как параметры отправляемые в метод "prepareTitle" имеют свою последовательность. Пропускать параметр нельзя, а вот заменить его на null можно.

И чтобы код удобнее было читать, его необходимо обвернуть BBcode [code].
Вариант проще: Открываем: "include/library/phpfox/url/url.class.php", находим:
		if (!empty($sTitle))
		{
			if (preg_match('/\{phrase var\=(.*)\}/i', $sTitle, $aMatches) && isset($aMatches[1]))
			{
				$sTitle = str_replace(array("'", '"', '&#039;'), '', $aMatches[1]);
				$sTitle = Phpfox::getPhrase($sTitle);
			}
			
			$aExtra[] = $this->cleanTitle($sTitle);
		}

И удалить или закомментировать. Готово.
Данная правка делает короткими URL сразу по всему сайту.
Вот здорово, большое спасибо Вам Slash, по истине самое оптимальнейший способ решения, как убрать русские буквы из УРЛ страниц.
Вы точно отличный специалист хорошо знающий движок PhpFox.