-4.50
Рейтинг
0.03
Сила
А зачем модальное окно в блок копировать?
Для примера возьмем окно входа. Шаблон window_login.tpl вставляется в header.tpl
{include file='window_login.tpl'}

Само окно c id=«window_login_form» активируется в js\templates.js
$('#window_login_form').jqm();
и подключается к обработке(onclick) для js-registration-form-show и js-login-form-show
$('.js-registration-form-show').click(function(){
		if (ls.blocks.switchTab('registration','popup-login')) {
			$('#window_login_form').jqmShow();
		} else {
			window.location=aRouter.registration;
		}
		return false;
	});

	$('.js-login-form-show').click(function(){
		if (ls.blocks.switchTab('login','popup-login')) {
			$('#window_login_form').jqmShow();
		} else {
			window.location=aRouter.login;
		}
		return false;
	});

на «кнопки» в header_top.tpl
<ul class="auth">
			{hook run='userbar_item'}
			<li><a href="{router page='registration'}" class="js-registration-form-show">{$aLang.registration_submit}</a></li>
			<li><a href="{router page='login'}" class="js-login-form-show sign-in">{$aLang.user_login_submit}</a></li>
		</ul>
Можно в actions/ActionProfile/wall.tpl заменить
{if $oUserCurrent}
на
{if $oUserCurrent and $oUserProfile->GetFriend($oUserCurrent->getId(),$oUserProfile->getId())}
Нужно работать с базой данных:
1. Чтобы всем новым пользователям по умолчанию не активировались эти опции, нужно в таблице user, для нужных полей (они начинаются на «user_settings_notice_») для значения по умолчанию поставить 0
2. Чтобы изменить настройки уже существующих пользователей, необходимо в этих же полях для всех пользователей установить 0. Пример SQL запроса, который отключает все опции уведомления для всех пользователей:
UPDATE `prefix_user` SET 
user_settings_notice_new_topic = 0,
user_settings_notice_new_comment = 0,
user_settings_notice_new_talk = 0,
user_settings_notice_reply_comment = 0,
user_settings_notice_new_friend = 0


prefix необходимо изменить на префикс ваших таблиц в базе данных.
  • avatar AlikMis
  • 1
Gосле второго десятка начинаешь уставать от таких вопросов
Еще раз что бы запомнили
Переменная {$sAction} в шаблоне содержит action
Переменная {$sEvent} в шаблоне содержит event
URL выглядит как _http://domain.ru/{$sAction}/{$sEvent}/{$aParams}
В вашем случае {if $sMenuItemSelect=='blog' && !($sAction=='blog' && $sEvent=='test')}
  • avatar virgin
  • 3
Вот у меня записка, себе, про фотосет — может, пригодится. Что-то отсюда, из поиска на этом сайте, что-то методом тыка, короче:

1. Фотосет. Если вы хотите дать пользователям возможность просматривать увеличенные фото из фотосета прямо в ленте топиков, не заходя на страницу самого топика фотосета, то нужно в файле topic_photoset.tpl удалить условие:
{if !$bTopicList}
не забудьте удалить закрывающий тег
{/if}


2. Вот какие опции надо вставить в файл templates/skin/simple/topic_photoset.tpl, чтобы фотосет не светил в глаза белым при смене картинок, что сказочно раздражает. После
$('.photoset-image').prettyPhoto({
надо вставить:
theme: 'pp_default',
		social_tools:'',
		show_title: false,
		slideshow:false,
		deeplinking: true,
		overlay_gallery: false,
		opacity: 0.85,
		animation_speed: 0
потом будет скобка:
});
	});
</script>
Обращаю внимание на overlay_gallery: false, это убирает маленькие никчомные превьюшки с самой картинки в лайтруме (лайтрум — это, если непонятно, непосредственно черный экран с большой картинкой).  И кто только придумал эту хрень — мешает же смотреть-то, да и на странице на сайте есть превью всех картинок! Но если все же превьюшки нужны еще и в лайтруме, то надо писать: true.

3. Файл со стилями для фотосета engine/lib/external/prettyPhoto/css/prettyPhoto.css я переписала весь, стандартный устаревший дизайн фотосета меня никак не устраивал: нарисовала стрелочки модные, лишнее выкинула (стрелки вперед-назад, например, там два раза повторяются), чего и вам советую сделать.

4. Изображение на странице топика-фотосета: в шаблоне прописан вызов с шириной 500, изменить можно здесь: templates/skin/simple/topic_photoset.tpl
<img src="{$oMainPhoto->getWebPath(500)}" alt="image" id="photoset-main-image-{$oTopic->getId()}" />
Плюс надо в конфиге изменить:
array( 
    'w' => 500,
    'h' => null,
    'crop' => false, 
    ),


5. Фотосеты везде (кроме комментариев, к огромному сожалению) — это плагин Lite Image, покупать на сайте Netlank'а. Плагин дает мультизагрузку, плюс слайдер к ней прикручен, плюс фотосет по клику на картинку, плюс размеры картинкам можно менять. Но предупреждаю сразу: если этот плагин поставить как есть, то у пользователей задымится голова: кнопок много, логики в их визуализации никакой, и ничерта, короче, непонятно — хотя функциональность полная, разве что мышкой картинки в окно загрузки нельзя таскать, а остальное — всё есть. Но придется самому продумывать дизайн (то есть визуальную организацию), иначе жопа.

6. На шестой вопрос выше исчерпывающе ответил kpoxas.

7. Теперь — кнопка (проходит у меня под кличкой «Кнопка-п**дец»). Голубая кнопка, зашитая во флеш-ролик, отображается как настоящий визуальный п**дец, голубая. Ей можно поменять цвет и шрифт, вот тут: engine/lib/internal/template/js/main.js. У меня вот какие опции сейчас (больше кнопка ничего не слушается всё равно):
button_width: 100,
    button_height: 28,
    button_text : '<span class="button">'+ls.lang.get('topic_photoset_upload_choose')+'</span>',
    button_text_style : '.button { color: #34c48f; font-size: 13px; font-family: "helvetica neue", helvetica, arial, sans-serif; }',
    button_text_left_padding: 12,
    button_text_top_padding: 3,
    button_text_bottom_padding: 12,
    button_cursor: SWFUpload.CURSOR.HAND,
Кстати, я тут на сайте видела, как ort не помню с кем спорил про страшную голубую кнопку — он утверждал, что ее можно изменить, а ему отвечали: да нифига!, а он говорил, что раз он смог ее, кнопку, изменить обычным порядком — то любой недурак может. Но как именно он это сделал, он так и не рассказал, ё.

8. Еще фотосет имеет мощный косяк при смене размеров для загрузки! Если сменить размеры (пункт 4.), то картинки (как раз те превью, размер которым изменен) не будут отображаться в уже опубликованных топиках-фотосетах на странице сайта, а будут только в лайтруме. Netlank написал инструкцию, как это исправить, советую прочитать, а еще проще — не менять размеры на уже работающих сайтах. :)

Ну вот, вроде всё про фотосет.
Глянул функционал плагина — впринципе, его суть можно реализовать одним хуком.
Попробую прикинуть:
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'}

Впринципе, можно в любое место вставлять — блоки, футер, хедер…
  • avatar Lora_GT
  • 1
{if $oUserProfile->getSkill() < 100}
вес голоса равен 1
{elseif $oUserProfile->getSkill() >=100 and $oUserProfile->getSkill() < 250 }
вес голоса равен 2
{elseif $oUserProfile->getSkill() >=250 and $oUserProfile->getSkill() < 400 }
вес голоса равен 3
{elseif $oUserProfile->getSkill() > 400}
вес голоса равен 4
{/if}


если не ошиблась — должно сработать
  • avatar midav
  • 0
<embed src="http://widgets.fotocash.ru/270x235/270x235_14.swf" quality="high"></embed></embed></embed>

Вместо
http://widgets.fotocash.ru/270x235/270x235_14.swf

указываем путь на Ваш swf файл
http://site.ru/flash.swf

Вы ведь имеете в виду блок «Прямой эфир»?

Тогда предложу вот так, т.к. проверил и работает, но объяснить толково последний этап не смогу. Найдено методом мультиметра.

Итак, идем в файл шаблона: \templates\skin\new\block.stream.tpl

<div class="block stream">

	<div class="tl"><div class="tr"></div></div>
	<div class="cl"><div class="cr">
					
		<h1>{$aLang.block_stream}</h1>
					
		<ul class="block-nav">						
			<li><strong></strong><a href="#" id="block_stream_topic" onclick="lsBlockStream.toggle(this,'topic_stream'); return false;">{$aLang.block_stream_topics}</a></li>
			<li class="active"><a href="#" id="block_stream_comment" onclick="lsBlockStream.toggle(this,'comment_stream'); return false;">{$aLang.block_stream_comments}</a><em></em></li>
			{hook run='block_stream_nav_item'}
		</ul>					
					
		<div class="block-content">
			{literal}
			<script language="JavaScript" type="text/javascript">
				var lsBlockStream;
				window.addEvent('domready', function() { 
					lsBlockStream=new lsBlockLoaderClass();
				});
			</script>
			{/literal}					
					
			{$sStreamComments}

			</div>
		</div></div>
		<div class="bl"><div class="br"></div></div>
	</div>

Комментируем десятую строку (ну или удаляем ее), вот эту:
<li class="active"><a href="#" id="block_stream_comment" onclick="lsBlockStream.toggle(this,'comment_stream'); return false;">{$aLang.block_stream_comments}</a><em></em></li>


Теперь у нас пропала кнопка с комментами, но они по-прежнему грузятся в эфире. Идем дальше. В этом же файле ищем 24-ю строку с надписью
{$sStreamComments}

Меняем ее на
{$sStreamTopic}

Теперь, откуда же нам взять эту самую sStreamTopic?

Идем в файл \classes\blocks\BlockStream.class.php
И видим там следующее:
class BlockStream extends Block {
	public function Exec() {
		if ($aComments=$this->Comment_GetCommentsOnline('topic',Config::Get('block.stream.row'))) {
			$this->Viewer_Assign('aComments',$aComments);
			$sTextResult=$this->Viewer_Fetch("block.stream_comment.tpl");
			$this->Viewer_Assign('sStreamComments',$sTextResult);
		}
	}
} 


Путем нехитрых манипуляций (метод мультметра, сравнение файлов \include\ajax\stream_topic.php и \include\ajax\stream_comments.php) переназначаем в указанном файле переменные для шаблона. Приходим к
class BlockStream extends Block {
	public function Exec() {
		if ($oTopic=$this->Topic_GetTopicsLast(Config::Get('block.stream.row'))) {
			$this->Viewer_Assign('oTopics',$oTopic);
			$sTextResult=$this->Viewer_Fetch("block.stream_topic.tpl");
			$this->Viewer_Assign('sStreamTopic',$sTextResult);
		}
	}
}


В итоге остается одна кнопка («Публикации»), которую неплохо бы переоформить (она же придумана как переключатель, а теперь переключать нечего), и при нажатии на которую обновляется поток топиков.