Картинки, теги, абзацы в топике-ссылке

Решил аккумулировать инфу из топиков раз, два и три, и добавить инструкцию как все таки доработать шаблон, чтобы все работало. Насколько я понял из комментариев, не всем удалось допилить шаблоны.


1. Правим обработчик «При добавлении»

Это уже писалось ранее, поэтому просто повторю.

В файле \classes\actions\ActionLink.class.php находим функцию protected function SubmitAdd() и меняем код
$oTopic->setText(htmlspecialchars(getRequest('topic_text')));
$oTopic->setTextShort(htmlspecialchars(getRequest('topic_text')));

на
list($sTextShort,$sTextNew,$sTextCut) = $this->Text_Cut(getRequest('topic_text'));
$oTopic->setText($this->Text_Parser($sTextNew));
$oTopic->setTextShort($this->Text_Parser($sTextShort));


2. Правим обработчик события «При изменении»

А про него почему то никто не упоминает, хотя не изменив его при редактировании потеряем теги.

В файле \classes\actions\ActionLink.class.php находим функцию protected function SubmitEdit($oTopic) и аналогично меняем код
$oTopic->setText(htmlspecialchars(getRequest('topic_text')));
$oTopic->setTextShort(htmlspecialchars(getRequest('topic_text')));

на
list($sTextShort,$sTextNew,$sTextCut) = $this->Text_Cut(getRequest('topic_text'));
$oTopic->setText($this->Text_Parser($sTextNew));
$oTopic->setTextShort($this->Text_Parser($sTextShort));


3. Инициализация редактора

В файле \templates\skin\new\actions\ActionLink\add.tpl после кода
{literal}
<script language="JavaScript" type="text/javascript">
document.addEvent('domready', function() {	
	new Autocompleter.Request.HTML($('topic_tags'), DIR_WEB_ROOT+'/include/ajax/tagAutocompleter.php?security_ls_key='+LIVESTREET_SECURITY_KEY, {
		'indicatorClass': 'autocompleter-loading', // class added to the input during request
		'minLength': 2, // We need at least 1 character
		'selectMode': 'pick', // Instant completion
		'multiple': true // Tag support, by default comma separated
	}); 
});
</script>
{/literal}

вставляем код
{if $oConfig->GetValue('view.tinymce')}
<script type="text/javascript" src="{cfg name='path.root.engine_lib'}/external/tinymce_3.2.7/tiny_mce.js"></script>

<script type="text/javascript">
{literal}
tinyMCE.init({
	mode : "textareas",
	theme : "advanced",
	theme_advanced_toolbar_location : "top",
	theme_advanced_toolbar_align : "left",
	theme_advanced_buttons1 : "lshselect,bold,italic,underline,strikethrough,|,bullist,numlist,|,undo,redo,|,lslink,unlink,lsvideo,lsimage,pagebreak,code",
	theme_advanced_buttons2 : "",
	theme_advanced_buttons3 : "",
	theme_advanced_statusbar_location : "bottom",
	theme_advanced_resizing : true,
	theme_advanced_resize_horizontal : 0,
	theme_advanced_resizing_use_cookie : 0,
	theme_advanced_path : false,
	object_resizing : true,
	force_br_newlines : true,
    forced_root_block : '', // Needed for 3.x
    force_p_newlines : false,    
    plugins : "lseditor,safari,inlinepopups,media,pagebreak",
    convert_urls : false,
    extended_valid_elements : "embed[src|type|allowscriptaccess|allowfullscreen|width|height]",
    pagebreak_separator :"<cut>",
    media_strict : false,
    language : TINYMCE_LANG
});
{/literal}
</script>

{else}
	{include file='window_load_img.tpl' sToLoad='topic_text'}
{/if}


4. Выводим редактор

В файле \templates\skin\new\actions\ActionLink\add.tpl код
<p><label for="topic_text">{$aLang.topic_link_create_text}:</label>

заменяем на
<p>{if !$oConfig->GetValue('view.tinymce')}<div class="note">{$aLang.topic_create_text_notice}</div>{/if}<label for="topic_text">{$aLang.topic_create_text}:</label>
					
{if !$oConfig->GetValue('view.tinymce')}
 <div class="panel_form">
  <select onchange="lsPanel.putTagAround('topic_text',this.value); this.selectedIndex=0; return false;" style="width: 91px;">
   <option value="">{$aLang.panel_title}</option>
   <option value="h4">{$aLang.panel_title_h4}</option>
   <option value="h5">{$aLang.panel_title_h5}</option>
   <option value="h6">{$aLang.panel_title_h6}</option>
  </select>            			
  <select onchange="lsPanel.putList('topic_text',this); return false;">
   <option value="">{$aLang.panel_list}</option>
   <option value="ul">{$aLang.panel_list_ul}</option>
   <option value="ol">{$aLang.panel_list_ol}</option>
  </select>
  <a href="#" onclick="lsPanel.putTagAround('topic_text','b'); return false;" class="button"><img src="{cfg name='path.static.skin'}/images/panel/bold_ru.gif" width="20" height="20" title="{$aLang.panel_b}"></a>
  <a href="#" onclick="lsPanel.putTagAround('topic_text','i'); return false;" class="button"><img src="{cfg name='path.static.skin'}/images/panel/italic_ru.gif" width="20" height="20" title="{$aLang.panel_i}"></a>	 			
  <a href="#" onclick="lsPanel.putTagAround('topic_text','u'); return false;" class="button"><img src="{cfg name='path.static.skin'}/images/panel/underline_ru.gif" width="20" height="20" title="{$aLang.panel_u}"></a>	 			
  <a href="#" onclick="lsPanel.putTagAround('topic_text','s'); return false;" class="button"><img src="{cfg name='path.static.skin'}/images/panel/strikethrough.gif" width="20" height="20" title="{$aLang.panel_s}"></a>	 			
   
  <a href="#" onclick="lsPanel.putTagUrl('topic_text','{$aLang.panel_url_promt}'); return false;" class="button"><img src="{cfg name='path.static.skin'}/images/panel/link.gif" width="20" height="20"  title="{$aLang.panel_url}"></a>
  <a href="#" onclick="lsPanel.putQuote('topic_text'); return false;" class="button"><img src="{cfg name='path.static.skin'}/images/panel/quote.gif" width="20" height="20" title="{$aLang.panel_quote}"></a>
  <a href="#" onclick="lsPanel.putTagAround('topic_text','code'); return false;" class="button"><img src="{cfg name='path.static.skin'}/images/panel/code.gif" width="30" height="20" title="{$aLang.panel_code}"></a>
  <a href="#" onclick="lsPanel.putTagAround('topic_text','video'); return false;" class="button"><img src="{cfg name='path.static.skin'}/images/panel/video.gif" width="20" height="20" title="{$aLang.panel_video}"></a>
	 				
  <a href="#" onclick="showImgUploadForm(); return false;" class="button"><img src="{cfg name='path.static.skin'}/images/panel/img.gif" width="20" height="20" title="{$aLang.panel_image}"></a> 			
  <a href="#" onclick="lsPanel.putText('topic_text','<cut>'); return false;" class="button"><img src="{cfg name='path.static.skin'}/images/panel/cut.gif" width="20" height="20" title="{$aLang.panel_cut}"></a>	
 </div>
{/if}


5. Правим превью

В файле \templates\skin\new\actions\ActionLink\add.tpl код
<input type="submit" name="submit_preview" value="{$aLang.topic_create_submit_preview}" onclick="$('text_preview').getParent('div').setStyle('display','block'); ajaxTextPreview('topic_text',true); return false;" /> 

заменяем на
<input type="submit" name="submit_preview" value="{$aLang.topic_create_submit_preview}" onclick="$('text_preview').getParent('div').setStyle('display','block'); ajaxTextPreview('topic_text',false); return false;" /> 


6. Чистим кэш

Очищаем папки:
\templates\cache\
\templates\compiled\
\tmp\ (все кроме .htaccess)

7. Enjoy

P.S.
В связи с использованием тегов решил увеличить размер описания до 1000 символов. Для этого в файле \classes\actions\ActionLink.class.php находим функцию protected function checkTopicFields() и заменяем код
if (!func_check(getRequest('topic_text',null,'post'),'text',10,500)) {

на
if (!func_check(getRequest('topic_text',null,'post'),'text',10,1000)) {

После этого поправим языковой файл \templates\language\russian.php. Заменяем код
'topic_link_create_text_error' => 'Описание ссылки должно быть от 10 до 500 символов',

на
'topic_link_create_text_error' => 'Описание ссылки должно быть от 10 до 1000 символов',

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

avatar
Что то не помогло! Сохраняется и выводится так же без картинок. Кеш и тмп чистил.
avatar
как решили проблему?
avatar
Только что проделал все по пунктам работает как надо. На 0.5 тоже. Есть правда некоторые отличия. Чуть позже поправлю пост для 0.5 версии.

В посте кстати написано все касаемо шаблона new. Если вы делаете на другом шаблоне, то и править нужно ваш шаблон. Но я думаю это и так понятно.

В общем у кого не получилось пишите, попробую помочь.
avatar
кто-нибудь подскажет решение данной проблемы для livestreet 0.5?
avatar
я сделал для версии 5.1, чуть попозже выложу, сейчас совсем туго со временем
но там практически тоже самое что и для 0.4
avatar
кто-нибудь подскажет решение данной проблемы?
avatar
спасибо, как раз искал, как увеличить к-во возможных меток на 1 топик
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.