Version 4.6.0

This commit is contained in:
Neo committed 2025-12-19 05:55:31 -08:00
1 parent f79dcf067a
commit 517a5e1f70
2036 files changed
+110041 -26162

No files matched your search

+34 -2
View File
@@ -123,7 +123,7 @@ class _PageItem extends \IPS\Content\Item implements \IPS\Content\Searchable
* @param array $reactions Reaction Data
* @return string
*/
public static function searchResult( array $indexData, array $authorData, array $itemData, array $containerData = NULL, array $reputationData, $reviewRating, $iPostedIn, $view, $asItem, $canIgnoreComments=FALSE, $template=NULL, $reactions=array() )
public static function searchResult( array $indexData, array $authorData, array $itemData, ?array $containerData, array $reputationData, $reviewRating, $iPostedIn, $view, $asItem, $canIgnoreComments=FALSE, $template=NULL, $reactions=array() )
{
$indexData['index_title'] = \IPS\Member::loggedIn()->language()->addToStack( 'cms_page_' . $indexData['index_item_id'] );
return parent::searchResult( $indexData, $authorData, $itemData, $containerData, $reputationData, $reviewRating, $iPostedIn, $view, $asItem, $canIgnoreComments, $template, $reactions );
@@ -168,7 +168,39 @@ class _PageItem extends \IPS\Content\Item implements \IPS\Content\Searchable
}
else
{
return $this->content;
/* Remove {tags="foo"} */
$this->content = preg_replace( '#\{([a-z]+?=([\'"]).+?\\2 ?+)}#', '', $this->content );
/* Convert {{}} logic into html tags */
$this->content = preg_replace( '#{{(if|foreach)([^{]+?)}}#', '<ips$1 data="$2">', $this->content );
$this->content = preg_replace( '#{{end(if|foreach)}}#', '</ips$1>', $this->content );
/* Remove custom PHP {{$foo = $this->test();}} */
$this->content = preg_replace( '#{{(.+?)}}#', '', $this->content );
$source = new \IPS\Xml\DOMDocument( '1.0', 'UTF-8' );
$source->loadHTML( \IPS\Xml\DOMDocument::wrapHtml( $this->content ) );
/* And then remove the HTML logic */
$domElemsToRemove = array();
foreach ( $source->getElementsByTagname('ipsif') as $domElement )
{
$domElemsToRemove[] = $domElement;
}
foreach ( $source->getElementsByTagname('ipsforeach') as $domElement )
{
$domElemsToRemove[] = $domElement;
}
foreach( $domElemsToRemove as $domElement )
{
$domElement->parentNode->removeChild($domElement);
}
$content = \IPS\Text\DOMParser::getDocumentBodyContents( $source );
return $content;
}
}