Вывод даты по-русски

Прислано: edhel

пт, 02/09/2011 - 17:14

Другие статьи по теме:

Дрюпал до сих пор (вплоть до 7.x) не может вывести по-русски даты как "3 сентября 2011 г.". Обычно я ставлю формат вывода вида 03.09.2011, который более менее соответствует русской локали. Но всё же "3 сентября" нагляднее, чем "03.09". Чтобы сделать так, приходится фиксить тему и менять вывод переменной $submitted у нод и комментов.

Код тут: http://edhel.krasu.ru/node/406.

Производительность Drupal 7.0 vs 7.2

Прислано: edhel

сб, 04/06/2011 - 15:55

Другие статьи по теме:

В продолжение своего предыдущего поста: http://www.drupal.ru/node/62641.
По аналогичной методике протестировал производительность новых версий drupal 6.22 и 7.2.

Drupal 7.2 показал +14% к скорости работы по сравнению с 7.0.

Конкретные цифры тут: http://edhel.krasu.ru/drupal-7-perfomance

Тестирование производительности Drupal 6 и Drupal 7

Прислано: edhel

сб, 21/05/2011 - 15:42

Провёл по возможности честное и приближенное к реальности тестирование d6 и d7:

  1. в d6 сделал новостям такие же поля, как в d7 по умолчанию (title, body, tags, image), для чего пришлось поставить модули cck, filefield, imagefield, image api, imagecache
  2. добавил новостям текстовое поле source
  3. создал по 20 новостей с заполненными всеми полями
  4. сделал меню из 6 пунктов + 3 развёрнутых подпункта
  5. добавил меню в виде блока и сделал одинаковый набор блоков на обоих версиях (поиск, вход, меню, навигация)
  6. загрузил русскую локализацию (в d7 пришлось фиксить ядро, иначе php не хватало времени для загрузки локализации)
  7. отключил логи в апаче и mysql (иначе они портят тесты кэша)
  8. выгрузил все программы какие смог
  9. после каждого теста перегружал apache и mysql
  10. тестировал на большем количество запросов (1000 запросов по очереди в один поток)

Результаты в мс (среднее значение):

страница d6.20 d7.0
node 144 114
node/1 60 68
cache 11 15
нормированное время 1 1,07

*кэш от конкретной страницы почти не зависит, поэтому для него приведена просто одна цифра*

Тестировалось на winxp, php 5.2.9, eaccelerator (xampp).

Накануне более "тупо" тестировал drupal 5,6,7, там цифры для drupal 7 получилась менее утешительные, результаты тут: http://edhel.krasu.ru/drupal-5-6-7-perfomance.

Mercurial + Drupal

Прислано: edhel

чт, 04/11/2010 - 03:47

Недавно на работе начали использовать Mercurial при разработке сайтов на Drupal. Схема такая: отдельный сервер для репозитариев, отдельные веб-сервера для веб-сайтов, разработчики запускают у себя на машинах локальные версии сайтов и по мере готовности функционала заливают изменения в общий репозиторий (по https с http-аутентификацией), откуда автоматом файлы по FTP обновляются на веб-сервере.

Рабочая база mysql располагается на веб-сервере, разработчики делают себе локальную копию на время разработки.

Чуть подробнее на моём сайте: http://edhel.res.sfu-kras.ru/node/328

Использование полнотекстового индекса во views

Прислано: edhel

сб, 30/10/2010 - 04:05

Другие статьи по теме:

Во views есть возможность сделать полнотекстовый поиск по полю, но будет использоваться медленный оператор LIKE '%слово%' (на больших массивах данных). В MySQL есть полнотекстовый индексы (http://dev.mysql.com/doc/refman/5.0/en/create-index.html, http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html).

Вот как можно заставить views использовать полнотекстовый индекс с помощью оператора MATCH:

1. Ручками создаём полнотекстовый индекс, например, по полю node.title.
2. Добавляем во views фильтр по полю node.title на равенство с учётом регистра (можно сделать его "exposed").
3. Пишем модуль mymodule c хуком views_query_alter:

<?php
function mymodule_views_query_alter(&$view, &$query) {
    if (
$view->name == 'MYVIEW_NAME') {
        
$args_count 0;
        foreach (
$query->where[0]['clauses'] as $key => $value) {
            if (
strstr($value'%s')) $args_count++;
            if (
$value == "(node.title) = ('%s')") {
                
$query->where[0]['clauses'][$key] = "MATCH (node.title) AGAINST ('%s' IN BOOLEAN MODE)";
                
_mymodule_views_query_alter_hepler($query->where[0]['args'][$args_count 1]);
            }
        }
    }
}

function 
_mymodule_views_query_alter_hepler(&$s) {
    
$words preg_split("/\s+/"trim($s));
    
$new_words = array();
    foreach (
$words as $word) {
        
$first drupal_substr($word01);
        if (
$first != '+' && $first != '-') {
            
$word '+' $word;
        }
        
$new_words[] = $word;
    }
    
$s join(' '$new_words);
}

?>

Кривой robots.txt

Прислано: edhel

вт, 17/08/2010 - 03:20

Другие статьи по теме:

С удивлением обнаружил в robots.txt строчку Disallow: /sites/. Если файлы расположены не в /files/, а в /sites/*/files, то яндексы-гуглы не будут индексировать значительную часть файлов (doc, pdf, картинки и т.п.). Баг имхо, обсуждается, в частности, здесь http://drupal.org/node/494462.

У меня есть установка дрюпала с мультисайтингом на 30 сайтов, которой уже много-много лет, и большинство сайтов хранят файлы в /sites/. И все эти годы куча файлов не индексировалась. Обнаружил, когда посмотрел логи Яндекс.Сервера.

Colorer for Drupal

Прислано: edhel

вт, 29/06/2010 - 16:27

Навоял простенький модуль для подсветки синтаксиса в формах редактирования HTML/PHP в текстовых полях (ноды, блоки и т. д.). Для подсветки используются JS-движки EditArea и CodeMirror на выбор (переключается в настройках).

Страница модуля: http://drupal.org/project/colorer

Физически исходники на http://www.bitbucket.org/edhel/drupal-colorer. На drupal.org есть прямые ссылки на скачивание версии для drupal 5.x и 6.x.

Хлебные крошки в Google

Прислано: edhel

пн, 07/12/2009 - 12:17

Другие статьи по теме:

Заметил, что Google для результатов с drupal.org стал показывать «хлебные крошки» для найденных страниц. Например, по запросу node breadcrumb выводится «drupal.org › Download › Modules» (ссылками).

Подключение внешнего JavaScript

Прислано: edhel

ср, 18/11/2009 - 04:29

Другие статьи по теме:

drupal_add_js не работает для внешних адресов, т.к. вначале добавляет слэш к адресу.

Может помочь drupal_set_html_head('[script src...']), но он не подключает jQuery. Если вызвать drupal_add_js('','inline'), то jQuery подключится, но позже нашего скрипта.

Поэтому если надо подключить внешний скрипт, который использует jQuery, то делаем так:

<?php
drupal_add_js
('document.write("<" + "script type=\'text/javascript\' src=\'http://myserver.ru/.../datepicker.js\'><" + "/script>");''inline');
?>

Это в модуле или template.php.

А drupal_set_html_head можно использовать для подключения внешних CSS.

Перевели сайт на Drupal

Прислано: edhel

вс, 05/04/2009 - 16:22

Другие статьи по теме:

http://ic.sfu-kras.ru/. Был сайт на PHP+файлы. Перевели на Drupal 6 сохранив лицо. Ничего мега-особенного, но всё же.

Поиск через Яндекс.Сервер. Он мне больше нравится, чем встроенный в Drupal. Особенно выводит, когда drupal-евский поиск начинает тормозить по 5-10 сек.

Об InnoDB

Обнаружен биг-фича: если БД в InnoDB и у ноды нет тела (body), то создание ревизии ноды приводит к ошибке при добавлении этой ревизии в БД (в таблицу node_revision). Как следствие, нода теряется. InnoDB более строго относится к непустым полям, пришлось править node.install и добавлять default ''.

Видео-хостинг на Drupal 6 для вуза

Прислано: edhel

чт, 12/03/2009 - 07:03

Другие статьи по теме:

Сделали сайт на Drupal 6 для хостинга видео и аудио-ресурсов для университета: http://tube.sfu-kras.ru/

Возможности:

  • онлайн-просмотр видео/аудио в различном качестве (c помошью JW Player) с поддержкой псевдо-поточности (прокрутка в любое место видео без полной загрузки)
  • навигация по рубрикам, ключевым словам, пользователям, похожему видео
  • плейлисты
  • онлайн-загрузка видео (обработка автоматически не ведется, ручками кодируется в ffmpeg и файлы выкладываются по FTP)
  • экспорт (HTML-код)
  • возможность ограниченного доступа к избранным материалам: по IP-адресам универа, для ролей, по паролю (тут основная была проблема с тем, что jw player похоже не передавал cookie скприпту-стримеру, пришлось хитрую авторизацию делать по "билетам")
  • оглавление для навигации по конкретному видео (пример: http://tube.sfu-kras.ru/video/196)
  • поиск с помощью Яндекс.Сервер

Из нестандартных модулей используюся:

  • cck (метаописание)
  • fivestar+votingapi (звездочки)
  • google_analytics (статистика)
  • node_breadcrumb (фикс брэдкрамбов)
  • tagadelic (облако тегов)
  • cas_client (моя самописная CAS-авторизация)

+ несколько модулей конкретно для этого сайта (навигация, плейлисты и т. д.)

Не использовал views намеренно, ибо он тормоз имхо) Получилось так, что просмотр списка видео работает быстрее и выполняет меньше SQL-запросов, чем просмотр отдельной ноды с видео.

-----------

Breadcrumb в 6-ке

Прислано: edhel

пт, 14/11/2008 - 03:41

Другие статьи по теме:

1) Обнаружил, что в 6-ке для элементов меню не строится автоматически breadcrumb. Строится только для меню navigation. Для фикса есть модуль menu_breadcrumb.

2) Наконец-то портировал свой модуль node_breadcrumb на 6-ку. В частности, добавил и вышеупомянутый фикс (это пара строк).

Модуль позволяет «прицепить» все ноды определенного типа или категории к пункту меню, чтобы при их просмотре показывался breadcrumb ведущий к этому пункту меню, и само меню разварачивалось к нужному пункту.

Администрирование комментариев в собственной ноде

Прислано: edhel

ср, 06/02/2008 - 06:29

Другие статьи по теме:

Есть модуль http://drupal.org/project/usercomment, но с последними версиями Дрюпала не пашет и слишком навороченный... Написал схожий модуль, но более короткий, правда и с особенностями...

Принцип работы

Текстовые поля в CCK со множественными значениями — добавление полей на лету

Прислано: edhel

сб, 29/12/2007 - 07:18


Думаю многим известна проблема с текстовыми полями со множественными значениями: по умолчанию можно ввести только 3 значения. Если надо больше — то нужно сохранить ноду и опять перейти в режим редактирования. Можно увеличить начальное кол-во полей хакнув text.module (строка 272 в моей версии):

foreach (range($delta, $delta + 2) as $delta) {

заменить, например, на:

foreach (range($delta, $delta + 4) as $delta) {

Разработка модулей (бесплатно)

Прислано: edhel

ср, 17/10/2007 - 02:15

Другие статьи по теме:

Имеется N-ое количество свободных студентов 3-6 курсов вуза. Им нужны задачи для курсовых и дипломных в области веб-разработки и есть возможность их озадачить разработкой модулей для Drupal. Если кому-то давно хочется какого-то модуля, то предлагайте. Желательно что-то более-менее общественно-полезное, то бишь за слишком специфические и коммерческие модули браться не будем.

RSS-материал

Новое на сайте

Ссылки партнёров