PrettyPhoto в комментариях и вообще на всем сайте

Всем здравствуйте! У меня парочка вопросов возникла, ответов на которые не нашел.

1. Сижу сейчас и колупаюсь с CSS, чтобы картинки в комментариях отображались, не уродуя весь сайт своими огромными или мизерными размерами. Потом задался вопросом, насколько сложно в тексте топика/комментария «отловить» тег
<img>
и отправить его в PrettyPhoto. Это вообще возможно в рамках шаблона?

2. И еще такой вопрос, раз уже начал попрошайничать… На странице топика, если он лежит в общих блогах я поставил меню «Интересные/Новые/Обсуждаемые/TOP», но при нажатии, например, на «Новые» я попадаю на страницу «сайт.ру/blog/newall/», в то время, как ожидаю «сайт.ру/blog_name/blog/newall/». В общем, дело в том, что переменная $sMenuSubBlogUrl на странице не учитывает блог, в котором топик находится. Есть варианты, как переменную модифицировать?

2 комментария

avatar
2. как вариант:
{$oBlog->getUrlFull()}/newall
{$oBlog->getUrlFull()}/discussed
и т.д.
avatar
1. предположение, так что на 100% не уверен…
файл engine/modules/image/Image.class.php:
строки 407 — 429
public function BuildHTML($sPath,$aParams) {
	$sText='<img src="'.$sPath.'" ';
	if (isset($aParams['title']) and $aParams['title']!='') {
		$sText.=' title="'.htmlspecialchars($aParams['title']).'" ';
		/**
		 * Если не определен ALT заполняем его тайтлом
		 */
		if(!isset($aParams['alt'])) $aParams['alt']=$aParams['title'];
	}
	if (isset($aParams['align']) and in_array($aParams['align'],array('left','right','center'))) {
		if ($aParams['align'] == 'center') {
			$sText.=' class="image-center"';
		} else {
			$sText.=' align="'.htmlspecialchars($aParams['align']).'" ';
		}
	}
	$sAlt = isset($aParams['alt'])
		? ' alt="'.htmlspecialchars($aParams['alt']).'"'
		: ' alt=""';
	$sText.=$sAlt.' />';

	return $sText;
}


если по-простому, не заморачиваться с путями обрезанных изображений, то можно попробовать так:

добавить перед строкой 'return $sText;'

$sText = '<a href="'.$sPath.'" rel="[photoset]">'.$sText.'</a>';


также возможно добавить к изображению какой-нибудь класс, к примеру class=«image-preview»
а к классу стиль, уменьшающий изображение если оно шире/выше указанного
.image-preview{
	max-width: 300px; /* к примеру */
	max-height: 300px; /* к примеру */
}

но далеко не факт, что это везде будет удачно реализовываться (если вообще мое предположение верно и работает)…
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.