+0.65
Рейтинг
3.84
Сила
  • avatar vOFFka
  • 1
А в какую сторону хотите уменьшить изображение в list_lg-preview? Оно так задумано, на всю нирину контента над топиком.

По остальным: файлы topic_sm-preview_1.tpl и topic_sm-preview_2.tpl, находим

<div class="col-md-4">


и

<div class="col-md-8">


и балуемся с циферками 4 и 8 (в сумме всегда должно получаться 12).
  • avatar AlikMis
  • 2
Держите тогда полное извращение :)
ВЫборка топиков по фильтру $aFilter
{assign var="aFilter" value=[
	// список id блогов 
	'blog_id' => [
		1, 2, 3
	],
	// список типов блогов 
	'blog_type' => [
		'personal', 'open'
	],
	// список id пользователей
	'user_id' => [
		1, 2, 3
	],
	// опубликован топик или нет
	'topic_publish' => 1/0,
	// выборка по рейтингу топика
	'topic_rating' => [
		// значение рейтинга
		'value' => 1,
		// ваше/ниже значения рейтинга
		'type' => 'top'/'down',
		// или те что отправлены на главную админом, работает только при 'type' => 'top'
		'publish_index'  => 1
	],
	// список типов топиков
	'topic_type' => [
		'topic', 'link', 'question', 'photoset'
	],
	// топики созданные позднее или в это время этой даты
	'topic_new' => 'Y-m-d H:i:s',
	// топики созданные позднее этой даты
	'topic_date_more' => 'Y-m-d H:i:s'
]}
{assign var="iCountTopic" value=COUNTTOPIC}
{assign var="aTopicsByBlog" value=$LS->Topic_GetTopicsByFilter($aFilter, 1, $iCountTopic)}
{include file='topic_list.tpl' aTopics=$aTopicsByBlog['collection']}

Все пункты фильтра независимы, можете их располагать в любом порядке и в любом сочетании в зависимости от ваших хотелок.
Мой пример в комментариях выше будет выглядеть так
{assign var="aFilter" value=[
	'blog_id' => 2
	'topic_publish' => 1
]}
{assign var="iCountTopic" value=5}
{assign var="aTopicsByBlog" value=$LS->Topic_GetTopicsByFilter($aFilter, 1, $iCountTopic)}
{include file='topic_list.tpl' aTopics=$aTopicsByBlog['collection']}
Вы не пользуетесь, тысячи других пользуются. Я на ваш сайт тоже не захожу, ни через телефон, ни через ПК.

Чтобы работал редактор, надо инициализировать его в шаблоне, где он нужен:
$('.markitup-editor').markItUp(ls.settings.getMarkitup());
  • avatar AlikMis
  • 0
Продолжение:

Если не боитесь править движок

\classes\actions\ActionBlog.class.php
строки 88 и 95

$sOrder='blog_rating';
$sOrderWay='desc';

Исправляйте следуя пояснениям выше
  • avatar AlikMis
  • 0
/blogs/?order=***&order_way=***

Параметр order — по чему сортируем, может быть равен blog_id, blog_title, blog_rating, blog_count_user, blog_count_topic. Надеюсь понятно что за что отвечает.

Параметр order_way — как сортируем, asc — с наименьшего до максимального (по возрастанию), desc — с максимального к минамальному (по убыванию)

Если не боитесь править движок \classes\actions\ActionBlog.class.php
Если надо переименовать пункт меню в профиле — заходим /templates/language/russian.php и правим нужный пункт меню user_menu_profile и другие. Там же можно и добавить новый пункт меню.
Предварительно создаем EventName в ActionProfile.class.php и представление в /templates/skin/имя шаблона/ActionProfile/имяэвента.tpl
Смотрим и радуемся.
Давно папа не помогал)

Как вариант, можно сделать так:
{assign var=random value=1|mt_rand:15}
<img src="http://сайтец.ру/имаги/{$random}.png">

В папке имаги у нас будет допустим 15 изображений с именами с 1 до 15, с одинаковым расширением .png (или любое другое).
Если это для фона, то само собой делаете типа:
<div style="background:url(http://сайтец.ру/имаги/{$random}.png) no-repeat fixed center top">...</div>
  • avatar lifecom
  • 0
Для Bootstrap-based шаблонов нашел более изящное решение.
Например для шаблонаdeveloper-kit by vOFFka
В файле header.tpl
<div id="content-wrapper" class="content col-md-8{if $sidebarPosition == 'left'} col-md-push-4{/if}" ...>

В файле sidebar.tpl
<aside class="sidebar col-md-4{if $sidebarPosition == 'left'} col-md-pull-8{/if}">
Практически данные классы меняют местами колонки.
Соответственно, из CSS можно убрать незадействованные классы (content-right, content-profile и т.п.).

Также для удобства настроек я сделал следующее:
— убрал со всех шаблонов переменную {assign var=«sidebarPosition» value='left'}
— в конфиг добавил
$config['sidebar_left'] = array('profile', 'settings', 'talk'); // экшены, на которых сайдбар должен располагаться слева
— в header.tpl и sidebar.tpl добавил
{* Список Actions (экшенов), на которых сайдбар будет слева *}
{if (in_array(Router::GetAction(), Config::Get('sidebar_left')))}
    {$sidebarPosition = 'left'}
{/if}
Решение менее гибкое (экшены целиком), но удобное.

Обратил внимание, что в большинстве шаблонов есть места, где сайдбар не загружается в шаблоне. Например:
— при $noSidebar='true'
— когда sidebar.tpl инклудится взависимости от $sidebarPosition сверху или снизу контента.

Это не позволяет манипулировать сайдбаром с помощью js, например в плагине showhidesidebar.
На мой взгляд целеообразнее использовать CSS:
#wrapper.no-sidebar #content-wrapper { left: 0; width: 100%; }
#wrapper.no-sidebar #sidebar         { display: none; }


P.S.: Хотел добавить в топик, но нет возможности редактирования. Наверное, потому что в нем постовой…
Нашел время и оформил на гитхабе. Если интересно, можете протестить у себя.

Кратко о работе: в форме регистрации, при нажатии кнопок в поле ввода логина запрашивается пара ключей. При получении заполненой формы ключи сверяются. Если пара неверна — выводит сообшение, что логин неверный. (так сделано, что бы заставить юзера нажимать кнопки в поле ввода логина).
  • avatar vOFFka
  • 0
В конец файла topic_part_footer.tpl шаблона добавляем:

{include file='blocks.tpl' group='topic-bottom'}


Содержимое файла HookSimilar.class.php плагина меняем на:

class PluginSimilar_HookSimilar extends Hook
{

    /**
     * Регистрируем хук на topic_show
     *
     * @return void
     */
    public function RegisterHook() {
        $this->AddHook("topic_show", "topicShowed", __CLASS__);
    }

    /**
     * Получаем список похожих топиков, передаем их в Viewer и добавляем нужный блок в сайдбар
     *
     * @param array $aVars
     */
    function topicShowed($aVars) {
        if (isset($aVars['oTopic'])) {
            $this->Viewer_AddBlock('topic-bottom', 'similarTopics', array('plugin' => 'similar', 'oTopic' => $aVars['oTopic']
                    ), Config::Get('plugin.similar.topics_block_priority')
            );
        }
    }

}
  • avatar AlikMis
  • 3
не знаю зачем Вам эта глупость
быдлокод на коленке :)

classes/hooks/HookPostreadingtime.class.php

<?php
//===============================================================
class HookPostreadingtime extends Hook{
//===============================================================
	public function RegisterHook(){
		$this->AddHook('template_topic_show_info','inj_topic_show_info',__CLASS__);
	}
//===============================================================
	public function inj_topic_show_info($aVars){
		$iReading=200;//google: Средняя скорость чтения 200-250 слов в минуту
		$iWords=count(explode(' ',strip_tags($aVars['topic']->getText())));
		$iMinutes=floor($iWords/$iReading);
		$iSeconds=floor(($iWords%$iReading)/($iReading/60));
		$sReturn=($iMinutes>0)?' '.$iMinutes.' мин.':'';
		$sReturn.=($iSeconds>0)?' '.$iSeconds.' сек.':(($iMinutes>0)?'':' моментально.');
		return '<li class="topic-info-date">Время прочтения: '.$sReturn.'</li>';
	}
//===============================================================
}
?>

И по традиции выше описанное не проверялось
  • avatar fendy
  • 0
Подскажите пожалуйста каким образом можно изменить путь к регистрации? Например на /start/
  • avatar Chiliec
  • 2
github.com/livestreet/livestreet/blob/1.0.3/classes/actions/ActionTag.class.php#L76
$aPaging=$this->Viewer_MakePaging($aResult['count'],$iPage,Config::Get('module.topic.per_page'),Config::Get('pagination.pages.count'),Router::GetPath('tag').htmlspecialchars($sTag));
заменить на:
$aPaging=$this->Viewer_MakePaging($aResult['count'],$iPage,Config::Get('module.topic.per_page'),Config::Get('pagination.pages.count'),Router::GetPath('tag').rawurlencode($sTag));
  • avatar Chiliec
  • 0
Меняйте фильтр как угодно, но я бы порекомендовал для зарегистрированных оставить так, как есть.
github.com/livestreet/livestreet/blob/1.0.3/classes/modules/topic/Topic.class.php#L576
  • avatar Chiliec
  • 0
  • avatar eavy
  • 1
Спасибо за наводки.

Решил остановиться на select2 — ivaynberg.github.io/select2/

Это более улучшенный клон Chosen.

Ставится довольно легко — прописывается 2 js-срипта в хедере и в шаблоне задается id селекта:

так, решил выбросить свой Text.class
1) скачиваем архив файла yadi.sk/d/IksoejdPZTdM9
2) распаковываем и забрасываем по пути /engine/modules/text
3) заменяем

теперь должно добавляться видео:
— с youtube следующего формата
<video>http://youtu.be/fDZtiHRfWHM?list=UU_t-8Hh4IB4gWZ-Y0vDdpZA</video>

(ссылку берем под видео во вкладке _поделится_)
— с vk.com следующего формата
<iframe src="http://vk.com/video_ext.php?oid=-69409544&id=169565865&hash=3ecdb3ce6b5af9c3&sd" width="607" height="360" frameborder="0"></iframe>

или

<video>http://vk.com/video_ext.php?oid=-69409544&id=169565865&hash=3ecdb3ce6b5af9c3&sd" width="607" height="360" frameborder="0</video>

(ссылку берем под видео во вкладке _поделится_экспорт видеозаписи)

не забываем на всякий случай сделать копию своего файла Text.class
Так в конфиге же:

$config['module']['user']['friend_notice']['delete'] = false; // Отправить talk-сообщение в случае удаления пользователя из друзей
$config['module']['user']['friend_notice']['accept'] = false; // Отправить talk-сообщение в случае одобрения заявки на добавление в друзья
$config['module']['user']['friend_notice']['reject'] = false; // Отправить talk-сообщение в случае отклонения заявки на добавление в друзья
max-width: 100%
  • avatar ort
  • 1