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

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 );
		}

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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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

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

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