+2
искать пробовали
livestreet.ru/blog/questions/737.html
— classes\blocks\BlockTags.class.php

$aTags=$this->oEngine->Topic_GetOpenTopicTags(70);
0
Добавление картинок: Comments Edit 1.6 и LiveStreet 0.4.2

/plugins/cmtedit/templates/skin/default/comment_tree.tpl
в самом верху:
{include file='window_load_img.tpl' sToLoad='form_comment_text'}
в блоке кнопок:
<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>

/plugins/cmtedit/templates/skin/default/js/cmtedit.js
заменить (в самом низу)

return _ajaxUploadImg($A(document.forms).getLast(), lsCmtTree.edit.text.getFirst('textarea'));
на

if (lsCmtTree.edit != undefined && lsCmtTree.edit.text != undefined && lsCmtTree.edit.text.getFirst('textarea') != undefined) {
    b = lsCmtTree.edit.text.getFirst('textarea');
}
return _ajaxUploadImg($A(document.forms).getLast(), b);


Последнее сделано по следующей причине: если создается новый комментарий, то lsCmtTree.edit.text получается undefined. Долго искал, почему не работает. Firebug помог.

Пока всё работает.
  • avatar
  • heex
  • 21 августа 2011, 15:37
0
кстати, imagezoom-ы и слимбоксы мало юзабельны.
по части юзабилити людей прет от shutter
  • avatar
  • 1d10t
  • 25 марта 2011, 00:33
0
Деление на коллективные и персональные начинает работать лишь существенной посещаемости. Мой проект (2500регистраций) до этого не дорос, поэтому убрал этот функционал.

Деление на хорошие и все безусловно нравится, это опора сайта, которая объясняет пользователям зачем им вообще голосовать (чтобы выводить хорошие посты на главную), зачем существует пользовательский рейтинг (чтобы авторитетные пользователи голосовали с большим весом).

Что не нравится идеологически — частично лежит в плоскости ls, частично — плагинов по нему. Сейчас профиль прользователя — незначительный придаток, который почти ни дня чего не нужен (кроме редкого написания сообщений человеку и добавления в друзья).
А могла бы быть сильная интеграция с фотографиями и видео, залитыми пользователем. Там могут храниться его фотоальбомы, добавленные фотографии и видео. В этой части LS сейчас похож на устаревший форум, а не на современный социальный движок.

Из интересного функционала было интересно увидеть следующие вещи:
1. Пользователи сайта на карте (аватарки отображаются на карте мира, точки указываются в профиле)
2. Видео-раздел с возможностью включать в него видео с youtube и, в идеале, vimeo. Благо youtube api позволяет и выводить группу роликов, и заливать на youtube новые ролики со стороннего сайта. В Vimeo эта возможность тоже есть.

Ну а самая большая проблема — недостаток количества разработчиков.
  • avatar
  • gromble
  • 28 февраля 2011, 12:29
0
Обновленный файл с плагином:
down-house.ru/uploads/ls-plugins/newupload.zip
А также плагин для работы с изображениями
down-house.ru/uploads/ls-plugins/images.zip

Первый плагин занимается просто загрузкой файлов, второй обрабатывает на уровне хука файла, соответственно, если залитый файл является изображением, то он его обработает.
Плагин еще находится на тестировании, поэтому за баги или косяки сильно не пинайте :)
Для работы вам нужно еще отдельно подцепить библиотеку jQuery.

Прошу прощения, за столь долгий ответ, начало года всегда сложный период.
  • avatar
  • BIT
  • 20 января 2011, 02:24
0
Спасибо, помогло… Заодно и фото по центру выровнял:

<div class="block contacts nostyle">
				
				{if $oUserProfile->getProfileFoto()}
				<center><img src="{$oUserProfile->getProfileFoto()}" alt="photo" /></center><br /><br />
				{/if}

			{if $oUserProfile->getProfileIcq()}
  • avatar
  • bumaga
  • 19 января 2011, 09:20
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
Решено. Проблема вызвана конфликтом скина с плагином textarearesize (Управления высотой текстового поля).
Решение проблемы:
1-й способ: отключаем плагин
2-й способ: в файле plugins\textarearesize\templates\skin\default\comment_tree.tpl заменяем код:
<div class="comments">
	{if $oUserCurrent}
		<div class="update" id="update">
			<div class="refresh"><img class="update-comments" id="update-comments" alt="" src="{cfg name='path.static.skin'}/images/update.gif" onclick="lsCmtTree.responseNewComment({$iTargetId},'{$sTargetType}',this); return false;"/></div>
			<div class="new-comments" id="new-comments" style="display: none;" onclick="lsCmtTree.goNextComment();"></div>
		</div>
	{/if}

на код:
<!-- Comments -->
			<div class="comments">
				{if $oUserCurrent}
				<div class="update" id="update">
					<div class="tl"></div>
					<div class="wrapper">
						<div class="refresh">
							<img class="update-comments" id="update-comments" alt="" src="{cfg name='path.static.skin'}/images/update.gif" onclick="lsCmtTree.responseNewComment({$iTargetId},'{$sTargetType}',this); return false;"/>
						</div>
						<div class="new-comments" id="new-comments" style="display: none;" onclick="lsCmtTree.goNextComment();">							
						</div>
					</div>
					<div class="bl"></div>
				</div>
				{/if}
  • avatar
  • LeX_KaR
  • 14 января 2011, 18:49
+1
Такая ошибка может возникнуть, когда удаляешь топик с комментариями. Причем при удалении топика комментарии не удаляются и нарушаются связи в базе данных (БД).

В phpmyadmin (или в другом менеджере БД сайта) сделайте запрос:
select * from prefix_comment where target_id not in (select topic_id from prefix_topic) AND target_type = "topic" 

Если появится список таких непривязанных комментариев — можете их удалить вручную (по одному) или попытаться удалить командой:
delete from prefix_comment where target_id = XXX
, где ХХХ — это ID-шник удаленного топика, от которого остались висеть комментарии (его номер Вы можете увидеть в таблице вывода предыдущего запроса — у «висящих» комментариев target_id обычно один и тот же, вот его и надо указывать в ХХХ).

Если было удалено несколько топиков, то у «висящих» комментариев будут несколько разных target_id. Следовательно нужно сделать несколько запросов delete…

Если среди «висящих» комментариев есть вложенные, то удалить сразу все такие комментарии одной командой не получится. В таком случае можно вывести список:
select * from prefix_comment where target_id = XXX
и удалять вручную по несколько штук, начиная с последнего комментария (обратная сортировка по comment_id).

Внимание: delete выполняйте на СВОЙ страх и риск. Если Вы хорошо не разбираетесь в MySQL, то нечаянно этой командой Вы можете грохнуть БД сайта.

Сам вначале разбирался около часа, потом (если возникает) делаю за пару минут.
+1
Вы видимо его отключили перед очисткой кеша.
При включении добавляется поле в БД. При отключении оно не удаляется. Поэтому при повторной активации его возникает ошибка.

Что бы не ковыряться с БД, сделаем так:
Откроем файлик plugins.dat (в папке plugins) и добавим в конце этого файла строчку с текстом cmtedit
Сохраняем файлик на сервере.
Чистим кеш.

После этого все должно быть нормально.
  • avatar
  • nartuk
  • 17 ноября 2010, 15:07
0
С тегом br всё просто
Сегодня сам вставлял таблицу и искал потом, откуда столько БРок перед ней.
Таблицу надо вставлять в одну строку, без переносов, тогда будет выглядеть нормально.
  • avatar
  • phake
  • 14 сентября 2010, 19:34
0
ошибку отдает nginx? нужно смотреть логи вебсервера, там будет ошибка
у меня такое было из-за Suhosin патча к PHP, пришлось обновлять php до 5.3 и все стало нормально
  • avatar
  • ort
  • 06 августа 2010, 14:12
0
Пишу полностью что и как.
Открываем файл /classes/hooks/HookStatisticsPerformance.class.php
После
class HookStatisticsPerformance extends Hook {
	public function RegisterHook() {
		$this->AddHook('template_body_end','Statistics',__CLASS__,-1000);


Добавляем
$this->AddHook('topic_show','TopicShow');


Далее, после
public function Statistics() {
		$oEngine=Engine::getInstance();
		
		$iTimeInit=$oEngine->GetTimeInit();
		$iTimeFull=round(microtime(true)-$iTimeInit,3);
		$this->Viewer_Assign('iTimeFullPerformance',$iTimeFull);
		
		$aStats=$oEngine->getStats();
		$aStats['cache']['time']=round($aStats['cache']['time'],5);
		$this->Viewer_Assign('aStatsPerformance',$aStats);
		
		$this->Viewer_Assign('bIsShowStatsPerformance',Router::GetIsShowStats());
		return $this->Viewer_Fetch('statistics_performance.tpl');
	}


Добавляем
public function TopicShow($aParams) {
        $oTopic=$aParams['oTopic'];
        $oTopic->setCountRead($oTopic->getCountRead()+1);
        $this->Topic_UpdateTopic($oTopic);
    }


В шаблоне добавляем в topic.tpl или в topic_list.tpl
{$oTopic->getCountRead()}
+7
Я решил вопрос в картинках.
  • avatar
  • mrak
  • 23 июня 2010, 01:13
+5
Если нужны дискуссии — обсуждение каких-либо вопросов — однозначно форумы.
Если нужны статьи и новости и комментарии к ним — однозначно блоговые движки.

Форум подразумевает примерно одинаковый вклад в обсуждение группы участников дискуссии. Спор (иногда многостраничный и возобновляемый через годы).
Блог подразумевает автора с постом-паровозом, к которому участники потом оставят некоторое количество комментариев. Возвраты к теме в блогах происходят редко из-за того, что новости, в отличии от дискуссий, относительно быстро утрачивают информацию.

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

На форумах первичен контент — темы обсуждения. Имя конкретного участника дискуссии значит относительно немного. Читают именно темы, а не конкретных людей.
В блогах первичны люди. Если исчез автор поста — тема тут же заглохнет. Здесь имя — это бренд, знак качества.

Так что сравнение LS и того же IPB как минимум некорректно. Сообщество можно поднять и на форуме (и оно будет просто замечательно функционировать при грамотном подходе). Но приемы построения форумных и блоговых сообществ заметно отличаются (хотя базовые принципы одни, разумеется).

Пока мое видение такое: если нет 50 000 рублей на доводку LS до нужного вам состояния — лучше за него не браться. База годится лишь для некоего абстрактного «проекта в вакууме», а не для живого сообщества. А так вам все равно понадобятся какие-то плагины (и их придется заказывать) или, как минимум, новый дизайн. Исключение — просто сайт «для своих». Таким проектам вообще ничего не нужно, потому что они целиком базируются на группе тех самых «своих». Правда тогда тоже непонятно, зачем нужен LS. Кроме того, сайту на LS как воздух нужны новостники. Те, кто будет наполнять сайт качественным, уникальным контентом.

Форум проще. Многие движки форумов имеют кушу бесплатных или недорогих шаблонов и расширений, с помощью которых можно сделать что угодно. Требования к контенту, как ни странно, о ниже. Потому что любая дискуссия уникальна по определению. Какой-нибудь вопрос уже может и обсуждался уже где-то, да и стартовый пост так себе — и все равно на вашем форуме все равно обсуждение может быть очень интересным, а выводы неожиданными. С блогами такое не проходит, важен только топик, комментарии к нему вторичны.

Вот такие мысли.
+3
Это проблема не только сайтов, а и любых общественных организаций. Интеграция в соц. сети и повышение юзабилити много не даст. Дело не в технических возможностях. Даже на засраных и неюзабельных форумах общаются годами.

Почему все хотят так на хабр? Ведь его можно читать и без акка. Все хотят быть в закрытом сообществе но многие из них, попадая туда, все равно ничего не постят, даже если хотят. Они бояться быть не признанными. Бояться не только постить новости, а даже комментировать боятся.

Но все прут туда, все считают, что иметь там акк — это признак «илитности». Все говорят о нем: «я читал на хабре..», «на хабре постили..», на хабре то, на хабре это…

Простые смертные пользователи контактика не будут никому рассказывать о сайте, который такой же простой как они сами. В таком случае может спасти лишь контент, и то источник легче умолчать, нежели рассказывать о новом очередном сайте. Лишь через некоторое время сайт, завоевав лояльность одного посетителя, получает отличительную черту среди «интернетов»

Важет тот, кто стоит у главы, вожак стаи. Будь то автор, админ или простой смертный, который принимает активное участие в жизни сайта. Требуется четкая осознанность сути и смысловой наполненности проекта. Задать тон, конкурсы, интерактив, локальные мемы, объявления, награды, статус, публичные признания, юмор и т.п. Меньше информационного контента — больше общения внутри сообщества и пафосности. Каждый участник должен почувствовать себя «илитой».

Удачи
0
Главная ваша ошибка, на мой взгляд, — вы работаете с сообществом, как с новостным сайтом. А рабоота с сообществом это, пежде всего, работа с людьми.

Основное, за счет чего живет любая социальная сеть — понты. Ради простого уважения пользователи готовы часами сидеть в сети, писать статьи, искать новости, вести блоги… Но работает это только в одном случае, когда пользователи сформировали группы, своего рода кланы со своими эмоциональными центрами. Это основы социологии неформальных групп.

Чтобы такие кланы сформировались, нужны какие-то «знаки социализации». Медальки, отсылаемые друг другу открытки, какие-нибудь статусы, «ленты» с записями в профилях… Это только звучит по-детски, но на деле прекрасно работает, проверено тысячами онлайн и не очень сообществ.

А в базовой поставке LS подобных фишек нет. Потому что на Хабре народ собирается довольно специфический. Кроме того, система инвайтов сама по себе дает неплохую иллюзию «клуба для избранных».

Как организационный выход (практически без модификации движка) могу порекомендовать проведение нечастых, но регулярных конкурсов с символическими призами. Что-нибудь тематическое за пару тысяч рублей — этого вполне достаточно. Плюс победители должны получать какие-то плюшки на сайте. К примеру, если дизайн сайта позволяет, их комментарии могут быть написаны написаны другим цветом. Или пусть хотябы ник будет подсвечен. Иди рядом с аватаром появится крошечнаая, но видная точка-медалька (наведешь на нее мышкой — всплывет подсказака что это и за что получена).
0
Сегодня отвечал у себя, если не прав поправьте…

Доступно:
— голосование за комментарий влияет на размер «Силы»
— голосование за топик влияет на «Рейтинг» и «Силу»
— голосование за пользователя влияет на «Рейтинг» и «Силу» в большей значимости

Рейтинг — это рейтинг,
а «Сила» — это показатель, размер которого дает Вам, в случае если за Вас проголосуют, большее значение в Рейтинг и в Силу.
Т.е. — получается «Сильный» голос:
— когда Вам плюсует пользователь с «большой Силой», у Вас соответственно будет больше прирост в Рейтинге и Силе, чем от плюса «слабого».
  • avatar
  • Yuta
  • 18 мая 2010, 22:00
0

Да нет, я не ставил никаких хаков, если в текстовке определено 'topic_read_more' => 'Читать дальше' то задавать <cut name="что либо"> бесполезно. Это мне нужно копать в сторону создания определенного вида топика, например «Флэш игра», либо забить на это и оставить «Читать дальше».
  • avatar
  • yuri25
  • 04 января 2009, 19:25
+1
пиписько мерство + доступ к фичам, таким как создание собственного коллективного блога и т.п.
рейтинг — по сути твой статус в сети, чем выше тем ты «круче»
сила — твоя степень влияние в сети на происходящее
  • avatar
  • ort
  • 28 августа 2008, 14:28