Перейти к контенту
  • 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
Ну а вы тоже не жмитесь, наверняка за деньги кто-то и даст. Кто-то может и сделает, там не сложно.
Ссылка на комментарий
Поделиться на других сайтах

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

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

Гость
Ответить на вопрос...

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

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

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

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

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

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

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

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