Максим Кузнецов

Максим Кузнецов

Был в сети 04 августа 2021, 21:51
Заказы принимаю
Если своим сниппетом через pdoUsers, то примерно так:

Сниппет user.Profile
<?php
	$count = $modx->getCount('modUser', array('username' => $_GET[profile]));
	if($count <= 0){
		echo'	<h2 class="contentTitle">
					<a>Ошибка</a>
				</h2>
				<div class="content">
					Пользователя не существует.
				</div>';
	}
	else {
		$params = array();
		$params['users'] = $_GET[profile];
		$params['showBlocked'] = '1';
		$params['tpl'] = 'user.Profile';
		$params['prepareSnippet'] = 'user.Profile.prepare';
		
		$result = $modx->runSnippet('pdoUsers', $params);
		
		if (!empty($result)) {
			echo $result;
		}
		else {
			echo'	<h2 class="contentTitle">
						<a>Ошибка</a>
					</h2>
					<div class="content">
						Что-то сломалось..
					</div>';
		}

	}

+ user.Profile.prepare, где преобразовываешь нужные поля до культурного вида, в духе:
<?php
	if ($row['gender'] == '1') {
		$row['gender'] = 'Парень';
	}
	elseif ($row['gender'] == '2') {
		$row['gender'] = 'Девушка';
	}
	elseif ($row['gender'] == '0')
		$gender ='';


	if (!empty($row['fullname']))
		$row['fullname'] = 'Имя: <b>' . $row['fullname'] . '</b>

';

	if (!empty($row['gender']))
		$row['gender'] = 'Пол: <b class="' . $gender . '">' . $row['gender'] . '</b>
';
		

	if (!empty($row['city']))
		$row['city'] = 'Город: <b>' . $row['city'] . '</b>
';
		
		
	if ($row['blocked'] != '0' && $row['blockeduntil'] == '0')
		$row['blocked'] = '
Заблокирован
';
	else $row['blocked'] = '';
		
	if ($row['blockeduntil'] != '0')
		$row['blockeduntil'] = '
Заблокирован до:' . $row['blockeduntil'] . '
';
	else $row['blockeduntil'] = '';
		
	return serialize($row);


+ чанк user.Profile, где формируешь шаблон профиля

Ну и в .htaccess добавить правило в духе:
RewriteRule ^users/([^/]+)$ /users?profile=$1 [L]

— чтобы ссылка была вида не ?profile=.., а /users/Username
Хех..)

Так затрудняюсь сказать — скинь настройки?

Upd:
Вот мои (тикеты создают только узкий круг лиц, поэтому спектр доступных параметров довольно обширен), можно попробовать копипастой заменить тебе и проверить.

cfgAllowTagParams
{"pre":["class"],"b":["title"],"div":["class","style"],"object":["class","style","type","height","width","id","data","bgcolor"],"param":["name","value"],"a":["title","href","class","style","target"],"i":["title"],"img":["src","alt","title","align","class","data-original","width","height","style"],"h1":["class","id","style"],"h2":["class","id","style"],"h3":["class","id","style"],"h4":["class","id","style"],"h5":["class","id","style"],"h6":["class","id","style"],"table":["class","id","style","align"],"tr":["class","id","style","rowspan","colspan","align"],"td":["class","id","style","rowspan","colspan","align"]}

cfgAllowTags
a,img,i,b,u,em,strong,li,ol,ul,sup,abbr,pre,acronym,h1,h2,h3,h4,h5,h6,cut,br,code,s,blockquote,table,tbody,thead,tr,th,td,video,iframe,object,param,div,hr

cfgSetTagCutWithContent
script

cfgSetTagParamsRequired и cfgSetTagChilds пустые.

Остальные вряд-и могут быть связаны.)
админка -> шестеренка -> наборы параметров -> ticket, и расширяешь перечень допустимых тегов.

Можно отключить jevix в настройках тикетов (убрать соответствующую галочку), но нежелательно — jevix отлично приводит к единому стилю все тикеты и вырезает не желаемые теги/скрипты.
Только с симплдримс это дополнение было загружено около 3000 раз.

Представь какой поток вопросов приходил разработчику с требованием ответа по бесплатному модулю? Волей-неволей надоест.)

К слову, саппорт по аналогичным платным дополнениям у сд почти всегда своевременен и оперативен.