+0.65
Рейтинг
3.84
Сила
1.0.3 -> 2.0.0 -> 2.0.1
  • avatar ort
  • 1
можно проверять при выводе через {if $blog->getAvatar()}{/if}
Может кому пригодится, сам я мучился с этим очень долго, и решилась проблема так.
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:SSL} !=1 [NC]
RewriteRule ^(.*) https://site.ru/$1 [L,R=301]
  • avatar zekeer
  • 0
простите ошибся окном))) сообщение направлено разработчику «Реального плагина». Кстати может кто сталкивался?
  • avatar lifecom
  • 1
Настройки позволяют включать/отключать отображение… элементов...
С кнопками все понятно, но ведь блоки можно отключать через конфиг движка?

Кстати у вас (и на всех сайтах с developer-kit) glyphicons в IE Edge не отображаются, т.к. он использует svg-версию иконочного шрифта, а в смерженном CSS ссылка на svg «съедается». Починить можно так (движок!):
Вместо этого вставить это:
$aPath = explode('?', $sFilePathAbsolute, 2);
$sFilePathAbsolute = $aPath[0];
$aPartHash = explode('#', $sFilePathAbsolute, 2);
$sFilePathAbsolute = $aPartHash[0];
$sGetParams = isset($aPath[1]) ? $aPath[1] : '';
$sHashParams = isset($aPartHash[1]) ? $aPartHash[1] : '';
$sFilePathAbsolute = $this->GetRealpath($sDir.$sFilePathAbsolute).($sGetParams ? "?{$sGetParams}" : '') . ($sHashParams ? "#{$sHashParams}" : '');
$sFilePathAbsolute = $this->GetWebPath($sFilePathAbsolute);
По мотивам этого issue в LS2.0
  • avatar Wasja
  • 1
Чисто теоретически, конечно можно. :)
Для этого необходимо создать наследников файлов ActionBlog.class.php, ActionIndex.class.php и ActionPersonalBlog.class.php, добавить новый ивенты в этих файлах (пример) и добавить функции выборки из БД подходящих топиков, т.е. тех где topic_type равен «file» (пример).
Если получится реализовать, формируйте Pull request на GitHub, добавлю функционал в плагин.
Правильней менять на уровни конкретного шаблона наверно, чтобы не изменять дефолтный russian.php.

1) Создаем каталог language в templates/skin/шаблон/settings
2) Создаем файл текстовок templates/skin/шаблон/settings/language/russian.php
3) Добавляем туда

<?php

/**
* Русский языковой файл.
* Содержит текстовки шаблона.
*/
return array(

         /**
	 * Переименование стандартных текстовок
	 */
        'blogs' => 'Группы',
        'сюда' => 'сюда',
        'сюда' => 'сюда'

);


Таким образом мы просто переопределяем стандартные имена, и при этом не трогаем из дистрибутива.
Настройки MarkItUp! тут: engine/lib/internal/template/js/settings.js.
Первый вопрос решил, возможно не правильно, но работает)) Добавил:
alt="{$oTopic->getTitle()|escape:'html'}"
  • avatar Ckubs
  • 1
The New Livestreet looks awesome but it is hard for me to test anything. Long time ago when I spoke with a LS developer it told me that english support for LS will get better. But, since then it gone the opposite way with no English at all.

I don't want' to sound strange or rude, it's not my intention but this has something to do with the conflict between Russia and the US?
  • avatar PSNet
  • 3
Открыть шаблон добавления топика docs.livestreetcms.com/template/1.0/, поставить условие для чекбокса
  {if $oUserCurrent and $oUserCurrent->isAdministrator()}
    чекбокс
  {/if}

найти экшен топика ActionTopic.class.php там эвент protected function SubmitAdd() добавления топика и в месте получения опции с формы добавить также проверку на админа на 317 строке так:
  /**
   * Запрет на комментарии к топику
   */
  $oTopic->setForbidComment(0);
  if ($this->oUserCurrent->isAdministrator() and getRequest('topic_forbid_comment')) {
    $oTopic->setForbidComment(1);
  }
Здесь задается «начальный» заголовок с названием сайта, затем в классах экшенов заголовки дополняются (для всего экшена и/или для каждого эвента).
Если вы хотите в экшене blog на станице топика убрать название блога — закомментируйте эту строку.

Разделитель заголовка можно поменятьздесь
  • avatar ff00
  • 0
Полностью избавился от ботов следующим образом. Расскажу образно:
— Изменил поле name у стандартной капчи
— Добавил капчу на добавление топиков (опционально для всего другого комменты, лс) для пользователей у которых рейтинг меньше 1 или меньше 20 сообщений или топиков, не суть.
— Если бот не вводит или не правильно вводит капчу 20 раз подряд, то перенаправляю все его запросы на страницу проверки на «человечность», там нужно 2 раза подряд ввести капчу после чего, если это человек сбрасываю его блокировку, но счетчик капчи запускаю по новой, чтоб не баловались.
— Некоторые запросы сразу отравляю на проверку человечности (к примеру запрос admin.php и IP сразу проверяется)
Капча простейшая, состоит из 3 цифр (чтоб не напрягать пользователей) и справляется на ура. Вносил изменения прямо в код движка, реализация простейшая, все работает на xcache или memcache. Кому нужно, помогу.
В html 5 есть крутой атрибут скачать фото.

<a href="test.jpg" download="photo">
    <img src="test.jpg" alt="images alt" />
</a>


Собственно к любой другой ссылке вешаем.

Например

<img src="test.jpg" alt="images alt" />
<a href="test.jpg" download="photo"></a>
  • avatar daewoo
  • 0
Файл classes\modules\topic\mapper\Topic.mapper.class.php

Функция: public function GetOpenTopicTags($iLimit)

Так было:
$sql = "
			SELECT
				tt.topic_tag_text,
				count(tt.topic_tag_text)	as count
			FROM
				".Config::Get('db.table.topic_tag')." as tt,
				".Config::Get('db.table.blog')." as b
			WHERE
				tt.blog_id = b.blog_id
				AND
				b.blog_type IN ('open','personal')
			GROUP BY
				tt.topic_tag_text
			ORDER BY
				count desc
			LIMIT 0, ?d
				";


Так стало:
$sql = "
            SELECT 
                tt.topic_tag_text,
                count(tt.topic_tag_text)    as count         
            FROM 
                ".Config::Get('db.table.topic_tag')." as tt                
            WHERE 
                tt.blog_id NOT IN (12792, 12792, 12801, 20674, 15816, 12801, 15816, 14675, 12792, 17242)
            GROUP BY 
                tt.topic_tag_text
            ORDER BY 
                count desc        
            LIMIT 0, ?d
                ";   


Проблема нарастает очень медленно, вылавливал её долго. Когда тэгов много, возникает тупёж.
  • avatar Tyris
  • 0
Добавь это в ActionError:
<meta http-equiv="refresh" content="1;URL=http://сайт.ру/login" />
  • avatar PSNet
  • 1
{if $oUserCurrent and $oUserCurrent->getRating()<5}
ваш рейтинг слишком мал
{/if}
  • avatar vOFFka
  • 0
Всем спасибо, все получилось: в topic_list.tpl прописал

{$counter=0}
{foreach from=$aTopics item=oTopic name=foo}
	{if !$oTopic->getPreviewImageWebPath()}
		{$counter=$counter+1}
	{/if}
	
	{if $counter>4}
		{$counter=1}
	{/if}
	
	<article class="topic topic-lg-preview topic-type-{$oTopic->getType()} js-topic">
		{include file='topic_views/topic_lg-preview.tpl'}
	</article>
{/foreach}


topic_thumb.tpl оставил:

...
<header class="topic-header">
	{if $oTopic->getPreviewImageWebPath()}
		<a href="{$oTopic->getUrl()}"><img class="topic_preview" src="{$oTopic->getPreviewImageWebPath({cfg name='topic.lg_preview.img_size'})}"></a>
	{else}
		<a href="{$oTopic->getUrl()}"><img class="topic_preview" src="{cfg name="path.static.skin"}/images/thumb-bg/bg-sm-{$counter}.png"></a>
	{/if}
...


… К похожему решению шел с утра, но про разные файлы как-то не подумал. :(
  • avatar Chiliec
  • 2
Короче… плагинов никаких не надо.
Идёте сюда: github.com/livestreet/livestreet/blob/1.0.3/classes/modules/acl/ACL.class.php#L395-L406 меняете на:
/**
 * Проверяет может ли пользователь удалить комментарий
 *
 * @param  ModuleUser_EntityUser $oUser	Пользователь
 * @return bool
 */
public function CanDeleteComment($oUser) {
	if (!$oUser || !$oUser->isAdministrator() && $this->User_GetUserCurrent()->getId() != $oUser->getId()) {
		return false;
	}
	return true;
}
затем сюда: github.com/livestreet/livestreet/blob/1.0.3/templates/skin/synio/comment.tpl#L92-L98 меняете на:
{if !$oComment->getDelete() and $oUserCurrent and $oUserCurrent->getId() == $oComment->getUserId()}
	<li><a href="#" class="comment-delete link-dotted" onclick="ls.comments.toggle(this,{$oComment->getId()}); return false;">{$aLang.comment_delete}</a></li>
{/if}

{if $oComment->getDelete() and $oUserCurrent and $oUserCurrent->getId() == $oComment->getUserId()}}
	<li><a href="#" class="comment-repair link-dotted" onclick="ls.comments.toggle(this,{$oComment->getId()}); return false;">{$aLang.comment_repair}</a></li>
{/if}
Profit!