0
в \classes\actions\ActionLogin.class.php изменить
Router::Location(Config::Get('path.root.web').'/');
на
Router::Location($oUser->getUserWebPath());
+1
Конфиг по умолчанию стоит расширить вот так:
$config['TagUnbreakable']=array('video','code','a','blockquote', 'iframe', 'embed');

А то Ютуб в пролёте
  • avatar
  • sulla
  • 23 апреля 2012, 13:04
0
Друзья, еще одна фишка нужна — это уже попроще моего предыдущего вопроса. Касательно данных о причине бана
В коде нашел следующий кусок (отрезал лишнее)

{if $oUserProfile->IsBannedByLogin()}
    {$oUserProfile->getBanComment()}
{if}

Другими словами, если пользователь забанен, то на его странице в профиле появится надпись с комментарием (причиной).
Только вот по понятным причинам не могу эту конструкцию воткнуть в файл top_whois. Наверняка что-то где-0то еще нужно дописать что бы научить страницу понимать IsBannedByLogin. Подскажите плз, что и где. Очень хочу сделать этот маленький апгрейд профиля.
  • avatar
  • g3n0m
  • 12 апреля 2012, 19:44
0
то есть вы хотите внести два куска html в шапку? и чтобы один показывался например на главной, а остальные на других страницах?

Вот если честно я бы посоветовал разобраться с плагином aceBlockManager, и с позиционированием блоков :) можно супер динамические страницы делать, но если уж отвечать на ваш вопрос без фантазий, ТО ВОТ:

код значит показывающий первый кусочек html на главной, а второй на всех остальных:

{if $sAction=='index'}
html на главной
{else}
html на внутренних
{/if}


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

PS но все таки это костыль, а не нормальное решение! :)
+2
искать пробовали
livestreet.ru/blog/questions/737.html
— classes\blocks\BlockTags.class.php

$aTags=$this->oEngine->Topic_GetOpenTopicTags(70);
+1
самое простое:
закоментировать условие в \classes\modules\topic\Topic.class.php в функции GetTopicsAdditionalData строчки
if (isset($aAllowData['comment_new']) and $this->oUserCurrent) {
			$aTopicsRead=$this->GetTopicsReadByArray($aTopicId,$this->oUserCurrent->getId());
		}
изменить на
//if (isset($aAllowData['comment_new']) and $this->oUserCurrent) {
			$aTopicsRead=$this->GetTopicsReadByArray($aTopicId,$this->oUserCurrent->getId());
		//}
в шаблоне в нужном месте использовать
{$oTopic->getDateRead()}
для вывода даты прочтения топика ну или для определения прочитан ли топик с помощью условия
{if $oTopic->getDateRead()}...топик прочитан...{/if}


както так
  • avatar
  • netlanc
  • 30 марта 2012, 21:34
+4
Спасибо, помогло. Если кому-то будет полезно, делается так:

{if count($aTopics)>0}
	{foreach from=$aTopics item=oTopic name=foo}   
	   {assign var="sTopicTemplateName" value="topic_`$oTopic->getType()`.tpl"}
	   {include file=$sTopicTemplateName bTopicList=true}
	   
	   {if $smarty.foreach.foo.index == 5}

{include file='middlebanner.tpl'}


	   {/if}
	{/foreach}			
    {include file='paging.tpl' aPaging="$aPaging"}			
{else}
	<div class="padding">{$aLang.blog_no_topic}</div>
{/if}
  • avatar
  • Mitya
  • 30 марта 2012, 05:25
+2
Хотя знаете, я видимо не так понял идею. Вам не нужно что бы только админы могли создавать топики, что можно сделать плагином выше, вам нужно что бы только админы были на сайте пока он заполняется контентом.

Идея: Всех неавторизованных должно кидать на страницу логина.
Авторизованные проходят проверку на права и при отсутствии прав админа разлогиниваются и снова перебрасываются на страницу логина

Реализация: Добавить файл \classes\hooks\HookOnlyAdmin.class.php

<?php
//==============================
class HookOnlyAdmin extends Hook{
//==============================
	public function RegisterHook(){
		$this->AddHook('init_action','InitAction',__CLASS__);
	}
//==============================
	public function InitAction() {
		$oEngine=Engine::getInstance();
		if(!$oEngine->User_IsAuthorization()){
			if(Router::GetAction()!='login') Router::Location(Router::GetPath('login'));
		}else{
			$oUserCurrent=$oEngine->User_GetUserCurrent();
			if(!$oUserCurrent->isAdministrator()){
				$oEngine->User_Logout();
				Router::Location(Router::GetPath('login'));
			}
		}
	}
//==============================
}
?>

Код не тестировался, так что пользуйтесь на свой страх и риск.
  • avatar
  • AlikMis
  • 23 марта 2012, 16:37
0

{if $oTopic || ($sAction=='index' and $aPaging.iCurrentPage=='1' and $sEvent=='')}
		<meta name="ROBOTS" content="index, follow">
		<meta name="description" content="{$sHtmlDescription}" />
		<meta name="keywords" content="{$sHtmlKeywords}" />
	{else}		
		<meta name="ROBOTS" content="noindex, follow">
	{/if}
+3
{count($aUsersFriend)} — кол-во друзей
{count($aBlogsOwner)} — кол-во созданных блогов
{count($aBlogAdministrators)} — кол-во администрируемых блогов
{count($aBlogModerators)} — кол-во модерируемых блогов
{count($aBlogUsers)} — кол-во читаемых блогов
  • avatar
  • AlikMis
  • 20 марта 2012, 11:57
+1
Откройте в папке actions файл ActionRss.class.php. Видите в самом низу функцию getTopicText?
protected function getTopicText($oTopic) {
		$sText=$oTopic->getTextShort();
		if ($oTopic->getTextShort()!=$oTopic->getText()) {
			$sText.="
<a href=\"{$oTopic->getUrl()}#cut\" title=\"{$this->Lang_Get('topic_read_more')}\">";
			if ($oTopic->getCutText()) {
				$sText.=htmlspecialchars($oTopic->getCutText());
			} else {
				$sText.=$this->Lang_Get('topic_read_more');
			}
			$sText.="</a>";
		}
		return $sText;
	}
Отлично! Она и отвечает за формирования текста статей в RSS. Почему бы вам не исправить её, например, на такую?
protected function getTopicText($oTopic) {
		$sText=$oTopic->getText();
		return $sText;
	}
А вы молодец — сами всё сделали ;)
  • avatar
  • Chiliec
  • 14 марта 2012, 15:47
+4
правильнее будет:
{if $sAction=='index' and $sEvent==''}
  • avatar
  • bynetov
  • 01 марта 2012, 13:33
0
Это можно и без плагина сделать. Можно сделать что-то вроде:

    {if $oUser->getProfileSex()=="woman"}
	<a href="{$oUser->getUserWebPath()}" class="woman-nick">{$oUser->getLogin()}</a>  
    {else}
	<a href="{$oUser->getUserWebPath()}" class="man-nick">{$oUser->getLogin()}</a>  
    {/if}
+2
Мануал

        {if !$bTopicList}
                <script type="text/javascript" src="{cfg name='path.static.skin'}/js/fotorama.js"></script>
                <link rel='stylesheet' type='text/css' href="{cfg name='path.static.skin'}/css/fotorama.css" />
                <script type="text/javascript">
                    jQuery(document).ready(function($) {
                        $('.topic-photo-images').fotorama();
                    });
                </script>

                <div class="topic-photo-images">
                        <h2>{$oTopic->getPhotosetCount()} {$oTopic->getPhotosetCount()|declension:$aLang.topic_photoset_count_images}</h2>
                                {assign var=aPhotos value=$oTopic->getPhotosetPhotos(0, $oConfig->get('module.topic.photoset.count_photos_max'))}
                                {if count($aPhotos)}
                                        {foreach from=$aPhotos item=oPhoto}
                                                <a class="photoset-image" href="{$oPhoto->getWebPath(500)}" title="{$oPhoto->getDescription()}"><img src="{$oPhoto->getWebPath('50crop')}" alt="{$oPhoto->getDescription()}" /></a>
                                        {/foreach}
                                {/if}
                </div>
        {/if}

Неужели трудно?
  • avatar
  • AlikMis
  • 26 февраля 2012, 00:05
0
{if $oBlog->getType()!='company'}
    код вывода блога
{/if}
написано сходу (не проверял и пока не буду сор — некогда), но должно работать
  • avatar
  • netlanc
  • 16 февраля 2012, 20:30
+1
бстро fix — может помочь
в \plugins\liteimage\classes\actions\ActionImage.class.php строку
$sText = $this->Text_Parser(getRequest('image_text'));
заменить на
$sText = htmlspecialchars(strip_tags(str_replace('\n', "",getRequest('image_text'))));
  • avatar
  • netlanc
  • 28 января 2012, 12:40
+2
У себя я сделал, чтобы автоматом при написании нового сообщения в заголовке вставлялось "..."
Чтобы написать свою тему достаточно просто стереть это и написать новое, а если писать тему не нужно, но троеточие останется как заголовок сообщения.
Для этого в файле \templates\skin\ВАША_ТЕМА\actions\ActionTalk\add.tpl найти строчку, начинающуюся на
<input type="text" class="input-pwide" id="talk_title" name="talk_title"

главное, чтобы name=«talk_title». В нем находим value и меняем значение на следующее
{if {$_aRequest.talk_title}}{$_aRequest.talk_title}{else}...{/if}
+1
создаем в таблице prefix_user поле для звания
user_zvanie	varchar(255)


Добавляем в ваш шаблон в файл action/ActionSettings/profile.tpl
например после
<p>
		<label for="profile_name">{$aLang.settings_profile_name}:</label><br />
		<input type="text" name="profile_name" id="profile_name" value="{$oUserCurrent->getProfileName()|escape:'html'}" class="input-200" /><br />
		<span class="note">{$aLang.settings_profile_name_notice}</span>
	</p>
добавляем
<p>
		<label for="zvanie">Должность/звание:</label><br />
		<input type="text" name="zvanie" id="zvanie" value="{$oUserCurrent->getUserZvanie()|escape:'html'}" class="input-200" /><br />
		<span class="note">Длина должности не может быть меньше 2 и больше 20 символов.</span>
	</p>


теперь идем в /action/ActionSettings.class.php
находим
if (func_check(getRequest('profile_name'),'text',2,20)) {
				$this->oUserCurrent->setProfileName(getRequest('profile_name'));
			} else {
				$this->oUserCurrent->setProfileName(null);
			}
и после вставляем
if (func_check(getRequest('zvanie'),'text',2,20)) {
				$this->oUserCurrent->setUserZvanie(getRequest('zvanie'));
			} else {
				$this->oUserCurrent->setUserZvanie(null);
			}


и последний шаг, идем в /actions/modules/User/mapper/User.mapper.class.php
и находим
public function Update(ModuleUser_EntityUser $oUser) {

там вставляем перед WHERE user_id = ?
user_zvanie = ?
, не забудьте строчкой выше в конце строки поставить запятую.

И примерно 10 строками ниже, перед $oUser->getId(), вставьте
$oUser->getUserZvanie(),
  • avatar
  • KLaus
  • 22 января 2012, 14:09
+3
Глянул функционал плагина — впринципе, его суть можно реализовать одним хуком.
Попробую прикинуть:
1) Создайте файл HookCopyrightt.class.php в директории \classes\hooks\ со следующим содержимым
<?php

class HookCopyrightt extends Hook {
	public function RegisterHook() {
		$this->AddHook('template_copyrightt','CopyrighttLink',__CLASS__,-100);
	}

	public function CopyrighttLink() {


		$sFilePath = Config::Get('path.root.web').'/list.txt';
		$aPhrases = file($sFilePath);
		$HZ1 = $aPhrases[rand(0,count($aPhrases)-1)];

if($oUser = $this->User_GetUserCurrent()){
			$HZ2 = str_replace('%username%','<b>'.$oUser->getLogin().'</b>',$HZ1);
} else {$HZ2 = $HZ1;}

		return $HZ2;
		
	}
}
?>

2) Взять файл \plugins\greetings\templates\skin\default\list.txt (это файл с фразами) и переместить его в корень сайта
3) Теперь, если вам нужно, чтобы фразы выводились в хедере — вставте в \templates\skin\ВАШ_ШАБЛОН\header_top.tpl следующее
{hook run='copyrightt'}

Впринципе, можно в любое место вставлять — блоки, футер, хедер…
0
<cut name="Больше плагинов под катом">
  • avatar
  • netlanc
  • 20 ноября 2011, 20:14