+0.65
Рейтинг
0.84
Сила

мобильный макет для телефонов

Всем добрый день друзья!

Сижу работаю над простейшей адаптацией существующих мобильных шаблонов под свой проект.

У меня в проекте стоят такие плагины

autoopenid
informer
native
page
templatesocial
usermedals
viewcount
voterules
mainpreview
flow
greetings

в полной версии все нормально.

взял мобильную вот тут

вставил ее в корень, залил.

добавляем определение для юзера с какой платформы он заходит:

$phone_array = array('iphone', 'pocket', 'palm', 'windows ce', 'windowsce', 'cellphone', 'opera mobi', 'ipod', 'small', 'sharp', 'sonyericsson', 'symbian', 'opera mini', 'nokia', 'htc_', 'samsung', 'motorola', 'smartphone', 'blackberry', 'playstation portable', 'tablet browser');
$agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );

foreach ($phone_array as $value) {
        if ( strpos($agent, $value) !== false ) {
                $config['view']['skin'] = 'm';  
                break;
        } else {
                $config['view']['skin'] = 'developer';  
        }
}


все работает в принципе.
в браузере открывает девелопера
в мобилках — скин мобильных (я его назвал m)

проблема в другом.

в мобильной он хочет пригрузить ВСЕ плагины которые есть в генеральной версии.
вопрос. можно как то в конфиге сделать иф и елсе чтоб в мобильной ВСЕ плагины не включались?

Как сделать главную страницу сайта типа ВК (Часть 2) [РЕШЕНО]

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

  1. Вывести на главную форму входа на сайт
  2. Не делать из этого «закрытый режим» работы сайта (все ссылки должны быть открыты для индексации и т.п.

Мне просто нужно было изменить index.tpl таким образом, чтобы когда Незарегистрированный пользователь попадал на главную страницу сайта, у него высвечивалась страница типа Vk.com (с формой входа и описанием сайта), или если он переходит на какой нибудь топик через ПС, то спокойно мог читать его, а в сайдбаре располагалась форма входа и ссылка на регистрацию… Если же пользователь Зарегистрирован, и вошел на сайт, соответственно не отображать вышесказанное. Мне кажется, необходимо добавть условие IF, но куда его правильно вставить, не знаю =(

Помогите пожалуйста, если знаете как это сделать… Из опыта написания первой статьи на эту тему, хочу заметить, что «советчиков» и «тролей» значительно больше, нежели людей, которые реально могут помочь. Если вам не по нраву сама идея, попрошу об этом не писать, либо выразить свое мнение в ЛС, в противном случае попрошу вас не засорять данный топик советами типа «Это плохая идея, лучше сделать так...» или «Не вижу смысла так делать...» — если можете реально помочь по данному вопросу, пишите, думаю многим будет полезно. Спасибо за помощь и понимание…

Решено: "Упаковка" изменений в плагин. Замена экшенов и переопределения

Помогите, пожалуйста, разобраться в следующем вопросе:

Пытаюсь упаковать изменения в плагин:
основной функционал — изменение вывода топиков на главной странице.
Читать дальше →

[Решено] Вывод рандомной картинки в лого. Как?

Как вывести рандомную картинку вместо логотипа?

Пробовал так:

В header_top.tpl вставил
<img src="img.php" />
с содержанием:

<?php
$n = mt_rand(1, 6);
header("Location: http://example/templates/skin/skinname/images/$n.png");
exit;


результат: ни фи га



Кто может помочь?

Совмещение авторизации и плагина OpenID

Уж больно мне нравится авторизация на кукораме с ее openID авторизацией. Решил прикрутить плагин OpenID к стандартной форме авторизации. Утсановил плагин, взял часть кода из шаблона плагина и вставил в window_login.tpl. В итоге получилось:
{if !$oUserCurrent}
<div class="modal modal-login" id="window_login_form">
<header class="modal-header">
<h3>{$aLang.user_authorization}</h3>
<a href="#" class="close jqmClose"></a>
</header>		
<script type="text/javascript">
jQuery(function($){
$('#popup-login-form').bind('submit',function(){
ls.user.login('popup-login-form');
return false;
});
$('#popup-login-form-submit').attr('disabled',false);
});
</script>	
<div class="modal-content">
<ul class="nav nav-pills nav-pills-tabs">
<li class="active js-block-popup-login-item" data-type="login"></li>
</ul>
<h4><span>Быстрый вход</span></h4>  

     
<div class="openid-popup">
<a href="javascript: openid_fb()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_fb.png" alt="facebook" width="40px" height="40px" /></a>
<a href="javascript: openid_twitter()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_twitter.png" alt="twitter" width="40px" height="40px" /></a>
<a href="javascript: openid_yandex()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_yandex.png" alt="yandex" width="40px" height="40px" /></a>
<a href="javascript: openid_google()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_google.png" class="google"  alt="google" width="40px" height="40px" /></a>
<a href="javascript: openid_vk()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_vk.png" alt="vkontakte" width="40px" height="40px" /></a>            
</div>                    

<h4><span>Вход с паролем</span></h4>

					
<div class="loginform">
{hook run='login_popup_begin'}
<form action="{router page='login'}" method="post" id="popup-login-form">
{hook run='form_login_popup_begin'}
<p><label for="popup-login">{$aLang.user_login}:</label><div class="mega-note">
<a href="{router page='registration'}" >{$aLang.registration_submit}</a></div>
<input type="text" name="login" class="input-registration"></p>				
<p><label for="popup-password">{$aLang.user_password}:</label>
<div class="mega-note"><a href="{router page='login/reminder'}">{$aLang.password_reminder}</a></div>
<input type="password" name="password" class="input-registration" tabindex="1">
<small class="validate-error-hide validate-error-login"></small></p>			
<p><label><input type="checkbox" name="remember" class="input-checkbox" tabindex="2"> {$aLang.user_login_remember}</label></p>
<input type="hidden" name="return-path" value="{$PATH_WEB_CURRENT|escape:'html'}">
<div class="lite-note"> 
<button type="submit" name="submit_login" class="button button-primary" id="popup-login-form-submit" disabled="disabled">{$aLang.user_login_submit}</button>
</div>
{hook run='form_login_popup_end'}
</form>
{hook run='login_popup_end'}
</div>			
</div>
</div>
{/if}

где:
<div class="openid-popup">
<a href="javascript: openid_fb()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_fb.png" alt="facebook" width="40px" height="40px" /></a>
<a href="javascript: openid_twitter()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_twitter.png" alt="twitter" width="40px" height="40px" /></a>
<a href="javascript: openid_yandex()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_yandex.png" alt="yandex" width="40px" height="40px" /></a>
<a href="javascript: openid_google()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_google.png" class="google"  alt="google" width="40px" height="40px" /></a>
<a href="javascript: openid_vk()"><img src="{$aTemplateWebPathPlugin.openid}img/openid_vk.png" alt="vkontakte" width="40px" height="40px" /></a>            
</div> 

участок кода, взятый из openid\templates\skin\default\actions\ActionLogin\openid.tpl
В итоге, иконки с сервисами соц.сетей неактивны, переадресации на страницы авторизации не происходит. Подскажите, где что пропустил.

Создание плагина. От идеи до публикации. Часть 3

Настройка типографа
Настройку типографа реализуем следующим образом: создадим файл конфигурации плагина в каталоге «config» который, в свою очередь, находиться в корне плагина и в нем проведем нехитрые опрерации по добавлению тега 'carousel' в список разрешенных jevix-ом тегов.
<?php
    $aAllowTags = Config::Get('jevix.default.cfgAllowTags');
    $aAllowTags[0][0][] = 'carousel';
    Config::Set('jevix.default.cfgAllowTags', $aAllowTags);


Читать дальше →

Создание плагина. От идеи до публикации. Часть 2.

Создание диалога добавления карусели
Прежде всего определим, каким образом карусель будет вставлена в редактор. В плагине будет использоваться следующая структура: тег «carousel» содержит одно или несколько изображений (тегов img), которые в дальнейшем можно добавлять с помощью стандартного диалога вставки изображения. Диалог вставки тега «carousel» с первым изображением мы создадим, из диалога вставки изображения. Шаблон диалога представлен в файле «skin/developer/window_load_img.tpl», его мы и будем переделывать. Созданный шаблон с помощью зарегистрированного хука будет добавлен на страницу, проинициализирован. Инструменты, обеспечивающие функционал формы будут заимствованы от диалога вставки изображения.

Читать дальше →

Создание плагина. От идеи до публикации. Часть 1.

Плагин, создание которого я опишу уже в каталоге и ссылка на него будет в самоом конце.
Идея плагина заключается в следующем: предоставить пользователю возможность добавлять в топик карусель, предоставляемую фреймворком Twitter Bootstrap. Добавление карусели будет осуществляться через встроенный редактор, для карусели будут доступны как изображения из сети, так и загруженные с компьютера пользователя.

Приступим
В начале создадим в папке plugins папку для нашего плагина с именем carousel и в нем файл plugin.xml c описанием создаваемого плагина (см. картинку ниже).


Читать дальше →

Бесплатный плагин АнтиБот

Я тут пробегая мимо услышал, что кого-то боты замучили. А у меня давно валялся плагин один, который когда-то меня выручил. Я быстренько его подрихтовал под новую версию и выложил пока сюда:
github.com/aVadim483/aceAntiBot

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

UPD от 2012-09-23: На гитхабе выложена значительно доработанная версия плагина

Инструмент для динамического обновления CSS

Для того чтобы увидеть результаты изменений в CSS файлах вашего рабочего проекта, необходимо просто перезагрузить страницу. При этом загружается не только таблицы стилей, но JS, разметка полностью и возможно выполняются запросы к БД. На это, как мне кажется, иногда уходит достаточно много времени, которого в наше прогрессивное время постоянно нехватает.
Мне надоело эта ситуация и, не изобретая велосипед, на широких просторах интернета я нашел для себе решение.
Читать дальше →