Как стать автором
Обновить

Комментарии 9

Глядя на код хочется плакать.
Я поясню этот коммент, дабы было понятно для новичков.
Про модуль Flag и .info файл уже сказали ниже, разберём другие моменты.
1. Шаблоны предназначены для формирования конечного HTML. Логики в них быть не должно. В вашем случае необходимо написать handler для views, который бы формировал (на основе прав доступа) нужные голоса и ссылки.
2. Проверка на зарегенного пользователя: if ($user->uid != 0) это негибко, используйте hook_permission и проверяйте права через user_access, это позволит управлять функционалом на уровне прав пользователя, что гораздо удобнее.
3. Изучите Ajax framework, который позволит не городит велосипедов из JavaScript. В вашем случае можно было обойтись вообще без JS с таким же объёмом php-кода.

Посмотрите модуль examples — там собрано множество примеров, которые могут пригодится в жизни )
Можно было использовать Flag ( drupal.org/project/flag ), у него есть поддержка AJAX, интеграция с Views и Rules.
Спасибо за ссылку. Раньше с этим модулем не сталкивалась, надо будет изучить подробнее.
1. views-view-field--items--page--nid.tpl.php — в шаблонах нельзя делать запросы в БД, в Друпал 8 специально будет другой шаблонизатор, что бы такого не было
2. version = 7.x-1.0 эту строку писать не нужно в кастомном модуле и версию РНР не нужно указывать если у вас нет явных расположенностей именно к версии
3. Аякс функция возвращает не print(1)
4. Проверьте код модулем Coder

Поздравляю с начинанием программировать в Друпал!
Отличный коммент, и критика по делу. Спасибо Вам большое, всё учту на будущее.
Если в js используете attach, то используйте уже и context + once, чтобы по нескольку раз не привязываться к одним и тем же элементам.
Подписать человека какие-либо события не проблема, а вот как вы уведомляете подписчиков о событии? Может не по глазам но в коде не увидел.
Это как раз и было бы продолжение статьи (мне не хотелось нагромождать всё в одну)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории