Решение проблем

Невозможно создать файл

12 февраля 2009 в 11:47

Всем привет!

При попытке подключения модуля "локализации" выводит вот такую ошибку:

warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 43837 is not allowed to access /www/uuuq.com/d/f/g/dfgfd/htdocs owned by uid 2003 in /www/uuuq.com/d/f/g/dfgfd/htdocs/includes/file.inc on line 188.
warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 43837 is not allowed to access /www/uuuq.com/d/f/g/dfgfd/htdocs owned by uid 2003 in /www/uuuq.com/d/f/g/dfgfd/htdocs/includes/file.inc on line 188.
warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 43837 is not allowed to access /www/uuuq.com/d/f/g/dfgfd/htdocs owned by uid 2003 in /www/uuuq.com/d/f/g/dfgfd/htdocs/includes/file.inc on line 188.
warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 43837 is not allowed to access /www/uuuq.com/d/f/g/dfgfd/htdocs owned by uid 2003 in /www/uuuq.com/d/f/g/dfgfd/htdocs/includes/file.inc on line 188.

Если ставить уже русский drupal, то получается тоже самое.
Как с этим бороться?

Организация таксономии с глубиной

12 февраля 2009 в 11:44

Подскажите пожалуйста как сделать блок в котором будут отображаться термины таксономии, пример:
Азия
- Индонезия
-- Ломбок
--- Сенгигги
-- Бали
--- Нуса-Дуа
--- Танжун Беноа
--- Санур
Нужно чтобы просматривая материал который принадлежит термину Нуса-Дуа отображался блок "Другие районы Бали" и там Было (Санур, Танжун Беноа), и выше, например просматривая материал который принадлежит Бали, блок "Другие острова/курторы Индонезии" (Бали, Ломбок). Аналагично Азия.

Как оптимизировать запросы БД?

12 февраля 2009 в 11:38

Сегодня с утра меня порадовал мой хостер, который отрубил все мои сайты. Когда я полез к нему с кулаками вопросами, "какого..." "в чем дело?", мне вежливо ответили, что в папке /tmp/mysql_slow_queries/ лежат логи с медленными запросами в БД, и что - "you have to fix this slow queries".
Смысл в том, что нужно оптимизировать свои скрипты, чтобы БД стала летать. Простая оптимизация БД не убедила службу поддержки, нужно сделать что-то еще.

Подскажите пожалуйста, кто-нить сталкивался с подобными проблемами? Каким образом можно оптимизировать запросы БД в друпале?

P.S.: Вот пример из логов. Все "медленные" запросы разнообразны.

# Web Feb 11 14:04:08 2009
# Query_time: 3 Lock_time: 0 Rows_sent: 1 Rows_examined: 0
use jk
SELECT COUNT(*) FROM node_access WHERE (nid = 0 OR nid = 138) AND ((gid = 0 AND realm + 'all')) AND grant_update >=1

# Web Feb 11 14:58:00 2009
# Query_time: 2 Lock_time: 0 Rows_sent: 1 Rows_examined: 3
use jk_an
SELECT n.nid, n.vid, n.type, n.status, n.created, n.changed, n.comment, n.promote, n.sticky, r.timestamp AS revision_timestamp, r.title, r.body, r.teaser, r.log, r.format, u.uid, u.name, u.picture, u.data FROM node n INNER JOIN users u ON u.uid = n.uid INNER JOIN node_revisions r ON r.vid = n.vid WHERE n.nid = 1525

Выгрузка нод файлом.

12 февраля 2009 в 9:09

Очень нужна помощь. Есть сайт с ubercart, с помощью views создал просто прайс-лист, и надо как то добавить выгрузку. И вот не могу придумать, как сделать так, чтобы друпал создал файл с содержанием прайс листа, и отдал его человеку.

Подчиненные поля в материале.

12 февраля 2009 в 9:08

Есть к примеру тип материала Преподаватели, в нём указывается два поля "Факультет" и "Кафедра". С помощью Content Taxonomy они выбираются из словаря.
Словарь имеет вид:
Факультет1
-Кафедра1_1
-Кафедра1_2
-...
Факультет2
-Кафедра2_1
-Кафедра2_2
-...
...
Поле "Факультет" наполняется ТОЛЬКО терминами первого уровня, а поле "Кафедра" только терминами второго уровня.
Так вот задача, например, если я выбрал в поле факультет "Факультет1", то поле кафедра наполнялась значениями "Кафедра1_1","Кафедра1_2",...

Ubercart Как добавить доп. поля в оплату ?

12 февраля 2009 в 7:23

По адресу http://kalinared.com/cart/checkout оплата, там поля Имя: , Фамилия: , Адрес улица: , Город: и т. д. А как добавить ещё свои, может есть что-то типа CCK? Искал в инете - решений похожих нет, надо доделывать, смотрел исходный код рендерит форму функция function theme_address_pane($form) не нашел где она вызывается и правда как? В какую сторону копать ?

Вывод в блоке списка материалов автора ноды через Views.

12 февраля 2009 в 3:31

Создаете вид, активируете блок и заполняете его (типы видов, поля, фильтры, критерий сортировки и т.п.).
Далее в поле «Аргументов» добавляете аргумент «Пользователь: UID является Автором», выставляете в этой таблице «User Empty Text». Ниже расположено поле «Аргументы обработки кода», туда вставляете такой незатейливый код. Вписываете в него тип материала, где будет показываться блок:

if (arg(0) == 'node' && is_numeric(arg(1)) && !arg(2) && ($node = node_load(arg(1))) && $node->type == 'тип материала') {
  return array($node->uid);
}

Сохраняете.
Выводите блок.
Блок будет выводить материалы пользователя совместно с его нодами, но только в одном типе материала.

Недавно понадобилось чтобы блок отображался в двух типах материалов, нигде толком ничего не нашел. Слепил сам, методом тыка. В программировании я никак. Вроде работает, но тот кто разбирается - прошу проверить.

if (arg(0) == 'node' && is_numeric(arg(1)) && !arg(2) && ($node = node_load(arg(1))) && ( $node->type == 'тип материала1' || $node->type == 'тип материала2')) {
  return array($node->uid);
}

Пример что получилось.

Свежая ошибка 500.

12 февраля 2009 в 0:22

Здравствуйте, товарищи.

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

Примерно через 2-3 дня сайт упал, выдавалось "Запрашиваемая страница не найдена" и изредка ошибка 500 Internal server error
т.к. проект посещают 30-100 человек в день я первым делом почистил таблицы в базе данных, всё оптимизировал, установил в модуле poormanscron срабатывание на выполнения cron.php каждые полчаса, а в модуле dbmaintenance задал оптимизировать таблицы watchdog, *cache, system, acesslog, sessions после того как будет выполнен крон.
Кеширование среднее, кеш блоков, кеш яваскрипта, кеш очищал.

На сайте всего 3 пользователя и отключено комментирование.

Сайт пожил неделю, сегодня анализирую логи, вижу очень много ошибок страница не найдена и почему-то указан файл 500.shtml
сайт падает периодически в состояние "Запрашиваемая страница не найдена", при этом отрубаются все блоки по бокам, остается только тема оформления и эта надпись.
Обновление 10-15 раз - сайт снова работает.

Лазил по админке, через раз выкидывает с этим же сообщением.
Что удивило, когда сохранял настройки блока то выдало 2 строчки:
Настройки блока сохранены.
Запрашиваемая страница не найдена

Очень хочу понять, как он так - настройки сохранил, в вывод передал, а страницу нормально не загрузил.
Куда копать, что проверить?
Рад любому намёку и бредовому варианту, если у вас было подобное - напишите или пуляйте ссылками.

Атрибуты существ, или Выбор терминов таксономии.

11 февраля 2009 в 23:11

Доброго времени суток!

Таксономия сайта на данный момент представляет собой структуру, которую проще будет объяснить на примере:

1) Существа
Человек
Животное
Птица

Словарь 1 пока использую только для новостей.
Далее идут произвольные атрибуты (характеристики) каждого существа

2) Человек - Рост
100-120 см
120-140 см
...
3) Человек - Вес
20-40 кг
40-60 кг
...
4) Животное - По питанию
хищник
травоядное
...
5) Птица - Размах крыльев
10-20 см
50-80 см
...

И так далее

Заведены типы материала "Страничка Человека", "Страничка Животного", "Страничка Птицы". В настройках словарей атрибутов существ указаны типы материала, соответствующие существам, то есть у словарей 2 и 3 указан тип "Страничка Человека" и т.д.

Вся эта структура создана только для того, чтобы определить списки для выбора нужных атрибутов существа при создании его странички (например, создаем человека, "рост" выбираем 120-140, "вес" - 40-60, а характеристики "размах крыльев" у него нету).

У данной схемы один дольшой недостаток. Я использую на страницах существ однотипные поля CCK, которые вывожу потом с помощью views (например, "Фотография"). Мне нужно создавать по 3 однотипных поля c разными назывниями и по 3 разных view, по одному на каждый тип материала (не уверен, что с views нет обходного маневра, но найти его не удалось). А если потребуется 5 однотипных полей и 6 типов разных существ?

Хотелось бы