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

Два сайта с общей MySQL базой

Аватар пользователя Tankha

Ув All.
Есть сайт, выполняющий функции внутренней системы организациооного учета (по-сути сайтом не является в привычном понимании). Соответственно ни о какой нагрузке в тысячи пользователей речь не идет.
Возникла идея пернести MySQL-базу с хостинга на комп, стоящий в офисе (благо имеется белый IP), поскольку MySQL у хостера жутко тормозит (полный перенос нецелесообразен в виду необходимости качественного доступа вне пределов офиса). И это потянуло за собой следующую идею - может на тот же офисный комп перенести и копию (дубль) самого сайта? Т.е. для внешних пользователей будет работать сайт лежащий у хостера, а внутри офиса можно будет использовать клон находящийся на внутриофисном компе. При этом база MySQL будет общая и лежать она будет именно на внутриофисном компе
В связи с этим просьба к друпал-профи - выскажите pls свое мнение.
1. Канал к офисному компу узкий. Насколько критичен канал - какой порядок цифр примерного трафика между файловой частью и SQL? Где будут бОльшие тормоза - на слабом SQL-сервере (это если я правильно понял вообще слабое место drupal) или в потоках между файловой частью и SQL-сервером. И еще - где больший трафик - между файловой частью и SQL или между файловой частью и клиентским компом? Проводил ли кто подобные замеры? :)
2. Будет ли работать схема с двумя сайтами. Например если случится ситуация одновременного доступа одинаковых запросов с разных сайтов (например на добавление данных) - не повредятся ли эти данные?

0 Спасибо

Синхронизация двух одинаковых сайтов (зеркал)

Аватар пользователя Tankha

Возможно ли сделать два одинаковых сайта - например один у хостера, а второй в офисе (на более мощном компьютере с более быстрым доступом, но слабым каналом), так чтобы любые данные вносились в обе базы (у хостера и локально) - одновременно?

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

Подскажите плз насколько это реально в принципе и стоит ли копать в этом направлении (или это заведомо пуста трата времени)?

0 Спасибо

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

Аватар пользователя Tankha

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

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

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

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

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

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

0 Спасибо

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

Аватар пользователя Tankha

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

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

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

0 Спасибо

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

Аватар пользователя Tankha

Если написать в шаблоне материала (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 сделать справа.

0 Спасибо

Два Drupal ядра для одного сайта

Аватар пользователя Tankha

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

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

0 Спасибо

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

Аватар пользователя Tankha

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

0 Спасибо

Рейтинг ресурсоемкости

Аватар пользователя Tankha

Есть для модулей Drupal что нибудь вроде рейтинга ресурсоемкости, для того чтобы оценить целесообразность установки того или иного модуля ДО его установки?
Конечно такой рейтинг если и есть то наверняка субьективный, но хоть какой-нибудь...

0 Спасибо

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

Аватар пользователя Tankha

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

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

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

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

0 Спасибо

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

Аватар пользователя Tankha

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

0 Спасибо

CMS или CMF?

Аватар пользователя Tankha

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

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

0 Спасибо

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

Аватар пользователя Tankha

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

0 Спасибо

Групповой планировщик

Аватар пользователя Tankha

Здравствуйте ув. алл.
Директор поставил задачу быстро и без дополнительных затрат сделать групповой планировщик-органайзер. За последние дни пересмотрел кучу готовых решений от Lotus до Project. В результате пришел к выводу что нужно делать всё не в Интранет а в Интернет на родном хостинге. Слава Богу дизайн никакой не нужен :).
За пару дней перерыл кучу CMS и в результате вернулся к старому знакомому - Drupal. Похоже здесь есть всё что нужно.
Даже больше - здесь столько всего, что незнаю из чего это всё мне конструировать...
Посоветуйте - какой минимальный набор модулей поможет решить эту задачу: В какую сторону хотябы смотреть.

P.S.
Должно быть хорошее разграничение по пользователям, чтобы ответственный мог назначать задачи другим пользователям и отслеживать их выполнение в виде дневника-переписки-форума (т.е. дневник задачи и дневник пользователя со списком лент переписок по задачам). При этом другие ничего не видят, но можно всегда подключить дополнительных пользщователей к доступу и/или редактированию задачи.
Желательно влепить календарь и напоминалки-уведомления по емайл.

Посоветуйте минимальный набор модулей - из чего это всё лепить (так чтобы из за ограничений хостера не падал сайт: лимит оперативной памяти - 42 МБ)? :)

0 Спасибо

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

Аватар пользователя Tankha

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

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

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

0 Спасибо

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

Аватар пользователя Tankha

Разбивка на страницы с помощью 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" (страница) увидим новые текстовые поля. Их сразу два и если заполнить не только первое, но и второе поле, то после сохранения появится третье новое и т.д. - в неограниченном количестве.

0 Спасибо

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

Аватар пользователя Tankha

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

0 Спасибо

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

Аватар пользователя Tankha

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

0 Спасибо

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

Аватар пользователя Tankha

Жаль пропали все закладки.
Там была тема где мне подсказали в каком направлении копать, за что большое спасибо. Я сделал вывод дочерних страниц книги, где на родительской выводится не только заголовки, но и краткое содержание дочерних. Для 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-book-sajte-vide-ierarhii

0 Спасибо