XenForo::callback_html( $field )

This callback processes any custom parser.php attributes and custom code with preg_replace


Description Description


Source Source

File: includes/admin/converters/XenForo.php

	protected function callback_html( $field ) {

		// Strips Xenforo custom HTML first from $field before parsing $field to parser.php
		$xenforo_markup = $field;
		$xenforo_markup = html_entity_decode( $xenforo_markup );

		// Replace '[QUOTE]' with '<blockquote>'
		$xenforo_markup = preg_replace( '/\[QUOTE\]/', '<blockquote>', $xenforo_markup );
		// Replace '[/QUOTE]' with '</blockquote>'
		$xenforo_markup = preg_replace( '/\[\/QUOTE\]/', '</blockquote>', $xenforo_markup );
		// Replace '[QUOTE=User Name($1)]' with '<em>@$1 wrote:</em><blockquote>"
		$xenforo_markup = preg_replace( '/\[quote=\"(.*?)\,\spost\:\s(.*?)\,\s\member\:\s(.*?)\"\](.*?)\[\/quote\]/', '<em>@$1 wrote:</em><blockquote>', $xenforo_markup );
		// Replace '[/quote]' with '</blockquote>'
		$xenforo_markup = preg_replace( '/\[\/quote\]/', '</blockquote>', $xenforo_markup );

		// Replace '[media=youtube]$1[/media]' with '$1"
		$xenforo_markup = preg_replace( '/\[media\=youtube\](.*?)\[\/media\]/', 'https://youtu.be/$1', $xenforo_markup );
		// Replace '[media=dailymotion]$1[/media]' with '$1"
		$xenforo_markup = preg_replace( '/\[media\=dailymotion\](.*?)\[\/media\]/', 'https://www.dailymotion.com/video/$1', $xenforo_markup );
		// Replace '[media=vimeo]$1[/media]' with '$1"
		$xenforo_markup = preg_replace( '/\[media\=vimeo\](.*?)\[\/media\]/', 'https://vimeo.com/$1', $xenforo_markup );

		// Now that Xenforo custom HTML has been stripped put the cleaned HTML back in $field
		$field = $xenforo_markup;

		// Parse out any bbCodes in $field with the BBCode 'parser.php'
		return parent::callback_html( $field );
	}

Top ↑

User Contributed Notes User Contributed Notes

You must log in before being able to contribute a note or feedback.