Всемогущий, Google, найди мне чего-нибудь!

Показаны сообщения с ярлыком Drupal. Показать все сообщения
Показаны сообщения с ярлыком Drupal. Показать все сообщения

четверг, 11 февраля 2010 г.

Автозаполнение профиля при создании материала (Drupal)

При работе с CMS Drupal 6.x появилась необходимость в автозаполнении профиля при создании одного из материалов обычным пользователем. Например, объявление на сайте должно сразу автозаполнить информацию о пользователе (чтобы последнему не пришлось по сто раз заполнять о себе информацию). Вот краткий порядок действий:
  • подключаем модуль Profile для того, чтобы пользователь могут заполнять данные о себе;
  • создаём пару полей (например, profile_fio и profile_address);
  • подключаем модуль CCK;
  • создаём новый тип материала;
  • добавляем в этот тип парочку новых полей;
  • при настройке поля, разворачиваем "Значени по умолчанию", потом PHP-код";
  • в него прописуем следующее (для выводы фамилии):
    global $user;
    profile_load_profile($user);
    return array(0=>array('value'=>$user-> profile_fio));
Аналогично последний пункт делается и для других полей профайла. Слишком кратко, конечно, но зато по делу. Будут вопросы - обращайтесь :)

вторник, 9 февраля 2010 г.

Настройка чистых ссылок в Apache для Drupal 6.x

В корне сайта Drupal существует файлик .htaccess. Открываем обычным блокнотом. Теоретически он будет пустой. Но возможны 2 варианта. Есть и третий вариант, когда файлик не виден, но его мы рассматривать пока не будем.

Он пустой
Копируем строки в тело файла.
<ifmodule>
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</ifmodule>

Он непустой
Ищем строку:
RewriteEngine off
и меняем:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Убрать "Подробнее о форматировании" (Drupal)

В папке темы, которую вы используете есть файл template.php. Если такого нет - создайте.
Теперь открываем этот файл и прописываем в него следующее:
<?php
function имятемы_filter_tips_more_info() {
return '';
}

function имятемы_filter_tips($tips, $long = FALSE, $extra = '') {
return '';
}
?>

Настройка Card number encryption в Ubercart

В папке вашего сайта (на локальной машине: home/mysitename/; на хостинге: mysitename/public_html/) создаём папку, например, ubercrypt. В настройках Ubercart (admin/store/settings/payment/edit/methods) в поле Сard number encryption key filepath: вводим ../ubercrypt. Нажимаем "Сохранить настройки".
Теперь Ubercart будет помещать туда ключи шифрования при оплате.

Создание нового блока (Drupal)

Например, необходимо создать блок сверху страницы. Назовём этот блок topmenu. В файле themename.info (themename - название используемой вами темы) описываем создаваемый блок:

regions[topmenu] = Верхний блок
Теперь в файле page.tpl.php просто выводим наш блок куда необходимо в виде:
<?php print $topmenu; ?>
После этого необходимо очистить кэш (admin/settings/performance), чтобы СMS Drupal мог подхватить только что созданный блок. После этого переходим на страницу блоков (admin/build/block) и видим, что появился новый блок, в который можно помещать данные.

Фильтрация материалов (Hotline)

На просторах нашего необъятного интернета существует довольно удобный справочник по компьютерной и бытовой технике: Hotline.ua. При переходе на какой-то из типов товаров можно производить фильтр по огромному множеству параметров, которые относятся к выбранной категории товаров. Например, жесткие диски можно динамически фильтровать по проивоздителю, цене, емкости и т.д.

Теперь я покажу как это можно сделать в CMS Drupal с помощью модуля Taxonomy Filter. Скачайте его, разархивируйте и скопируйте в папку 'sites/all/modules/' или 'modules/' (без разницы; CMS Drupal сканирует обе папки на наличие модулей).

Для начала подключим модуль Taxonomy (admin/build/modules), который входит в ядро CMS Drupal. После этого подключим модуль Taxonomy Filter и все его подмодули (рис. 1).

Рис. 1. Подключение модуля Taxonomy filter

Теперь необходимо создать несколько типов контента (admin/content/types) (которые будут олицетворять товар в интернет-магазине). Создадим, например, тип Жесткий диск (harddrive), Оперативная память(ram), Материнская плата(motherboard) и Видеокарта(videoadapter) (рис. 2).

Рис. 2. Создание новых типов материала

Переходим в раздел таксономии (admin/content/taxonomy) и создаём необходимые категории, по которым, собственно, и будет происходить фильтрация. Создадим 7 словарей (со вложенными терминами):
  • производители(Acer, Hitachi, HP, A-Data, Transcend) будет использовать все типы товаров;
  • емкость(менее 100, 100-200, 201-400, 500, более 500) будет использовать тип "Жесткий диск";
  • чипсет (AMD 960x, AMD 785G, Intel 965, Intel P45) будет использовать тип "Материнская плата";
  • интерфейс (внутренний, внешний) будет использовать тип "Жесткий диск";
  • цена (менее 50$, $50-100, $101-200, $201-400, более 400$) будет исользовать все типы товаров;
  • товары (материнские платы, жесткие диски, оперативная память, видеокарты) будет также использовать все типы товаров.
Если вам необходимо, то создайте дальше необходимые словари. Для тестового пример хватит и 7.

Теперь неоходимо настроить фильтрацию. Переходим в настройки модуля Taxonomy Filter (admin/settings/taxonomy_filter). Добавляем два меню. Первое (назовем его "Текущий фильтр") будет содержать текущие фильтры, Второе (назовем его "Доступные фильтры") - оставшиеся фильтры. Переходим в закладку "Mapping". В таблице в столбце "Refine Criteria" связываем наши два созданных меню, а в столбце "Vocabularies" при нажатии на кнопку edit указываем какими словарями какой словарь будет фильтроваться (рис. 3).


Рис. 3. Настройка связей между словарями.

После настроек необходимо показать блоки доступной и текущей фильрации. Для этого переходим в раздел блоков CMS Drupal (admin/build/block). В списке ищем "Taxonomy filter - refine criteria" и "Taxonomy filter - current criteria" и выводим в нужные вам блоки.

Теперь необходимо вывести Весь список товаров в отдельное меню. Делается это с помощью модулю Taxonomy menu. Опять же скачиваем, разархивируем и копируем в одну из папок, указанных в начале статьи. Подключаем этот модуль. Идем в раздел меню CMS Drupal (admin/build/menu). Нажимаем "Add menu" и создаем новое меню (назовем его, например, "Каталог товаров"). Никаких пунктов в него добавлять не надо. Далее в разделе словарей (admin/content/taxonomy) нажимаем редактировать словарь "Товары". На появившейся странице стали доступными дополнительные настройки только что подключенного модуля. Из списка "Menu:" выбираем только что созданное меню. В разделе блоков выводим его (admin/build/block).

Теперь самое интересное. Создайте товаров 20-30 разного типа. Далее нажмите на один из пунктов меню "Каталог товаров", например "Материнские платы". На странице выведутся все материнские платы. В одном из блоков должны были появиться доступные фильры (рис. 4).


Рис. 4. Получившийся результат

Надеюсь, я помог ищущим статьи по данным модулям.