xandeadx.ru Блог музицирующего веб-девелопера

DrupalМодуль Comment Notify — почтовые уведомления о новых комментариях

Опубликовано в

Описание

Модуль Comment Notify позволяет подписываться на уведомления о новых комментариях. Зарегистрированные пользователи могут подписываться на уведомления о комментариях оставленных в созданных ими темах. Можно подписываться как на все комментарии к определённой ноде, так и на ответы только к своим комментам.

Установка

  1. Скачиваем модуль.

  2. Распаковываем в папку sites/all/modules.

DrupalСниппет вывода последних не утверждённых комментариев

Опубликовано в

Сниппет полезен прежде всего администраторам.

<?php
$comments = db_query("
  SELECT nid, comment, timestamp, name
  FROM {comments}
  WHERE status = 1
  ORDER BY cid DESC
  LIMIT 0, 5
");
 
$html = '';
while ($comment = db_fetch_object($comments)) {
  $html .= '<li>';
  $html .= l(format_date($comment->timestamp, 'small'), 'node/' . $comment->nid) . ', '; // дата
  $html .= '<b>' . check_plain($comment->name) . '</b>:<br />'; // автор
  $html .= check_plain(drupal_substr(strip_tags($comment->comment), 0, 50)); // комментарий
  $html .= '</li>';
}
 
echo $html ? '<ul>' . $html . '</ul>' : 'пусто…';
?>

PHPУстановка xCache на Windows

Опубликовано в

1. Скачиваем бинарники последней стабильной версии под Windows и вашу версию PHP.

2. Копируем файл php_xcache.dll в вашу php extensions директорию.

3. Копируем содержимое xcache.ini в ваш php.ini.

4. Настраиваем xCache:

В php.ini комментируем либо удаляем две строчки из секции [xcache-common]:

zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so
zend_extension_ts = c:/php/extensions/php_xcache.dll

Там же раскомментирываем строчку:

extension = php_xcache.dll

DrupalПишем модуль утверждения комментариев в один клик. Часть 2

В первой части был написан модуль, для одобрения анонимных комментариев в один клик. В этой части добавим к нему AJAX функции.

DrupalПишем модуль утверждения комментариев в один клик. Часть 1

В первой части мы напишем модуль который добавит каждому не опубликованному комментарию новое действие "опубликовать", помимо уже присутствующих там удалить, изменить и ответить. Во второй части добавим немного Javascript-а и сделаем это действие на AJAX.

DrupalИзбавляемся от фразы "не проверено" в анонимных комментариях

Опубликовано в

Первый способ

Создаём файл template.php в папке темы, если его ещё там нет. Копируем в него функцию theme_username. Переименовываем её в phptemplate_username. Удаляем из функции кусок, где выводится фраза 'not verified'

MySQLВыборка людей определённого возраста

Опубликовано в

Допустим есть таблица users:

CREATE TABLE `users` (
    `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
    `name` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
    `birthday` DATE NOT NULL 
) ENGINE = MYISAM

Выборка людей которым на данный момент есть 26 лет

$yearOfBirth = 26;
$date1 = date((date('Y') - $yearOfBirth - 1) . '-m-d');
$date2 = date((date('Y') - $yearOfBirth) . '-m-d');
$sql = "
    SELECT * FROM `users`
    WHERE `birthday` BETWEEN '$date1' AND '$date2'
";

Выборка людей которым на данный момент от 25 до 27 лет

$yearOfBirth1 = 25;
$yearOfBirth2 = 27;
$date1 = date((date('Y') - $yearOfBirth2 - 1) . '-m-d');

DrupalУдаляем ссылку на автора из свойств ноды

Опубликовано в

Задача удалить ссылку на автора ноды, т.е из рис.1 сделать рис.2:

2009-12-08_023244.jpg

Создаём файл template.php в папке темы, если его ещё нет. Добавляем в него новую функцию

Drupal 6:

/**
 * Override theme function theme_node_submitted()
 */
function phptemplate_node_submitted($node) {
  return 'Опубликовано в ' . format_date($node->created);
}

Drupal 7:

/**
 * Preprocess function for node.tpl.php
 */
function THEMENAME_preprocess_node(&$vars) {
  $vars['submitted'] = 'Опубликовано в ' . $vars['date'];
}

Очищаем кэш.

DrupalКак воспользоваться сниппетом

Опубликовано в

Сниппет — это php код, который вставляется прямо в содержимое материала (ноды) либо блока и выполняющийся во время показа материала/блока.

С помощью сниппетов можно быстро реализовать какой-нибудь функционал без использования модулей, например вывести список последних комментариев, посетителей и т.д.

Чтобы воспользоваться сниппетом, нужно включить модуль PHP filter на странице управления модулями (admin/build/modules) и при создании материала, либо при добавлении блока, выбрать новый формат ввода PHP code. После этого любой код написанный между тегами <?php ... ?> будет выполняться как php.

DrupalИтоги оптимизации ядра

Опубликовано в

В статьях

  1. Уменьшаем количество запросов к MySQL в полтора раза
  2. Продолжаем резать, модуль Comment
  3. Заканчиваем резать, модуль Node

был прооперирован Drupal. Оптимизация была нацелена на уменьшение количества запросов к базе данных. Теперь время посмотреть, что из этого вышло.