1. Добавил дополнительное поле к Пользователям через Сервис -> Набор полей -> Доп.поля.
При этом галочка "не показывать в общем списке" или как-то так, чтобы было видно только в админке, а не пользователю.
Т.к. нельзя было добавить сразу Select box, а только input type=text (строка/число), добавил числом, а в шаблоне (/_admin/templates/member.tpl) JS'ом подменяю его на select:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
<!--
$(function(){
var x = '<select name="cf_secret_access"><option value="0">Нет</option><option value=1';
var secret_f = $('input[name="cf_secret_access"]');
if (secret_f.val() == 1) x += ' selected';
x += '>Да</option></select>';
secret_f.replaceWith(x);
});
//-->
</script>
2. В /_local/front_functions.php написал функцию получению статуса, вот код:
В описаниях и везде используется тег <secret>секретные данные</secret>.
И для его обработки в той же front_functions.php в функцию CustomApplyVars ввёл следующее:
function CustomApplyVars(&$vObject, $cThread, &$aVars, $pageId = 0){
if ($cThread == 'page_finalize') {
$i = strpos($aVars,'<secret>');
if ($i === false) {
return true; // not found
} else {
$aVars = __parseDesc($aVars);
}
}
return true;
}
В том же файле, соответственно, функция __parseDesc проверяет весь текст на <secret></secret> и меняет их в зависимости от результата __secret_allowed() или на <div class=secret></div>; или вырезает.