если надо — выложу. куда лучше? на drupal.org или здесь?
кстати говоря, когда качаете User Karma надо dev версию качать. другая глючит при суммировании оценок (на нее жалобы и все говорят что dev не глючит, и я в том числе).
не знаю как в 6 друпале, но в 5 все, что сделано на vote API было страшно не оптимизировано. На vote API плодится гигантская таблица user_votes, которая хранит каждый голос каждого человека, а это выливается в сипец по производительности, на спасает даже присутствующая там табличка cache.
В целом — если вы планируете посещаемость Друпал сайта больше чем 10.000 уников в сутки, внимательнее относитесь к критически важным модулям, которые задействованы на главной и других посещаемых страницах.
К примеру был в 5 такой модуль Tagadelic, который выводил красивое облако тэгов. Все бы хорошо, только он пересчитывал это облако при каждом запросе.
Спасибо! Буду иметь ввиду. Пока мечтаю о посещаемости в 2-3 тыс.
А вообще как работает система по оптимизации. Допустим у меня год-два сайт работает (уже сконфигурировано все что надо из станд.модулей), и потом бац, посещаемость подскочила, все тормозит…
Полностью переделывать сайт что ли?
Ну, в принципе да.
Где-то на хабре прочитал фразу про то, что на друпал.орг уже почти ничего от друпала не осталось все пропатченно перепатченно.
Все же советую понемногу переходить на фрэймоврки. ЦМС хорошо, когда надо поднять небольшой ресурс за короткое время.
Ну, это мое личное мнение.
Если мы не планируем показывать Пете, кто проголосовал за его заметки, но планируем показывать все оценки прямо рядом с оцененным, оценка — это атрибут оцененного.
А вот карму, поскольку ее не нужно считать по сто раз на каждую показываемую страницу — можно хранить отдельной табличкой.
Да, все так, я малость погорячился. Правильный вариант: хранить кэш рядом с сущностью, как атрибут этой сущности, и дополнительные какие-нибудь таблицы типа «user_id, entity_id» для предотвращения двойного голосования (выдача для конкретного пользователя из такой таблицы будет существенно быстрее, чем сбор всех оценок из user_votes).
Пересчет при изменении веса голоса Пети (хотя в описываемом модуле, насколько я понял, не предусмотрены weight per user) может быть прекрасно сделан в фоне и не нуждается в отдельной таблице.
Он из коробки решает задачу «Не голос за какой-то твой материал, а именно голос за твою личность. Каждый может подарить тебе либо один Плюс, либо Минус. И только один раз».
Возможно, потребуется немного Rules/Workflow-магии.
спасибо :)
только, боюсь про друпал особо много не напишу, т.к. слабачек в нем.
к тому же часто бьют лбом об стенку, пытаюсь задавать вопросы на специализированных блогах/форумах, но там чаще — пустота :(
спасибо за учебник, скачал.
но мне кажется что у вас статья, как все трудно и плохо и непонятно. а у меня наоборот :)
может это потому что я щас как раз настроен разбираться во всяких API и т.п. вещах
А модуль drupal.org/project/extra_voting_forms смотрели?
Он, к сожалению заброшен, но функционал именно тот что нужен. Можно подхватить знамя его поддержки.
нет не смотрел. вроде с vote up down разобрался более менее, заточил под свой сайт. на освоение других, боюсь моральных сил не осталось :)
или все-таки рекомендуешь?
Интуитивная доработка Vote Up/ Down и User Karma (радостные эмоции новичка друпалиста)