Задать вопрос
Drupal-разработчик

Профиль на Drupal.org: https://drupal.org/user/1399638
Профиль на StackExchange: drupal.stackexchange.com/users/2466/kalabro

Материалы для изучения Drupal 7: habrahabr.ru/post/202202
Контакты

Наибольший вклад в теги

Все теги (4)

Лучшие ответы пользователя

Все ответы (5)
  • Какое ваше мнение о Drupal?

    kalabro
    @kalabro
    Во-первых, я полностью согласна с @andead. Спасибо за отличный ответ, man!

    Позволю себе небольшие дополнения как битрикс-разработчик.
    1) Почему считается, что друпал сложно темизировать?

    Наговнокодить прямо в шаблоне большого ума не надо.

    Правильно темизировать и битрикс нелегко. Другой разговор, что оставить в шаблоне друпала $_SESSION в 100 раз хуже, чем оставить тоже самое в шаблоне битрикса. Процесс темизации и той, и другой CMS должен контролировать понимающий систему программист.

    2) Действительно ли друпал очень медленный? Медленней ли он того же битрикса?

    В битриксе каждый «блок» (часть страницы) можно независимо закешировать на основе идентификаторов групп пользователя, значений фильтра каталога и чего угодно. Обёртка $this->StartResultCache() как отче наш в любом коде и в стандартных компонентах из коробки. В итоге страница быстро собирается из кешей для людей с сессией, авторизацией и т.д. В друпале нужно стремиться к этому же, но для этого приходится писать свои кеш-плагины к Panels, шаманить с Expire и даже ESI и понимать всякие тонкости работы друпал-кеширования (drupalace.ru/tags/cache).
    В битриксе всякие панели производительности и мониторы качества из коробки. В друпале это "энтерпрайз"-услуга :)

    3) Этот вопрос к тем, кто имел дело с интернет-магазинами на друпале: стоит ли вообще делать на нем интернет-магазины? Мое мнение таково, что удобнее на битриксе

    Для России того же мнения придерживаюсь. Видимо, потому что умею запускать магазины на битриксе и не умею на друпале.

    5) Есть люди, которые сравнивают инфоблоки битрикса с нодами друпала. Как по мне - ноды в кипе с таксономией в пух и прах разбивают инфоблоки. У кого другое мнение и почему?

    Инфоблоки гораздо мощнее просто нод из коробки. Опыт работы с тем и другим >2 лет. Сравнивать можно сущности в друпале и инфоблоки в битриксе. Вот здесь уже друпал (вместе с Entity API, конечно) смотрится гораздо серьёзней и гибче. Битрикс выглядит глупо, когда нужно что-то странное, друпал же позволяет воротить что угодно.

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

    Webform/Entityforms гораздо проще битрикса в плане собственно форм, просто надо привыкнуть. А вот email-подсистема в друпале послабее. В друпале если что-то делают, то только со вселенским размахом :) Как пример, Message Stack :)

    Действительно ли вам показался друпал сложным в освоении (как программистам, разумеется) в сравнении с другими системами?

    Спустя 2 года я нахожу что-то новое и очень крутое в друпале или благодаря друпалу. Не могу ответить на этот вопрос, т.к. продолжаю учиться :)

    Как вы темизировали хлебные крошки и постраничную навигацию?

    Пользуясь случаем, пропиарю модуль Path Breadcrumbs, ко-мейнтейнером которого гордо являюсь. В нём переопределяется theme_breadcrumb() для добавления поддержки Rich Snippets: drupalcode.org/project/path_breadcrumbs.git/blob/c...
    С помощью того же hook_theme_registry_alter() вы можете заставить крошки темизироваться через файл, а не функцию.

    Друпал люблю больше из-за качества кода и сообщества.
    Ответ написан
    4 комментария
  • Есть ли аналог функции dbDelta из Wordpress в Drupal 7?

    kalabro
    @kalabro
    Изменения схемы таблиц указываются явно в хуках-обновлениях.
    Например, чтобы увеличить размер поля типа varchar нужно сделать нечто такое (источник):

    /**
     * Enlarge URL field size for popular content database table.
     */
    function yandex_metrics_reports_update_7202() {
      db_drop_unique_key('yandex_metrics_reports_popular_content', 'url');
    
      db_change_field('yandex_metrics_reports_popular_content', 'url', 'url', array(
          'description' => 'The url obtained from Yandex.Metrika.',
          'type' => 'varchar',
          'length' => 2048,
          'not null' => TRUE,
          'default' => ''
        ),
        array(
          'indexes' => array('url' => array(array('url', 255))),
        )
      );
    }

    Далее нужно запустить процесс обновлений, перейдя по ссылке /update.php.

    Здесь разработчик сам работает с базой, используя функции db_ (например, db_rename_table, db_change_field, db_field_set_default и т.д.) Друпал за него это делать не будет, чтобы ненароком не повредить данные :)
    Есть модули, которые показывают разницу между схемой в модуле и реальным положением вещей в базе: https://www.drupal.org/project/schema, но изменения вносятся автором модуля.
    Ответ написан
    1 комментарий