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

Добавляем alt изображению в посте для 2.1.7


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

Написано для опытных :D

 

Для начала меняем фун-ю function tag_image() в файле class_editor_std.php на:

function tag_image()
{
var FoundErrors = '';
// edited: jAx :P
//----------------------------------------
// Do we have ranged text?
//----------------------------------------

if ( check_range() )
{
	//----------------------------------------
	// Yes, just wrap text
	//----------------------------------------

	wrap_tags( "[img=", "]", "" );
}
else
{
	var enterURL = prompt(text_enter_image, "http://");
	var enterTITLE = prompt("Введите описание", "");	
	if ( ! enterURL )
	{ 
		alert(error_no_url); 
		return; 
	}
	if ( enterTITLE )
	{ 
enterTITLE = '=' + enterTITLE;
	}

	wrap_tags("[img"+enterTITLE+"]"+enterURL+"[/img]", "");
}
}

class_bbcode_core.php

// 1. Обратите внимание, на добавленную переменную $title=""

function regex_check_image($url="", $title="")

		//-----------------------------------------
	// Is it a legitimate image?
	//-----------------------------------------

	/*if ( ! preg_match( "/^(http|https|ftp):\/\//i", $url ) )
	{
		$this->error = 'no_dynamic';
		return $default;
	}*/

	//-----------------------------------------
	// If we are still here....
	//-----------------------------------------

	$url = str_replace( " ", "%20", $url );
	// 2. Обратите внимание, что из кода убран alt и добавлен title, который включает переменную
	return "<img src=\"$url\" border=\"0\" title=\"$title\" />";
}

class_bbcode.php:

$txt = preg_replace( "#<img title=[\"'](\S+?)[\"'] .+? src=[\"'](\S+?)['\"].+?".">#"		   , "\[IMG=\\2\]\\1\[/IMG\]"			, $txt );

$txt = preg_replace( "#\[img=(.+?)\](.+?)\[/img\]#ie"				, "\$this->regex_check_image('\\2','\\1')"	, $txt );
			$txt = preg_replace( "#\[img\](.+?)\[/img\]#ie"							 , "\$this->regex_check_image('\\1')"		  , $txt );

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

Вот это:

		//-----------------------------------------
	// Is it a legitimate image?
	//-----------------------------------------

	/*if ( ! preg_match( "/^(http|https|ftp):\/\//i", $url ) )
	{
		$this->error = 'no_dynamic';
		return $default;
	}*/

Мне кажется может быть весьма опасным. Jax ты из каких соображений закоментировал проверку?

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

Я тоже заметил это, но не я комментировал. Это в дистрибутиве русской сборки уже есть.

 

Имейте ввиду, что мод несовместим с модом SAT`а, по масшабированию изображения.

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

  • 3 недели спустя...

Jax, я думаю передумаю и поставлю данный мод (раз уж он был написал "благодоря" мне ;) ), но немогли бы вы написать так же еще и мод к нему, чтобы можно было выставить размеры картинки :D

А если еще ограничить это по группам (модеры и выше) и (или) по макс. размерам (800 на 600 скажем) - то цены бы не было )

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

А если еще ограничить это по группам (модеры и выше) и (или) по макс. размерам (800 на 600 скажем) - то цены бы не было )

Цена есть :) Шутка.

Написать ограничение по группам будет не сложно.

Jax, я думаю передумаю и поставлю данный мод (раз уж он был написал "благодоря" мне ), но немогли бы вы написать так же еще и мод к нему, чтобы можно было выставить размеры картинки

Масшабирование изображения есть от SAT, только надо ставить либо то, либо другое :D Но правильнее будет поставить его мод и уже переписать мой ;)

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

Мне масшабирование не нужно ) Нужно просто возможность добавления размеров :D Помогает на случай, если картинка не загрузится или картинки отключены ;)

 

Поможете? На счет ограничения - может быть его б я сам и написал, но вот как вывести ошибку в случае не той группы не знаю, так как совсем не умею работать с ошибками IPB (там же встроенный класс, какой-то...)

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

Мне масшабирование не нужно ) Нужно просто возможность добавления размеров

:D масштабирование и есть возможность менять размер изображения, указываю ширину и высоту.

Помогает на случай, если картинка не загрузится или картинки отключены

Не понял, как это относится к этому делу ;)

 

А с чем помочь и на что ограничение? Чтобы другие группы не могли писать свой alt к изображению или чтобы они не могли масштабировать его. Если второе, то вам в тему SAT`а :)

 

Да и к тому же, зачем запрещать это юзерам :) Наоборот, делаем все для них, а не для админов :)

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

Мне это нужно сделать только для модераторов раздела новости (ньюсмейкеров). 98% пользователей моего форума - все знакомые между собой люди, и те из них, кто не пишут новостей, не имеют этим пользоваться да и не надо им. А вот скрытые от стандартной группы даст безопастность. Так как хакерыне дремлют )

 

Что мне нужно: тег с аттрибутами alt, width, height, все из которых не обязательные. Парсинг я бы смог написать, но не умею ограничивать по группам и не умею отображать ошибки :D

 

Думаю, парсить можно на основе такого синтаксиса:

alt|width|height

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

Ну будем делать на основе мода SAT тогда, а то просто зачем велосипед свой собирать :D

 

Как будет время - сделаем...

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

  • 4 месяца спустя...
  • 1 год спустя...
Обратите внимание, что из кода убран alt и добавлен title, который включает переменную

А почему вы используете title в теге img (а не alt)?

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

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

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

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

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

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

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

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

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

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

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

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