Перейти к контенту

Image Resize в дневниках не сохраняет оригинал изоброажения


Allure

Рекомендуемые сообщения

Собственно, сабж в заголовке. Форум 2.0.4, дневники 2.0pb7. На форуме установлен мод Resize Image , соответственно, в дневниках он тоже срабатывает. Но как-то неудачно - ресайзить ресайзит, а вот оригинал картинки (который должнен открываться по клику в новом окне) не сохраняет. А надо. Может, сталкивался кто - как это исправить?
Ссылка на комментарий
Поделиться на других сайтах

вы че, в теге имг ничто не ресайзится!

а не открывается, ибо там яваскрипт онклик режется

 

вот мое решение в 21х (не полностью И БЕЗ ОЮЪЯСНЕНИЙ, но смысл должен быть понятен)

		// Loading post parser
	/*require ROOT_PATH."sources/lib/post_parser.php";
	$parser = new post_parser();*/
	require_once( ROOT_PATH."sources/handlers/han_parse_bbcode.php" );

	$parser = new parse_bbcode();		
	$parser->ipsclass =& $ibforums;
	$parser->parse_bbcode = 1;
	$parser->parse_smilies = $ibforums->input['enableemo'] == 'yes' ? 1 : 0;

	$ibforums->skin['_emodir'] = $journal->skin->skin_info['emo_dir'];

   	$parser->bypass_badwords = 1;

	if ($ibforums->cache['group_cache'][$ibforums->member['mgroup']]['g_j_use_filter'])
	{
		$parser->bypass_badwords = 0;
	}

	// make post first
	/*$post = $parser->convert(array( TEXT	=> $ibforums->input['Post'],
									SMILIES => $ibforums->input['enableemo'] == 'yes' ? 1 : 0,
									CODE	=> 1,
									HTML	=> 0 ));*/
	$post = $parser->pre_db_parse($ibforums->input['Post'],1);

function pre_db_parse( $txt="" ,$inJournal=0)

				//image aling="left" or right, [IMG=left]
			$txt = preg_replace( "#\[img=(right|left)\](.+?)\[/img\]#ie"				, "\$this->regex_check_image('\\2','\\1',$inJournal)"	, $txt );
			//end mod
			$txt = preg_replace( "#\[img\](.+?)\[/img\]#ie"							 , "\$this->regex_check_image('\\1','',$inJournal)"		  , $txt );

function regex_check_image($url="", $align="", $inJournal=0)

		if($inJournal)
	{
		if ($align=="")
		{
			return "<img src='$url' border='0' alt='{$this->ipsclass->lang['bbcode_img_alt']}'  />";
		}
		else
		{
			return "<img style='float:$align' src='$url' border='0' alt='{$this->ipsclass->lang['bbcode_img_alt']}' />";
		}
	}

Ссылка на комментарий
Поделиться на других сайтах

вы че, в теге имг ничто не ресайзится!
Если б не расайзилось, я б и не спрашивала. ;) Показать?
а не открывается, ибо там яваскрипт онклик режется

 

вот мое решение в 21х (не полностью И БЕЗ ОЮЪЯСНЕНИЙ, но смысл должен быть понятен)

Спасибо, попробую. :D
Ссылка на комментарий
Поделиться на других сайтах

done

смысл в том, чтобы передать в парсер переменную, которая будет говорить о том, что парсер работает из дневников

 

еще вариант

					if ($align == "") 
				{
					if($inJournal)
					return "<a href='$url' target='_blank'><img width='$out_imgwidth' height='$out_imgheigh' src='$url' border='0' style='cursor:pointer;' alt='Open in new window' /></a>";
					else
					return "<img width='$out_imgwidth' height='$out_imgheigh' src='$url' border='0' style='cursor:pointer;' onclick=window.open('$url') alt='Open in new window' />";
				}
				else
				{
					if($inJournal)
					return "<a href='$url' target='_blank'><img style='float:$align' width='$out_imgwidth' height='$out_imgheigh' src='$url' border='0' style='cursor:pointer;' alt='Open in new window' /></a>";
					else
					return "<img style='float:$align' width='$out_imgwidth' height='$out_imgheigh' src='$url' border='0' style='cursor:pointer;' onclick=window.open('$url') alt='Open in new window' />";
				}

Ссылка на комментарий
Поделиться на других сайтах

  • 1 год спустя...

Ну вот собственно таже проблема что и у Allure

Только я к сожалению не так сильно знаю PHP и из данного объяснения совсем не пойму что и куда нужно вставить/заменить, разжуйте если не сложно, за спасибо)

Ссылка на комментарий
Поделиться на других сайтах

короче первое условие - мы сделали мод замена парсера

теперь берем в строчках, а их там вроде даже не одна

$post = $parser->pre_db_parse($ibforums->input['Post']);

делаем

$post = $parser->pre_db_parse($ibforums->input['Post'],1);

теперь идем ./sources/handlers/han_parse_bbcode.php

ищем

function pre_db_parse( $txt="" )

делаем

function pre_db_parse( $txt="" ,$inJournal=0)

в этой функции ищем и делаем (здесь можно без подробностей? просто ищем в 40 строчках ниже фразу и понимаем, что добавить)

return $this->bbclass->pre_db_parse( $text , $inJournal);

теперь идем ./sources/classes/bbcode/class_bbcode.php

делаем

				//image aling="left" or right, [IMG=left]
			$txt = preg_replace( "#\[img=(right|left)\](.+?)\[/img\]#ie"				, "\$this->regex_check_image('\\2','\\1',$inJournal)"	, $txt );
			//end mod
			$txt = preg_replace( "#\[img\](.+?)\[/img\]#ie"							 , "\$this->regex_check_image('\\1','',$inJournal)"		  , $txt );

теперь идем ./sources/classes/bbcode/class_bbcode_core.php

ищем что-то похожее на

					if ($align == "") 
				{
					return "<img width='$out_imgwidth' height='$out_imgheigh' class='imgtag' src='$url' border='0' style='cursor:pointer;' onclick=\"window.open('$url');\" alt='Open in new window' />";
				}
				else
				{
					return "<img style='float:$align' width='$out_imgwidth' height='$out_imgheigh' class='imgtag' src='$url' border='0' style='cursor:pointer;' onclick=\"window.open('$url');\" alt='Open in new window' />";
				}

делаем что-то похожее на

					if ($align == "") 
				{
					if($inJournal)
					return "<a href='$url' target='_blank'><img width='$out_imgwidth' height='$out_imgheigh' class='imgtag' src='$url' border='0' style='cursor:pointer;' alt='Open in new window' /></a>";
					else
					return "<img width='$out_imgwidth' height='$out_imgheigh' class='imgtag' src='$url' border='0' style='cursor:pointer;' onclick=\"window.open('$url');\" alt='Open in new window' />";
				}
				else
				{
					if($inJournal)
					return "<a href='$url' target='_blank'><img style='float:$align' width='$out_imgwidth' height='$out_imgheigh' class='imgtag' src='$url' border='0' style='cursor:pointer;' alt='Open in new window' /></a>";
					else
					return "<img style='float:$align' width='$out_imgwidth' height='$out_imgheigh' class='imgtag' src='$url' border='0' style='cursor:pointer;' onclick=\"window.open('$url');\" alt='Open in new window' />";
				}

Ссылка на комментарий
Поделиться на других сайтах

1. Было про post_function.php ?

2. У меня была строка function pre_db_parse( $text ) так что заменял на неё.

3. Ясно

4. Ясно

 

и вот после 4-ого пункта, везде где требуется bbcode_core выдает ошибку

Parse error: syntax error, unexpected ';', expecting T_FUNCTION in /home/mybic/domains/blablabla.ru/public_html/sources/classes/bbcode/class_bbcode_core.php on line 1918

Указывает всегда (я много раз пробовал менять) на последнюю строку в файле, а именно на "?>"

Если убираю изменения в четвертом - редактирование постов и везде где bbcode_core нужны, вприцнипе не выдает ошибок.. Правда в силу первых трех изменений, картинки уже в редактировании отображаются хтмл тегами, а сообщения в кричалку (DDshout), а так же везде по форуму и жж вовсе показываются пустыми..(новые сообщения.. после этих изменений)

Как быть то со всем этим теперь?

Ссылка на комментарий
Поделиться на других сайтах

Долбил двое суток.. Безрезультатно. Если в ./sources/handlers/han_parse_bbcode.php поменять function pre_db_parse( $text ) на function pre_db_parse( $txt="" ,$inJournal=0) то все сообщения создаваемые после изменения, отображаются пустыми. Если же поменять на function pre_db_parse( $text ,$inJournal=0) то (при условии что сделаны остальные изменения, про которые Вы говорили) при вставке картинки (обычные мессаги с текстом проходят нормально) выдает такую ошибку (прошу не пинать в этот раз на мою кривизну, разглядывал каждый символ. вставлял и проверял по 40 раз, честное слово, все так, как указано у Вас):

 

Parse error: syntax error, unexpected ')' in /home/xxx/domains/xxx.ru/public_html/sources/classes/bbcode/class_bbcode.php(197) : regexp code on line 1

Fatal error: preg_replace() [<a href='function.preg-replace'>function.preg-replace</a>]: Failed evaluating code: $this->regex_check_image('http://xxx.ru/uploads/posts/1175998029_1.jpg','',) in /home/xxx/domains/xxx.ru/public_html/sources/classes/bbcode/class_bbcode.php on line 197

 

P.S. Жалко что Вы запретили беспокоить Вас по icq :D У меня связаны руки и остается надеяться что Вы зайдете в этот топик. А пока пойду успокаивать пользователей)

Ссылка на комментарий
Поделиться на других сайтах

function pre_db_parse( $text ) на function pre_db_parse( $txt="" ,$inJournal=0)

НУ ЕСТЕСТВЕННО!!!!

это просто немыслимая ошибка

 

$this->regex_check_image('http://xxx.ru/uploads/posts/1175998029_1.jpg','',here)

после запятой почему-то ничего нет

 

собственно надо сделать передачу значения inJournal в парсер

из воздуха оно же не берется

 

функция должна быть function pre_db_parse( $txt="" ,$inJournal=0)

Ссылка на комментарий
Поделиться на других сайтах

Спасибо за ответ, но я около 10 минут пытался понять что же сделать, к сожалению так и не понял (совсем не силен в php)..

 

функция должна быть function pre_db_parse( $txt="" ,$inJournal=0)

Но чуть Выше вы сказали что это немыслемая ошибка, менять function pre_db_parse( $text ) на function pre_db_parse( $txt="" ,$inJournal=0).

Значит эту функцию нужно сделать отдельно и если да, то что в неё вписать? тоже что и в function pre_db_parse( $text ) ?

Ссылка на комментарий
Поделиться на других сайтах

нужно мыслить глобально

что мы делаем

мы добавляем входящую переменную

для этого мы ставим запятую в скобках и дописываем переменную

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

посему предлагаю от него отказаться

Ссылка на комментарий
Поделиться на других сайтах

Мне по сути больше ничего не нужно, все остальное в mJournal я уже настроил(не без помощи этого форума), если и осталось что-то, то это мелочи. Я Вас очень прошу. Помогите.
Ссылка на комментарий
Поделиться на других сайтах

function pre_db_parse( $txt="" ) - в class_bbcode.php находится. А в han_parse_bbcode, действительно, function pre_db_parse( $text ) и return $this->bbclass->pre_db_parse( $text ); - там же.

Переменную $inJournal надо и туда и сюда добавить.

 

...

теперь идем ./sources/handlers/han_parse_bbcode.php

ищем

function pre_db_parse( $txt="" )

делаем

function pre_db_parse( $txt="" ,$inJournal=0)

в этой функции ищем и делаем (здесь можно без подробностей? просто ищем в 40 строчках ниже фразу и понимаем, что добавить)

return $this->bbclass->pre_db_parse( $text , $inJournal);

...

Тут, немного спутано, видимо. :D Скорее так:

./sources/handlers/han_parse_bbcode.php

ищем

function pre_db_parse( $text )

и делаем

function pre_db_parse( $text, $inJournal=0)

в этой же функции ищем:

return $this->bbclass->pre_db_parse( $text );

и делаем

return $this->bbclass->pre_db_parse( $text , $inJournal);

 

./sources/classes/bbcode/class_bbcode.php

ищем

function pre_db_parse( $txt="" )

и делаем

function pre_db_parse( $txt="" ,$inJournal=0)

 

Вроде, так. Поправьте, если ошибаюсь - у меня нет 2.1.х... ;)

Ссылка на комментарий
Поделиться на других сайтах

Ошибки пропали и картинки проходят через парсер теперь нормально, правда одна деталь. В жж как картинки не были ссылками, так и остались :/

Странно, судя по всему первый return не срабатывает..

 

class_bbcode_core.php

					if ($align == "")
				{
					if($inJournal)
					return "<a href='$url' target='_blank'><img width='$out_imgwidth' height='$out_imgheigh' class='imgtag' src='$url' border='0' style='cursor:pointer;' alt='Open in new window' /></a>";
					else
					return "<img width='$out_imgwidth' height='$out_imgheigh' src='$url' border='0' style=\"cursor:pointer;\" onclick=\"window.open('$url');\" alt='Open in new window' />";
				}
				else
				{
					if($inJournal)
					return "<a href='$url' target='_blank'><img style='float:$align' width='$out_imgwidth' height='$out_imgheigh' class='imgtag' src='$url' border='0' style='cursor:pointer;' alt='Open in new window' /></a>";
					else
					return "<img style='float:{$align}; cursor: pointer;' width='$out_imgwidth' height='$out_imgheigh' src='$url' border='0' hspace=\"10\" style=\"cursor:pointer;\" onclick=\"window.open('$url');\" alt='Open in new window' />";
				}

 

class_bbcode.php

			if ( $this->ipsclass->vars['allow_images'] )
		{
			//image aling="left" or right, [IMG=left]
			$txt = preg_replace( "#\[img=(right|left)\](.+?)\[/img\]#ie"				, "\$this->regex_check_image('\\2','\\1',$inJournal)"	, $txt );
			//end mod
			$txt = preg_replace( "#\[img\](.+?)\[/img\]#ie"							 , "\$this->regex_check_image('\\1','',$inJournal)"		  , $txt );
			$txt = preg_replace( "#(\[flash=)(\S+?)(\,)(\S+?)(\])(\S+?)(\[\/flash\])#ie", "\$this->regex_check_flash('\\2','\\4','\\6')", $txt );
		}

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.