mrhuge: Блог

Главные вкладки

Что будет, если базу данных перенести из cp1251 в utf8?

11 ноября 2011 в 2:37

Приветствую, друзья!

Уже сломал голову. Может кто подскажет, всё ли правильно делаю.

Не зная, что для Друпала желательно создавать БД в utf-8, сделал сайт на хостинге, где по умолчанию создавались базы в кодировке cp1251. Но хотя база создалась в cp1251, сами таблицы созданы (видимо самим Друпалом) в utf-8 (согласно phpmyadmin). Переезжая на другой хостинг, узнал, что нужно все-таки utf-8. Создал на новом хосте вручную базу в utf-8, проинсталлировал свой сайт и с помощью Backup & Migrate восстановил базу.

После этой операции вроде всё работает, как раньше, никаких кракозябров на страницах не наблюдаю. Подозреваю, что это возможно из-за того, что сами таблицы как были в utf-8 так и остались, хотя сама база стала из cp1251 в utf-8.

Как думаете, всё правильно сделал? Или лучше не рисковать и создать базу в cp1251, как было раньше во избежание возможных глюков? Они могут всплыть? Или быть может как-то более правильно проконвертировать базу в utf-8? На новом хосте вообще по умолчанию создаются базы в кодировке latin1.

Создание шаблона для вывода нужных полей статей (нод/node)

21 октября 2011 в 1:48

Привет всем.

Имеются: статьи с картинками,
Цель: настроить вывод этих статей, отобранных по терминам таксономии (категориям), через свой шаблон. Например, сделать шаблон вывода только картинок статей в любом нужном месте сайта. Например, как маленький модуль "последние работы портфолио" в левой колонке сайта или как большой модуль в центральной колонке "все работы портфолио".

Перелопатил кучу материала по указанной теме на этом форуме, а также на drupal.org. Большинство предлагаемых решений устарело - они для drupal 6. А также многие решения излишне сложны - создается куча функций с кучей переменных, вплоть до правки самих модулей Друпала. Также одно из решений - просто использовать модуль Views, настроить через него вывод нужных полей нужным способом. Но реально есть ли смысл ставить Views? Он будет жрать ресурсы сервера.

У Drupal 7 достаточно мощный API. Думаю можно просто с его использованием отобрать нужные статьи по термину таксономии. Так вот, предлагаю следующее решение:

Создаем page--node--1.tpl.php в текущей теме Друпала. Это для того чтобы вызвать по адресу http://сайт/node/1 свой шаблон страницы. И в коде этого файла прописываем:

<?php $tax = '6'; // здесь мы присваиваем переменной значение нужного термина таксономии

$nids = taxonomy_select_nodes($tax); //с помощью этой функции отбираем ноды по термину таксономии
$nodes = node_load_multiple($nids); // с помощью этой функции загружаем все нужные ноды

foreach ($nodes as $key) { //перебираем все полученные ноды