[3.2] IMG to Attachment

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Vlad__
phpBB 2.0.5
Сообщения: 450
Зарегистрирован: 10.12.2016 11:06
Благодарил (а): 251 раз
Поблагодарили: 41 раз

Re: [3.2] IMG to Attachment

Сообщение Vlad__ » 14.02.2019 13:49

Sheer писал(а):
14.02.2019 13:03
Вроде пофиксил
Теперь вылез другой глюк. Атачи после конвертации отображаются наоборот.

Аватара пользователя
Sheer
phpBB Guru
phpBB Guru
Сообщения: 11488
Зарегистрирован: 18.02.2007 19:01
Откуда: Калининград не Кенигсберг
Благодарил (а): 53 раза
Поблагодарили: 2579 раз

Re: [3.2] IMG to Attachment

Сообщение Sheer » 14.02.2019 14:03

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

TrekRed
phpBB 2.0.0
Сообщения: 245
Зарегистрирован: 09.08.2018 1:11
Благодарил (а): 44 раза
Поблагодарили: 6 раз

Re: [3.2] IMG to Attachment

Сообщение TrekRed » 14.02.2019 14:09

Sheer,
TrekRed писал(а):
11.02.2019 20:39
планируется или такие типы ссылок не поддерживаются?

Vlad__
phpBB 2.0.5
Сообщения: 450
Зарегистрирован: 10.12.2016 11:06
Благодарил (а): 251 раз
Поблагодарили: 41 раз

Re: [3.2] IMG to Attachment

Сообщение Vlad__ » 14.02.2019 14:12

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
очистил. То же самое. В тексте:
Поправка. Такое происходит при нажатии на кнопку "предпросмотр" (я ей проверяю конвертацию), после сохранения поста все становится в нужном порядке.

Аватара пользователя
igorbond
phpBB 3.0.7
Сообщения: 2470
Зарегистрирован: 09.01.2012 3:34
Благодарил (а): 573 раза
Поблагодарили: 114 раз

Re: [3.2] IMG to Attachment

Сообщение igorbond » 14.02.2019 18:52

В общем если часть картинок в теме есть, а части нет, то тех которых нет отображаются вот так при замене [attachment=-1]85.jpg[/attachment]
Изображение

Vlad__
phpBB 2.0.5
Сообщения: 450
Зарегистрирован: 10.12.2016 11:06
Благодарил (а): 251 раз
Поблагодарили: 41 раз

Re: [3.2] IMG to Attachment

Сообщение Vlad__ » 14.02.2019 19:37

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

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

[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
phpBB 2.0.2
Сообщения: 321
Зарегистрирован: 10.01.2018 20:24
Откуда: Таллин ,Эстония
Благодарил (а): 94 раза
Поблагодарили: 40 раз

Re: [3.2] IMG to Attachment

Сообщение ronim » 14.02.2019 23:07

Еще включение этого расширения меняет ( у меня )с безопасного на вот такое
sh.png
sh.png (11.29 КБ) 366 просмотров
Если ты не видишь проблем на форуме , но это не значить что их там нет

Vlad__
phpBB 2.0.5
Сообщения: 450
Зарегистрирован: 10.12.2016 11:06
Благодарил (а): 251 раз
Поблагодарили: 41 раз

Re: [3.2] IMG to Attachment

Сообщение Vlad__ » 14.02.2019 23:24

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.5
Сообщения: 450
Зарегистрирован: 10.12.2016 11:06
Благодарил (а): 251 раз
Поблагодарили: 41 раз

Re: [3.2] IMG to Attachment

Сообщение Vlad__ » 16.02.2019 13:14

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.5
Сообщения: 450
Зарегистрирован: 10.12.2016 11:06
Благодарил (а): 251 раз
Поблагодарили: 41 раз

Re: [3.2] IMG to Attachment

Сообщение Vlad__ » 16.02.2019 17:26

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.5
Сообщения: 450
Зарегистрирован: 10.12.2016 11:06
Благодарил (а): 251 раз
Поблагодарили: 41 раз

Re: [3.2] IMG to Attachment

Сообщение Vlad__ » 16.02.2019 20:46

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.0
Сообщения: 245
Зарегистрирован: 09.08.2018 1:11
Благодарил (а): 44 раза
Поблагодарили: 6 раз

Re: [3.2] IMG to Attachment

Сообщение TrekRed » 17.02.2019 1:35

Ну что же, ждем обновления со всеми исправлениями!

Vlad__
phpBB 2.0.5
Сообщения: 450
Зарегистрирован: 10.12.2016 11:06
Благодарил (а): 251 раз
Поблагодарили: 41 раз

Re: [3.2] IMG to Attachment

Сообщение Vlad__ » 17.02.2019 1:52

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

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

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

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

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

TrekRed
phpBB 2.0.0
Сообщения: 245
Зарегистрирован: 09.08.2018 1:11
Благодарил (а): 44 раза
Поблагодарили: 6 раз

Re: [3.2] IMG to Attachment

Сообщение TrekRed » 18.02.2019 18:32

Sheer, изменения с исправлениями от Влада планируются или нет? Включая типы ссылок, что выше указывал в посте?

Аватара пользователя
maco8024
phpBB 1.4.4
Сообщения: 152
Зарегистрирован: 02.12.2012 18:35
Благодарил (а): 62 раза
Поблагодарили: 16 раз

Re: [3.2] IMG to Attachment

Сообщение maco8024 » 22.02.2019 3:52

Как бы еще типы таких ссылок (с Яндекс-Диск) перевести во вложение:
[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»