Wiki
Clone wikiCMS / Прикрепления_файлов
Заметьте прикрепление файлов, справедливо только для stat,forum,news,loads.
Добавление прикреплений
- {{ context.max_attaches }} - Максимально возможное количество прикреплений картинок, указанное в конфигурационном файле.
- {{ context.locked_attaches }} - Ровняется единице, если прикрепления отключены(Появилась с версии 2.3.4).
#!html <script type="text/javascript"> maxAttachedFiles = {{ context.max_attaches }}; // А так же (с версии 2.3.4) есть возможность менять стандартную форму для прикрепления файлов(которая добавляется кнопкой)(форма добавляется внутри нового div) AddAttachedFormHtml = '<input type="button" name="addInput" value="+" onClick="addFileField('attachments');" /> <input class="attachField" type="file" id="attach[id]" name="attach[id]" onChange="getFile([id])" /><span id="attachMeta[id]"></span><br />'; </script>
- Прикрепление картинок(а с версии 2.3.4 и файлов):
#!html <div id="attachments"> <div><input class="attachField" type="file" id="attach1" name="attach1" onChange="getFile(1)" /><span id="attachMeta1"></span><div> </div> <!--Кнопка для добавления формы для загрузки файла--> <input type="button" name="addInput" value="Прикрепить еще файл" onClick="addFileField('attachments');" />
Редактирование прикреплений
- {{ context.attaches_delete }} - Выводит список(строку) прикреплённых файлов, которые можно удалить.
- {{ context.attaches_list }} - Массив прикреплённых файлов.
Пример использования:
#!html {% for at in context.attaches_list %} <div> <input class="attachField" type="file" id="attach{{ at.id }}" name="attach{{ at.id }}" onchange="getFile({{ at.id }})"> <span id="attachMeta{{ at.id }}"> {% if at.is_img %} <input type="text" readonly="" value="{IMAGE{{ at.id }}}" title="Вставьте этот код в любое место сообщения" size="8" style="font-family:monospace;color:#FF8E00;"> {% endif %} </span> <label style="vertical-align:top"><input type="checkbox" name="unlink{{ at.id }}" value="1">Удалить ({{ at.name }})?</label> </div> {% endfor %}
- {{ at.id }} - номер прикрепления.
- {{ at.is_img }} - существует и равна единице, если прикрепленный файл изображение.
- {{ at.name }} - название файла.
- {{ at.date }} - дата добавления файла.
- {{ at.size }} - размер файла.
- {{ at.url }} - Ссылка на файл.
- {{ at.url_small }} - Ссылка на миниатюру изображения(если файл не изображение, то ссылка будет вести на сам файл).
Пример эффективного использования массива аттачей в форме редактирования.
#!html {% if checkAccess([module,'upload_files']) and context.locked_attaches == 0 %} <li> <span class="siu_title"><strong>Загрузить файлы:</strong></span> <span class="siu_data"> <div id="attachments"> {% if context.attaches_list %} {% for at in context.attaches_list %} <div> <input class="attachField" type="file" id="attach{{ at.id }}" name="attach{{ at.id }}" onchange="getFile({{ at.id }})"> <span id="attachMeta{{ at.id }}"> {% if at.is_img %} <input type="text" readonly="" value="{IMAGE{{ at.id }}}" title="Вставьте этот код в любое место сообщения" size="8" style="font-family:monospace;color:#FF8E00;"> {% endif %} </span> <label style="vertical-align:top"><input type="checkbox" name="unlink{{ at.id }}" value="1">Удалить ({{ at.name }})?</label> </div> {% endfor %} {% else %} <div> <input class="attachField" type="file" id="attach1" name="attach1" onchange="getFile(1)"><span id="attachMeta1"></span> </div> {% endif %} </div> <input type="button" name="addInput" value="Прикрепить еще файл" onClick="addFileField('attachments');" /> </span> </li> {% endif %}
Вывод прикреплений
Заметьте в loads разрешено загружать только изображения, по-этому там выводить прикрепления следует с помощью другого механизма, описанного тут Изображения_к_материалу
- {{ context.locked_attaches }} - Ровняется единице, если прикрепления отключены.
- {{ entity.atom.attaches_list }} - Массив прикрепленных файлов.
- {{ post.attaches_list }} - Массив прикрепленных файлов для форума.
- {{ post.attachment }} - Строка из прикрепленных файлов для форума.
Пример простой конструкции вывода всех прикреплений.
#!html {% for file in entity.atom.attaches_list %} <a href="{{ file.url }}">{{ file.name }} ({{ file.size }})</a><br/> {% endfor %} или, если вы довольствуетесь стандартом, то можно обойтись лишь одной меткой: {{ post.attachment }}
- {{ at.id }} - номер прикрепления.
- {{ at.is_img }} - существует и равна единице, если прикрепленный файл изображение.
- {{ at.name }} - название файла.
- {{ at.date }} - дата добавления файла.
- {{ at.size }} - размер файла.
- {{ at.url }} - ссылка для скачивания файла.
Пример эффективного вывода всех прикреплений:
#!html {% if entity.atom.attaches_list and context.locked_attaches == 0 %} <br /><b>Прикрепленные файлы:</b> <div class="attaches"> {% if checkAccess([module,'download_files']) %} {% for file in entity.atom.attaches_list %} <a href="{{ file.url }}">{{ file.name }} ({{ file.size }})</a><br/> {% endfor %} {% else %} У вас нет прав для скачивания прикрепленных файлов {% endif %} </div> {% endif %}
Updated