Фон сайта ссылкой.

Всем добра.В полку любителей Livestreet прибыло.И вот возник вопрос по поводу как сделать фон сайта ссылкой.

Фон поменял с помощью

{if $sAction=='blogs' }
style="
background: url(link) 50% 0 repeat;
" {/if}

Для того что бы сделать ссылкой использую js script из admixer.(Файл шаблона можно скачать admixer.net/ru/creatives/adformats/branding Файл шаблон-пример

Подробности

Асинхронная загрузка css и js

Как использовать асинхронную загрузку css и js,
если в шаблоне мы имеем только {$aHtmlHeadFiles.css} и {$aHtmlHeadFiles.js}?

Думаю, что нужно jQuery не мержить (array('merge'=>false)), а остальное «подавать» в обертке ниже. Однако почему-то исключенные с мержа файлы подключаются ниже смерженных. Т.е. нужна возможность при подключении дополнительно указывать выше ли ниже (типа append и prepend).

При этом нужно учитывать включен ли в конфиге мерж.

Вот только как это все сделать?

Настройки слияния (компрессии) css и js

Всем привет!
В очередной раз поднимаю тему (вроде видел, но не могу найти решение).
Установил в конфигах:
$config['compress']['css']['merge'] = true;
$config['compress']['css']['use'] = false;
$config['compress']['js']['merge'] = true;
$config['compress']['js']['use'] = true;
На одних сайтах все хорошо. А на других отпали некоторые стили с картинками, иконки.
Сброс кеша в админке не помогает.

Требуется программисты

Для крупного проекта — inparadise.info/ требуются хорошие программисты со знанием PHP на высоком уровне, и базовыми знаниями HTML, CSS3 и JS. Так же обязательный опыт работы с движком LiveStreet, MVC моделями и написанием плагинов под Livestreet.
Требование:
— ответственность
— аналитический склад ума
— многозадачность
— умение организовать свой рабочий день
— инициативность
— умение и желание работать в команде
— готовность качественно выполнять поставленные задачи в сроки
— быть всегда на связи
Оплата после выполнение тз.
Оставляйте свой скайп для связи.

Переопределение js (Решено)

Задача 1.
В файле /engine/lib/internal/template/js/blocks.js есть код, добавляющий класс active иконке обновления блока («прямой эфир» и «блоги»).
В шаблоне используются иконки (точнее шрифт) font-awesome, поэтому необходимо переопределить класс active на класс fa-spin (вращение).

Решение:
— в template.js шаблона перед вызовом функции инициализации блоков добавим опцию:
ls.blocks.options.update_active = 'fa-spin';

— затем переопределим ее с новой опцией:
ls.blocks.init = function(block,params) {
	params=params || {};
	$('.js-block-'+block+'-item').click(function(){
		ls.blocks.load(this, block);
		return false;
	});
	if (params.group_items) {
		this.initNavigation(block,params.group_min);
	}

	var $this=this;
	$('.js-block-'+block+'-update').click(function(){
		$(this).addClass($this.options.update_active);
		ls.blocks.load($this.getCurrentItem(block), block);
		setTimeout( function() { $(this).removeClass($this.options.update_active); }.bind(this), 600 );
	});
};


Задача 2.
В стандартном функционале при добавлении в избранное js движка добавляет к иконке избранного в футере топика класс active, и это легко можно задействовать при использовании спрайтов, указав координаты «активной» иконки. В нашем примере используется иконки font-awesome, поэтому класс active нам не подходит. Хотя vOFFka в своих шаблонах выкрутился по-другому, задав иконке с классом active желтый цвет.
Т.е. нам нужно при добавлении в избранное менять класс иконки избранного с fa-star-o (звездочка с контуром) на fa-star (залитая звездочка).
Также необходимо при добавлении/удалении в избранное соответственно менять title иконке (Добавить в избранное/Удалить из избранного).

Решение:
Окончание процесса добавления/удаления избранного в движке помечено js-хуком.
В template.js шаблона Synio я нашел применение этого хука (удаляет нулевое значение числа добавлений в избранное) и решил его дополнить:
// избранное
ls.hook.add('ls_favourite_toggle_after',function(idTarget,objFavourite,type,params,result){
	$('#fav_count_'+type+'_'+idTarget).text((result.iCount>0) ? result.iCount : '');

	// меняем иконку
	$('#fav_topic_'+idTarget).toggleClass('fa-star').toggleClass('fa-star-o');
	// Для всех типов объектов, добавляемых в избранное (например, + камменты), следует писать так
	// this.objFavourite.toggleClass('fa-star').toggleClass('fa-star-o');
	// или так
	// $('#fav_'+type+'_'+idTarget).toggleClass('fa-star').toggleClass('fa-star-o');

	// меняем title иконке
	if (result.bState) {
		this.objFavourite.attr('title', 'Удалить из избранного');
	} else {
		this.objFavourite.attr('title', 'Добавить в избранное');
	}
});


P.S.:
Вероятно, вышеизложенное гораздо проще реализовать правками непосредственно в файлах движка, но это может привести к проблемам совместимости.

Большое спасибо ort , PSNet (статья) и tema_mak за помощь в решении задач!

Как очистить head от лишних скриптов?

Здравствуйте! Пожалуйста, подскажите, как очистить head от лишнего кода, хочу удалить этот скрипт:
<script type="text/javascript">
var DIR_WEB_ROOT 			= '{cfg name="path.root.web"}';
var DIR_STATIC_SKIN 		= '{cfg name="path.static.skin"}';
var DIR_ROOT_ENGINE_LIB 	= '{cfg name="path.root.engine_lib"}';
var LIVESTREET_SECURITY_KEY = '{$LIVESTREET_SECURITY_KEY}';
var SESSION_ID				= '{$_sPhpSessionId}';
var BLOG_USE_TINYMCE		= '{cfg name="view.tinymce"}';
		
var TINYMCE_LANG = 'en';
{if $oConfig->GetValue('lang.current') == 'russian'}
TINYMCE_LANG = 'ru';
{/if}

var aRouter = new Array();
{foreach from=$aRouter key=sPage item=sPath}
aRouter['{$sPage}'] = '{$sPath}';
{/foreach}
</script>

Взять, например, сайт spark.ru. У них там этого кода нет.

Подключение js если недоступен CDN

Возможно ли подключение js (jQuery, Boootstrap, etc.) следующим образом:
— указываем ссылку на cdn, если он недоступен — то забираем со своего сервера?

Еще на Яндекс.Метрике обратил внимание что код счетчика может быть асинхронный — т.е. не влиять на скорость загрузки сайта. Такой код отличается некой оберткой.
Можно ли смерженный js подключать таким же образом?

Подключение js в плагине (Почти решено)

Есть ли разница в подключении js плагина?:
  1. Через хук:
    public function InitAction() {
        $this ->Viewer_AppendScript (Plugin::GetTemplateWebPath (__CLASS__).'js/somejs.js');
        ...
    }
  2. Или через класс плагина:
    public function Init() {
        $this->Viewer_AppendScript (Plugin::GetWebPath (__CLASS__).'js/somejs.js');
        ...
    }

Может ли это сказаться на слиянии js?

Почему для некоторых js нужно запрещать слияние?
Читать дальше →

Оптимизация для PageSpeed Insights

С настройкой сервера, оптимизацией изображений и прочим я разобрался, остались вопросы, в которых я не очень хорошо ориентируюсь.
Google PageSpeed Insights выдает примерно следующее
Читать дальше →

Подключение JavaScript

В общем, есть JS скрипт, который добавляет смайлы на сайт. Поставил его через TamperMonkey в браузер — работает, все нормально. Так вот, как сделать, чтобы пользователю не нужно было ставить его себе в бразуер, т.е. инклуднуть его в сайт.
Вроде понятно объяснил. Спасибо!