Плагинfoto_upload

19 views
Skip to first unread message

sartas

unread,
May 3, 2011, 8:12:24 AM5/3/11
to Frog CMS RU

sartas

unread,
May 3, 2011, 8:13:55 AM5/3/11
to Frog CMS RU
Описание

Плагин для FrogCMS, добавляет кнопку для загрузки фотографий. Фото
загружаются в папку /public/foto/ и переименовываются в 1.jpg, 2.jpg,
3.jpg и т.д.

Использование

Количество фотографий у страницы – $this→foto_count

for ($i = 1; $i <= $this->foto_count; $i++)
{
echo "<img src='/public/foto/{$i}.jpg' />";
}

http://github.com/sartas/foto_upload

Александр Маслаков

unread,
May 3, 2011, 8:24:19 AM5/3/11
to frog-...@googlegroups.com
Читаете мысли. :) Я пользуюсь плагином attach_images с возможностью
одновременной загрузки большого кол-ва фотографий при помощи
флеш-загрузчика.

Ссылка: http://frogcms.in.ua/public/plugins/attach_images.zip


Как пользоваться:

Получить все рисунки (возвращает объект модели AIImage или false):
$this->images->findAll();

Получить рисунок по номеру (возвращает массив объектов модели AIImage
или false): $this->image->find(0);
Начинается с 0.

Затем рисунок можно получить ссылку на масштабированный рисунок (когда
включен плагин image_resizer): $this->image->find(0)->thumb(100, 100);


Так же доступны две функции:

Взять один рисунок по ID страницы (возвращает объект модели AIImage
или false): ai_getImageByPageId( $page_id );

Взять все рисуноки по ID страницы (возвращает массив объектов модели
AIImage или false): ai_getImagesByPageId( $page_id );


Надеюсь плагин будет полезным.

3 мая 2011 г. 15:13 пользователь sartas <ardu...@gmail.com> написал:

> --
> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком
> группы "Frog CMS RU" в Группах Google.
> Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
> frog-...@googlegroups.com
> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
> frog-cms-ru...@googlegroups.com
> Чтобы выполнить другие действия, посетите страницу группы
> http://groups.google.ru/group/frog-cms-ru?hl=ru
>

--
С уважением, Маслаков Александр.
Разработка сайтов: дизайн, программирование, подготовка информации,
сопровождение

Портфолио: http://up.dn.ua/
Тел.: +38 099 669–15–06
Эл. почта: jmas.u...@gmail.com
Skype: maslakov.alexandre

sartas

unread,
May 10, 2011, 11:50:41 AM5/10/11
to Frog CMS RU
Плагин очень attach images понравился, буду его использовать со своими
небольшими доработками

рисунки сохраняются в /public/gallery/$page_id
кеширование картинок после ресайза
изменен хелпер Dir (со старым хелпером плагин работать не будет)
поддержка SQLite (без created_date)

http://github.com/sartas/attach_images

LORDotU

unread,
May 14, 2011, 1:25:08 PM5/14/11
to Frog CMS RU
Господа, приветствую!

Я скачал плагин attach images, залил в /frog/plugins/ - захожу в
админку, а мне там пишут, что для плагина нужна версия 1.0.7
(установлена 1.0.7 Beta) и не дают его включить. Ок, думаю я, -
открываю manifest.ini, меняю requested version на 1.0.0 - система дает
активировать плагин - активирую. Но, хоть убейте, не замечаю никаких
вновь появившихся кнопок для аплоада файлов (если они, конечно, должны
быть).

Все ли я правильно сделал? Если что - не серчайте и попытайтесь
простить мне мою невнимательность. :)

sartas

unread,
May 14, 2011, 3:51:23 PM5/14/11
to Frog CMS RU
В index.php плагина заменить
Observer::observe('view_page_edit_plugins_2',
'ai_view_page_edit_plugins_2_handler');
на
Observer::observe('view_page_edit_plugins',
'ai_view_page_edit_plugins_2_handler');

или установить мою версию с прочтением инструкции по установке :)

LORDotU

unread,
May 14, 2011, 6:31:16 PM5/14/11
to Frog CMS RU
Таки установился, но при загрузке показывает "Error when when getting
uploaded images list." :(

LORDotU

unread,
May 14, 2011, 6:34:48 PM5/14/11
to Frog CMS RU
Странно, файлы оно все-таки загружает, но, как я выше сказал, выдает
алерт об ошибке.

LORDotU

unread,
May 14, 2011, 6:48:01 PM5/14/11
to Frog CMS RU
И при удалении картинок - тоже ругается.

LORDotU

unread,
May 14, 2011, 7:23:50 PM5/14/11
to Frog CMS RU
Проблему, вроде, удалось решить: для возвращения результатов загрузки/
удаления используется формат json. Для формирования ответа скрипт
загрузки/удаления использует функцию фреймворка renderJSON - и вот тут-
то и начинается интересное: первым условием в этой функции идет
проверка наличия класса JSON, т.к. это класса нет, то срабатывает
автозагрузчик, который нигде файл с таким классом найти не может и
выкидывает исключение, которое говорит яваскрипту плагина, что надо бы
вместо succes-метода выполнять error... Таким образом, я просто
закомментил условие в фреймворке, но так же не должно быть? Или
должно?

sartas

unread,
May 15, 2011, 10:28:15 AM5/15/11
to Frog CMS RU
точно, совсем забыл про это

public function renderJSON( $data_to_encode )
{
if ( function_exists( 'json_encode' ) )
{
return json_encode( $data_to_encode );
}
else if ( class_exists( 'JSON' ) )
{
return JSON::encode( $data_to_encode );
}
else
{
throw new Exception( 'No function or class found to render
JSON.' );

LORDotU

unread,
May 15, 2011, 1:35:01 PM5/15/11
to Frog CMS RU
Так, с джейсоном разобрались, но появился новый, ранее неведанный
косяк: не везде корректно обрабатывается id редактируемой страницы,
что приводит к загрузке изображений в папку public/gallery/0 и к
дальнейшей невозможности с ними работать. Можно, конечно, фиксить
вывод на строне фронтэнда, но это как-то не кошерно. Думаю, что либо
observer срабатывает неверно, передавая аргументы в функции плагина,
либо...

LORDotU

unread,
May 15, 2011, 1:43:51 PM5/15/11
to Frog CMS RU
Причем, в БД-то пишутся правильные идентификаторы.

LORDotU

unread,
May 15, 2011, 1:50:51 PM5/15/11
to Frog CMS RU
Понял, 0 ставится в том случае, если страница только создается. Можно,
в принципе, запрашивать айди последней вставленной записи и прибавлять
к нему 1...

sartas

unread,
May 16, 2011, 8:07:23 AM5/16/11
to Frog CMS RU
В index.php

function ai_page_add_after_save_handler( $page )
{
$page_id = empty($page->id) ? 0 : (int)$page->id;

$db = Record::getConnection();

$db->query('UPDATE '. TABLE_PREFIX .'ai_image SET page_id="'. (int)
$page_id .'" WHERE page_id="0"');

$gallery_dir = FROG_ROOT . '/' . PUBLIC_FILES . '/gallery/';
rename($gallery_dir . '0', $gallery_dir . $page->id);
}

LORDotU

unread,
May 16, 2011, 9:46:52 AM5/16/11
to Frog CMS RU
Спасибо! Хоть я и решил данную проблему, но получилось весьма топорно
- буду использовать Ваше решение. :)
On 16 май, 16:07, sartas <ardua...@gmail.com> wrote:
> ÷ index.php

LORDotU

unread,
May 22, 2011, 2:55:52 PM5/22/11
to Frog CMS RU
Кстати, attach_images не совсем правильно работал при удалении фото:
из базы записи удаляются, а вот файлы с фото - нет. Это от того, что в
методе beforeDelete() модели AIImage на 14-ой строке идет вызов метода
remove() объекта DirFileImage() без параметра. Надо так: $image_file-
>remove(true);, - тогда все нормально удаляется и из ФС.
Reply all
Reply to author
Forward
0 new messages