ave-cms/functions/func.hidden.php

49 lines
1.2 KiB
PHP
Raw Permalink Normal View History

2018-04-19 19:11:58 +03:00
<?php
/**
* AVE.cms
*
* @package AVE.cms
* @version 3.x
* @filesource
* @copyright © 2007-2014 AVE.cms, http://www.ave-cms.ru
*
* @license GPL v.2
*/
/**
* Обработка парного тега [tag:hide:X,X:text]...[/tag:hide] (скрытый текст)
* Заменяет скрываемый текст в зависимости от группы пользователя
*
* @param string $data обрабатываемый текст
* @return string обработанный текст
*/
function parse_hide($data)
2017-06-24 00:58:56 +03:00
{
2018-04-19 19:11:58 +03:00
static $matches = null;
static $i = null;
preg_match_all('/\[tag:hide:(\d+,)*'. UGROUP .'(,\d+)*(:.*?)?].*?\[\/tag:hide]/s', $data, $matches, PREG_SET_ORDER);
$count_matches = count($matches);
if ($count_matches > 0)
2017-06-24 00:58:56 +03:00
{
2018-04-19 19:11:58 +03:00
for ($i=0; $i <= $count_matches; $i++)
{
2017-06-24 00:58:56 +03:00
2018-04-19 19:11:58 +03:00
$hidden_text = substr(@$matches[$i][3], 1);
2017-06-24 00:58:56 +03:00
2018-04-19 19:11:58 +03:00
if ($hidden_text == "")
$hidden_text = trim(get_settings('hidden_text'));
2017-06-24 00:58:56 +03:00
2018-04-19 19:11:58 +03:00
$data = preg_replace('/\[tag:hide:(\d+,)*'. UGROUP .'(,\d+)*(:.*?)?].*?\[\/tag:hide]/s', $hidden_text, $data, 1);
}
2017-06-24 00:58:56 +03:00
}
2018-04-19 19:11:58 +03:00
$data = preg_replace('/\[tag:hide:\d+(,\d+)*.*?](.*?)\[\/tag:hide]/s', '\\2', $data);
2017-06-24 00:58:56 +03:00
2018-04-19 19:11:58 +03:00
return $data;
}
2017-06-24 00:58:56 +03:00
?>