Где в друпале файлы

Обновлено: 05.07.2024

Способ 1. Используем стандартные средства ssh

Не самый простой способ резервного копирования, но позволяет достаточно быстро сделать архив сайта при невозможности использовать drush. Также этот способ позволяет очень гибко задать параметры архивации файлов, то есть, например, можно исключить некоторые подкаталоги из каталога сайта, добавив ключ архиватора tar. Это нужно в том случае, если, например, какой то подкаталог представляет из себя большое хранилище аудио или видео контента, размер которого может быть в сотни и тысячи раз больше самого сайта.
Этот способ можно широко использовать при написании bash скриптов.

Резервное копирование

Делаем бэкап базы данных

Архивируем бэкап MySQL и папку сайта

После этих манипуляций мы имеем архив сайта (backup_site.tar.gz) и архив базы данных (backup_sitedb.tar.gz)

Восстановление из резервной копии

Для восстановления из резервной копии достаточно разархивировать архивы

Восстановить базу данных из файла на сервере

Способ 2. Используем drush

На мой взгляд самый простой способ резервного копирования, но работает только в свежих версиях drush.

Резервное копирование

Переходим в корневой каталог сайта и выполняем команду

Восстановление из резервной копии

Для восстановления выполняем следующую команду

Стоит отметить, что в последней команде в качестве имени пользователя и пароля к БД были заданы root и password — это сделано для того, чтобы drush смог создать новую базу. Также можно удалить имеющуюся базу sitedb и тогда можно восстанавливать c теми же именем пользователя и паролем, которые были указаны в settings.php архивируемого сайта.

Способ 3. Используем модуль Backup and Migrate в связке с Backup and Migrate Files

Отличный модуль, позволяющий быстро сделать архив сайта и базы данных Drupal, при этом не нужно подключаться по ssh. Правда первоначальная установка все таки потребует подключения в терминал.

Для начала работы необходимо установить данные модули с официального сайта:
Backup and Migrate
Backup and Migrate Files
Чтобы заработал модуль Backup and Migrate Files необходимо:

Далее на странице конфигурации модуля admin/config/system/backup_migrate можно выбрать что и куда архивировать.

Перенос Drupal сайтов на другой хостинг

Для осуществления переноса сайта выбираем один из вышеприведенных методов резервного копирования и выполняем следующие действия:

  1. Создаем резервную копию Drupal сайта.
  2. Выполняем перенос архива сайта и базы данных на новый хостинг. Для этого можно использовать команды scp, rsync, или просто через ftp.
  3. Восстанавливаем сайт из резервной копии.
  4. Изменяем записи на DNS сервере, указав новый IP адрес сервер нашего сайта.

После обновления DNS серверов мы получим полностью рабочую версию нашего сайта на новом хостинге. На этом перенос Drupal сайта можно считать оконченным.

пт, 06/22/2012 - 07:27

пт, 06/22/2012 - 08:04

Спасибо, попробую эти модули, о результатах отпишусь;)

чт, 08/02/2012 - 08:08

А при смене домена что какие настройки надо сменить в друпале?

чт, 08/02/2012 - 08:30

при смене домена в Drupal можно ничего не делать, все должно работать. Главное веб сервер должен быть настроен на новый домен.

Добавить комментарий

Меня зовут Агабеков Роман я и моя команда специализируемся на поддержке инфраструктуры, администрировании серверов для Drupal проектов.

Продолжая серию статей о полезных функциях Drupal API, предлагаю рассмотреть еще две - для формирования URL файлов и путей к картинкам в определенном стиле.

Формируем путь к файлу в Drupal

При загрузке файлов в поля типа "Файл" любых сущностей Drupal (ноды, пользователи, термины таксономии) файлы помещаются в папку sites/default/files или во вложенные в эту директорию каталоги. При этом в базе данных сайта в таблице file_managed создается запись, включающая унифицированный идентификатор (URI) файла, например "public://04_0.jpg". Это означает, что в папке, предназначенной для загрузки общедоступных файлов (см. раздел admin/config/media/file-system), имеется файл 04_0.jpg. Наша задача - сформировать URL этого файла, чтобы затем использовать его, например, для вывода изображения или ссылки на скачивание.

Для решения этой задачи в Drupal API служит функция file_create_url(), аргументом которой является URI, а возвращаемым значением – путь к файлу на сервере. Пример:

Формируем путь к файлу изображения в определенном стиле

В Drupal имеется удобный функционал по генерации изображений в различных стилях, который значительно расширяется модулем ImageCache Actions, позволяющим применять к картинкам сложные эффекты (наложение «водяных знаков», обесцвечивание, поворот и т.д.). Созданные в определенном стиле картинки хранятся в папке, название которой совпадает с машинным именем стиля. Так, миниатюры изображений в стиле thumbnail будут находиться в каталоге sites/default/files/styles/thumbnail/public (public – для общедоступных файлов). Соответственно может возникнуть задача – получить не просто URL файла исходного изображения, а адрес картинки в определенном стиле.

Для получения адреса изображения в заданном стиле в Друпале имеется функция image_style_url(). Ее первым аргументом является машинное имя стиля изображения, а вторым – URI файла картинки. Пример:

<?php
print image_style_url ( 'thumbnail' , 'public://04_0.jpg' ) ; /* Выведет '<a href="http://mysite.com/sites/default/files/styles/thumbnail/public/04_0.jpg?itok=kj2a-7zs"">http://mysite.com/sites/default/files/styles/thumbnail/public/04_0.jpg?itok=kj2a-7zs"</a> */
?>

Краткий курс молодого бойца пройден - теперь вы знаете что такое друпал и как с ним работать. Настало время рассказать о том, ради чего был создан этот сайт - о создании шаблонов(тем) для друпала.

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

Файл, без которого друпал не поймёт что это шаблон для него - это файл названиеТемы.info, в нашем случае - mytheme.info. Внутри него содержится вся информация о вашей теме. Его можно разбить на 4 подчасти:

Описательная часть

Она выглядит следующим образом :

  • name = mytheme (имя вашей темы)
  • description = my first theme (описание, можно на русском языке)
  • screenshot = screenshot.jpg (файл с маленьким скриншотом темы)
  • version = 1.0 (версия темы - для разработчиков, можно убрать)
  • core = 6.x (Версия друпала, для которой создана тема)
  • engine = phptemplate (ядро друпала)

Эту часть можно просто скопировать и вставить в начало файла. Она является обязательной. Без остальных можно жить, а без этой - никак.

Создание регионов

Регион - это место для помещения блоков из друпала. Т.е. на сайте можно будет создавать блоки, и помещать их в регионы, описанные в info-файле.

Синтаксис описания блоков следующий:
regions[имя_региона] = имя региона
потом имя_региона будет доступно в шаблоне в качестве пхп-переменной, т.е. $имя_региона

Пример
regions[right] = right sidebar
Нам будет доступна переменная $right, которую мы можем выводить в файле page.tpl.php (о нём мы поговорим чуть пожже) следующим образом:

или же обернув в хтмл-код, чтобы этим регионом можно было управлять:

Объясняю откуда появилось столько кода: часть if ($right) проверяет, есть ли в нашем регионе хотя бы 1 блок. Если нет - то в финальном коде программы никакого текста, в том числе и хтмл-кода нет. Если же в регионе есть 1 или более блоков, то они автоматически окажутся между тэгами <div > и </div>, что в дальнейшем позволит нам управлять стилями этого блока из css-файла.

"Подключательная" часть

Здесь к теме подключаются дополнительные файлы, будь то css-файлы или javascripts-файлы.
Для css синтаксис следующий:
stylesheets[all][] = файл.css или stylesheets[all][] = путь к файлу/файл.css

Пример

Для JavaScript'ов синтаксис такой:

Пример

Файлы ещё можно подключать в файле page.tpl.php между тэгами <head></head>, однако этот способ считается некошерным для друпала.

Часть, в которой описываются "примочки" сайта

Она необязательная. В ней описываются фишки сайта, которые будут доступны.
синтаксис:
features[] = название фичи

Все доступные фичи сайта:

  • features[] = logo (разрешает логотип на сайте)
  • features[] = name (разрешает отображать имя сайта через переменную $site_name)
  • features[] = slogan (разрешает отображать слоган сайта через переменную $site_slogan)
  • features[] = mission (разрешает отображать миссию сайта через переменную $mission)
  • features[] = node_user_picture (разрешает показывать в статьях аватарку автора)
  • features[] = comment_user_picture (разрешает показывать в коментариях аватарку автора)
  • features[] = search (разрешает использовать поиск на сайте)
  • features[] = favicon (позволяет подключать свою иконку к сайту)
  • features[] = primary_links (разрешает использовать первичное меню)
  • features[] = secondary_links (разрешает использовать вторичное меню)

Итак, я перечислил всё содержимое info-файла. Теперь я покажу как в целом виде обычно состоит его начинка на примере файла из темы fervens:



Встроенный в ядро 8й версии редактор CKeditor умеет вставлять картинки. Загрузка картинок, которые пользователь вставляет в область текста, производится в папку sites/default/files/inline-images, а чтобы найти и выбрать ранее загруженные картинки, нужно работать с файлами на странице Содержимое - Файлы. Подробнее о том, как работать с медиа-файлами (картинками) в 8 Друпале, расскажет следующая статья.

Картинки в Друпале 8: простое добавление котят

Недавно выпущенный Друпал 8 достаточно хорош при работе с картинками.

В эпоху Друпала 5-7 одна из главных претензий редакторов сайтов была жалоба на очень неудобный редактор текста из коробки и отсутствие возможности загружать картинки. Действительно, необходимость установки и настройки редактора WYSIWIG или медиа-библиотеки в виде отдельных модулей представляла большую проблему при выборе Друпала в качестве CMS блога или новостного портала. Конкурирующие CMS, например, WordPress, предлагали это из коробки с ранних релизов, поэтому работа с текстом WordPress стала стандартом современных CMS. Может быть, поэтому так мало блогов с фотографиями котят созданы на Drupal.

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

Кроме того, Drupal 8, наконец, содержит медиа-библиотеку, встроенную в ядро, что даёт редактору сайта некоторый контроль над файлами (изображения, документы, видео и т.д.), загруженными в Друпал. Существует панель управления файлами в разделе Содержимое, где вы можете увидеть загруженные файлы и объекты содержимого, в которых используются эти файлы.
Наконец, и редактор текста CKeditor содержит кнопку на своей панели, по нажатию которой можно загружать и вставлять изображения при редактировании статей.

Управление медиа-файлами в Друпал 8 по-прежнему отстаёт от дружелюбных редакторов, как в качественном WordPress, но сделан большой шаг в правильном направлении.

В выборе дополнительных (контрибных) модулей ситуация ещё лучше. В то время, как встроенные в CMS Drupal 8 инструменты включают минимальный необходимый функционал для редактирования содержимого, администратор сайта может существенно улучшить удобство с помощью нескольких модулей, которые являются результатом скоординированных усилий сообщества Друпала, чтобы усовершенствовать работу с файлами в Друпале 8. Для 8ки написаны модули, которые удовлетворяют все потребности в обработке медиа-файлов: Media Entity, Media Embed и Entity Browser.

Модуль Media Entity

Media Entity предоставляет возможность администратору сайта определить свои собственные типы медиа-файлов. Представьте, если, например, Лента Twitter (англ. Twitter Feed) также сможет стать компонентом медиа и будет использована повторно в различных типах материалов.

Модуль Media Embed

Модуль Entity Browser

Entity Browser позаботился о предоставлении унифицированного интерфейса для выбора и управления медиа-элементами вашего сайта. Нет разницы, если вы вставили мультимедиа-элемент через WYSIWYG или как элемент отдельного поля. Вы всегда будете видеть один общий интерфейс выбора медиа-файлов для вставки и вкладку загрузки новых файлов, а также другие подключённые источники. Разумеется, Entity Browser будет настраиваться и расширяться в полной мере, учитывая гибкость, которая присуща Друпалу. Этот модуль находится в стадии развития, но должен быть доступен в стабильной версии с выходом стабильного релиза Друпала 8.

Как вы, возможно, заметили, эти 3 модуля содержат термин "Entity" (рус. сущность, объект), а не "файл" или "медиа". Это означает, что для редактора или разработчика сайта в перспективе всё может быть объектом: каждый объект становится компонентом CMS - и это реальная сила, которая предстоит с выходом Друпала 8.

Теперь, возможно, мы будем наблюдать больше сайтов с фотографиями котят, созданных на Друпале. И сообщество друпалеров теперь придумает новый вопрос для Дриса* на мероприятиях Друпала.

Перейдя на седьмой друпал нужно быть готовым, что старый вариант работы прикреплённых картинок к постам/тизерам (с авторесайзом) перестанет работать. Вот и здесь всё поломалось. Я особо не переживал, всё равно хотел "прошерстить" весь материал сайта, но очень неприятно. Вообще, переход на семёрку оказался очень даже болезненным, несколько раз (на данном сайте) пришлось откатываться (на шестёрку), получал опыт.

В частности, видимый перерыв в жизни сайта в том числе связан был с этим - неоднократными накатами-откатами.

Совет в результате - не пробуйте разные темы на "живом-рабочем" сайте, это может привести к таким проблемам, что даже откатиться будет сложно (т.к. не сразу заметны проблемы, приводящие при этом к необратимым последствиям, материал уже накопился и просто жалко всё убивать-откатывать). Т.е. на "рабочий" сайт желательно ставить только "рабочие" темы.

Итак, для того, чтобы для каждого нового поста можно было добавлять картинку, которая бы изменяла до выбранного свой размер в тизере (анонсе, краткий текст, располагаемый на главной странице), имела свой (можно другой) размер в тексте самого поста/статьи и (по желанию) можно было сделать в виде ссылки на "полную версию" картинки, потребуется следующий набор манипуляций.

Настройка в Друпал 7 для картинкам к постам с авторесайзом

  1. Включаем в админке модуль Image (раздел "Core modules" - "модули Ядра").
  2. В разделе "Виды показа изображений" (/admin/config/media/image-styles) добавляем свой стиль (можно пользоваться и "предуставновленными", но я предпочитаю "свои"), называем его, например, "img128x128".
  3. Добавляем ему эффект, выбрав из выпадающего меню "Scale" и задаём нужные размеры (это будет "маленький" вариант картинки).
  4. Аналогично (если нужно) добавляем "средний", "большой" и т.д. (сколько нужно, обычно хватает маленького и среднего) варианты картинки.
  5. Теперь добавляем поле картинки в нужный тип материала (/admin/structure/types).
  6. Напротив требуемого типа материала (например, Articles-Статьи) жмём "manage fields" ("Управлять полями").
  7. Добавляем новое поле ("Add new field"), выбрав в выпадающем списке вариант Image(который становится доступным благодаря действиям в п.1), элемент не трогаем (тоже будетImage).
  8. Нажимаем Сохранить и теперь новое поле можно будет настроить (в т.ч. его расположение при редактировании статьи - обычно я ставлю в самый верх, сразу после Заголовка).
  9. Нажимаем Изменить напротив новодобавленного поля Изображение (Image).
  10. Из многочисленных, но достаточно понятных настроек, нас интересует в первую очередь лишь проставление галок в пунктах "Показывать поле для ввода атрибута «alt»" и "Показывать поле для ввода атрибута «title»", чтобы после загрузки изображения можно было прописать ему альт и тайтл.
  11. Также я обычно дополнительно выбираю удобный мне вид (размер) картинки при редактировании статьи ("Стиль просмотра") плюс изменяю "Индикатор прогресса" на полоску (но всё это - по вкусу).
  12. Жмём "Сохранить настройки".
  13. Возвращаемся на предыдущий экран, где выбираем "Управлять отображением" (нужного/выбранного типа материала).
  14. Перетаскиваем поле Изображение в самый верх, ставим для всех элементов колонки "Заголовок" вариат "<Скрыто>" (иначе в текст поста будет выводиться и само слово "Изображение" или "Словарь" и т.п.) и сохраняем.
  15. Теперь кликаем справа "колёсико настройки" Изображения, чтобы задать его вид. В раскрывшемся меню выбираем стиль (например, "средний" вариант) отображения картинки в статье, а пункте "Изображение как ссылка на" выбираем вариант "File", чтобы изображение было в виде ссылки на "полную версию".
  16. Жмём Обновить и Сохранить.
  17. Сходную операцию проводим для тизера (как будет отображаться изображение в анонсе на главной), отличие будет в стиле (например, меньший размер) и ссылку сделать не на файл, а на "Содержимое", чтобы кликнув по картинке мы бы попадали на саму статью.

Редактирование css для отображения добавляемой картинки

Теперь нужно отредактировать стиль (css), чтобы картинка, например, была слева с какой-то отбивкой. Для этого в текущей теме смотрим исходный исходный добавленной по вышеописанной схеме картинки. В FireFox удобно выделить текст в районе самой картинки и выбрать по правой клавише мыши "Исходный код выделенного фрагмента" (чтобы не ковырять весь исходник страницы). Например, это будет что-то типа (как сейчас на сайте):

7 </a></h2>

<div >
<div >
Автор: <a href="/user/nofollow" title="Информация о пользователе." xml:lang="" about="/user/nofollow" typeof="sioc:UserAccount" property="foaf:name">nofollow</a> </div>
<div >
Jun 09 2012, 13:53:24 </div>
</div>
</header>

<div >
<div class ><div ><div ><a href="/drupal/kartinki-k-postam-s-avtomaticheskim-resayzom-dlya-drupala-7"><img typeof="foaf:Image" src="http://noindex.by/files/styles/img256/public/kartinki-k-postam-s-avtoresayzom-v-drupal-7.jpg" alt="Картинки к постам с автоматическим ресайзом для Друпала 7 " title="Картинки к постам с автоматическим ресайзом для Друпала 7 " height="242" width="256"></a></div></div></div><div ><div ><div property="content:encoded"><p>
Пе

Жирным выделен интересующий нас фрагмент, с помощью которого мы зададим стиль нашей картинки. Для этого добавим (можно просто в самый конец) следующие строчки в главный файлstyle.css текущей темы:

div.field.field-name-field-image.field-type-image.field-label-hidden img
margin-right: 10px;
margin-bottom: 5px;
>

Как видно, в стиле задаётся "плавающее" расположение картинки слева с небольшой отбивкой справа и снизу. Имя элемента может отличаться в вашей теме, для этого и нужно смотреть исходник, думаю, как его получить понятно (выделено жирным, условно пробелы заменяем на точки).

Всё, делаем полный сброс кэша сайта и получаем красивые картинки с удобным авторесайзом в тизере и основном теле статьи.

Читайте также: