UMIhelp

Разработка сайта на UMI.CMS => Настройка системы и модулей => Тема начата: diii3 от 09 Сентября 2011, 19:36:40

Название: Подключение смайликов в комментариях
Отправлено: diii3 от 09 Сентября 2011, 19:36:40
Здравствуйте! Подскажите, пожалуйста, как подключить смайлики в форме комментариев. Что нужно прописать в XSLT шаблоне?
Название: Re:Подключение смайликов в комментариях
Отправлено: admin от 11 Сентября 2011, 01:31:47
у вас проблема именно в выводе смайлов? или в том что они не работают (не добавляются в сообщение)?
Название: Re:Подключение смайликов в комментариях
Отправлено: admin от 11 Сентября 2011, 02:07:57
в демо сайте xslt их нет как таковых, но так как это просто картинки с js кодом, который их вставляет, копируем смайлы из tpl в отдельный шаблон

<xsl:template name="smiles">		
<div class="smiles">
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/1.gif" alt="1"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/2.gif" alt="2"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/3.gif" alt="3"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/4.gif" alt="4"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/5.gif" alt="5"/></a>

<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/6.gif" alt="6"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/7.gif" alt="7"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/8.gif" alt="8"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/9.gif" alt="9"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/10.gif" alt="10"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/11.gif" alt="11"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/12.gif" alt="12"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/13.gif" alt="13"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/14.gif" alt="14"/></a>

<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/15.gif" alt="15"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/16.gif" alt="16"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/17.gif" alt="17"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/18.gif" alt="18"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/19.gif" alt="19"/></a>
<a href="#" onclick="javascript: forum_insert_smile(this, 'comment'); return false;"><img src="/images/forum/smiles/20.gif" alt="20"/></a>
</div>
</xsl:template>

и js код для подстановки этих смайлов в сообщение. Он лежит в /js/guest.js, но можно проста саму функцию вытащить к себе, вот она:

function forum_insert_smile(obj, element_name) {
if(!obj) return;
var obj = obj.firstChild;
if(!obj) return;

var alt = obj.alt;
if(!alt) return false;

var obj = document.getElementById('message');
if(!obj) obj = document.getElementById('forum_body');
if(!obj) obj = document.getElementById(element_name);
if(!obj) return false;

obj.value += "[smile:" + alt + "] ";
obj.focus();

return true;
}

а сами смайлы добавляем в шаблон с формой добавления комментария под полем для самого комментария

<textarea name="comment" id="comment"></textarea>
<xsl:call-template name="smiles" />

P.S. Обрати внимание, что смайлы вставляются в textarea поле с id равным второму аргументу в функции forum_insert_smile. У меня в шаблоне template name="smiles" второй аргумент это "comment", потому что у меня поле для комментария имеет такой id.
Название: Re:Подключение смайликов в комментариях
Отправлено: diii3 от 11 Сентября 2011, 17:12:42
Спасибо большое за помощь! Все получилось!
Название: Re:Подключение смайликов в комментариях
Отправлено: admin от 11 Сентября 2011, 17:26:30
отлично)