+6.13
Рейтинг
19.33
Сила

Продажный кодер

\www\templates\skin\__SKIN__\actions\ActionPhotoset\add.tpl

Закоментировать
<script type="text/javascript">
	jQuery(function($){
		if (jQuery.browser.flash) {
			ls.photoset.initSwfUpload({
				post_params: { 'topic_id': {json var=$_aRequest.topic_id} }
			});
		}
	});
</script>
Без проверки на работоспособность чисто ради практики для редактора markItUp

jQuery(document).ready(function($){
	$('.topic-content img').on('click',function(){
		var sAlign=$(this).attr('align')?($(this).attr('align')=='center'?'class="image-center"':'align="'+$(this).attr('align')+'"'):'';
		var sTitle=$(this).attr('title')?'title="'+$(this).attr('title')+'"':'';
		var sAlt=$(this).attr('alt')?'alt="'+$(this).attr('alt')+'"':'';
		$.markItUp({replaceWith:'<img src="'+$(this).attr('src')+'" '+sTitle+' '+sAlt+' '+sAlign+' />'});
	});
});
Предлагаю алгоритм решения

Идем сюда, смотрим что есть в наличии, находим, радуемся
{else}
Идем сюда, смотрим что есть в наличии, находим, радуемся
{else}
Идем сюда, смотрим кто есть в наличии, связываемся, радуемся
{else}
Идем сюда, смотрим как это работает, читаем, радуемся
{else}
Идем сюда, радуемся

Желательно не разрывать последовательности
{if $oUserCurrent}
	{$aLang.settings_invite_available}: {if $oUserCurrent->isAdministrator()}{$aLang.settings_invite_many}{else}{$iCountInviteAvailable}{/if}
{/if}


\classes\hooks\HookCountInvite.class.php
<?php
//===============================================================
class HookCountInvite extends Hook{
//===============================================================
	public function RegisterHook(){
		$this->AddHook('init_action','InitAction',__CLASS__,1000);
	}
//===============================================================
	public function InitAction(){
		if($oUserCurrent=$this->User_GetUserCurrent()){
			$this->Viewer_Assign('iCountInviteAvailable',$this->User_GetCountInviteAvailable($oUserCurrent));
		}
	}
//===============================================================
}
?>
Почему нет?
Если ваш функционал к примеру гораздо удобен, стабильнее, а возможно вообще бесплатен — вам только спасибо скажут. При том что конкуренция заставляет развиваться
\classes\hooks\HookStat.class.php
<?php
//===============================================================
class HookStat extends Hook{
//===============================================================
	public function RegisterHook(){
		$this->AddHook('init_action','InitAction',__CLASS__,1000);
	}
//===============================================================
	public function InitAction(){
		$this->Viewer_Assign('aStat',$this->User_GetStatUsers());
	}
//===============================================================
}
?>
Вот вам для затравки костылек в template.js :)
$('body').find('.topic-title').append($('<i/>').addClass('icon icon-minus')).on('click',function(){
	$(this).closest('article').find('.topic-content').slideToggle();
	$(this).find('.icon').toggleClass('icon-plus').toggleClass('icon-minus');
});
Чуть больше года назад один казах на данном сайте так же раскидывался идеями, спрашивал мнения, интересовался что не хватает данному движку. Даже реализовал какие то свои идеи, правда как оказалось в дальнейшем что то у него не получилось с поддержкой того что он реализовал.

К чему это я? Может все таки не стоит раззадоривать народ обещаниями, а просто сделаете, а уже потом будете собирать мнения? На вас к примеру до сих пор висит платная галерея PRO, которую судя по анонсам стоит ждать и которую как подозреваю ждут не только я.
В init добавьте
browser_spellcheck:true,

И проверкой орфографии займется браузер пользователя

В Firefox к примеру включить автоматическую проверку орфографии можно галкой: Инструменты -> Настройки -> Дополнительные -> Общие -> Проверять орфографию при наборе текста
поиграйте с css со свойствами #sidebar и #content

как пример
#sidebar {
    float: right;// заменяем на float: left;
    width: 240px;
}

#content {
    background: none repeat scroll 0 0 #FFFFFF;
    margin-right: 295px;//заменяем на margin-left: 295px;
    min-height: 1px;
    position: relative;
}

Сайдбар с контентом поменяются местами
\www\classes\modules\topic\Topic.class.php

строка 722
$aFilter['order']=array('t.topic_rating desc','t.topic_id desc');
заменить на
$aFilter['order']=array('t.topic_count_vote_up desc','t.topic_id desc');
  • avatar AlikMis
  • 1
Выключаете админку от авадима
Ищите ВСЕ файлы config.php и config.local.php в папках config, plugins и templates
В найденных файлах ищите $config['view']['tinymce'] или Config::Get('view.tinymce')
Меняете их значения с true на false
  • avatar AlikMis
  • 8
Да что теряться — удаляйте всю папку engine + еще папку classes, они только тормозит работу сайта

строка 255
$aPaging=$this->Viewer_MakePaging($aResult['count'], $iPage,Config::Get('module.topic.per_page'), Config::Get('pagination.pages.count'), Router::GetPath('index').'newall');
  • avatar AlikMis
  • 0
Господин желает уточнить что данные манипуляции можно провести еще и с public function GetTopicsNewAll там же :)
  • avatar AlikMis
  • 3
\www\classes\modules\topic\Topic.class.php

public function GetTopicsNew

замените фильтр на
$aFilter=array(
			'blog_type' => array(
				'personal',
				'open',
			),
			'topic_publish' => 1,
			'topic_new' => $sDate,
			'topic_rating'=>array(
				'value' => Config::Get('module.blog.index_good'),
				'type'  => 'down',
			);
		);

Для отображения в новых только новых с рейтингом ниже порога главной
\classes\actions\ActionAjax.class.php
строка 987
$oTopic->_Validate(array('topic_title','topic_text','topic_tags','topic_type'),false);
убираем 'topic_tags',
у меня для вас плохие новости — уже январь :)
\classes\hooks\HookLogout.class.php
<?php
//===============================================================
class HookLogout extends Hook{
//===============================================================
	public function RegisterHook(){
		$this->AddHook('init_action','InitAction',__CLASS__,1000);
	}
//===============================================================
	public function InitAction(){
		$iRatingBlocked=-200;//рейтинг для бокировки
		if($oUserCurrent=$this->User_GetUserCurrent()){
			if(!$oUserCurrent->isAdministrator() && $oUserCurrent->getRating()<=$iRatingBlocked) $this->User_Logout();
		}
	}
//===============================================================
}
?>

Пользователя не являющимся админом и имеющим рейтинг меньше или равным $iRatingBlocked=-200 будет постоянно разлогинивать
Исправляем урлы топикам
\classes\modules\topic\entity\Topic.entity.class.php
public function getUrl() {
	if ($this->getBlog()->getType()=='personal') {
		return Router::GetPath('blog').$this->getId().'.html';
	} else {
		return Router::GetPath('community').$this->getBlog()->getUrl().'/'.$this->getId().'.html';
	}
}

Исправляем урлы блогам
\classes\modules\blog\entity\Blog.entity.class.php
public function getUrlFull() {
	if ($this->getType()=='personal') {
		return $this->getOwner()->getUserWebPath().'created/topics/';
	} else {
		return Router::GetPath('community').$this->getUrl().'/';
	}
}

Добавляем реврайты
$config['router']['uri'] = array(
	// короткий вызов топиков из личных блогов
	'~^(\d+)\.html~i' => "blog/\\1.html",
	'~^community/(\w+)/(\d+)\.html~i' => "blog/\\1/\\2.html",
	'~^community/(\w+)~i' => "blog/\\1",
);


теперь блог виден как http__://site.ru/community/blog_url/, топик в нем http__://site.ru/community/blog_url/1.html, а топики из личных так и остаются как http__://site.ru/blog/2.html

зы: пользуйтесь на свой страх и риск, понятия не имею к чему данная конструкция приведет, но задачу выше решает