0
1) Добавить вручную данную ссылку в файл header_top.tpl:
— в templates\language\russian.php добавить 'about_project' => 'О проекте',
<ul class="pages">
	<li {if $sMenuHeadItemSelect=='blog'}class="active"{/if}><a href="{cfg name='path.root.web'}">{$aLang.topic_title}</a></li>
	<li {if $sMenuHeadItemSelect=='blogs'}class="active"{/if}><a href="{router page='blogs'}">{$aLang.blogs}</a></li>
	<li {if $sMenuHeadItemSelect=='people'}class="active"{/if}><a href="{router page='people'}">{$aLang.people}</a></li>
	{if $oUserCurrent}
	<li {if $sMenuItemSelect=='stream'}class="active"{/if}>
	<a href="{router page='stream'}">{$aLang.stream_personal_title}</a>
	</li>
	{/if}

        <li {if $smarty.server.REQUEST_URI=='ссылкадостраницыбездомена'}class="active"{/if}><a href="ссылкадостраницы">{$aLang.about_project}</a></li>

	{hook run='main_menu'}
	</ul>
  • avatar
  • bamboo
  • 03 октября 2011, 05:52
+1
на всякий случай для любителей портировать под 0.4:

в шаблоне /templates/skin/ВАШ_СКИН/actions/ActionTopic/add.tpl сроку


<option value="{$oBlog->getId()}" {if $_aRequest.blog_id==$oBlog->getId()}selected{/if}>{$oBlog->getTitle()}</option>


нужно заменить на


<option value="{$oBlog->getId()}" {if $_aRequest.blog_id==$oBlog->getId() or $sBlogId==$oBlog->getId()}selected{/if}>{$oBlog->getTitle()}</option>


спрашивали, то публикую
  • avatar
  • PSNet
  • 27 сентября 2011, 17:28
+1
Там есть пару существенных недочетов, исправлю, выложу… На этой неделе…
  • avatar
  • cajoy
  • 13 сентября 2011, 13:07
+4
приехал с отдыха, увидел релиз — обрадовался. начал писать комментарий — нашел баг.
При вставке пустой цитаты курсор попадает не в центр тегов, а в конец.

<blockquote></blockquote>вот тут курсор появился.


<blockquote>хотя нужен здесь</blockquote>
  • avatar
  • PSNet
  • 31 августа 2011, 17:13
+1
{if $oUserCurrent and $oUserCurrent->getProfileSex()}
	{if $oUserCurrent ->getProfileSex()=='man'}
		{$aLang.profile_sex_man}
	{else}
		{$aLang.profile_sex_woman}
	{/if}
{/if}
  • avatar
  • Shatter
  • 27 августа 2011, 15:52
0
я сделал мини-плагин для приветсочи, который запрещает чуваку голосовать за топик, если чувак его не откомментил. на саете появился срач! клёве. тебе надо такой? выдам по запосу.
  • avatar
  • 1d10t
  • 27 августа 2011, 02:54
0
Подключить редактор к комментам не долго:
Пишем сет кнопок для редактора в комментариях, для этого открываем ..\js\libs\markitup\sets\default\set.js и дописываем следующее:
commentsSettings = {	
	onShiftEnter:  	{keepDefault:false, replaceWith:'<br />\n'},
	onCtrlEnter:  	{keepDefault:false, openWith:'\n<p>', closeWith:'</p>'},
	onTab:    		{keepDefault:false, replaceWith:'    '},
	previewParserPath: DIR_WEB_ROOT+'/include/ajax/textPreview.php',
	previewParserVar: 'text',
	markupSet:  [ 	
		{name:'Жирный', className:'editor-bold', key:'B', openWith:'(!(<strong>|!|<b>)!)', closeWith:'(!(</strong>|!|</b>)!)' },
		{name:'Наклонный', className:'editor-italic', key:'I', openWith:'(!(<em>|!|<i>)!)', closeWith:'(!(</em>|!|</i>)!)'  },
		{name:'Перечеркнутый', className:'editor-stroke', key:'S', openWith:'<s>', closeWith:'</s>' },
		{name:'Подчеркнутый', className:'editor-underline', key:'U', openWith:'<u>', closeWith:'</u>' },
		{separator:'---------------' },
		{name:'Цитата', className:'editor-quote', key:'Q', openWith:'<blockquote>', closeWith:'</blockquote>' },
		{name:'Код', className:'editor-code', openWith:'<code>', closeWith:'
' },
{separator:'---------------' },
{name:'Изображение', className:'editor-picture', key:'P', beforeInsert: function(h) { $('#form_upload_img').jqmShow(); } },
{name:'Ссылка', className:'editor-link', key:'L', openWith:'<a href="[![Link:!:http://]!]"(!( title="[![Title]!]")!)>', closeWith:'', placeHolder:'Your text to link...' },
{separator:'---------------' },
{name:'Предпросмотр', className:'editor-preview', call:'preview'}
]
} думаю такого набора достаточно для комментов.
Далее, открываем comment_tree.tpl и добавляем в самый низ (если нужно разрешить грузить картинки)
{include file='window_load_img.tpl' sToLoad='topic_text'}

можно еще убрать строчку предосмотра дабы не дублировалось:
<input type="button" value="{$aLang.comment_preview}" onclick="comments.preview();" />

Остается только подключить редактор, в ../js/main.js находим строчку
// Подключаем редактор
    $('#topic_text').markItUp(mySettings);

и под ней дописываем
$('#form_comment_text').markItUp(commentsSettings);

все, редактор подключен.
  • avatar
  • devilben
  • 21 августа 2011, 00:23
0
Если под «плагином» подразумевается плагин LS,
то в его инициализации в Init(){...} допишите строчку:
$this->Viewer_Assign('show_frame','1');

а в шаблоне напишите:
{if $show_frame}
<!-- Код фрейма --> 
{/if}
  • avatar
  • xEviL
  • 19 августа 2011, 22:05
0
как сделать чтобы вырезало не квадратом, подскажите пожалуйста, например размеров 150х75
0
В шаблоне block.tags.tpl надо справить метод кодирования символов.

7 строка с:

<li><a class="w{$oTag->getSize()}" rel="tag" href="{router page='tag'}{$oTag->getText()|escape:'html'}/">{$oTag->getText()|escape:'html'}</a></li>

на
<li><a class="w{$oTag->getSize()}" rel="tag" href="{router page='tag'}{$oTag->getText()|escape:'url'}/">{$oTag->getText()|escape:'html'}</a></li>
  • avatar
  • onqu
  • 03 апреля 2011, 08:33
0
Тоже озадачился этой проблемой, надоело что поисковики видят эти кракозябрики.

Сначала думал дело в настройках кодировок или базе, оказалось совсем иначе.

В файле function.php есть функция:
function func_text_words($sText,$iCountWords) {
	$sText=str_replace("\r\n",'[<rn>]',$sText);
	$sText=str_replace("\n",'[<n>]',$sText);
		
	$iCount=0;
	$aWordsResult=array();
	$aWords=preg_split("/\s+/",$sText);	
	for($i=0;$i<count($aWords);$i++) {
		if ($iCount>=$iCountWords) {
			break;
		}
		if ($aWords[$i]!='[<rn>]' and $aWords[$i]!='[<n>]') {
			$aWordsResult[]=$aWords[$i];
			$iCount++;
		}
	}
	$sText=join(' ',$aWordsResult);	
	$sText=str_replace('[<rn>]'," ",$sText);
	$sText=str_replace('[<n>]'," ",$sText);	
	return $sText;	
}


В ней строчку:
$aWords=preg_split("/\s+/",$sText);

Меняем на:
$aWords=preg_split("/\s+/u",$sText);


preg_split — некорректно отрабатывает без параметра u

После этого кракозябры исчезнут.

У себя делал на 3 версии LS, но функция в том же виде и в 4 версии, так-что может будет ещё кому полезна.

Пологаю проблема имеет определённую зависимость от хостинга, или от версии PHP и проявляться может не всегда.
0
Хук должен выглядеть так:
public function TopicShow($aParams)
{
	$oTopic=$aParams['oTopic'];
	
	// Проверяем авторизован ли юзер, если нет - обновляем статистику
	$do_count_visits=(!$this->User_IsAuthorization());
	if (!$do_count_visits)
	{
		// Если авторизован, проверяем не он ли стартер топика
		$oUser=$this->User_GetUserCurrent();
		$do_count_visits=$oUser->getId()!=$oTopic->getUserId();
	}

	if ($do_count_visits)
	{
		$oTopic->setCountRead($oTopic->getCountRead()+1);
		$this->Topic_UpdateTopic($oTopic);

	}
}


Единственное, тут ни где не учитывается посещение сайта поисковыми машинами, но, в принципе, этим можно пренебречь при большом количестве посещений :)
  • avatar
  • kerby
  • 18 января 2011, 06:25
0
Проблема решена. В actions/ActionTopic/add.tpl в теге
<form></form>
находится скрипт
<script language="JavaScript" type="text/javascript">
     					ajaxBlogInfo($('blog_id').value);


выносим его за пределы form и все работает
  • avatar
  • dance
  • 29 декабря 2010, 23:31
0
Спасибо, помогло :)
Итоговый код, если кому понадобится:

#leftcolumn { width: 15%; float: left; margin-left: 1%; margin-top: -6px; }
#content { width: 58%; background: #fff; float: left; padding-top: 20px; padding-bottom: 20px; zoom: 1; }
#sidebar { width: 25%; float: left; margin-left: 1%; margin-top: -6px; }
  • avatar
  • Rush
  • 05 декабря 2010, 12:38
0
какие такие глюки

надо просто в конфиге записать доменное имя в виде punycode

типа xn--80aaepkcu7d3a0g.xn--p1ai == живаяулица.рф
  • avatar
  • 1d10t
  • 16 ноября 2010, 12:02
0
с консолью хакера всё просто, если имеете представление о php вообще и о структуре livestreet
в index.php есть строчка
define ('SYS_HACKER_CONSOLE', false);

переключаете в true, перезагружаете страничку и жмете Ctrl+~

теперь в нужном экшене(в вашем случае ActionProfile) дампим нужную переменную

dump($sResult['collection']);

и в консоли смотрим вывод, на каком объекте затык.

Удобная штука для отладки, чтобы не травмировать народ var_dump. Но следует заметить, что используется она ТОЛЬКО для отладки (ибо при ее активации есть проблемы с ajax)
0
Topic.class.php
функция GetTopicsGood
видимо, заменить
'blog_type' => array(
				'personal',
				'open'
			),
на
'blog_type' => array(
				'open'
			),

пробуйте
  • avatar
  • xyz
  • 28 октября 2010, 18:08
0
почему-то при написании слов в строку ничего не происходило (вываливался запрос с текстом «Hacking attempt»), с чего понял, что не передается в запрос параметр security_ls_key. Решилось так: (вместо скрипта, что перед формой)
{literal}
<script language="JavaScript" type="text/javascript">
document.addEvent('domready', function() {      
        new Autocompleter.Request.HTML($('search_form'), DIR_WEB_ROOT+'/include/ajax/tagAutocompleter.php', {
                'indicatorClass': 'autocompleter-loading', 
                'minLength': 2, 
                'selectMode': 'pick', 
                'multiple': false ,
                'postData': {
                    security_ls_key: LIVESTREET_SECURITY_KEY
                }
        }); 
});     
</script>
{/literal}


По сути в объект третьего параметра функции добавить
'postData': {
    security_ls_key: LIVESTREET_SECURITY_KEY
}
0
Хех, вот создаешь файл в хуках и вешаешь перехваты на нужные акшины. Надеюсь из примера все понятно.

/classes/hooks/HookCloseSome.class.php

<?php
class HookCloseSome extends Hook {
    public function RegisterHook() {
        $this->AddHook('action_init_ActionBlog_before','Check',__CLASS__,0); //Закрываем блоги
                $this->AddHook('action_init_ActionPeople_before','Check',__CLASS__,0); //Закрываем людей

    }

    public function Check() {
                /**
         * Проверяем авторизован ли пользователь
         */
                    
        if (!$this->User_IsAuthorization()) {
            $this->Message_AddNoticeSingle($this->Lang_Get('need_authorization'),$this->Lang_Get('attention'));
                        Router::Action('login');
                        Router::getInstance()->ExecAction();
                       }
             }
}
?>
  • avatar
  • tih
  • 01 октября 2010, 00:06