Блог пользователя - Tankha

[Решено] Перенос сайта на другой хостинг (The mysql error was: The database type is unsupported. Please use either 'mysql' or..)

19 октября 2009 в 19:57

Немного нестандартная ситуация, хотя точно по теме (РЕШЕНИЕ проблем :)).
В том смысле, что я не спрашиваю совета, а наоборот: проблема решена и я решил поделится потому что даже Гугл выдал мне около 10 ссылок по теме когда я искал решение.

Промучался ночь пытаясь перенести сайт на другой хостинг. Вроде всё нормально и правильно сделал, но все время получал ошибку подключения к mySQL-базе.
Правил вручную файлы на которые ругалось (в папке includes) но ничего не помогало. Ругательства на неправильные пути исчезли и просто - сайт офлайн и ошибка подключения к mysql.

Решение оказалось до обидного простым.
Установить отдельно чистый Drupal, - подсмотреть там настройки коннекта и, главное: просто скопировать всю папку includes с "начисто" установленного пустого движка на движок перенесенный.
После этого всё заработало как часы.

P.S.
Причем что интересно даже версия не критична - мой "чистый" был намного более поздней версии чем переносимый. Просто папка includes, насколько я понимаю мало модифицируется от версии к версии.
Неадеюсь это сообщение попадет в поисковики и люди не будут биться об стену как я. Smile

P.P.S
Т.е. порядок действий такой (как я это делал).

1. Устанавливаю на новый хостинг версию Drupal такую-же как у сайта что нужно перенести (или близкую). Убеждаюсь что пустой сайт работает (достаточно минимальной стандартной конфигурации).
2. Забираю оттуда папку includes и файл sites/default/settings.php (переименовываю например).
3. Всё остальное - удаляю: файлы, папки и саму базу пустого, чистого движка.

Как отфильтровать вывод списка нод на главной?

14 июня 2009 в 15:01

Очень долго бьюсь и никак не могу определить - как можно сделать так, чтобы на главной выводились только те ноды которые прошли анализ в моем коде (на предмет - выводить их или нет).
Пока решил задачу просто - хакнул ядро (node.module). Отключил pager в node.module и сделал анализ (выводить-не выводить тизер) в node.tpl.php темы.

Но это ведь совсем как-то криво...

Пересмотрел все хуки - не увидел ничего похожего на то что мне нужно. Sad

[Решено] Content Template vs темизация в node.tpl.php

4 июня 2009 в 13:33

Если написать в шаблоне материала (Content Template) что-нибудь вроде:

$node->links['ИМЯ-ССЫЛКИ']= '<a href="' . $переменная_ссылки . '">ПРИМЕР</a>';

то это срабатывает сразу и в ноде выводится вместо соответствующей ссылки - 'ПРИМЕР'.

А в node.tpl.php - это уже не работает.

В node.tpl.php работает только такая конструкция:

        if ($links) {
        $node->links['ИМЯ-ССЫЛКИ']= '<a href="' . $переменная_ссылки . '">ПРИМЕР</a>';
        $links = theme_links($node->links);
        echo '    <div class="links">&raquo;' . $links . '</div>';
        }

Почему так?

Точно так же в node.tpl.php: $node->content и $content - не одно и тоже. $node->content - это массив, $content - это строка с отформатированными данными.
Любые изменения в $node->content уже не отражаются в $content.
Если для $links существует функкция позволяющая пересобрать строку, то для $content я такой функции не нашел.

Можно ли пересобрать $content аналогично $links в примере выше?

P.S.
Мне нужно тем же способом изменить вывод CCK (в node.tpl.php). Например поле User Reference сделать справа.

CCK, User Reference - список юзеров (как получить?)

30 мая 2009 в 16:32

Стыдно признаться, но очень долго ковыряюсь и не могу получить список CCK, User Reference (нужны хотябы ID юзеров поля).
Нашел одно решение, но оно совсем кривое (хотя работает) - через перебор массива.

Как перехватить ноды у модуля

25 мая 2009 в 18:46

Есть модуль который ограничивает доступ к нодам так, что другой модуль их просто не видит - как будто их нет.

Есть этот второй модуль который обратабатывает ноды, увиденные после первого.

Можно ли максимально простым способом влезть между ними - т.е. просмотреть все доступные после обработки первым модулем ноды и отдать второму только те которые из этих допущеных нужны, при этом сделать как первый - так чтобы второй их просто не увидел.

Подскажите - в каком направлении копать?

Настройки пользователей - где хранить?

24 мая 2009 в 22:02

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

CMS или CMF?

24 мая 2009 в 13:34

Не знаю будет ли это сообщение полезным, но в процессе размышления и работы над своей задачей пришел к тому, что не совсем хорошо понимал чего я хочу от Drupal и я решил записать свои мысли.
Контент-менеджерские системы все имеют одно общее свойство - они хорошо справляются с теми задачами для которых уже есть типовые решения и плохо - с теми задачами, для которых таких решений нет. Попытка слепить из готовых модулей что-то свое, пользуясь некоторыми границами универсальности этих модулей, приводит к постоянному балансированию на грани "а может плюнуть и сделать всё с начала своими руками?".
У меня это было до тех пор, пока я не понял что все стандартные средства и дополнительные модули можно условно разделить на две группы.
1. Работа с данными
2. Оформление вывода, внешний вид.

До тех пор в способах решить свои задачи была какая-то каша и непонимание проблем и путей их решения.

[Решено] User Reference в поле CCK + email Как связать?

17 мая 2009 в 21:05

Уперся в одну проблему - никак не могу решить.
Как бы сделать так чтобы при выборе юзера в User Reference в поле CCK ему автоматом отправлялся емайл? При создании материала и при изменении. Нашел модуль для работы с почтой, но он никак не связан с User Reference CCK.
Может есть что готовое? Подскажите плз.
Спасибо

Чего бы очень хотелось...

3 сентября 2008 в 6:19

Вчера ночью мне снился Drupal. А утром я попытался представить себе CMS которую бы я хотел.
И вот какие мысли получились.
Хотелось бы, чтобы центральным узлом из которых состоит сайт был не документ, а элементы этого документа (не типы, а замполненные информацией готовые эелементы на базе заранее установленных типов). В идеале - что-то похожее на ССК, только чтобы поля, рисунки и т.п.не вносились бы жестко и заранее в тип документа, а можно было бы вставлять их на лету. Причем не типы и сами элементы.
Т.е. была бы упорядоченная вручную база элементов (рисунков, кусков текста, таблиц, значений ячеек таблиц, фраз, значений числовых полей, блоков, условий) и в окне редактирования документа можно было бы составлять документ из этих элементов.
В сайте часто встречается дублирующаяся информация, редактирование которой во всех местах утомительно. А так можно было бы редактировать не узел (ноду), а зайдя в эту заранее составленную и упорядоченную базу - содержимое элементов (из которых состоят ноды), и эти изменения отражались бы сразу во всех местах, всех нодах.

Тогда бы процесс редактирования имел бы две составляющих - редактирование нод (редко) и редактирование элементов в видимой модератору базе (чаще всего).

А сейчас даже ноды в разделе управления-редактирования документов идут одним списком - не структурированы (или структурированы под пользователя, а не админа).

Разбивка на страницы

31 августа 2008 в 12:04

Разбивка на страницы с помощью CCK и Contemplate.
Это НЕ АВТОМАТИЧЕСКАЯ разбивка - т.е. страницы формируются вручную.

1. Необходимо установить модули CCK и Contemplate. Включить их и настроить разрешения.

2. В разделе "Типы материалов" (САЙТ/?q=admin/content/types) напротив каждого типа (страница, страница подшивки, новость...) появляется две новых ссылки "add field" и "manage fields".
Нажимаем напротив нужного типа (например напротив "page") - "add field". Добавляем машинное имя (маленькими буквами) и "человеческое" имя. Я назвал поле соответственно: filed_next_page - Следующая страница.
Жмем "Продолжить", - выбираем параметры поля. Для Widget type - Text area (multiple rows). Опять нажимаем "Продолжить". Здесь важно назначить в параметрах поля два пункта: выбрать для "Обработка текста:" - фильтрованный текст, а перед ним "Number of values:" - неограниченно. Остальное можно оставить как есть.
Теперь в режиме редактирования материала "page" (страница) увидим новые текстовые поля. Их сразу два и если заполнить не только первое, но и второе поле, то после сохранения появится третье новое и т.д. - в неограниченном количестве.

Путевые заметки

15 августа 2008 в 10:16

Не знаю правильно ли я понял назначение блога - что это что-то вроде дневника в котором можно записывать свои мысли по поводу Drupal а не только тщательно фильтровать проблемы.
Вообщем все время думаю над тем, правильный ли я сделал выбор - Drupal. Пока вродебы интуитивно - да. Хорошо, когда есть некое ядро, за которым следят другие люди, освобождая мне время на то, чтобы отдать все силы на разработку сайта, не заботясь об обновлениях или фиксах.
Не очень нравится то, что никак не могу ухватить суть - многое приходится делать наугад и не зная - лучший ли выбрал вариант.
В идеале мне необходимы минимальные функции (чтобы не загружать сервер). К примеру Views я так и не смог поставить - выделенных хостером 35 мБ памяти для этого модуля не хватает.
Что мне собственно надо.
1. Нужно разделение кода страницы и содержания, чтобы содержание могли править модераторы.
2. Нужно, чтобы узлы (ноды) можно было связвать произвольными пересекающимися иерархиями.
3. Нужны некоторые страницы недоступные модератору - целиком состоящие из кода.
Это основное.

book - после обновления слетает вся подшивка

14 августа 2008 в 13:49

У модуля book есть одно странное неприятное свойство.
После каждого обновления (у меня уже 2 раза) слетает полностью все дерево подшивок. (т.е. документы вылетают из подшивки - сбрасывается родительская страница у всех документов)
Видимо прийдется отказаться от него или не обновлять.

Оглавление книги с описаниями под заголовками дочерних страниц.

12 августа 2008 в 2:32

Жаль пропали все закладки.
Там была тема где мне подсказали в каком направлении копать, за что большое спасибо. Я сделал вывод дочерних страниц книги, где на родительской выводится не только заголовки, но и краткое содержание дочерних. Для 6-ки.
Ключевые моменты.
1. Скопировал файл book-navigation.tpl.php из каталога станддартного модуля book в каталог темы. Потом сделал очистку кеша. После этого правим этот файл в каталоге темы. Работать дальше будет он, независимо от обновления модуля book.
2. Вместо вывода $tree вставил свой код. Используя arg(1) получаю номер текущей ноды. Делаю запрос к базе к таблице book. В запросе поле nid должно быть равно arg(1). Результат запроса - поле mlid.
3. Потом сделал запрос, в котором вытащил из таблицы menu_links все строки в которых plid равно "вытащеному" равнее из предыдущей таблицы mlid. Дальше дело техники.
4. Чуть не забыл - сортировка по полю weight во втором запросе.

Второй запрос идет по трем таблицам - необходимое описание подтягивается через первую.

Самое смешное что я пару моментов сам не понял почему надо делать так как я сделал - за основу был взят код отсюда:
http://drupalcookbook.ru/recept/vyvesti-polnoe-soderzhanie-vseh-knig-boo...