Автор: Harzah
Дата сообщения: 14.06.2004 23:47
Не могу сказать, что я такой уж большой специалист по Drupal, но на некоторые вопросы отвечу. Мне просто нравится логичность построения структуры этой CMS, но логика в стратегии развития и здесь также далека от программистов, как и везде в других продуктах.
1. Насколько я понимаю речь идёт о выдаче текстов? Да, к сожалению, должен вас огорчить, Drupal - это полностью динамичная CMS, фильтры и всё вообще здесь создаётся на стадии выдачи документа пользователю (это хорошо, конечно, потому что всё изменяется "налету"), что в тоже время иногда приводит к некоторой "медлительности". Для минимизации этого недостатка, опять же, используется кэш БД (хорошее решение, на самом деле и мало где используется), что на мой взгляд если и повышает скорость выдачи документов, но зато, в свою очередь, добавляет ещё больше проблем увеличивая нагрузку на БД. А если ещё прибавить сюда то, что буквально всё хранится в БД (в том числе и переводы и хелпы), то получается достаточно грустная картина.
Локализация такая же, динамическая. То есть, прямо в тексте модулей, ядра и всех скриптов разработчики пишут текст (на английском) потом его можно перевести на любой другой, но всё это хранится в БД, английский текст заменяется на неанглийский динамично, потом это кэшируется, но на больших сайтах модуль locales (который всем этим занимается) иногда занимает очень уж много памяти, до 30-40%. Есть правда и альтернативные варианты, ввиде .po файлов. Но пока это не всегда и не везде работает и не поддерживается официальными разработчиками.
2. В принципе, если вы захотите себе сделать такое, то просто напишите модуль для Drupal и он будет действовать на весь Drupal и на все другие модули благодаря очень тесной интеграции. Это то, что мне в Drupal нравится, в отличие от первого (то, что описано мной выше), например. Как может быть у документа два родителя я, если честно, плохо себе представляю, если речь идёт о том, что один документ возможно соотнести с несколькими разделами, то это вроде присутствует, но я не уверен... Даже если это и есть, я этим не пользуюсь в настройках.
3. Нет, скорее всего, Drupal - это не объектная среда, здесь нет собственно говоря и объектов. Здесь есть только документы, которые соотносятся с определённой таксономией, а она с модулями. Более того, нет отдельных элементов, для которых возможно было бы создать какие-либо параметры. Так, например, чистый текст в определённую папку не положишь и не применишь к этой папке какие-либо параметры. Хотя подобный модуль, я думаю, можно будет написать, но на этом не строится структура Drupal'a. Зато, например, существует разделение по таксономии. Если и можно создать объектную модель, которая бы нормально работала, то я думаю, это возможно только так. То есть, создаётся раздел таксономии, ему даются определённые свойства и все документы в этом разделе будут этим свойством наделены.Но, к сожалению, пока это возможно только с помощью модулей (то есть, для новых своейств разделов требуется создавать модуль, который бы эти свойства поддерживал). В будущем планируется, я думаю, создать что-то вроде простого управления параметрами разделов, но пока этого нет.
Что же касается шаблонов и программирования, то к сожалению, в этом я не силён. Они написаны на php и я подозреваю, что с их помощью можно сотворить всё что угодно, главное, чтобы шаблон это учитывал. Не знаю, ответил ли я на ваш вопрос, но кое-что вроде прояснил...