Создание фотоальбома (Image, CCK, Views)



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

Вас устраивает такой фотоальбом? Если да, то давайте начнём.

1. Перейдите на страницу Administer → Site building → Modules и включите следующие модули: Path, CCK (+CCK Nodereference), Image, Pathauto, Views (для русского языка нужно будет включить Locale и настроить Pathauto).

2. Перейдите на страницу настроек модуля Image: Administer → Site configuration → Image и выставите на ней настройки как показано на рисунке ниже:

3. Перейдите на страницу Administer → Content management → Content types и создайте новый тип документа Album.

4. Перейдите на страницу настроек модуля Pathauto: Administer → Site configuration → Pathauto и выставите следующие настройки в секции Node path settings:

Для Pattern for all Image paths укажите gallery/[title-raw].
Для Pattern for all Album paths укажите gallery/[title-raw].

5. Перейдите на страницу Administer → Site building → Views и создайте новый вид с названием album_list.

В секции Page отметьте поле Provide Page View, в поле URL укажите удобный вам адрес и в поле View Type выберите Table view. В этой же секции откройте вложенную секцию Menu, отметьте поле Provide Menu, в поле Menu Title введите название пункта меню, эти действия приведут к созданию ссылки на вид в меню навигации. В секции Fields добавьте поле Node: title. В секции Filters добавьте фильтр Node: type, для которого оператор оставьте is one of, а в колонке значений выберите Album. Также добавьте фильтр Node: published, для которого менять установки не нужно (оператор Equals, значение Yes). Теперь сохраните этот вид.

6. Перейдите на страницу Administer → Content management → Content types и нажмите на ссылку Image, вы перейдёте на страницу настройки этого типа документа. Здесь нужно будет добавить для этого типа документа новое поле. Нажмите вкладку Add field. В поле Name введите album, а в поле Field type отметьте Node Reference → Select List.

На следующей странице в поле Label введите Album и в секции Data settings отметьте поле Required. Далее разверните секцию Advanced — Nodes that can be referenced (View) и в поле View выберите из раскрывающегося списка: album_list. Сохраните настройки дополнительного поля.

7. Теперь, давайте создадим новый альбом. Перейдите на страницу Create content → Album и в поле Title введите любое название, например, My photos.

8. Распакуйте архив прикреплённый к статье. В нём находятся два файла: node-album.tpl.php и node-image.tpl.php. Скопируйте их в папку со своей темой.

9. Теперь, давайте добавим фотографии в альбом. Перейдите на страницу Create content → Image. В поле Title укажите название фотографии, нажмите кнопку Browse и выберите фотографию.

10. Добавьте фотографии в ваш альбом. Когда у вас будет несколько альбомов, не забывайте каждый раз выбирать альбом в который вы хотите поместить фотографию. Когда у вас будет несколько альбомов, то страница, для которой мы делали вид, будет выглядеть подобным образом:

она показывает только список альбомов, а страница с открытой фотографией выглядит вот так:

Отметьте: Ссылки << Prev, Back to album, Next >>, переименовываются в файле node-image.tpl.php.


AttachmentSize
ldcc_photoalbum.7z1.26 KB

Comments

А без Views, CCK?

Останется Image.

Спасибо за перевод урока. Очень пригодилось.

"Далее разверните секцию Advanced — Nodes that can be referenced (View) и в поле View выберите из раскрывающегося списка: album_list. Сохраните настройки дополнительного поля."

- а где именно эта секция?
"http://drupal/admin/content/types/image/fields/field_album" - сдесь такой у меня нет.

Это подозрительно, должна быть именно там.

В ваших tpl-файлах не учитывается вариант, когда база создана с префиксами таблиц.
А вообще - респект.

А как исправить tpl- если база и правда с префиксами таблиц?

Это из-за того что не учтены префиксы такая штука появляется?

user warning: Table 'igor.content_type_image' doesn't exist query: SELECT content_type_image.nid, files.filepath, node.title, node.uid FROM content_type_image, files, node WHERE node.nid = content_type_image.nid AND content_type_image.field_album_nid = '1' AND content_type_image.nid = files.nid AND files.filename = 'thumbnail' ORDER by node.nid in Z:\home\localhost\www\igor\includes\database.mysql.inc on line 172.
warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\igor\themes\garland\node-album.tpl.php on line 42.

Чтобы учитывались префиксы, нужно названия таблиц в SQL-запросах взять в фигурные скобки. SQL coding conventions → Capitalization, indentation, user-supplied data.

Post new comment

The content of this field is kept private and will not be shown publicly.
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.