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

MVC в Drupal. Внедряем Page Controller'ы.

9 января 2012 в 8:43

Хочу поделиться с комьюнити модулем controller, который можно взять здесь. В чем смысл модуля?

Модуль позволяет для каждого УРЛа, который вы определяете в hook_menu() прописать действие контроллера. Для этого есть специальный новый элемент 'action':

Drupal 7 удаление модуля Node.js [РЕШЕНИЕ]

5 января 2012 в 19:52

Столкнулся с проблемой:
Отключил в списке(включить\выключить муодуль) модуль чата.=> Перешел в панель удаления. => Удаллил.=> В списке (включить\выключить модуль) модуль чата осталася. В списке панели удаления - исчез.
[РЕШЕНИЕ] Заходим в папку установки и удаляем в ручную. public_html/sites/all/modules.

Продажа. sravni-sochi.ru

2 января 2012 в 23:09

Здравствуйте!
Продаю сайт http://www.sravni-sochi.ru

Сайт представляет собой агрегатор цен на компьютеры в Сочи. Сделан на CMS Drupal с доработками для загрузки прайс-листов в формате Excel (XLS).
Сайт агрегирует цены полуавтоматическим способом. Что это значит? Из этого следует, сперва загружаются прайс-листы, потом необходимо вручную выбрать одинаковые позиции и проставить у них одинаковый идентификатор, для того чтобы потом при новой загрузке прайс-листов из этих магазинов цена "сливалась" в одну позицию товара. Также необходимо вручную загрузить фотографии товара и проставить категории для поискового блока справа на сайте.
Или продам только движок.
Блиц-цена: 25 000 рублей.
Начальная: 5 000 рублей.
Поучаствовать можно здесь: http://www.telderi.ru/ru/viewsite/2779 или пишите мне личное сообщение.

С уважением Юрий.

[FAQ] Создаем сворачивающиеся комментарии

2 января 2012 в 21:03

Гугл выкидывает по поиску на одну тему на д.орг, в которой материал по данной теме так и не помог мне сделать рабочий вариант.
Предлагаю следующее:
1) Чтобы сделать свернутые комментарии - нужно выставить в нужном типе материалов показ комментариев на текущей странице, затем (я использую zen) в template.php

function yourthemename_preprocess(&$variables,$hook){
  if ($hook == 'box') {
  $content = $variables['content'];
  // Здесь можно проверить тип ноды, если надо ($variables['node']->type)
  if(!empty($variables['title'])) {
    $collapsed=($variables['title'] == t('Post new comment'));
    $element = array(
      '#type' => 'fieldset',
      '#title' => $variables['title'],
      '#collapsible' => TRUE,
      '#collapsed' => $collapsed,
      '#attributes' => array('class'=>'comment-box'),
      '#value' =>  $content,
    );
  unset($variables['title']);
  $variables['content']=theme('fieldset',$element);
}}}

Обновить кеш и в результате форма комментирования будет спрятана под спойлером.
2) Чтобы запехнуть под спойлер вобще весь блок комментариев, нужно создать js файл - например comments.js, подключить его к теме (theme.info в zen) и в файле прописать

$(document).ready(function() {
  $( 'div[id^=comments]' ).each(function(index, comments) {
        var $comments = $( comments );
        if ($comments.length == 0) return;
        var count = $comments.find('.comment').size();
        var label = Drupal.formatPlural(count, 'Комментариев: 1', 'Комментариев: @count');
        if (count==0)
        {

[Решено] Бегущая строка

29 декабря 2011 в 16:22

Заказчик захотел бегущую строку на сайте, горизонтальная смотрится не очень и раздражает мерцанием... Искал с вертикальной прокруткой и нашел http://lobach.info/develop/javascript/slideup-scroller/

Ниже пример как его адаптировать к друпал 7 (содержимое файлов 1.js и 1.css(дополнен) взято из ДЕМО)

Строки по очереди плавно поднимаются вверх, стоят около 4 секунд затем поднимается следующая (в строках можно использовать ссылки)

1. Создать простой блок. (запомнить его номер, написан в строке адреса при редактировании)

2. Зайти в файл темы и создать копию файла block.tpl.php, эту копию переименовать в block--block--X.tpl.php (X-номер вашего блока)

3. Очистить Кэш

4. В файл block--block--X.tpl.php добавить:
в самый верх

<?php drupal_add_css('sites/all/libraries/scroller/1.css'); ?>

<?php drupal_add_js('sites/all/libraries/scroller/1.js'); ?>

перед выводом переменной $content:

<?php
$content 
strip_tags($content'<b><a><strong>'); //Оставить только нужные теги 
$con_arr explode ("*" $content); // Создать массив путём разделения разделитель - *
for ($x=-1$x count($con_arr); $x++) { // Цикл по массиву $con_arr первая строка техничаская поэтому первый див пустой, начало с (-1)
  
@$con_out .= "<div>" trim(str_replace("&nbsp;"''$con_arr[$x])) . "</div>\r\n"//Сформировать див, предварительно вырезав лишние пробелы
}?>

Node Import по-русски

27 декабря 2011 в 12:14

Доброго дня!
Имеется многим известный модуль Node Import, работает он отлично, но только не с кириллицей. При импорте csv, получается следущее :


Перепробованы различные варианты форматов файла csv, создание в OpenOffice, MS Office, с различными разделителями и так далее.
Как только попадается русский текст, все данные теряют табличный вид. Возможно кто-то встречал похожую проблему...

Управление размерами изображений пользователя в Drupal 7

27 декабря 2011 в 11:09

Одно из немногих оставшихся мест в Drupal 7, которые не получили Field API изменения - это профили пользователей. Вы можете добавлять поля в профили, но стандартные поля остались в старом виде. Это означает, что у вас меньше гибкости при теммизации их и использовании в пользовательском интерфейсе. На пример, в управлении отображением профиля вы не сможете изменить стиль отображения аватара пользователя для каждого дисплея. По умолчанию можно установить только стиль отображения из настроек учетных записей пользователей.

Контактная форма, форма заказа в custom блоке

26 декабря 2011 в 23:14

Иногда нужно быстро сделать контактную форму или форму заказа и поместить ее как блок на какой-нибудь странице, но нет времени на разработку модуля (или не хватает знаний). Предлагаю модуль simpleForm2. он позволяет создать практически любую форму и любое количество таких форм на сайте. Для построения формы нужно хотя бы поверхностное знание HTML.
Вот страница проекта на drupal.org: simpleForm2

Вывод заголовка страницы title с помощью CCK

23 декабря 2011 в 16:43

Появилась необходимость вывести изменённый заголовок страницы.

1) Создаём в Типе материала новое CKK Текстовое поле: field_page_title

Вариант 1:
Модули page_title + token позволяют вывести данное поле.

В настройках модуля page_title (/admin/config/search/page-title) у страницы "Content Type - Страница" поставьте галочку и задайте следующее значение:
[node:field_page_title]

Недостаток в том, что если поле не заполнено, то в заголовке выводится текст с названием поля [node:field_page_title].

Вариант 2:
Вообщем стал я искать другой способ и решил данный вопрос через систему хуков слева и справа Smile

Для этого добавляем код в файл template.php с вашей темой. WOLQRU - заменяем на название вашей темы, field_page_title - заменяйте на название вашего дополнительного поля.

function WOLQRU_preprocess_html(&$variables, $hook) {
  if ($node = menu_get_object()) {
    $title = field_get_items('node', $node, 'field_page_title');
    if($title != false) {
          $variables['head_title'] = $title[0]['value'];
    }
  } else {
    $variables['head_title'] = drupal_get_title();
  }
}

Теперь если значение в поле CCK не задано - то выводится стандартное, если задано - то выводится значение из поля.