Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

[3.2] IMG to Attachment

Все расширения, созданные нашим сообществом для phpBB, как находящиеся в разработке, так и прошедшие валидацию на официальном сайте phpbb.com, будут анонсированы тут. Вся техническая поддержка по этим расширениям оказывается в этом форуме.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

[3.2] IMG to Attachment

Сообщение Sheer »

Название расширения: IMG to Attachment
Автор: Sheer
Описание расширения: Преобразование изображений, находящихся на сторонних ресурсах, во вложения.
Расширение позволяет преобразовать стороннее изображение, ссылка на которое обрамлена bb-кодом [img] во вложение при размещении или редактировании сообщения. Возможность устанавливается глобальным правом доступа Разное -- Может конвертировать изображения IMG во вложения
Скачать: https://github.com/AlexSheer/phpBB3.1-3 ... ttachments
Язык: Ru
Скриншоты: 
img_to_att.jpg

Результат

Screenshot_2019-02-06 qsxscsc - ваш_домен ru.png
===========================
Версия с последними исправлениями: Re: [3.2] IMG to Attachment
Последний раз редактировалось rxu 08.03.2022 5:43, всего редактировалось 1 раз.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
Vlad__
phpBB 2.0.7
Сообщения: 566
Стаж: 7 лет 3 месяца
Благодарил (а): 283 раза
Поблагодарили: 65 раз

Re: [3.2] IMG to Attachment

Сообщение Vlad__ »

Sheer писал(а): 14.02.2019 13:03Вроде пофиксил
Теперь вылез другой глюк. Атачи после конвертации отображаются наоборот.
Аватара пользователя
Sheer
Former team member
Сообщения: 12113
Стаж: 17 лет 1 месяц
Откуда: Калининград не Кенигсберг
Благодарил (а): 54 раза
Поблагодарили: 2752 раза
Контактная информация:

Re: [3.2] IMG to Attachment

Сообщение Sheer »

Проверял на локалке, вроде все ок. Очисти кеш браузера.
Изображение
Общие ошибки новичков (07.11.2005) & Как задавать вопросы
Мини FAQ
Если ничто другое не помогает, прочтите, наконец, инструкцию!
"Никакая инструкция не может перечислить всех обязанностей должностного лица, предусмотреть все отдельные случаи и дать вперёд соответствующие указания, а поэтому господа инженеры должны проявить инициативу и, руководствуясь знаниями своей специальности и пользой дела, принять все усилия для оправдания своего назначения".
Циркуляр Морского технического комитета №15 от 29.11.1910 г.
TrekRed
phpBB 2.0.5
Сообщения: 483
Стаж: 5 лет 7 месяцев
Благодарил (а): 68 раз
Поблагодарили: 16 раз

Re: [3.2] IMG to Attachment

Сообщение TrekRed »

Sheer,
TrekRed писал(а): 11.02.2019 20:39 планируется или такие типы ссылок не поддерживаются?
Vlad__
phpBB 2.0.7
Сообщения: 566
Стаж: 7 лет 3 месяца
Благодарил (а): 283 раза
Поблагодарили: 65 раз

Re: [3.2] IMG to Attachment

Сообщение Vlad__ »

Sheer, очистил. То же самое. В тексте:

Код: Выделить всё

[img]https://site/cXBs7ivB-Fk.jpg[/img]
[img]https://site/]vo_CDk5HvOg.jpg[/img]
конвертируем, получаем вроде правильно:

Код: Выделить всё

[attachment=1]cXBs7ivB-Fk.jpg[/attachment]
[attachment=0]vo_CDk5HvOg.jpg[/attachment]
но вложение cXBs7ivB-Fk.jpg почему-то привязано к

Код: Выделить всё

 [attachment=0]vo_CDk5HvOg.jpg[/attachment]
т.к. оно реально attachment=0 и идет первым снизу списка вложений.
а vo_CDk5HvOg.jpg привязывается к

Код: Выделить всё

[attachment=1]cXBs7ivB-Fk.jpg[/attachment]
если их удалять - удаляется строка наоборот. И почему вложения маленькими буквами vo_cdk5hvog.jpg а между атачами получается vo_CDk5HvOg.jpg как в ссылке?

Отправлено спустя 55 минут 43 секунды:
Vlad__ писал(а): 14.02.2019 14:12 очистил. То же самое. В тексте:
Поправка. Такое происходит при нажатии на кнопку "предпросмотр" (я ей проверяю конвертацию), после сохранения поста все становится в нужном порядке.
Аватара пользователя
southklad
phpBB 3.1.0 RC2
Сообщения: 3232
Стаж: 12 лет 2 месяца
Благодарил (а): 797 раз
Поблагодарили: 175 раз

Re: [3.2] IMG to Attachment

Сообщение southklad »

В общем если часть картинок в теме есть, а части нет, то тех которых нет отображаются вот так при замене [attachment=-1]85.jpg[/attachment]
Изображение
Vlad__
phpBB 2.0.7
Сообщения: 566
Стаж: 7 лет 3 месяца
Благодарил (а): 283 раза
Поблагодарили: 65 раз

Re: [3.2] IMG to Attachment

Сообщение Vlad__ »

У меня если картинки нет:

Код: Выделить всё

[img]https://site/PNgefuaDT_4.jpg[/img]
[img]https://site/cXBs7ivB-Fk.jpg[/img] - здесь битая например ссылка
[img]https://site/vo_CDk5HvOg.jpg[/img]
получается вот так:

Код: Выделить всё

[attachment=2]PNgefuaDT_4.jpg[/attachment]
[attachment=1]cXBs7ivBFk.jpg[/attachment]
[attachment=0]vo_CDk5HvOg.jpg[/attachment]
Все вроде нормально, но в [attachment=1 конвертируется и битая ссылка, а так как вложений загружается не три, а два, то они съезжают: первая сверху картинка PNgefuaDT_4.jpg, которая становится не третьим, а вторым вложением, прикрепляется к [attachment=1 (второй битой ссылке) и если ссылки по ходу текста получается каша.

Отправлено спустя 15 минут 50 секунд:
igorbond писал(а): 14.02.2019 18:52 отображаются вот так при замене
Ты наверное еще не изменил расширение согласно сегодняшних последних правок. Но все равно будет другая проблема, которую я описал выше.

Отправлено спустя 1 час 24 минуты 10 секунд:
Vlad__ писал(а): 14.02.2019 15:08 Такое происходит при нажатии на кнопку "предпросмотр" (я ей проверяю конвертацию), после сохранения поста все становится в нужном порядке.
При нажатии кнопки "предпросмотр" ссылки конвертируются, но атачи распологаются так - первая картинка в тексте становится атачем 0, последняя - номером например 3, верхней в списке атачей. После сохранения поста они меняются - первая становится 3, а последняя самой нижней в списке атачей - 0 и распологаются нормально согласно [attachment= в теле сообщения.
Аватара пользователя
ronim
Модератор
Модератор
Сообщения: 912
Стаж: 6 лет 2 месяца
Откуда: Таллин ,Эстония
Благодарил (а): 165 раз
Поблагодарили: 160 раз
Контактная информация:

Re: [3.2] IMG to Attachment

Сообщение ronim »

Еще включение этого расширения меняет ( у меня )с безопасного на вот такое
sh.png
sh.png (11.29 КБ) 735 просмотров
Если ты не видишь проблем на форуме , но это не значить что их там нет
Vlad__
phpBB 2.0.7
Сообщения: 566
Стаж: 7 лет 3 месяца
Благодарил (а): 283 раза
Поблагодарили: 65 раз

Re: [3.2] IMG to Attachment

Сообщение Vlad__ »

Vlad__ писал(а): 14.02.2019 21:17 При нажатии кнопки "предпросмотр" ссылки конвертируются, но атачи распологаются так - первая картинка в тексте становится атачем 0, последняя - номером например 3, верхней в списке атачей. После сохранения поста они меняются - первая становится 3, а последняя самой нижней в списке атачей - 0 и распологаются нормально согласно [attachment= в теле сообщения.
Пофиксил. Может это и костыль, т.к. не понял - дело в расширении или в самом движке?, но все-таки... Меняем в listener.php:

Код: Выделить всё

$attachments = $attachments = $message_parser->attachment_data;
на

Код: Выделить всё

$attachments = array_reverse($message_parser->attachment_data);
и

Код: Выделить всё

$event['message_parser']->attachment_data = $attachments;
на

Код: Выделить всё

$event['message_parser']->attachment_data = array_reverse($attachments);
Отправлено спустя 1 час 59 минут 49 секунд:
И еще глюкофича - если поставить галочку Загрузить IMG, то можно сохранить совершенно пустое сообщение. Не ругнется на "ваше сообщение слишком короткое" ;)
Vlad__
phpBB 2.0.7
Сообщения: 566
Стаж: 7 лет 3 месяца
Благодарил (а): 283 раза
Поблагодарили: 65 раз

Re: [3.2] IMG to Attachment

Сообщение Vlad__ »

Vlad__ писал(а): 14.02.2019 21:17 Все вроде нормально, но в [attachment=1 конвертируется и битая ссылка, а так как вложений загружается не три, а два, то они съезжают: первая сверху картинка PNgefuaDT_4.jpg, которая становится не третьим, а вторым вложением, прикрепляется к [attachment=1 (второй битой ссылке) и если ссылки по ходу текста получается каша.
Вроде пофиксил логику работы. Проверяйте. Должно быть нормально и с битыми ссылками. Меняем в listener.php:

Код: Выделить всё

$attachments = array();
$attachments = $message_parser->attachment_data;

$text = $message_parser->message;;
на:

Код: Выделить всё

$attachments = array();
$attachments = array_reverse($message_parser->attachment_data);
$att_number_before = sizeof($attachments);

$text = $message_parser->message;
Удаляем этот кусок кода:

Код: Выделить всё

$img_number = sizeof($current_posted_img[1]);
					$text = preg_replace_callback ('#\[attachment=(.*?)\]#',
						function ($matches) use (&$img_number)
						{
							return "[attachment=" . ($matches[1] + $img_number) . "]";
						},
						$text
					);
Меняем:

Код: Выделить всё

if (!empty($attachments))
					{
						$text = preg_replace_callback('#\[img\]((.*?)|(.*?).jpg|(.*?).jpeg|(.*?).png|(.*?).gif)\[\/img\]#',
							function ($matches) use (&$img_number)
							{
								$str = substr($matches[1], strrpos($matches[1], '/') + 1);
								$path_parts = pathinfo($matches[1]);
								$file_ext = $path_parts['extension'];
								// Extension "Attached PNG Image Convert" by vlad enabled?
								// https://www.phpbbguru.net/community/viewtopic.php?f=59&t=47951#p533248
								if ($this->phpbb_extension_manager->is_enabled('vlad/image_convert') && $file_ext === 'png')
								{
									$str = substr_replace($str, 'jpg', strrpos($str, '.') + 1);
								}
								return "[attachment=" . --$img_number . "]" . $str . "[/attachment]";
							},
							$text
						);
На:

Код: Выделить всё

if (!empty($attachments))					
					{		    
				    	$att_number_after = (sizeof($attachments) - $att_number_before);						

                		$text = preg_replace_callback ('#\[attachment=(.*?)\]#',
						function ($matches) use (&$att_number_after)
						{
							return "[attachment=" . ($matches[1] + $att_number_after) . "]";
						},
						$text
					);

						$text = preg_replace_callback('#\[img\]((.*?)|(.*?).jpg|(.*?).jpeg|(.*?).png|(.*?).gif)\[\/img\]#',
							function ($matches) use (&$att_number_before,&$att_number_after,$attachments)
							{
								$str = substr($matches[1], strrpos($matches[1], '/') + 1);
								$str = mb_strtolower($str);
								$path_parts = pathinfo($matches[1]);
								$file_ext = $path_parts['extension']; 							                              						
                                if ($str == $attachments[$att_number_before]['real_filename'])
                                {	 
                                                              
                                    // Extension "Attached PNG Image Convert" by vlad enabled?
								    // https://www.phpbbguru.net/community/viewtopic.php?f=59&t=47951#p533248
								    if ($this->phpbb_extension_manager->is_enabled('vlad/image_convert') && $file_ext === 'png')
								    {
									   $str = substr_replace($str, 'jpg', strrpos($str, '.') + 1);				
								    }
								++$att_number_before;    							    	
								return "[attachment=" . --$att_number_after . "]" . $str . "[/attachment]";						    
							    }
							    else 
							    {
                                return "[img]" . $matches[1] . "[/img]";	
							    }
							},						
							$text
						);
Vlad__
phpBB 2.0.7
Сообщения: 566
Стаж: 7 лет 3 месяца
Благодарил (а): 283 раза
Поблагодарили: 65 раз

Re: [3.2] IMG to Attachment

Сообщение Vlad__ »

Vlad__ писал(а): 16.02.2019 13:14На:
Небольшая корректировка - так будет правильней:

Код: Выделить всё

if (!empty($attachments))					
					{		    
				    	$att_number_after = (sizeof($attachments) - $att_number_before);						

                		$text = preg_replace_callback ('#\[attachment=(.*?)\]#',
						function ($matches) use (&$att_number_after)
						{
							return "[attachment=" . ($matches[1] + $att_number_after) . "]";
						},
						$text
					);

						$text = preg_replace_callback('#\[img\]((.*?)|(.*?).jpg|(.*?).jpeg|(.*?).png|(.*?).gif)\[\/img\]#',
							function ($matches) use (&$att_number_before,&$att_number_after,$attachments)
							{
								$str = substr($matches[1], strrpos($matches[1], '/') + 1);
								$str = mb_strtolower($str);
								$path_parts = pathinfo($matches[1]);
								$file_ext = $path_parts['extension'];
								
								// Extension "Attached PNG Image Convert" by vlad enabled?
								// https://www.phpbbguru.net/community/viewtopic.php?f=59&t=47951#p533248
								if ($this->phpbb_extension_manager->is_enabled('vlad/image_convert') && $file_ext === 'png')
								{
								     $str = substr_replace($str, 'jpg', strrpos($str, '.') + 1);			
								} 										                              						
                                if ($str == @$attachments[$att_number_before]['real_filename'])
                                {	                                                                                               
								    ++$att_number_before;    							    	
								    return "[attachment=" . --$att_number_after . "]" . $str . "[/attachment]";						    
							    }
							    else 
							    {
                                    return "[img]" . $matches[1] . "[/img]";	
							    }
							},						
							$text
						);
Vlad__
phpBB 2.0.7
Сообщения: 566
Стаж: 7 лет 3 месяца
Благодарил (а): 283 раза
Поблагодарили: 65 раз

Re: [3.2] IMG to Attachment

Сообщение Vlad__ »

Vlad__ писал(а): 15.02.2019 1:24 И еще глюкофича - если поставить галочку Загрузить IMG, то можно сохранить совершенно пустое сообщение. Не ругнется на "ваше сообщение слишком короткое"
Разбираться глубоко не стал, просто добавил в функцию modify_message этот код:

Код: Выделить всё

$post_data = $event['post_data']; 
                $error = $event['error'];
                if (empty($post_data['post_subject'])) {
                	$error[] = $this->user->lang['EMPTY_SUBJECT'];
                }
                if (empty($text)) {
                    $error[] = $this->user->lang['TOO_FEW_CHARS'];
                }
                $event['error'] = $error;
Все, теперь работой расширения лично я удовлетворен! ;)
TrekRed
phpBB 2.0.5
Сообщения: 483
Стаж: 5 лет 7 месяцев
Благодарил (а): 68 раз
Поблагодарили: 16 раз

Re: [3.2] IMG to Attachment

Сообщение TrekRed »

Ну что же, ждем обновления со всеми исправлениями!
Vlad__
phpBB 2.0.7
Сообщения: 566
Стаж: 7 лет 3 месяца
Благодарил (а): 283 раза
Поблагодарили: 65 раз

Re: [3.2] IMG to Attachment

Сообщение Vlad__ »

Еще можно поменять, так как спотыкается на файлах с пробелами в ссылках:

Код: Выделить всё

$str = mb_strtolower($str);
На:

Код: Выделить всё

$str = strtolower(preg_replace('#[^a-zA-Z0-9_+.-]#', '', $str));
TrekRed писал(а): 17.02.2019 1:35 Ну что же, ждем обновления со всеми исправлениями!
Выше мои правки. Топикстартер как профессионал и автор напишет возможно по-другому. Во всяком случае, вечер тестирования с этими правками особых проблем не выявил.
TrekRed
phpBB 2.0.5
Сообщения: 483
Стаж: 5 лет 7 месяцев
Благодарил (а): 68 раз
Поблагодарили: 16 раз

Re: [3.2] IMG to Attachment

Сообщение TrekRed »

Sheer, изменения с исправлениями от Влада планируются или нет? Включая типы ссылок, что выше указывал в посте?
Аватара пользователя
maco8024
phpBB 1.4.4
Сообщения: 155
Стаж: 11 лет 3 месяца
Откуда: Алтай
Благодарил (а): 65 раз
Поблагодарили: 19 раз

Re: [3.2] IMG to Attachment

Сообщение maco8024 »

Как бы еще типы таких ссылок (с Яндекс-Диск) перевести во вложение:
[img]/image_preview?url=https://downloader.disk.yandex.ru/preview/76a1c2c725f6e1a8d408b88e352a490a7bc1a6314ef2c3e8e7ecad63d43037f4/inf/aZycyru0SDBC2NDbhRnAtmZn2P3XIUJ12e2iCWjDBI8sg70xBhtnCeFkNd1yGeIRq2NzditJNKfV_XG2tLBbRw%3D%3D?uid=108590677&filename=9a505a5fe78a2f9f668deb68ed0b2cb1.jpg&disposition=inline&hash=&limit=0&content_type=image%2Fjpeg&tknv=v2&size=XL&crop=0&modified=1521876962[/img]
Ответить

Вернуться в «Анонсы и поддержка расширений для phpBB»