Поставил на сайт мудуль Administration menu и в логах devel увидел при обращении к каждой странице запросы вида:
locale SELECT s.lid, t.translation, s.version FROM locales_source s LEFT JOIN locales_target t ON s.lid = t.lid AND t.language = 'ru' WHERE s.source = 'Manage posts by content type, including default status, front page promotion, etc.' AND s.textgroup = 'default'
locale SELECT s.lid, t.translation, s.version FROM locales_source s LEFT JOIN locales_target t ON s.lid = t.lid AND t.language = 'ru' WHERE s.source = 'Control posting behavior, such as teaser length, requiring previews before posting, and the number of posts on the front page.' AND s.textgroup = 'default'
locale SELECT s.lid, t.translation, s.version FROM locales_source s LEFT JOIN locales_target t ON s.lid = t.lid AND t.language = 'ru' WHERE s.source = 'Configure the number of items per feed and whether feeds should be titles/teasers/full-text.' AND s.textgroup = 'default'
locale SELECT s.lid, t.translation, s.version FROM locales_source s LEFT JOIN locales_target t ON s.lid = t.lid AND t.language = 'ru' WHERE s.source = 'Control posting behavior, such as teaser length, requiring previews before posting, and the number of posts on the front page.' AND s.textgroup = 'default'
locale SELECT s.lid, t.translation, s.version FROM locales_source s LEFT JOIN locales_target t ON s.lid = t.lid AND t.language = 'ru' WHERE s.source = 'Configure the number of items per feed and whether feeds should be titles/teasers/full-text.' AND s.textgroup = 'default'
После отключения модуля запросы исчезают, выполнение в виде sql - пустой результат, хотя переводы есть, и вообще непонятно зачем эти переводы для меню...
Комментарии
о боже...
вы о чем?
вру, в sql ответ есть
эти запросы занимают пару микросекунд и делаются только при админе, вам жалко чтоли?)
Пора оптимизировать кавычки.
они мешают при оптимизации кол-ва запросов, отключить конечно не проблема, но в принципе это явный баг, причем непонятно зачем ему эти строки из админки )
вам сюда http://drupal.org/project/issues/admin_menu
а вообще эти запросы делает модуль menu (функции _menu_item_localize, _menu_link_translate и т.д.), admin_menu лишь использует его функции
Смешной топик.
+1.
Нормальный топик.
Почти все популярные модули для Друпала имеют лишние запросы. И это смешно?
Вот есть, например, такой модуль как simplemenu. Так он тоже делает подобные запросы на всех страницах, где есть это меню. И модуль как раз предназначается не только для админов, но и для пользователей сайта.
Теперь возьмем еще один популярный модуль vote_up_down. Так там вообще, когда смотришь код, то плакать хочется. А именно: при отключенном голосовании за комменты, модуль все равно гоняет лишние запросы к базе для проверки наличия баллов за конкретный коммент. И если на странице 100 комментов, то он сделает 100 запросов зря. Т.е. в админке и никак по-другому это нельзя отключить. Единственный способ - это закомментировать в коде модуля несколько строк.
И таких примеров можно привести бесконечное множество.
Причем тут все модули, если обсуждается 1 модуль, работающий для 1 юзера - администратора ? У вас что, все посетители сайта - администраторы ? Тогда, боюсь, специалисты по друпалу здесь бессильны - нужно обращаться к врачам. Так и представляю картину:
а зачем изобретать свой велосипед когда всё давно написано профессионалами. да, и от запросов можно избавится с помощью правки settings.php:
<?php
/**
* String overrides:
*
* To override specific strings on your site with or without enabling locale
* module, add an entry to this list. This functionality allows you to change
* a small number of your site's default English language interface strings.
*
* Remove the leading hash signs to enable.
*/
# $conf['locale_custom_strings_en'] = array(
# 'forum' => 'Discussion board',
# 'count min' => 'count minutes',
# );
?>
А по мне так топик смысла не имеет, так как подобные запросы генерируются системой локализации и О, МОЙ БОГ!!!111 каждым модулем, запросы эти не такие уж и тяжёлые.
Совсем другое дело кривые модули
Нет. Насчет топика. Система локализации генерирует только те запросы, которые нужны на данной странице сайта. А с нашим "чудо-модулем" мы имеем запросы, которые не имеют отношения к текущей странице.
Когда их много, то в сумме это имеет значение. А при нагрузках на сайт - тем более. Можете протестировать через ab.
Так как раз кривые модули - это те модули, которые делают лишнюю работу (в нашем случае лишние запросы к базе).
Я сам себе профессионал
Если я нахожу ошибки в работе модулей от "профессионалов", то это не значит, что я изобретаю заново велосипед, это значит, что я делаю из него мопед
какие же это ошибки, следуя логики вся система локализации в drupal является одной большой ошибкой
вперёд, пишите свой admin_menu_pro
Тогда сорри, бессмысленный труд писать в этом топике, ищите оптимизаторов-единомышленников. Тут кривость модуля потихоньку переходит в кривость друпала. Как бороться вам подсказали выше, но видать вы не прочитали.
Система локализации генерирует только те запросы, которые нужны на данной странице сайта. А с нашим "чудо-модулем" мы имеем запросы, которые не имеют отношения к текущей странице. Хотя это я уже написал в предыдущем комментарии...
settings.php не поможет, если модуль vote_up_down гоняет лишние запросы в таблицу votingapi_cache...
К тому же, кстати, с помощью локализации вы не сможете, например, перевести такие слова как "edit", "view" для разных типов материала, а также для страницы профиля...
Давайте всё же различать, где кривые модули, а где штатная работа системы?
т.е. модуль придумывает от себя ненужную строку и специально гонит её в t()?
вот понаставят люди 10-ки модулей, а потом вопли, "ваш друпал тормазной, 1000 запросов на страницу, а у меня 3 юзверя ходят" и т.п., а всего-то поставил модуль, потестил, убрал... и инфу было бы собирать тоже полезно, а в топике какое-то агрессивное настроение к оптимизации...
и кстати я так и не понял, зачем для построения меню переводы ЭТИХ строк:
Заметка</em> - подобна <em>странице</em>, идеальный способ для создания и отображения содержания, информирующего и привлекающего посетителей. Пресс-релизы, объявления и записи, подобные записям в блоге могут быть созданы посредством <em>заметки</em>. По умолчанию, <em>заметка</em> может быть отображена на главной странице и комментироваться пользователями.'
Enable or disable page caching for anonymous users and set CSS and JS bandwidth optimization options