+2.11
Рейтинг
4.17
Сила

Михаил

Разграничить администраторские права

Помогите пожалуйста. На сайте имеется несколько администраторов. Но получается, что если они имеют админские права, то и в админпанели они могут тоже все(вкл. и откл. плагины, менять настройки и т.д.).

Вопрос как мне защититься от кривых рук? Идея такая, чтобы часть меню админки скрыть от них, а оставить только пункт «блоги и пользователи». Пускай что хотят там-то и делают.

В файле menu.admin.tpl (aceadminpanel) добавил {if $oUserCurrent->isAdministrator()} и получилось вот так
{if $oUserCurrent->isAdministrator()}
    <li {if $sMenuItemSelect=='blogs'}class="active"{/if}>
        <a href="{router page='admin'}blogs/">{$oLang->adm_menu_blogs}</a>
	{if $sMenuItemSelect=='blogs'}
        <ul class="sub-menu" >
            <li {if $sMenuSubItemSelect=='list'}class="active"{/if}><div><a href="{router page='admin'}blogs/list/">{$oLang->adm_menu_blogs_list}</a></div></li>
            {if $aPluginActive.aceblogextender}
            <li {if $sMenuSubItemSelect=='category'}class="active"{/if}><div><a href="{router page='category'}admin/list/">{$oLang->mblog_categories}</a></div></li>
            {/if}
        </ul>
	{/if}
    </li>


Но тогда все равно открывается все меню, поскольку они являются админами. А хотелось бы чтобы было как-то вот так

{if $sUserLogin==gena}, но тогда меню закрывается для всех.

Что я не так сделал?

Выравнивание текста div`ами.

Озаботили меня пользователи пожеланиями выравнивания текста влево-вправо-по_центру. Оказалось, это просто.

Единственное, что меня несколько коробит — приходится пахать движок, а как оформить в плагине замену метода из engine я еще не догоняю…

Итак:

1 шаг. В файл /engine/modules/text/Text.class.php в функции JevixConfig() в массив $this->oJevix->cfgAllowTags добавляем тег 'div' и разрешаем для него атрибут align:

$this->oJevix->cfgAllowTagParams('div', array('align' => array('right', 'left', 'center')));


Теперь тег <div align=...> будет работать.

2 шаг.Ну и дальше совсем просто: В форму добавления-редактирования топика добавляем кнопки выравнивания (файл /templates/skin/ваш_шаблон/actions/ActionTopic/add.tpl ):

<!--  Начало -->
	 	<a href="#" onclick="lsPanel.putTagAround('topic_text','div align=left','div'); return false;" class="button"><img src="{cfg name='path.static.skin'}/images/panel/text_align_left.png" width="20" height="20" title="влево"></a>	 			
	 	 
	 	<a href="#" onclick="lsPanel.putTagAround('topic_text','div align=right','div'); return false;" class="button"><img src="{cfg name='path.static.skin'}/images/panel/text_align_right.png" width="20" height="20" title="по центру"></a>	 			
	 	 
	 	<a href="#" onclick="lsPanel.putTagAround('topic_text','div align=center','div'); return false;" class="button"><img src="{cfg name='path.static.skin'}/images/panel/text_align_center.png" width="20" height="20" title="вправо"></a>	 			
	 	 

<!--  Конец -->


И последний штрих — в папочку /templates/skin/Nj/images/panel заливаем соответствующие иконки.

Обратите внимание — если вы используете плагины, подменяющие файл шаблона add.tpl, то редактировать, конечно, придется файл из шаблона плагина.

Как вывести номера всех страниц в paginator’е?

Сколько ни искал, ответа найти не смог.

Мне нужно вывести ссылки на все страницы блогов, то есть: /blog/page1/, /blog/page2/ и пр.

После изучения файла paginator.tpl, обнаружилось следующее:
  • $aPaging.aPagesLeft — массив с номерами страниц, предшествующими текущей
  • $aPaging.aPagesRight — страницы после текущей
  • $aPaging.iCountPage — номер последней страницы
Номер последней страницы мне бы подошёл (я бы мог в цикле перечислить все от 1 до последней), но проблема в том, что в LS-овской версии Smarty нет ни оператора for, ни while, поэтому я не понимаю, как вывести ссылки на все страницы.

UPD
Решение от x3r0x:
{section name=page_number loop=$aPaging.iCountPage}
        {$smarty.section.page_number.index+1}
{/section}

Отображение Возраста в места Даты рождения

Здравствуйте.
Подскажите ключевое слово для поиска, может кто проходил мимо токого топика — «Отображение Возраста в места Даты рождения»?
Уверен, что такое уже обсуждалось тут и уже реализовано…
Как сделать, что бы в профиле отображалось не Дата рождения : 31 января 1995 а просто — Возраст: 15 лет.

Спасибо.

Настройки вывода блоков в топиках.

Пожалуйста не ругайтесь о дебилизме и существовании поиска. Не мог понять где отредактировать вывод блоков в топиках. В конфиге только главная и другие экшены…

'path' => array( 
		'___path.root.web___/blog$',
		'___path.root.web___/blog/*$',
		'___path.root.web___/blog/*/page\d+$',
		'___path.root.web___/blog/*/*\.html$',
		'___path.root.web___/blog/*\.html$',
	),


вот это вроде указывает на то что, указанные параметры тут должны действовать и на страницах топика. но блок отображается только на главной… У меня стоит плагин похожие топики. думал что из за него? где тогда менять, если это из за этого плагина?

Активация профиля перебрасывает на страницу редактирования профиля

Собственно вопрос в титуле. Как сделать чтобы, после активации профиля пользователем, его перебрасывало на страницу редактирования своего профиля?

upd

в файле /classes/actions/ActionRegistration.class.php
после
$this->SetTemplateAction('ok');
$this->DropInviteRegister();

добавить
func_header_location(DIR_WEB_ROOT.'/settings/profile/');

Плагин "ShowVotes"

Мы пишем топики, мы голосуем за топики, но мы не видим, кто же проголосовал за наш топик. А было бы любопытно, правда? Поэтому мы с Lora_GT сделали этот плагин.

Плагин «ShowVotes» показывает список проголосовавших за топик. Список этот выглядит примерно так:

Зелёным цветом отображаются пользователи, проголосовавшие положительно, красным — отрицательно и, наконец, серым — те, кто воздержался от голосования, решив сразу увидеть рейтинг.

ShowVotes позволяет настроить его таким образом, чтобы отображать список не всем пользователям, а лишь ограниченному их кругу. Настройка производится в конфигурационном файле плагина, возможные варианты настройки следующие:
  • «admin» — только администраторы
  • «author» — только автор топика и администраторы
  • «user» — все авторизовавшиеся пользователи и администраторы
  • «all» или любое другое значение — все пользователи сайта, включая гостей

Скачать плагин.

UPD 09.2014: плагин портирован на LS 1.0.3.

Интересующие меня вопросы

Привет! На Вашем движке уже давно сижу, очень доволен, но очень не хватает пару фишек, помогите их пожалуйста осуществить:

1.Чтоб модераторы тоже могли банить даже если он модерирует только один блог.
2.Чтоб нельзя было менять мыло после регистрации. (ответ)
3.Поставить запрет на регистрацию мыла с определенным доменом.
4.Поставил этот плагин, понравился, но не хватает того чтоб модераторы тоже могли редактировать/удалять топики.
5.После удаления топика оставалась его ссылка в стриме и при переходе на него, писало кем удалено(модератором или автором).
6.Сортировка по алфавиту блогов, при создании топика. Вот здесь (ответ)

7.Когда выходишь из профиля кидало не на главную страницу, а туда где ты был. (ответ)
8.В комментарии добавить возможность выкладывать изображения.
9.Разрешить теги в описании блога.

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

Время "запоминания" пользователя

Предлагаю способ как можно изменить время, на которое запоминается авторизация пользователя.
Версия: LiveStreet 0.4.2

1. Запишем в конфиг необходимое время авторизации.
Открываем config/config.php
На 54 строке находим:
$config['sys']['cookie']['path'] = '/';  // путь для установки куков

После неё вставляем строку:
$config['sys']['cookie']['time'] = 60*60*24*3; // время установки куков (в секундах)

Где вместо 3 можете написать нужное количество дней.

2. Исправим функцию авторизации пользователя.
Открываем classes/modules/user/User.class.php
На 441 строке находим:
setcookie('key',$sKey,time()+60*60*24*3,Config::Get('sys.cookie.path'),Config::Get('sys.cookie.host'));

Меняем на:
setcookie('key',$sKey,time()+Config::Get('sys.cookie.time'),Config::Get('sys.cookie.path'),Config::Get('sys.cookie.host'));


Всё готово.

Разные условия для вывода персональных и коллективных блогов

Перелазил с помощью поиска весь проект вдоль и поперёк, но к сожалению нужного решения не нашёл. Проблема в том, что хочу задать условия, при которых обращение к файлу topic.tpl будит только для персональных блогов, а для коллективных к примеру обращение к topic_open.tpl

Признаюсь в своём незнании php, но думается мне, что условия для этого нужно задавать в файле \templates\skin\new\actions\ActionBlog\topic.tpl
Читать дальше →