+1
Значит так.
1.Создаешь файл \plugins\company\classes\blocks\BlockCompanyfeedbacks.class.php
с содержимым
<?php
class PluginCompany_BlockCompanyfeedbacks extends Block { 
    public function Exec() {
		$aComments=$this->Comment_GetCommentsOnline('company',Config::Get('block.stream.row'));
		$this->Viewer_Assign('aComments',$aComments);
    }
}
?>

2. Делаешь копию файла \plugins\company\templates\skin\default\block.stream_feedback.tpl
и называешь его block.companyfeedbacks.tpl
3. В конфиге компаний где описываются блоки добавляешь строчку
'companyfeedbacks' => array('params' => array('plugin' => 'company'), 'priority' => 4),

теперь блок будет выводится, но он будет не очень красивый, поэтому вначале файла block.companyfeedbacks.tpl добавь
<div class="block stream">

и в конце не забудь поставить
</div>

Всё. Теперь блок будет выводится на всех страницах компаний.
  • avatar
  • gran
  • 28 апреля 2012, 12:10
0
Читайте readme к плагину
В тексте топика используйте тег:

<spoiler title="Заголовок спойлера">
Содержимое спойлера
</spoiler>
Так что кнопочку рисуйте сами в markup_settings.js
  • avatar
  • Shrike
  • 28 марта 2012, 02:58
+6
Если речь идет именно о LS+SEO то вот то, что делал я на начальном этапе:
1) Настраиваем правильно шаблон:
— При просмотре полного текста топика заголовок НЕ должен быть ссылкой + должен быть в H1
— При просмотре списка топиков заголовки топиков должны быть не более чем в Н4 и иметь конструкцию:
<a href="..."><h4>...</h4></a>, но никак НЕ так: <h4><a href="..."></a></h4>
— При просмотре постов по какому-то конкретному тегу, на страничке этого тега добавьте его вывод перед списком постов + оберните его в H1 (это неплохо продвигает по НЧ)
— Название блогов аналогично должно быть в H1
2) Ставим данный плагин
3) Ставим еще один плагин
4) Составляем корректный robots.txt, учитывая LS (на сайте много примеров)
5) Ставим еще один отличный плагин
6) Ставим блок «Топ постов за месяц» или «10 случайных топиков» и т.п. (реализаций, опять же, огромное кол-во и поиск на сайте вам в помощь)
7) Еще одна вещь, о которой хочу упомянуть — обязательно напишите ФАК по вашему сайту. Что вы, кто вы, зачем вы вообще появились и кому нужны, а так же «что такое рейтинг, сила, и пр.» — помогите людям быстрее разобраться. Помните, что пока вы сами не можете коротко и емко выразить идею вашего проекта, то обычные люди и подавно не смогут.
8) Если сайту меньше полугода — забудьте о любой рекламе на сайте.
9) Сделайте, чтобы людям было интересно у вас — максимально увеличьте социальную часть вашего сайта (всякие приветствия, поздравления, статусы, медали, подарки и пр.). Многие говорят, что это лишнее из вебмастеров, НО — вебмастера это люди, как правило, любящие минимализм и поэтому им это по сути и не нужно, но обычным людям (да еще учитывая, что LS двиг явно с соц. уклоном), то это только +.
10) И последнее — если ваш сайт, допустим, о «поездах», то либо смиритесь с тем, что он никогда не будет посещаем в силу выбранной вами тематики, либо развивайте всё, что только касается вашей темы и можно прикрутить на сайт.

И конечно же на начальном этапе не забываем о наращивании ссылочной массы — это не панацея но неплохой допинг. Про уникальность контента я даже не начинаю.

Всем спасибо за внимание, ожидаю критики ;)
+2
На странице профиля все ок
потому что только там переменная oUserProfile заполнена, нужно использовать oUserCurrent, и то — так:
{if $oUserCurrent}
    <a href="{$oUserCurrent->getUserWebPath()}/favourites/">{$aLang.user_menu_profile_favourites}</a>
{/if}
  • avatar
  • PSNet
  • 15 февраля 2012, 22:39
+1
Если кому-то нужно, чтобы в всплывающем окошке выводился еще статус «онлайн» / «оффлайн» для пользователя, то можно реализовать так:

В файле /plugins/popupinfo/templates/skin/default/getuserinfo.tpl найти кусок кода:

        {if $oUser->getProfileName()}
          <h3>{$oUser->getProfileName()|escape:'html'}</h3>
        {else}
          <h3>{$oUser->getLogin()}</h3>
        {/if}
и заменить на:

        {if $oUser->getProfileName()}
          <h3 style="display:inline-block;">{$oUser->getProfileName()|escape:'html'}</h3>
		{assign var="oSession" value=$oUser->getSession()}
		{if (time() - strtotime($oSession->getDateLast()))<900}
			<span style="font-size: 10px;margin-top: 1px;background: #268D0F;color: white;padding: 0 4px 1px;" title="{$aLang.denis_last_activity}: {date_format date=$oSession->getDateLast() hours_back="12" minutes_back="60" now="60" day="day H:i" format="d F Y, H:i"}">{$aLang.denis_status_online}</span>
		{else}
			<span style="font-size: 10px;margin-top: 1px;background: #DDD;color: white;padding: 0 4px 1px;" title="{$aLang.denis_last_activity}: {date_format date=$oSession->getDateLast() hours_back="12" minutes_back="60" now="60" day="day H:i" format="d F Y, H:i"}">{$aLang.denis_status_offline}</span>
		{/if}
        {else}
          <h3 style="display:inline-block;">{$oUser->getLogin()}</h3>
		{assign var="oSession" value=$oUser->getSession()}
		{if (time() - strtotime($oSession->getDateLast()))<900}
			<span style="font-size: 10px;margin-top: 1px;background: #268D0F;color: white;padding: 0 4px 1px;" title="{$aLang.denis_last_activity}: {date_format date=$oSession->getDateLast() hours_back="12" minutes_back="60" now="60" day="day H:i" format="d F Y, H:i"}">{$aLang.denis_status_online}</span>
		{else}
		<span style="font-size: 10px;margin-top: 1px;background: #DDD;color: white;padding: 0 4px 1px;" title="{$aLang.denis_last_activity}: {date_format date=$oSession->getDateLast() hours_back="12" minutes_back="60" now="60" day="day H:i" format="d F Y, H:i"}">{$aLang.denis_status_offline}</span>
		{/if}
        {/if}
0
Не путайте ЛС с новостным двиглом типа ДЛЕ или вордпресса. Это — социальный движок, он создан для общения. Общение не всегда означает треп, уровни разные бывают, можно обсуждать веб, железо, автомобили наконец. Все зависит от тематики сайта. Точно так же и с форумами.
0
блог не аналог форумной темы. Ее аналог — топик. А блог — это категория. Разница ЛС и форума лишь в том, что категории в ЛС создают сами пользователи, а на форуме это может делать только администратор.

Что касается направленности общения — вы заблуждаетесь. Любой посещаемый форум, как правило, имеет жесткую модерацию, и флуд там не приветствуется. И если там нету раздела «обо всем», то мне негде будет написать «как дела? что посоветуете посмотреть?», а здесь я могу создать блог «ОБО ВСЕМ» или «Общение пользователей» и создать там такой топик.

Надеюсь, уловили разницу. Насчет представления информации — так лс можно легко превратить в форум) просто доработать раздел /blogs/ и сделать его главной страницей. Именно поэтому не могу вкурить, к чему эти интеграции, и написания форумов для ЛС.
+1
так для всего списка топиков уберётся задача решается так
{if $bTopicList and $oTopic->getTextShort()!=$oTopic->getText()}
   <li id="vote_area_topic_{$oTopic->getId()}" class="voting {if $oVote || ($oUserCurrent && $oTopic->getUserId()==$oUserCurrent->getId()) || strtotime($oTopic->getDateAdd())<$smarty.now-$oConfig->GetValue('acl.vote.topic.limit_time')}{if $oTopic->getRating()>0}positive{elseif $oTopic->getRating()<0}negative{/if}{/if} {if !$oUserCurrent || $oTopic->getUserId()==$oUserCurrent->getId() || strtotime($oTopic->getDateAdd())<$smarty.now-$oConfig->GetValue('acl.vote.topic.limit_time')}guest{/if}{if $oVote} voted {if $oVote->getDirection()>0}plus{elseif $oVote->getDirection()<0}minus{/if}{/if}">
    <a href="#" class="plus" onclick="return ls.vote.vote({$oTopic->getId()},this,1,'topic');"></a>
    <span id="vote_total_topic_{$oTopic->getId()}" class="total" title="{$aLang.topic_vote_count}: {$oTopic->getCountVote()}">{if $oVote || ($oUserCurrent && $oTopic->getUserId()==$oUserCurrent->getId()) || strtotime($oTopic->getDateAdd())<$smarty.now-$oConfig->GetValue('acl.vote.topic.limit_time')} {if $oTopic->getRating()>0}+{/if}{$oTopic->getRating()} {else} <a href="#" onclick="return ls.vote.vote({$oTopic->getId()},this,0,'topic');">?</a> {/if}</span>
    <a href="#" class="minus" onclick="return ls.vote.vote({$oTopic->getId()},this,-1,'topic');"></a>
  </li>
{/if}
  • avatar
  • Asphix
  • 08 ноября 2011, 20:15
+3
1. Оберни аватарку в ссылку на профиль юзера, чтобы получилось так:
<a href="{$oUser->getUserWebPath()}"><img src="{$oTopic->getAuthorAvatarPath(48)}" /></a>
2. Добавь перед выводом аватарки, нужное прозрачное изображение. Чтобы получилось так:
<a href="{$oUser->getUserWebPath()}" class="avatarka">
    <img src="{cfg name='path.static.skin'}/images/watermark.png" class="watermark" />
    <img src="{$oTopic->getAuthorAvatarPath(48)}" />
</a>
3. В стилях прописать:
.avatarka { position:relative }
.watermark { position:absolute }
Если что, пиши в личку.
  • avatar
  • bamboo
  • 06 ноября 2011, 16:36
+1
перенос без модификации кода не получится — в «профиле» другой екшен чем в публикациях.

но там две строки кода
  • avatar
  • PSNet
  • 06 ноября 2011, 15:39
0
стоп стоп будут ошибки $oUser там уже используется и ранее и потом после этого кода происходит работа с этой переменной. маленько исправим:


/**
* Если юзер зарегистрировался по приглашению то обновляем инвайт
*/
if (Config::Get('general.reg.invite') and $oInvite=$this->User_GetInviteByCode($this->GetInviteRegister())) {
    $oInvite->setUserToId($oUser->getId());
    $oInvite->setDateUsed(date("Y-m-d H:i:s"));    
    $oInvite->setUsed(1);
    $this->User_UpdateInvite($oInvite);

    $oUserInvite=User_GetUserById($oInvite->getUserFromId());
    $oUserInvite->setRating($oUserInvite->getRating()+0.5);
    $this->User_Update($oUserInvite);
}
+1
в blocks.js
сделать такую правку:

this.load = function(obj, block, params){
	var id = $(obj).attr('id');
	params=$.extend(true,{},this.options.type[id].params || {},params || {});
	var content = $('#'+block+'_content');
	this.showProgress(content);

	$('.switcher li').removeClass(this.options.active);
	//$('[id^="'+block+'_item"]').removeClass(this.options.active);

	$(obj).addClass(this.options.active);
	ls.ajax(this.options.type[id].url, params, function(result){
		this.onLoad(content,id,result);
	}.bind(this));
};


к примеру на wall.lsmafia.com/ работает
0
там инклуд файла идет, другая область видимости.

так что вам нужно в топик_лист.тпл сделать примерно вот так

{include file=$sTopicTemplateName bTopicList=true bFirstTopic=$smarty.foreach.Topics.first}


а в топик_топик.тпл

поставить условие
<div class="topic {if $bFirstTopic}first{else}all{/if}">
  • avatar
  • PSNet
  • 16 октября 2011, 03:06
+1
Пардон:
{if $oUserCurrent and $oUserCurrent->getId()==$oUserProfile->getId()}
    Это мой профиль
{else}
    Это не мой профиль :(
{/if}
  • avatar
  • Shatter
  • 08 октября 2011, 01:14
0
файл js/comments.js метод this.init
удалить строчку
this.toggleCommentForm(this.iCurrentShowFormComment);
+2
На самом деле это хобби. Я знакомился не только с ls но и php. На работе я пишу на java.
Сейчас пишу плагин фотоальбомы. Аналог с контакта. У каждого пользователя свои альбомы и т.д. Красивые галереи и слайды на jquery.
0
/classes/modules/user/User.class.php
Ищем и меняем на:

/**
	 * Получаем число доступных приглашений для юзера
	 *
	 * @param unknown_type $oUserFrom
	 * @return unknown
	 */
	public function GetCountInviteAvailable(ModuleUser_EntityUser $oUserFrom) {
                $iCountAvailable = 9999999;
		return $iCountAvailable;
	}


/templates/skin/new/actions/ActionSettings/invite.tpl
{$aLang.settings_invite_available}: <strong>{if $oUserCurrent->isAdministrator()}{$aLang.settings_invite_many}{else}{$iCountInviteAvailable}{/if}</strong><br />


меняем на:

{$aLang.settings_invite_available}: <strong>{$aLang.settings_invite_many}</strong><br />
  • avatar
  • bafoed
  • 07 февраля 2011, 16:59
+1

Вам поможет сориентироваться эта таблица. Нет уголовной ответственности — это значит, что вас ожидает ответственность административная. То есть вместо тюрьмы вы просто заплатите штраф, пени и недоимку по налогам и сборам.
  • avatar
  • onthefly
  • 04 февраля 2011, 15:29
+1
Под ущербом законодатель понимает недоплаченные налоги, которые по закону обязаны платить все, кто осуществляет предпринимательскую деятельность
  • avatar
  • onthefly
  • 04 февраля 2011, 15:11
0
Тоже волнует этот вопрос. Интересно, я придумал и создал продукт, продаю его за деньги, о каком ущербе в адрес страны может идти речь? я что, кого то ограбил? Я работаю дома, на собственном оборудовании, используя собственный труд.