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

BBCode [code]


_lex_

Вопрос

задача:

 

изменить вывод тега Code так, чтобы форуматирование остовалось прежним. Тоесть надо оградить код от изменения форматирования, добавления других тегов (таких как перенос и т.п.). Тоесть надо чтобы например код

/* Main style for the table */   

.dp-highlighter   
{   
font-family: "Courier New", Courier, mono;   
font-size: 12px;   
text-align: left;   
border: 1px solid #2B91AF;   
background-color: #fff;   
width: 99%;   
overflow: auto;   
line-height: 100% !important;   
margin: 18px 0px 18px 0px;   
}

 

введенный в этот тег, имел тот же исходный код что и написан, также надо измменить вывод самого блока с кодом. Пример:

 

[code={option}]
.dp-highlighter   
{   
font-family: "Courier New", Courier, mono;   
font-size: 12px;   
text-align: left;   
border: 1px solid #2B91AF;   
background-color: #fff;   
width: 99%;   
overflow: auto;   
line-height: 100% !important;   
margin: 18px 0px 18px 0px;   
}
/code]

 

результат в HTML

 

<pre name="code" class="{option}">
.dp-highlighter   
{   
font-family: "Courier New", Courier, mono;   
font-size: 12px;   
text-align: left;   
border: 1px solid #2B91AF;   
background-color: #fff;   
width: 99%;   
overflow: auto;   
line-height: 100% !important;   
margin: 18px 0px 18px 0px;   
}
</pre>

 

где {option} - одно из опр. значений:

  • c-sharp
  • CSS
  • C
  • delphi
  • xml

при других значения дополнительного параметра этот самый параметр долежн быть отброшен. тоесть параметра class при выводе HTML недолжно быть. Также как и если значение неуказано.

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

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

  • 0

Очень надо.

 

Хоть подскажите гдеи как можно изменить тег и по аналогии с

  • , чтобы можно было использовать только несколько параметров.

 

вобщем, сча калупаю функции форматирования списков, может чего удастся сделать....

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

  • 0

Люди добрые, помогите изменить регуярки тега Code по аналогии с тегом LIST.

 

/*-------------------------------------------------------------------------*/
// regex_list: List generation
/*-------------------------------------------------------------------------*/
/**
* Convert list BBCode
*
* @param	string	Raw text
* @param	string	List type
* @return	string	Converted text
*/
function regex_list( $matches=array() )
{
	//-----------------------------------------
	// INIT
	//-----------------------------------------

	if ( count( $matches ) == 3 )
	{
		$type = $matches[1];
		$txt  = $matches[2];
	}
	else
	{
		$txt  = $matches[1];
	}

	if ( $txt == "" )
	{
		return;
	}

	$txt = stripslashes( $txt );

	if ( $type == "" )
	{
		return "<ul>".$this->regex_list_item($txt)."</ul>";
	}
	else
	{
		return "<ol type='$type'>".$this->regex_list_item($txt)."</ol>";
	}
}

/*-------------------------------------------------------------------------*/
// Regex list item
/*-------------------------------------------------------------------------*/

/**
* Convert list item
*
* @param	string	Raw text
* @return	string	Converted text
*/
function regex_list_item($txt)
{
	$txt = preg_replace( "#\[\*\]#", "</li><li>" , trim($txt) );

	$txt = preg_replace( "#^</?li>#"  , "", $txt );

	return str_replace( "\n</li>", "</li>", $txt."</li>" );
}

 

немогли бы вы мне разьяснить что здесь что? в особенности $type = $matches[1]; и $txt = $matches[2];.

 

			//-----------------------------------------
		// Do [code] tag
		//-----------------------------------------

		while( preg_match( "#\n?\[code\](.+?)\[/code\]\n?#is" , $txt ) )
		{
			$txt = preg_replace_callback( "#\n?\[code\](.+?)\[/code\]\n?#is", array( &$this, 'regex_code_tag' ), $txt );
		}

		while( preg_match( "#\n?\[code=(html|HTML|css|CSS|cpp|CPP)\](.+?)\[/code\]\n?#is" , $txt ) )
		{
			$txt = preg_replace_callback( "#\n?\[code=(html|HTML|css|CSS|cpp|CPP)\](.+?)\[/code\]\n?#is", array( &$this, 'regex_code_tag' ), $txt );
		}

 

			/**
* Build code tag, make contents safe
*
* @param	string	Raw text
* @return	string	Converted text
*/
function regex_code_tag( $matches=array() )
{
	//-----------------------------------------
	// We don't want to trim indentations on the first line
	//-----------------------------------------

	$txt = rtrim( $matches[1] );
	$txt = preg_replace( "#^(\n+)(.+?)$#s", "\\2", $txt );

	$default = "\[code\]$txt\[/code\]";

	if ( $txt == "" )
	{
		return;
	}

	//-----------------------------------------
	// Take a stab at removing most of the common
	// smilie characters.
	//-----------------------------------------

	//$txt = str_replace( "&" , "&", $txt );
	$txt = str_replace( "<"         , "<" , $txt );
	$txt = str_replace( ">"         , ">" , $txt );
	$txt = str_replace( "<"      , "<" , $txt );
	$txt = str_replace( ">"      , ">" , $txt );
	$txt = str_replace( """    , """ , $txt );
	$txt = str_replace( ":"         , ":" , $txt );
	$txt = str_replace( "["         , "[" , $txt );
	$txt = str_replace( "]"         , "]" , $txt );
	$txt = str_replace( ")"         , ")" , $txt );
	$txt = str_replace( "("         , "(" , $txt );
	$txt = str_replace( "\r"        , "<br />", $txt );
	$txt = str_replace( "\n"        , "<br />", $txt );
	$txt = preg_replace( "#\s{1};#" , ";" , $txt );

	//-----------------------------------------
	// Ensure that spacing is preserved
	//-----------------------------------------

	$txt = preg_replace( "#\t#"   , "    ", $txt );
	$txt = preg_replace( "#\s{2}#", "  "            , $txt );

	$html = $this->wrap_style( 'code' );

	return "<!--c1-->{$html['START']}<!--ec1-->$txt<!--c2-->{$html['END']}<!--ec2-->";
}

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

  • 0
Ну а вы тоже не жмитесь, наверняка за деньги кто-то и даст. Кто-то может и сделает, там не сложно.
Ссылка на комментарий
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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

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