Несколько тегов, разделённых запятой, означают логическое И между ними. Вы также можете использовать точку с запятой в качестве логического ИЛИ. И имеет высший приоритет над ИЛИ. Вы не можете использовать скобки для группировки условий. Звёздочка (*) внутри тега используется в качестве маски для "подстроки".
Разделы: Расширения / Файлы и медиа
М помощью этого плагина вы сможете загрузить файлы, прикрепить их к какому-либо объекту Котонти (странице или теме форума), которые затем, будут выводиться как список для скачивания или галерея изображений.
Этот раздел рассказывает об основных моментах использования плагина на страницах (pages) c минимальными изменениями сайта. Аналогично можно настроить его для применения с другими разделам сайта, как например темы форума или комментарии.
Все примеры указаны для стандартной темы оформления, вы можете изменить их для использования в своих.
Первое, что необходимо сделать это добавить файлы на страницу. Возможно вы предполагаете сделать это во время редактирования страницы, однако данный плагин позволяет сделать это во время просмотра страницы. Для этого добавим ссылку "Прикрепить файлы" в меню администрирования страницы, в швблон "page.tpl":
Для этого надо добавить следующий код в "page.tpl":
<!-- IF {PHP|cot_auth('plug', 'attach2', 'W')} --> <li>{PAGE_ID|att_widget('page',$this,'attach2.link')}</li> <!-- ENDIF -->
Эта ссылка будет видна только тем пользователям, которые имеют на прикрепление файлов (которое определяется правом «записи» (Write access) в настойках прав этого плагина).
Если нажать на ссылку "Прикрепить файлы", откроется следующего вида окно:
Интерфейс диалогового окна достаточно стандартен и понятен. Он позволяет выбрать один или несколько файлов за 1 раз, загрузить их, позволяет удалять загруженные, заменять файлы и редактировать описания посредством. Для настройки необходимой последовательности файлов просто перетаците соответствующую строку (Drag & Drop). После того как вы загрузили необходиомое и написали описания нажмите «закрыть», после чего содержимое страницы обновиться и вы увидите результат.
Самый простой способ вывода прикрепленных к странице файлов это использовать виджет att_display() в шаблоне "page.tpl":
<!-- IF {PAGE_ID|att_count('page',$this)} > 0 --> <div class="block"> <h3>{PHP.L.att_attachments}</h3> {PAGE_ID|att_display('page',$this)} </div> <!-- ENDIF -->
Который отобразит примерно следующее:
Одна из частых задач это размещение на страницах галереи фотографий. Вы можетет добавить простейшую галерею включив в шаблон "page.tpl" следующий код:
<!-- IF {PAGE_ID|att_count('page',$this,'images')} > 0 --> <div class="block"> <h3>{PHP.L.att_gallery}</h3> {PAGE_ID|att_gallery('page',$this)} </div> <!-- ENDIF -->
Он добавить Lightbox 2 галерею на страницу:
Еще одной растространненной задачей является добавление на страницу списка файлов для скачивания. Используйте функцию att_downloads() в своем шаблоне("page.tpl"):
<!-- IF {PAGE_ID|att_count('page',$this,'files')} > 0 --> <div class="block"> <h3>{PHP.L.att_downloads}</h3> {PAGE_ID|att_downloads('page',$this)} </div> <!-- ENDIF -->
Стандартный блок выглядит так:
Вставка стандартных блоков в шаблон дело не хитрое. Но если вы хотите использовать всю мощь плагина или более глубоко разобраться как он работает, этот раздел вам поможет.
Прикрепление файлов не ограничивается только страницами и стандартными шаблонами. Вы можете настроить прикрепление файлов и к другим объектам системы и настроить соответствующие им шаблоны. Давайте разберемся какие функции плагин предоставляет для использования в шаблонах и какие параметры им нужно передавать.
/** * Создает виджет загрузки/редактирования файлов. * Используется как функцию для вызова из шаблонов. * @param string $area Код целевого модуля или плагина. * @param integer $item ID конкретного элемента (например страницы). * @param string $tpl Код шаблона * @return string HTML код виджета */ function att_widget($area, $item, $tpl = 'attach2.widget', $width = '100%', $height = '200')
Этот вызов используется для создание виждета прикрепления файлов и интеграции его внутрь содержимого вашего объекта (например страницы). В предыдущей главев мы использовали его для добавления на страницы ссылки «Прикрепить файлы» и кода виджета, редактируя при этом шаблон page.tpl. На самом деле эта функция шире, давайте взглянем на параметры:
For example, here is how you can add "Attach files" link for forum posts in "forums.posts.tpl" inside the FORUMS_POSTS_ROW block:
<!-- IF {FORUMS_POSTS_ROW_USERID} == {PHP.usr.id} --> {FORUMS_POSTS_ROW_ID|att_widget('forums',$this,'attach2.link')} <!-- ENDIF -->
/** * Renders attached items on page * @param string $area Target module/plugin code * @param integer $item Target item id * @param string $tpl Template code * @param string $type Attachment type filter: 'files', 'images'. By default includes all attachments. * @return string Rendered output */ function att_display($area, $item, $tpl = 'attach2.display', $type = 'all')
This callback is used to display files already attached to an item. It can render them all within one stream or include a certain type of files only. The paramters are similar with other callbacks:
Here is how you can display all files attached to a forums post in "forums.posts.tpl" inside the FORUMS_POSTS_ROW block:
{FORUMS_POSTS_ROW_ID|att_display('forums',$this)}
/** * Returns number of attachments for a specific item. * @param string $area Target module/plugin code * @param integer $item Target item id * @param string $type Attachment type filter: 'files', 'images'. By default includes all attachments. * @return integer Number of attachments */ function att_count($area, $item, $type = 'all')
This callback returns the number of files attached to an item but it is often used to check whether there are files attached or not. Parameters are common:
Here is how you can use it to display attachments in "forums.posts.tpl" only if there are files attached:
<!-- IF {FORUMS_POSTS_ROW_ID|att_count('forums',$this)} > 0 --> {FORUMS_POSTS_ROW_ID|att_display('forums',$this)} <!-- ENDIF -->
/** * Renders images only as a gallery. * @param string $area Target module/plugin code * @param integer $item Target item id * @param string $tpl Template code * @return string Rendered output */ function att_gallery($area, $item, $tpl = 'attach2.gallery')
This is a shortcut to att_display() using 'attach2.gallery' as $tpl by default and $type set to 'images'. By default it shows you how to make a simple gallery using Lightbox 2, but you can make your own template and use any gallery script you wish. Parameters:
E.g. let's imagine we've made our own template located in "themes/your_theme/plugins/attach2.fancy-gallery.tpl". Here's how we attach it to LIST_ROW block in "page.list.tpl":
{LIST_ROW_ID|att_gallery('page',$this,'attach2.fancy-gallery')}
/** * Renders files only as downloads block. * @param string $area Target module/plugin code * @param integer $item Target item id * @param string $tpl Template code * @return string Rendered output */ function att_downloads($area, $item, $tpl = 'attach2.downloads')
Similarly to att_gallery(), this is a shortcut to att_display() using 'attach2.downloads' as $tpl by default and $type set to 'files'. It is normally used to provide downloadable files section. Parameters:
E.g. let's imagine we've made our own template located in "themes/your_theme/plugins/attach2.download-box.tpl". Here's how we attach it to a page in "page.tpl":
{PAGE_ID|att_downloads('page',$this,'attach2.download-box')}
function att_thumb($id, $width = 0, $height = 0, $frame = '')
This callback is mostly used in attach2 templates themselves. It generates a thumbnail for an image attachment and returns an URL to that thumbnail. The parameters are:
Thumbnails are generated on the fly and cached for futher use. Here is an example call from attach2.gallery.tpl:
<img src="{ATTACH_ROW_ID|att_thumb($this,200,200,'crop')}" alt="{ATTACH_ROW_FILENAME}" />
/** * Fetches a single attachment object for a given item. * @param string $area Target module/plugin code. * @param integer $item Target item id. * @param string $column Empty string to return full row, one of the following to return a single value: 'id', 'user', 'path', 'filename', 'ext', 'img', 'size', 'title', 'count' * @param string $mode One of these values: 'first', 'rand' or 'last'. Defines which image is selected. * @return mixed Scalar column value, entire row as array or NULL if no attachments found. */ function att_get($area, $item, $column = '', $mode = 'first')
This function is used to get data for a single attachment per item. Its main purpose is to create page covers in category lists. Parameters are:
Here is an example of how this function can be used to turn a first attachment per page into clickable page cover thumbnails in "page.list.tpl":
<a href="{LIST_ROW_ID|att_get('page',$this,'path')}" title="{LIST_ROW_ID|att_get('page',$this,'title')}"> <img src="{LIST_ROW_ID|att_get('page',$this)|att_thumb($this,240,160)}" alt="Foobar" /> </a>
As you see, this function can be used in conjunction with att_thumb() to generate thumbnails on the fly. The minimal Cotonti version for this feature to work is 0.9.12.
Images and thumbnails of the attachments can be pasted directly into content such as page_text, com_text, etc. However, you need to get the Attachment ID somehow first in order to paste it. The syntax of bbcode parameters is similar to URL query string. Available bbcodes are:
Usage example:
[att_thumb?id=15] [att_image?id=11&width=320&height=240&alt=Picture description&class=foo]
These bbcodes work regardless of the parser being used, including HTML and Markdown. If you want to disable them, just Pause the attach2.parser part of this plugin in Administration / Extensions / Attachments.
There's a tool in Administration / Other / Attachments. It is used to purge files attached to items which don't exist anymore. Sometimes items are removed but the code removing linked attachmehts is missing, so this tool may help.
Please use the Extensions forum to discuss plugin features and GitHub tracker to submit bug reports.
Разделы: Документация / Расширяем Cotonti
Автор русской версии статьи: esclkm
Основные принципиальные различия CotontiSiena от CotontiGenoa - разделение информации и модуляризация. Ранее все функции находились в одном файле functions.php. Теперь этих файлов стало намного больше, они все разбиты по видам выполняемых функций. Также теперь намного более четко выделено ядро и настраиваемые модули.
Начнем разбираться со структурой движка. Дабы понимать, что и где искать.
Каталог / Файл |
Что там искать? |
datas/ |
Каталог, в котором находятся данные, доступные для записи. В нем находится конфигурационный файл (config.php), а также все загруженные пользовательские файлы.
|
images/ |
Каталог, в котором хранятся библиотеки картинок-иконок, используемые на сайте |
js/ |
JS скрипты, в том числе библиотека jQuery |
lang/ |
Языковые файлы ядра и общего пользования. По умолчанию Русская и Английская локализация. |
lib/ |
Дополнительные PHP и не только библиотеки (появилось в Siena) |
modules/ |
Модули. Тут хранится то, что обеспечивает основной функционал сайта (появилось в Siena) |
plugins/ |
Плагины. Это то, что расширяет функционал модулей. |
setup/ |
Каталог, в котором расположены вспомогательные файлы по автоматической инсталляции / обновлению CMS |
system/ |
Ядро CMS, а так же модули Users и Admin (это базовые модули – без них невозможно существование сайта) |
themes/ |
Каталогстемами. В Genoa онназывался Skins. |
admin.php |
Загрузчик админ-панели |
forums.php |
Загрузчик форумов |
index.php |
Главная страница сайта |
install.php |
Запуск инсталятора / апдейтера |
INSTALL.TXT |
Информация о установке на Англ языке |
License.txt |
Файл Лицензии |
list.php |
Файл необходим для корректного отображения старых линков модуля list. На новых сайтах файл не нужен |
message.php |
Модуль системных сообщений / ошибок / редиректов |
page.php |
Загрузчик модуля страниц / листов |
pfs.php |
Загрузчик модуля PFS (Мои файлы) |
plug.php |
Загрузчик standalone частей плагинов / модулей |
pm.php |
Загрузчик модуля личных сообщений |
polls.php |
Загрузчик модуля опросов |
rc.php |
Данный файл необходим для вывода консолидированных скриптов и стилей |
rss.php |
Модуль RSS |
users.php |
Загрузчик системного модуля пользователей |
view.php |
Специальный файл для вывода статических элементов (txt, html файлов) |
После этого краткого знакомства переходим к структуре файлов и папок в модулях/ плагинах. Разберем их в одном блоке, так как их структура ничем не отличается. Попав в директорию modules или plugins, видим дерево всех модулей или плагинов. Модули и плагины вместе образуют то, что мы называем расширениями движка. Внутри каждой директории находится содержимое расширения. Разберем его подробно:
Расширение / |
|
img/ |
Каталог для хранения изображений, которые используются данным расширением |
inc/ |
Дополнительные файлы данного расширения, в том числе расширение.functions.php , содержащий функции используемые данным расширением |
Js/ |
Для хранения JavaScript файлов |
lang/ |
Языковые файлы вида расширение.код_языка.php |
lib/ |
Для хранения JS, CSS, Flv и других файлов |
setup/ |
Дополнительная информация для установки расширений. Формат: расширение.install.php, расширение.uninstall.php, расширение.install.sql, расширение.uninstall.sql для файлов обновления: php_версия.inc и sql_версия.sql |
tpl/ |
Шаблоны данного расширения по умолчанию |
расширение.setup.php |
Установщик расширения |
расширение.часть.php |
Файлы частей расширения |
Для системных модулей (users, admin) содержимое директории inc помещено в корневую директорию модуля.
Содержимое директории system:
system/ |
|
admin/ |
Модуль админ-панели |
users/ |
Модуль пользователей |
auth.php |
Набор функций, связанных с распределением прав |
cache.php |
Библиотека для работы с кешем |
common.php |
Инициализация страницы. |
configuration.php |
Функции управления настройками сайта |
cotemplate.php |
Шаблонизатор |
database.php |
Библиотека для работы с базами данных |
debug.php |
Библиотека функций для отладки |
extensions.php |
Функции установки/удаления/обновления модулей и плагинов |
extrafields.php |
Добавление/редактирование/Импорт/Вывод экстраполей. |
footer.php |
Загрузчик подвала страницы |
forms.php |
Библиотека функций для работы с формами |
functions.php |
Стандартный набор функций ядра |
header.php |
Загрузчик шапки |
index.php |
Заглушка директории |
resources.php |
Ресурсы. Добавлено в Siena |
uploads.php |
Функции, облегчающие работу с загруженными на сайт файлами |