Предлагаю решение

Вставка <!--break--> в TinyMCE, работающий через Wysiwyg

30 декабря 2010 в 13:55

Предлагаю решение по вставке < !--break-- > в редактор TinyMCE, работающий через Wysiwyg, для пользователей с Filtered HTML.
Здесь http://www.drupal.ru/node/25551 предложено решение для модуля TinyMCE, но оно не подходит, если редактор TinyMCE работает через Wysiwyg.

Мой способ:

  1. Качаем drupalbreak отсюда http://www.drupal.ru/node/25551
  2. Кладем его в sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/drupalbreak
  3. Открываем sites/all/modules/wysiwyg/editors/tinymce.inc
  4. В конце, перед <?phpreturn $plugins;?> вставляем:
  5. <?php   if (version_compare($editor['installed version'], '3.2.6''>=')) {
        
    $plugins['drupalbreak'] = array(
          
    'path' => $editor['library path'] . '/plugins/drupalbreak',
          
    'extensions' => array('drupalbreak' => t('Drupalbreak')),
          
    'url' => 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/drupalbreak',
          
    'internal' => TRUE,
          
    'load' => TRUE,
        );
      }
    ?>
  6. На странице настроек кнопок редактора включаем Drupalbreak и Конец анонса.
  7. Если у вас стоит русский язык для редактора, то переводим en.js в sites/all/libraries/tinymce/jscripts/tiny_mce/plugins/drupalbreak/langs на русский язык или просто делаем копию en.js и переименовываем на ru.js

Все, теперь для пользователей с Filtered HTML появилась рабочая кнопка отделения анонса от основного текста.

анонимное кэширование nginx

30 декабря 2010 в 13:27

Небольшая статья по кэшированию nginx для анонимных пользователей друпала(хабраюзеры могут поддержать)
http://habrahabr.ru/blogs/drupal/110958/

До и после. Перевод на правильную платформу

28 декабря 2010 в 9:13

До и После Теоретически я всегда знал, что лучше использовать популярную CMS, чем какой либо непонятный "самопис"... Но я не предполагал, что есть умники, которые пытаются выдать более менее нормальную цмс за свое поделие, при этом изуродовав исходники...
Небольшой сказ о том, как перевести сайт на правильную систему управления (не забываем на каком ресурсе находимся ;))

Порядок действий

Анализ существующего сайта

На это этапе необходимо выявить существующие недостатки сайта и способы их устранения. Вполне может получится так, что переводить его на другой движок смысла не будет, но проще доработать имеющееся. Стоит так же обратить внимание на посещаемость сайта и источники пользователей, а так же наличие внешних работающих ссылок. Если их количество достаточно большое, продумайте как сохранить адреса (лучше не просто редирект сделать, но оставить УРЛы старыми). Определите технические недостатки: верстка, скорость работы, наличие мета-тегов и тд.

Определение способов решений

И вот Вы определились, что старый движок не справляется с задачами проекта, и нужно его менять. Не буду заострять внимание, почему именно выбран Drupal, холиваров на эту тему хватает. Под "способами решений" я подразумеваю набор используемых модулей. Рекомендую включать модули, имеющие хорошую поддержку и высокую статистику, находящиеся в стабильном состоянии, а главное удовлетворяющие (а может даже и с заделом на будущее) текущим требованиям проекта.

Модуль сайтмап -> напильник

28 декабря 2010 в 0:10

Дано: модуль сайтмап + таксономия + сайтмап xml

Чтобы убрать конечный аргумент all, идём в файл модуля и ищем строку:

<?php
    
// Display the $term.
    
$output .= "\n<li>";
    
$term_item '';
    if (
$forum_link) {
      
$term_item .= l($term->name'forum/'$term->tid, array('attributes' => array('title' => $term->description)));
    }
    elseif (
$term->count) {
      
$term_item .= l($term->name, ($cat_depth 0) ? taxonomy_term_path($term) : "taxonomy/term/$term->tid/$cat_depth", array('attributes' => array('title' => $term->description)));
    }
    else {
      
$term_item .= check_plain($term->name);
    }
    if (
variable_get('site_map_show_count'1)) {
      
$term_item .= " ($term->count)";
    }
?>

Меняем на:

<?php
    
// Display the $term.
    
$output .= "\n<li>";
    
$term_item '';
    if (
$forum_link) {
      
$term_item .= l($term->name'forum/'$term->tid, array('attributes' => array('title' => $term->description)));
    }
    elseif (
$term->count) {
      
$term_item .= l($term->name, ($cat_depth 0) ? taxonomy_term_path($term) : "taxonomy/term/$term->tid", array('attributes' => array('title' => $term->description)));
    }
    else {
      
$term_item .= check_plain($term->name);
    }
    if (
variable_get('site_map_show_count'1)) {
      
$term_item .= " ($term->count)";
    }
?>

Проблема описана тут

Добавить в menu block функционал jquerymenu

27 декабря 2010 в 18:41

Привет.

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

Этого недостатка лишен модуль menu block, но он лишен функционала jquery.

Итак, скрещиваем ужа с ежом.

В файле template.php своей темы добавляем функции:

function название-темы_menu_item__menu_block__номер-блока($link, $has_children, $menu = '', $in_active_trail = FALSE, $extra_class = NULL) {
  $class = ($menu && $in_active_trail ? 'parent open' : ($has_children ? 'parent closed' : 'leaf')); // Для того, чтобы
// menu_block выводил на страницу все подпункты меню, а не только верхнего уровня
// (а то разворачивать будет нечего), нужно либо в настройках меню, либо в настройках
// блока menu_block раскрыть все подпункты меню, но в таком случае оно будет изначально
// выводиться на страницу полностью раскрытым, что не есть хорошо. Здесь всем пунктам
// меню назначается класс closed, кроме тех, которые in_active_trail

//  if (!empty($extra_class)) {     Тут добавляются дополнительные классы,
//    $class .= ' '. $extra_class;  вроде lirst, last, menu-его номер
//  }                               мне они без надобности, поэтому отключаю

  if ($in_active_trail) {         // Добавляется класс active-trail
    $class .= ' active-trail';    // чтобы меню разворачивалось до
  }                               // активного пункта

Все Seo Drupal модули

26 декабря 2010 в 11:41

Всем привет! Данная статья не для профессионалов, которые уже всё знают :), а для новичков. Уверен, многим пригодится на ниве раскрутки и оптимизации сайта на движке Drupal.
Материал представляет собой вольный перевод статьи "A List of the Best Drupal SEO & Social Media Modules", достопочтенного Джейсона, http://www.themesnap.com/blogs/jason

Полный перевод с ссылками на модули представлен на сайте SEO программы со скидками


Список лучших SEO и социальных модулей для Drupal

SEO DRUPAL

Вы найдете много подборок и списков лучших Drupal SEO модулей, если воспользуетесь поиском Google или Яндекс.Однако многие из этих списков не включают модули, которые используются для повышения внутренней значимости страницы, эффективности и даже отслеживания за произведенными пользователем действиями.В списке ниже мы опишем несколько SEO Drupal модулей, которые используются, не только для повышения места вашего сайта в поисковых системах, но и для ваших драгоценных пользователей.Мы также включили большой перечень социальных модулей SMO, чтобы "оживить" ваш сайт на Drupal.Поехали!

Наиболее распространенные модули Drupal SEO

[Решено] advanced_catalog + filter

21 декабря 2010 в 15:27

Подскажите как вывести в advanced_catalog ubercarta Vews-filter. Фильтр, работает только не отображается.

Решено:
в advanced_catalog запрещено использование раскрытых фильтров, сделал views, ее прикрутил к выводу каталога (http://www.drupal.ru/node/15405), и все работает.

CSV файлы из Excel в node_import

21 декабря 2010 в 11:11

Пришла и моя очередь столкнуться с проблемой противостояния Windows и кодировки UTF-8.

Проблема известна многим, кто имел дело с модулем [module=node_import]. Суть в том, что файлы CSV, сохраняемые из Excel, имеют кодировку CP-1251 (Windows), а модуль работает с "кошерной" кодировкой UTF-8.

Собственно, совет о том, как грамотно обойти эту проблему, я нашел здесь.

Для тех, кто знает что такое patch "и с чем его едят", выкладываю файлик - решение проблемы (чуть измененный код с указанной выше страницы).

И еще - оформил issues на drupal.org. Гуру, посмотрите, все ли правильно - как-никак мой первый патч на "оргах": http://drupal.org/node/1004030

DrupalCamp Kiev 2010 - drupal 7 entity examples

20 декабря 2010 в 16:30

Модуль, написанный для летней презентации на DrupalCamp Kiev 2010 требует тестирования - он становится субмодулем Examples

Очень рекомендуется для изучения людям пишущим код и изучающим новый механизм сущностей (Entity) в drupal 7.

Префиксы в БД Drupal 6

19 декабря 2010 в 3:18

Не знаю, баг это или фича, но в названиях БД Друпала нельзя использовать - (минус). БД создается, админ БД назначается, но Drupal при установке дает ошибку типа неправильной переадресации.