+1.19
Рейтинг
1.70
Сила

Andrey Superstar

так должно работать:
{literal}<script type="text/javascript"><!--
document.write(VK.Share.button({url: "{/literal}{$oTopic->getUrl()}{literal}"},{type: "round", text: "Сохранить"}));
--></script>{/literal}
  • avatar AlikMis
  • 0
А дальше религия разобраться не позволяет?

$oUserCurrent=$this->User_GetUserCurrent();
if(!$oUserCurrent->isAdministrator() && !in_array($oUserCurrent->getId(),array(1,2,7))) echo 'Админ сказал пилить на йух'
  • avatar Shrike
  • 2
Недавно столкнулся с подобной проблемой. Проект «переехал» с другой CMS.
Поэтому запросы в БД
Пересчет количества в топиках
UPDATE `PREFIX_topic` t  
           SET t.topic_count_comment = (
               SELECT count(c.comment_id)   FROM `PREFIX_comment` c
                    WHERE c.target_id = t.topic_id AND c.comment_publish = 1 
                              AND c.target_type = 'topic')

Пересчет количества в topic_read
UPDATE `PREFIX_topic_read` t  
           SET t.comment_count_last = (
                    SELECT count(c.comment_id)   FROM `PREFIX_comment` c
                    WHERE c.target_id = t.topic_id')
  • avatar kpoxas
  • 1
6. в .htaccess вставляем что-то типа:
RewriteRule ^index/(page\d*)$ http://ТВОЙСАЙТ/$1 [R=301,L]

ну и в конфиге ls

'/^(page(\d+)\/?)$/i' => "index/\\1",	

Это так навскидку. Понятное дело, в шаблонах переделать все ссылки.
  • avatar stepan
  • 0
Вот этот код вставляете в хедер страницы:

<script type="text/javascript" src="http://userapi.com/js/api/openapi.js?52"></script>
<script type="text/javascript">
    VK.init({apiId: 3142731, onlyWidgets: true});
</script>

А вот в этот код добавляем id топика и добавляем в футер топика (literal добавлять не обязательно, главное фигурные скобки отбить пробелами):

<div id="vk_like_{$oTopic->getId()}"></div>
<script type="text/javascript">
    VK.Widgets.Like("vk_like_{$oTopic->getId()}", { type: "mini" });
</script>
  • avatar stepan
  • 0
1) Количество комментариев задается в конфиге:
$config['block']['stream']['row'] = 20;                       // сколько записей выводить в блоке "Прямой эфир"


2) {$oComment->getText()|strip_tags|trim|truncate:100:'...'|escape:'html'}
  • avatar O3OH
  • 0
Возле комментария удалось влепить рейтинг юзера

/home/buildcom/public_html/templates/skin/magic/comment.tpl

в
<li class="comment-author">
				{if $iAuthorId == $oUser->getId()}<span class="comment-topic-author" title="{if $sAuthorNotice}{$sAuthorNotice}{/if}">{$aLang.comment_target_author}</span>{/if}
				<a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a>
			</li>


После
<a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a>

Добавил
<span style="color: rgb(50, 205, 50);font-size: 8pt; padding:0px 10px;">рейтинг юзера: {$oUser->getRating()}</span>


Работает
ах да вы правы :))) просто у меня проект на LS 051, и у меня логика более правильная как я считаю :)

то есть там реально показывается кто сейчас онлайн то есть активность была последние 15 минут

как оказывается я в своем шаблоне сделал такое дополнения, подставил условие

{if (time() - strtotime($oSession->getDateLast()))<900}
    список юзеров
{/if}


то есть тут проверка если активность последние 900сек то показывать, если нет таких то пусто в он-лайн :))

ха как я мог забыть, хотя как мне кажется я правее :) чем тут сделано… я или зазнался :)
  • avatar netlanc
  • 0
в topic_list.tpl
{foreach from=$aTopics item=oTopic name="cnt"}
{include file=$sTopicTemplateName bTopicList=true iCnt=$smarty.foreach.cnt.iteration}
в topic_topic.tpl
<a href="{$oTopic->getUrl()}"><img class="topic_preview" src="{if $iCnt == 1}{$oTopic->getPreviewImageWebPath('575crop')}{else}{$oTopic->getPreviewImageWebPath('100crop')}{/if}"></a>
  • avatar mnemoza
  • 0
Там написано.
Но дам прямую наводку:
В шаблоне начиная с topic_topic.tpl
{$oTopic->getTextShort()}

заменить на
{$oTopic->getText()|strip_tags:true}
  • avatar PSNet
  • 0
строку «Hello, world» можно и в шаблоне прописать :)

в classes/actions/ActionLogin.class.php в protected function EventLogin()


	protected function EventLogin() {
		/**
		 * Если уже авторизирован
		 */
		if($this->User_GetUserCurrent()) {
			Router::Location(Config::Get('path.root.web').'/');
		}
		$this->Viewer_AddHtmlTitle($this->Lang_Get('login'));
                $this->Viewer_Assign('sMyVar', 'Store here any value');
	}


а в шаблоне напишите в нужном месте

{$sMyVar}


но редактировать файлы движка моветон.
В поиске есть про функции Smarty

Для ленивых (как я сделал).
В engine/lib/external/Smarty/libs/plugins/function.sape.php
<?php
  function smarty_function_sape($params,$template)
  {
	if (!defined('_SAPE_USER')){
	    define('_SAPE_USER', 'ваш_длинный_код'); 
	}
	if (isset($params['sapeuser'])) {
            define('_SAPE_USER', $params['sapeuser']); ;
        }
	
    require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
    $o['charset'] = 'UTF-8';
    $sape = new SAPE_client($o);
    unset($o);
    if (isset($params['count'])) {
        return $sape->return_links($params['count']));
    else
	return $sape->return_links();
    }
  }
?>


Пример использования:
<div id="sidebar">
	{if isset($aBlocks.right)}
		{foreach from=$aBlocks.right item=aBlock}
			{if $aBlock.type=='block'}
				{insert name="block" block=$aBlock.name params=$aBlock.params}
			{/if}
			{if $aBlock.type=='template'}
				{include file=$aBlock.name params=$aBlock.params}
			{/if}
		{/foreach}
	{/if}

	{sape sapeuser=ваш_длинный_код count=100}
</div>

можно просто {sape}
  • avatar mif
  • 0
Я в свое время убирал вывод топиков с типом torrent следующим способом:
В \classes\modules\topic\mapper\Topic.mapper.class.php
в функции BuildFilter
после проверки на новизну
$sWhere.=" AND t.topic_date_add >=  '".$aFilter['topic_new']."'";
вставить
$sWhere.=" AND t.topic_type <> 'torrent'";

после
$sWhere.=" AND (".join(" OR ",(array)$aBlogTypes).")";
вставить
$sWhere.=" AND t.topic_type <> 'torrent'";


Думаю, зная где копаться, сможете догадаться по аналогии как и куда подставить id блога. Поэкспериментируйте.
  • avatar nartuk
  • 1
По идее можно сделать через смарти.
Поправить topic_list.tpl (добавить условия).
Наглядный пример:
{if $sAction=='index' OR $sAction=='new' }
  {if $oBlog->getId()!='id игнорируемного блога' OR $oBlog->getId()!='id игнорируемного блога' OR $oBlog->getId()!='id игнорируемного блога'}
  код вывода топиков (из topic_list.tpl)
  {/if}
{else}
код вывода топиков (из topic_list.tpl)
{/if}

Как-то так.

{if $oTopic || ($sAction=='index' and $aPaging.iCurrentPage=='1' and $sEvent=='')}
		<meta name="ROBOTS" content="index, follow">
		<meta name="description" content="{$sHtmlDescription}" />
		<meta name="keywords" content="{$sHtmlKeywords}" />
	{else}		
		<meta name="ROBOTS" content="noindex, follow">
	{/if}
  • avatar mixan
  • 0
Как на хабре можно сделать.
в css прописать:
.topic .title .share .twitter{float:left;margin-right:5px;padding:6px 0;}
.topic .title .share .twitter a{opacity: 0.5;display:block;width:14px;height:16px;background:url("../images/bg-icon-twitter.gif") no-repeat scroll 0 0 transparent;}
.topic .title .share .twitter a:hover{opacity:1;}

.topic .title .share .vkontakte{float:left;margin-right:5px;margin-top:1px;padding:6px 0;}
.topic .title .share .vkontakte a{opacity: 0.5;display:block;width:14px;height:16px;background:url("../images/bg-icon-vkontakte.png") no-repeat scroll 0 0 transparent;}
.topic .title .share .vkontakte a:hover{opacity:1;}

.topic .title .share .facebook{float:left;margin-right:15px;padding:6px 0;}
.topic .title .share .facebook a{opacity: 0.5;display:block;width:14px;height:16px;background:url("../images/bg-icon-facebook.png") no-repeat scroll 0 0 transparent;}
.topic .title .share .facebook a:hover{opacity:1;}


В topic_topic.tpl, topic_photoset.tpl, topic_link.tpl, topic_question.tpl добавить:
<ul class="share">
			<li class="twitter"><a href="http://twitter.com/intent/tweet?text={$oTopic->getTitle()|escape:'html'}+{$oTopic->getUrl()}" title="Опубликовать ссылку в Twitter" target="_blank"></a></li>
			<li class="vkontakte"><a href="http://vkontakte.ru/share.php?url={$oTopic->getUrl()}"  title="Опубликовать ссылку во ВКонтакте" target="_blank"></a></li>
			<li class="facebook"><a href="http://www.facebook.com/sharer.php?u={$oTopic->getUrl()}"  title="Опубликовать ссылку в Facebook" target="_blank"></a></li>
		</ul>


Ну если что сами подправьте.
  • avatar ort
  • 2
Текущая версия смарти не поддерживает тег {php}, соответственно нужно вызывать код в экшене и передавать результат в шаблон.
Все это делает плагин SeoLib livestreetcms.com/addons/view/82/ + он ведет учет количества проданных ссылок, что позволяет максимально эффективно проводить переиндексацию сайта с максимальным числом страниц
Код на скидку в 30% — b0e66d22
Правильно, вот как дальше сделать, чтобы выводилось определенное число топиков — вопрос… А так они все выводятся…
Да и добавьте еще условие
{if $oBlog->getid()==(8)}
<!-- Topic -->
...
<!-- /Topic -->
{/if}

если надо с определенного блога топики забирать (8ка — id блога).
  • avatar Chiffa
  • 0
7.Когда выходишь из профиля кидало не на главную страницу, а туда где ты был.
ActionLogin.class.php, EventExit()
if (isset($_SERVER['HTTP_REFERER'])) {
	$sBackUrl=$_SERVER['HTTP_REFERER'];
	if (strpos($sBackUrl,Router::GetPath('login'))===false) {
		Router::Location($sBackUrl);
	}
}
  • avatar Loci
  • 0
Отлично всё работает, спасибо xyz =)

И так, у меня установлен плагин Blogs Autoconnect Plugin, и чтоб его заставить выводить список блогов по алфавиту, надо отредактировать Autoconnect.mapper.class.php

Топаем в /plugins/autoconnect/classes/modules/autoconnect/mapper/Autoconnect.mapper.class.php 37строка

Находим код

		$sql = "SELECT
					b.blog_id
					FROM
						".Config::Get('db.table.blog')." as b
					WHERE
						(b.user_owner_id = ? AND b.blog_type <> 'personal')
						OR
							(b.blog_type = 'open' 
							AND 
							b.user_owner_id <> ?
							AND 
							b.blog_limit_rating_topic <= ?
							)
						OR
							(b.blog_type = 'close' 
							AND 
							b.blog_id IN (SELECT bu.blog_id FROM ".Config::Get('db.table.blog_user')." AS bu WHERE bu.user_id = ? AND bu.user_role IN (?a))
							AND 
							b.blog_limit_rating_topic <= ?
							)
					";


И в конце добавляем ORDER by b.blog_title asc

		$sql = "SELECT
					b.blog_id
					FROM
						".Config::Get('db.table.blog')." as b
					WHERE
						(b.user_owner_id = ? AND b.blog_type <> 'personal')
						OR
							(b.blog_type = 'open' 
							AND 
							b.user_owner_id <> ?
							AND 
							b.blog_limit_rating_topic <= ?
							)
						OR
							(b.blog_type = 'close' 
							AND 
							b.blog_id IN (SELECT bu.blog_id FROM ".Config::Get('db.table.blog_user')." AS bu WHERE bu.user_id = ? AND bu.user_role IN (?a))
							AND 
							b.blog_limit_rating_topic <= ?
							)
							ORDER by b.blog_title asc
					";


Всё. Сортировка по алфавиту готова.
PS. Для админа сортировка не работает. Я не стал париться. Но решение есть тут