Формирование ЧПУ ссылки без использования модуля path

Главные вкладки

Аватар пользователя brg brg 23 октября 2010 в 12:17

Есть вопрос .. например у меня много-много нод определенного типа, ну скажем миллионы-два и будет только расти т.д.
Нет возможности и не очень хочется оставлять ссылки типа "node/2345", они должны быть древовидные "one/two/bla/2345" и есть сомнение в использовании path и pathauto .. потому что если мне нужно будет вывести страницу хотя бы со 100 или 200 ссылками, то это лишние 100-200 запросов :/
Есть замечательная функция custom_url_rewrite_outbound, но в нее тоже передается только "node/2345" и в результате что бы сформировать ссылку нужно выполнить запрос :/

Т.е. разобрать ссылку можно в htaccess или custom_url_rewrite_inbound, но как их массово сформировать? Подгрузить в глобальную переменную данные для формировать ссылки нелогично, ибо огромное количество памяти сожрётся бессмысленно.

Пока единственный вариант это передавать данные для формирования ссылки в $options для url() или l() и потом через аутбоанд собирать, но чет как то не феншую :/

Комментарии

Аватар пользователя glu2006 glu2006 23 октября 2010 в 12:30

Вполне нормальный вариант использовать модуль path и pathauto какая разница сколько у Вас страниц??? важно количество посещений, а еще очень важно индексировать таблицы в БД друпал страдает немного с индексацией, но к примеру вчера добавление всего одного индекса по tid в таблице term_node увеличило быстродействие стандартного друпаловского форума в 10!!!!! раз. по умолчанию там индексы по (tid, vid), vid, nid.

Аватар пользователя brg brg 23 октября 2010 в 16:30

Да, спасибо. Я не спорю в его нормальности Wink
Меня удручает лишь одно .. что количество запросов к БД растет пропорционально количеству уникальных ссылок на странице .. и к сожалению в одном из проектов это довольно сильно удручает Sad

Аватар пользователя Ch Ch 23 октября 2010 в 17:29

"brg" wrote:
количество запросов к БД растет пропорционально количеству уникальных ссылок на странице

Странно, а причем тут синонимы? Если ссылка выводиться через [ru-api=l]l()[/ru-api], то запросы на поиск синонимов в базе все равно будут.

Аватар пользователя brg brg 24 октября 2010 в 10:59

О, да, согласен .. это меня пока вообще удручает Sad Я имею в виду что это возникает при включении модуля path.
Пока пришло на ум след.:
url('path/alias', array('alias' => true));
Но тогда нужно будет жестко отслеживать все места где есть ссылки на ноды.

Аватар пользователя glu2006 glu2006 24 октября 2010 в 13:01

Попробуй лучше БД отоптимизировать и не удручай себя :).
Реально я знаю множество проектов и причем они высокопосещаемы и там работает path + pathauto. И никаких проблем нет.

Аватар пользователя brg brg 24 октября 2010 в 13:56

Да ну это не проблема Wink Решений оптимизации много, можно кеш добавить, можно всякие еаксилераторы, бд оптимизировать, железку апгрейдить .. меня именно немного другие решения интересуют :/

Аватар пользователя glu2006 glu2006 24 октября 2010 в 14:07

brg wrote:
Да ну это не проблема Wink Решений оптимизации много, можно кеш добавить, можно всякие еаксилераторы, бд оптимизировать, железку апгрейдить .. меня именно немного другие решения интересуют :/

Тогда вопрос нахрена весь этот гемор из-за одного лишнего запроса?
Просто нечем заниматься или для самоутверждения? Smile или решили стать вторым Sinkora?
Неужели больше интересных задач для решения нету? Тогда решите мою http://drupal.ru/node/51164.