Вывод фотографий в обратном порядке — различия между версиями
Deez (обсуждение | вклад) |
Velross (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
Для того, чтобы макросом photoalbum album() фотографии выводились в обратном порядке немного изменим функцию album.<br> | Для того, чтобы макросом photoalbum album() фотографии выводились в обратном порядке немного изменим функцию album.<br> | ||
− | 1.Добавим параметр к функции album | + | 1.Добавим параметр к функции album примерно вот такого вида $sort_photo = 1 |
<source lang="php"> | <source lang="php"> | ||
public function album($path = false, $template = "default", $sort_photo = 1, $limit = false, $ignore_paging = false) { | public function album($path = false, $template = "default", $sort_photo = 1, $limit = false, $ignore_paging = false) { | ||
</source> | </source> | ||
− | 2. Спускаемся в самый низ функции и перед кодом | + | 2. Заменяем везде слово self:: на $this-> |
+ | 3. Спускаемся в самый низ функции и перед кодом | ||
<source lang="php"> | <source lang="php"> | ||
− | return self::parseTemplate($template_block, $block_arr, $element_id); | + | return self::parseTemplate($template_block, $block_arr, $element_id); // Заменяем self:: на $this-> |
</source> | </source> | ||
вставляем вот такой код | вставляем вот такой код | ||
<source lang="php"> | <source lang="php"> | ||
− | if (1 == $sort_photo) | + | if (1 == $sort_photo){ |
− | + | $block_arr['void:lines'] = array_reverse($block_arr['void:lines']); | |
+ | $block_arr['subnodes:items'] = $block_arr['void:lines']; | ||
+ | } | ||
+ | </source> | ||
+ | Незабываем, что результат действий необходимо сохранить в файле __custom.php незабыв переименовать саму функцию из album в photo_conversely, и добавить права на выполнение макроса в permissions.custom.php: | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | $permissions = Array( | ||
+ | 'albums' => Array('photo_conversely') | ||
+ | ); | ||
+ | ?> | ||
</source> | </source> | ||
− | |||
Теперь в нашем кастомном макросе мы можем использовать третий, необязательный параметр, ставя его в значение 1 или 0. | Теперь в нашем кастомном макросе мы можем использовать третий, необязательный параметр, ставя его в значение 1 или 0. | ||
− | http://example.com/udata://photoalbum/ | + | http://example.com/udata://photoalbum/photo_conversely/47/0/1 |
+ | |||
+ | Вызов в TPL: %photoalbum photo_conversely('27','default',1)% | ||
− | Работа проверена на версии 2.8. | + | Работа проверена на версии 2.8.6.1 |
[[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]] | [[Категория:Вопросы и уроки разработки сайтов на UMI.CMS]] |
Версия 07:19, 17 февраля 2013
Для того, чтобы макросом photoalbum album() фотографии выводились в обратном порядке немного изменим функцию album.
1.Добавим параметр к функции album примерно вот такого вида $sort_photo = 1
public function album($path = false, $template = "default", $sort_photo = 1, $limit = false, $ignore_paging = false) {
2. Заменяем везде слово self:: на $this-> 3. Спускаемся в самый низ функции и перед кодом
return self::parseTemplate($template_block, $block_arr, $element_id); // Заменяем self:: на $this->
вставляем вот такой код
if (1 == $sort_photo){
$block_arr['void:lines'] = array_reverse($block_arr['void:lines']);
$block_arr['subnodes:items'] = $block_arr['void:lines'];
}
Незабываем, что результат действий необходимо сохранить в файле __custom.php незабыв переименовать саму функцию из album в photo_conversely, и добавить права на выполнение макроса в permissions.custom.php:
<?php
$permissions = Array(
'albums' => Array('photo_conversely')
);
?>
Теперь в нашем кастомном макросе мы можем использовать третий, необязательный параметр, ставя его в значение 1 или 0. http://example.com/udata://photoalbum/photo_conversely/47/0/1
Вызов в TPL: %photoalbum photo_conversely('27','default',1)%
Работа проверена на версии 2.8.6.1