Свой стиль личных сообщений

Приветствую. Задался целью изменить внешний вид лс, сделал замену шаблонов по принципу
comment.tpl => comment_talk.tpl копирование содержимого и изменения стиля.
Но вот незадача, при добавлении нового сообщения, все ровно на ajax вывод из comment.tpl
К сожалению не могу найти условие, что в talk новое сообщение берёт внешний вид из комментарий.

Подскажите люди добрые где искать вывод в talk comment.tpl для только что добавленных сообщений.

Практике блокировки сайтов Роскомнадзором уже третий год. Что делать, если ваш сайт попал в список запрещённых сайтов. Подробное описание правил блокировки и как её избежать.

13 комментариев

avatar
В модуле комментариев есть метод GetTemplateCommentByTarget, в котором прошито это имя файла, его должен был вызывать и шаблон, но по ошибке этого не было сделано.
avatar
В classes/modules/comment/Comment.class.php

Нашёл:
foreach ($aCmts as $oComment) {
			$oViewerLocal->Assign('oComment',$oComment);
			$sText=$oViewerLocal->Fetch($this->GetTemplateCommentByTarget($sId,$sTargetType));
			$aCmt[]=array(
				'html' => $sText,
				'obj'  => $oComment,
			);

и
public function GetTemplateCommentByTarget($iTargetId,$sTargetType) {
		return "comment.tpl";
	}


Я не могу понять? как указать для персональных сообщений tpl, пробывал после * Получаем комменты добавить, но выдаёт ошибку.
public function GetTemplateCommentByTarget($iTargetId,$sTargetType) {
		return "comment_talk_spisok.tpl"; 
	}
avatar
вот для личных сообщений sTargetType будет talk
avatar
Я не правильно делаю видимо пытаясь например добавить перед:
public function GetTemplateCommentByTarget($iTargetId,$sTargetType)


public function GetTemplateCommentByTarget($iTargetId, talk) {
		return "comment_talk_spisok.tpl"; 
	}


Подскажите пожалуйста куда и что нужно вставить в Comment.class.php
Пробовал 4 часа разные строки и варианты, комбинации, прочитав документацию, но всё четно. Даже пытался через else сделать…
avatar
так а саму задачу вы же написали. что вы хотите получить?
avatar
готовый код и место куда вставить, если
($iTargetId, talk)
верно, то после чего нужно вставить?
avatar
я не понимаю вообще что вы пытаетесь сделать. вы же прописали там return "comment_talk_spisok.tpl";
почему это не работает?
avatar
можно решение показать? я всю голову сломал
avatar
Выдаёт ошибку. Мне же нужно оставить и стиль комментариев и добавить другой стиль личных сообщений.
Я не правильно добавляю просто напросто, мне нужно подсказать куда.
avatar
Непонятно зачем вы вообще хотите отдельную tpl-ку, это можно все сделать версткой с условием в смарти.

{if $oComment->getTargetType() == 'talk'}
avatar
Огромное спасибо!!!!
Реализовал так:
в comment.tpl указать через это условие:
{if $oComment->getTargetType() == 'talk'}
оформление для почты
{else}
оформление для комментариев
{/if}
avatar
Не за что. Я бы добавлял только класс контейнеру, и уже через css ненужное отключал, а нужно правил. Это поможет избавится от дублирования кода в tpl-ке, но как нравится конечно.
avatar
Во общем всё получилось, но есть проблема.
scroll не прижимается вниз при добавлении нового сообщения, только при перезагрузки страницы.
Использую:
<script type="text/javascript">
          window.onload = function(){
                document.getElementById('scroll').scrollTop = document.getElementById('scroll').scrollHeight;
            }
        </script>

Изначально листает до упора…
Если убрать overflow, то всё нормально, то есть страница опускается вниз к новому письму.

С чем это может быть связанно? Думал в div overflowa частично перенести всё, что выше формы добавления комментария, но не помогло.

Что делать??
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.