Текст комментария должен быть от 2 до 3000 символов

Иногда при создании личного сообщения, нужно передать какую-то информацию. НО сука 3000 символов это очень мало.
Короче это меняется вот тут.

/classes/actions/ActionTalk.class.php
/**
		 * Проверяем текст комментария
		 */
		$sText=$this->Text_Parser(getRequestStr('comment_text'));
		if (!func_check($sText,'text',2,3000)) {
			$this->Message_AddErrorSingle($this->Lang_Get('talk_comment_add_text_error'),$this->Lang_Get('error'));
			return;
		}

Как скрыть "закрытый блог" из листинга?

В боковой колонке есть список блогов/разделов.
И закрытые блоги там все отображаются, с замочками. Иногда это чисто технические разделы для создателей портала.
А пользователи задаются вопросом что же там внутри, как вступить и все такое.
И вот чтобы скрыть это, чтобы лишних вопросов не было. Делаем такое:

classes\modules\blog\mapper\Blog.mapper.class.php
public function GetBlogsRating(&$iCount,$iCurrPage,$iPerPage) {         
                $sql = "SELECT 
                                        b.blog_id                                                                                                       
                                FROM 
                                        ".Config::Get('db.table.blog')." as b                                                                    
                                WHERE                                                                   
                                        b.blog_type<>'personal'                                                                 
                                ORDER by b.blog_rating desc
                                LIMIT ?d, ?d    ";              
                $aReturn=array();
                if ($aRows=$this->oDb->selectPage($iCount,$sql,($iCurrPage-1)*$iPerPage, $iPerPage)) {
                        foreach ($aRows as $aRow) {
                                $aReturn[]=$aRow['blog_id'];
                        }
                }
                return $aReturn;
        }

в запросе есть исключение (кроме персональных (type personal))
WHERE                                                                   
                                        b.blog_type<>'personal'

вот и допишем еще и закрытые
WHERE                                                                   
                                        b.blog_type<>'personal'
                                        and
                                        b.blog_type<>'close'

В результате будет вот так:
public function GetBlogsRating(&$iCount,$iCurrPage,$iPerPage) {         
                $sql = "SELECT 
                                        b.blog_id                                                                                                       
                                FROM 
                                        ".Config::Get('db.table.blog')." as b                                                                    
                                WHERE                                                                   
                                        b.blog_type<>'personal'
                                        and
                                        b.blog_type<>'close'                                                                    
                                ORDER by b.blog_rating desc
                                LIMIT ?d, ?d    ";              
                $aReturn=array();
                if ($aRows=$this->oDb->selectPage($iCount,$sql,($iCurrPage-1)*$iPerPage, $iPerPage)) {
                        foreach ($aRows as $aRow) {
                                $aReturn[]=$aRow['blog_id'];
                        }
                }
                return $aReturn;
        }

Поле Текст слишком длинное (максимально допустимо 500 символов)

Иногда при создании топика-ссылки, или топика-опроса, мы пишем описание. НО сука 500 символов. А нам нада 600 например :)
Короче это меняется вот тут.
classes/modules/topic/entity/Topic.entity.class.php
$this->aValidateRules[]=array('topic_text_source','string','max'=>500,'min'=>10,'allowEmpty'=>false,'label'=>$this->Lang_Get('topic_create_text'),'on'=>array('link'));
$this->aValidateRules[]=array('topic_text_source','string','max'=>500,'allowEmpty'=>true,'label'=>$this->Lang_Get('topic_create_text'),'on'=>array('question'));

Активные, заблудившиеся

Во вкладке Люди, ведется учёт Активных и Заблудившихся пользователей.
В api не нашел, как для конкретного юзера узнать его статус Активный или Заблудившийся, а хотелось бы знать :)


Активные — это те, которые заходили на сайт меньше чем 7 дней назад. Заблудившиеся — остальные.
Если хочешь изменить 7 дней, то это в конфиге строка
$config['module']['user']['time_active'] = 60*60*24*7; // Число секунд с момента последнего посещения пользователем сайта, в течение которых он считается активным

как в footer добавить новое меню?

как в footer добавить новое меню, или новый столбик.

редактируем файл footer.tpl через notepad++
{*
        <ul class="footer-list">
                <li class="footer-list-header">{$aLang.footer_menu_project_title}</li>
                <li><a href="#">{$aLang.footer_menu_project_about}</a></li>
                <li><a href="#">{$aLang.footer_menu_project_contact}</a></li>
                <li><a href="#">{$aLang.footer_menu_project_advert}</a></li>
                <li><a href="#">{$aLang.footer_menu_project_help}</a></li>
                                {hook run='footer_menu_project_item'}
        </ul>
*}


это и есть пример готового столбика )
нада убрать {* и *}
тогда он будет работать.
если нужно еще и еще — копируем.

так же, через {*_тут-ваш-код_*} можно писать разные коды в шаблоне, но они не будут работать. удобно иногда, чтобы сто раз одно и тоже не стирать, не делать заного.

Делаем перенаправление на определенную страницу после регистрации на сайте

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

1. В файле \classes\actions\ActionRegistration.class.php меняем строчку
$this->Viewer_AssignAjax('sUrlRedirect',$sUrl ? $sUrl : Config::Get('path.root.web'));

на
$this->Viewer_AssignAjax('sUrlRedirect',$sUrl ? $sUrl : Config::Get('module.user.redirect_after_registration'));

2. В файле \templates\skin\ваш_шаблон\window_login.tpl меняем строку
<input type="hidden" name="return-path" value="{$PATH_WEB_CURRENT|escape:'html'}">

на
<input type="hidden" name="return-path" value="{cfg name='module.user.redirect_after_registration'}">

3. В конфиге добавляем строку
$config['module']['user']['redirect_after_registration'] = '___path.root.web___/page/rules';                      // переадресация после регистрации

Action в tpl

Используется следующая структура URL: site.com/action/event/param0/param1/../paramN/?var1=value1&var2=value2, где:
  • action — имя экшена, который будет обрабатывать такой URL, соответствие именем экшена в URL и названием класса задается в конфиге роутинга.
  • event — евент, который будет запускаться внутри экшена, определение евента можно назначать с помощью регулярного выражения
  • paramN — дополнительные параметры переданные в URL
  • varN — обычные GET параметры запроса