1

Тема: [Релиз] Загрузка изображений

Расширение загружает изображения на сервер и вставляет их в сообщение в виде бб-кода.
В качестве загрузчика используется библиотека plupload. Её использование гарантирует загрузку из любого современного браузера, с включенным java-script. В зависимости от используемых технологий в браузере, для загрузки будет задействована самая лучшая. Изображения автоматически преобразуются к указанному администратором размеру на стороне клиента, что снижает нагрузку на сервер и избавляет пользователя от предварительной подготовки изображения к загрузке. Кроме этого пользователь может загрузить сразу несколько файлов, а не только один, что создаёт дополнительные удобства.
Картинки в сообщении показываются уменьшенными до размеров указанных администратором в настройках. При клике на картинке открывается полный размер. Для показа полного размера используется библиотека fancybox. Если в сообщении несколько изображений, они будут объеденены в галлерею fancybox.
Не используется БД.

Версия 1.1.6 (PunBB 1.3)
Загрузить: http://punbb.ru/downloads/hcs_image_uploader.zip
Для работы этого расширения должно быть установлено любое расширение, устанавливающее jQuery. Так же это расширение зависит от официального расширения pun_bbcode.



Версия 1.2.0 (PunBB 1.4)
http://punbb.ru/downloads/v14/hcs_image_uploader.zip
Зависит от pun_jquery, pun_bbcode, Fancy jQuery Addons

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

2

Re: [Релиз] Загрузка изображений

В тандеме с Fancy Image получилось законченное решение
по процессингу изображений на форуме.  smile  Респект Вам.

Поделиться

3

Re: [Релиз] Загрузка изображений

hcs, Теги imgl и imgr добавлены? smile Автоматическое удаление отключено? smile

Добавлено спустя 1 час 29 минут 4 секунды:

Ясно, не сделано... sad Буим ждать обработку imgl и imgr, и удаление умного механизма удаления картинок big_smile

Поделиться

4

Re: [Релиз] Загрузка изображений

У себя временно так сделал:
functions.php
function IU_add_images

        foreach($_POST['IU_img'] as $file_name) {
                $replace[] = '[img]'.IU_URL.'/'.$targetDir.'thumb/'.$file_name.'[/img]';

                $replace[] = '[imgr]'.IU_URL.'/'.$targetDir.'thumb/'.$file_name.'[/imgr]';
                $replace[] = '[imgl]'.IU_URL.'/'.$targetDir.'thumb/'.$file_name.'[/imgl]';

                $replace[] = '[img]'.IU_URL.'/'.$targetDir.'/'.$file_name.'[/img]';
                $replace[] = '[imgr]'.IU_URL.'/'.$targetDir.'/'.$file_name.'[/imgr]';
                $replace[] = '[imgl]'.IU_URL.'/'.$targetDir.'/'.$file_name.'[/imgl]';

                $search[] = '/\[img\]'.str_replace('.','\.',$file_name).'\[\/img\]/';

                $search[] = '/\[imgr\]'.str_replace('.','\.',$file_name).'\[\/imgr\]/';
                $search[] = '/\[imgl\]'.str_replace('.','\.',$file_name).'\[\/imgl\]/';

                $search[] = '/\[img\]'.str_replace('.','\.',$file_name).'\[\/img\]/';
                $search[] = '/\[imgr\]'.str_replace('.','\.',$file_name).'\[\/imgr\]/';
                $search[] = '/\[imgl\]'.str_replace('.','\.',$file_name).'\[\/imgl\]/';
        }


if (preg_match_all('/\[(img|imgr|imgl)\]'.str_replace('/','\/',IU_URL).'\/'.'([^\[]*?)\[\/(img|imgr|imgl)\]/', $message_res, $matches)){

function IU_del_images

if (preg_match_all('/\[(img|imgr|imgl)\]'.str_replace('/','\/',IU_URL.'/'.$targetDir.'thumb/').'([^\[]*?)\[\/(img|imgr|imgl)\]/', $message, $matches) or preg_match_all('/\[(img|imgr|imgl)\]'.str_replace('/','\/',IU_URL.'/'.$targetDir.'/').'([^\[]*?)\[\/(img|imgr|imgl)\]/', $message, $matches)) {

parser.php

                // Remove empty tags
                while ($new_text = preg_replace('/\[(b|u|i|h|colou?r|quote|code|img|imgr|imgl|url|email|list)(?:\=[^\]]*)?\]\[\/\1\]/', '', $text))
                {
                        if ($new_text != $text)
                                $text = $new_text;
                        else
                                break;
                }




        // List of all the tags
        $tags = array('quote', 'code', 'b', 'i', 'u', 'color', 'colour', 'url', 'email', 'img', 'imgr', 'imgl', 'flv', 'flva', 'list', '*', 'h');



        // Tags we trim interior space
        $tags_trim = array('img', 'imgr', 'imgl', 'flv', 'flva');
        // Tags we remove quotes from the argument
        $tags_quotes = array('url', 'email', 'img', 'imgr', 'imgl', 'flv', 'flva');
        // Tags we limit bbcode in
        $tags_limit_bbcode = array(
                '*'     => array('b', 'i', 'u', 'color', 'colour', 'url', 'email', 'list', 'img', 'imgr', 'imgl', 'flv', 'flva'),
                'list'  => array('*'),
                'url'   => array('b', 'i', 'u', 'color', 'colour', 'img', 'imgr', 'imgl', 'flv', 'flva'),
                'email' => array('b', 'i', 'u', 'color', 'colour', 'img', 'imgr', 'imgl', 'flv', 'flva'),
                'imgr'  => array(),
                'imgl'  => array(),
                'flv'   => array(),
                'flva'  => array(),
                'img'   => array()
        );






        if (($is_signature && $forum_config['p_sig_img_tag'] == '1') || (!$is_signature && $forum_config['p_message_img_tag'] == '1'))
        {
                $pattern[] = '#\[img\]((ht|f)tps?://)([^\s<"]*?)\[/img\]#e';
                $pattern[] = '#\[imgr\]((ht|f)tps?://)([^\s<"]*?)\[/imgr\]#e';
                $pattern[] = '#\[imgl\]((ht|f)tps?://)([^\s<"]*?)\[/imgl\]#e';
                $pattern[] = '#\[img=([^\[]*?)\]((ht|f)tps?://)([^\s<"]*?)\[/img\]#e';







//
// Make hyperlinks clickable
//
function do_clickable($text)
{
        $text = ' '.$text;

        $text = preg_replace('#(?<=[\s\]\)])(<)?(\[)?(\()?([\'"]?)(https?|ftp|news){1}://([\w\-]+\.([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^\s\[]*[^\s.,?!\[;:-]?)?)\4(?(3)(\)))(?(2)(\]))(?(1)(>))(?![^\s]*\[/(?:url|img|imgr|imgl|flv|flva|video|mp3|divx)\])#ie', 'stripslashes(\'$1$2$3$4\').handle_url_tag(\'$5://$6\', \'$5://$6\', true).stripslashes(\'$4$10$11$12\')', $text);
        $text = preg_replace('#(?<=[\s\]\)])(<)?(\[)?(\()?([\'"]?)(www|ftp)\.(([\w\-]+\.)*[\w]+(:[0-9]+)?(/[^\s\[]*[^\s.,?!\[;:-])?)\4(?(3)(\)))(?(2)(\]))(?(1)(>))(?![^\s]*\[/(?:url|img|imgr|imgl|flv|flva|video|mp3|divx)\])#ie', 'stripslashes(\'$1$2$3$4\').handle_url_tag(\'$5.$6\', \'$5.$6\', true).stripslashes(\'$4$10$11$12\')', $text);

        return substr($text, 1);
}

Поделиться

5

Re: [Релиз] Загрузка изображений

Попробуй этот functions.php
Он совместим с версией 1.1.5

Post's attachments

functions.zip 2.51 Кб, 14 скачиваний с 2010-11-22 

You don't have the permssions to download the attachments of this post.
Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

6

Re: [Релиз] Загрузка изображений

hcs, последние 2 байта хоть убей он не качает, всё-таки проблема с аттачем и архивами существует smile
Вообщем-то я писал, дабы в будущем в релизах это было уже реализовано smile
Еще кстати, если умный механизм удаления остается, то неплохо бы исключить из него удаления картинки, у которой убрано thumbs smile

Поделиться

7

Re: [Релиз] Загрузка изображений

kmbxxx,
ОТсюда: http://punbb.ru/downloads/functions.zip
Проверь, если у тебя работает - войдет в новый релиз

Добавлено спустя 1 минуту 39 секунд:

kmbxxx пишет:

Еще кстати, если умный механизм удаления остается, то неплохо бы исключить из него удаления картинки, у которой убрано thumbs

Непонятно, в чем тут проблема? Картинки удаляются  только свои. Опиши ситуацию, при которой возникает проблема?

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

8

Re: [Релиз] Загрузка изображений

hcs, Ок, проверю.
Да ситуаций если честно так много, и не всегда получается их отследить...
К примеру, размещаю маленькую по размерам картинку, после редактирую сообщение, и убираю из пути thumbs.
При проверке очередной, картинка уже удалена, ну в предыдущих релизах так было...
p.s. Не смотрел новый релиз еще, но на всякий случай сообщу, что лучше переделать функцию $(function() в файле uploader.js

setTimeout(function(){insert_text('[img]' + img,'[/img]')},1000);

Есть случаи, когда картинка типа вставилась, моментально нажимаешь отправить, но картинка не вставляется и соответственно сразу удаляется, т.е. подстраховаться и задержать вставку картинки в сообщение на 1 секунду.

Поделиться

9

Re: [Релиз] Загрузка изображений

hcs, а можешь сделать такое же, но для видео (вставляло бы тег [flv][/flv]) ? чтоб вместе с расширением от кейдога получился маленький ютуб?

Поделиться

10

Re: [Релиз] Загрузка изображений

as91, если заинтересуешь

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

11

Re: [Релиз] Загрузка изображений

hcs, каким образом я могу заинтересовать?

Поделиться

12

Re: [Релиз] Загрузка изображений

as91,  очевидно, путем оплаты создания новой функциональности.
hcs, хорошо бы иметь на этом форуме возможность
проводить опросы на предмет востребованности реализации каких-либо новых фич.

Поделиться

13

Re: [Релиз] Загрузка изображений

hcs, спасибо за расширение. Есть одно пожелание - это в Админских настройках добавить поле, в котором указывать папку для загрузки (отличной по умолчанию). Ну или укажи где руками это исправить smile Спасибо!

Поделиться

14

Re: [Релиз] Загрузка изображений

А у меня на форуме на открывается окно для выбора файла(

Поделиться

15

Re: [Релиз] Загрузка изображений

Установи флеш-плеер плагин для браузера

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

16

Re: [Релиз] Загрузка изображений

hcs пишет:

Попробуй этот functions.php
Он совместим с версией 1.1.5

Удаляется когда из пути к картинки убираешь thumbs

Поделиться

17 (12.01.2011 11:55 отредактировано Samovarov)

Re: [Релиз] Загрузка изображений

Расширение совместимо только с пятой версией ПХП?

Форум на четвертой обижается на stripos
Fatal error: Call to undefined function: stripos() in /var/www/detiavtoy/detiavto.com/forum/include/parser.php(634) : eval()'d code on line 18

Добавлено спустя 20 минут 39 секунд:

Если просто на strpos заменить?
Вроде работает.
Какие могут быть пролемы?

        <hook id="ps_handle_img_tag_end"><![CDATA[
global $cur_post;

$rel = (isset($cur_post['id'])) ? ' rel="gallery'.$cur_post['id'].'" ' : '';

if (strpos($url,$ext_info['url'])!==false){
    $img_tag = str_replace(array('<span class="postimg">','</span>',' alt="'.forum_htmlencode($alt).'"'), array('<span class="postimg"><a href="'.str_replace('thumb/','',$url).'" class="thumb"'.$rel.'>','</a></span>', ''),$img_tag);
}
        ]]></hook>

Поделиться

18

Re: [Релиз] Загрузка изображений

Установил, успешно работает. Но клиенты заметили, что некоторые картинки почему-то исчезают.

url пропавшей картинки выглядит так: forum/extensions/hcs_image_uploader/uploads/users/1000/115/tmp/p15ltrm9c3oer1ne21g0q99j1hjg1.jpg

С чем это может быть связано?

Поделиться

19

Re: [Релиз] Загрузка изображений

Может быть связано с редактированием сообщения.

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

20

Re: [Релиз] Загрузка изображений

Или при создании сообщения если нажать предосмотр, то картинка тоже удалится по-моему smile

Поделиться

21

Re: [Релиз] Загрузка изображений

hcs пишет:

Может быть связано с редактированием сообщения.

Сообщение с картинкой нельзя редактировать?

Поделиться

22

Re: [Релиз] Загрузка изображений

Там много чего нельзя big_smile

Поделиться

23

Re: [Релиз] Загрузка изображений

Сообщение редактировать можно, нельзя произвольно менять содержимое тега img
Вероятно я переделаю расширение

Захочешь — найдешь время, не захочешь — найдешь причину.

Поделиться

24

Re: [Релиз] Загрузка изображений

А вообще расширение супер.
Спасибо большое!

Поделиться

25

Re: [Релиз] Загрузка изображений

jQuery где именно используется?
может понадобиться пользователям
[Релиз] jQuery для опытных пользователей

PunBB Extensions | Перед созданием темы => ФАК | Профессиональная разработка сложных сайтов

Расширения распространяются по Creative Commons Attribution-NonCommercial 4.0

Сайт KANekT

Поделиться