Проблема с javascript-маркерами в FireFox
Заметил лажу в лисе. Ест маркеры. Даже строчные типа:
=(
Какая-тоумная стремная минимизация яваскрипта появилась.
В консоли фаербага пишу:
Наглость мля =((( надо думать, что делать с маркерами, а то инъекции не выполняются.
Ковальски, варианты!
function (){
...
'*marker1*';
...
}=(
Какая-то
В консоли фаербага пишу:
>>> window.trololo=function(){/*bebe*/; alert(1); '*bebe2*'; };
function()
>>> window.trololo.toString();
"function () { alert(1); }"Наглость мля =((( надо думать, что делать с маркерами, а то инъекции не выполняются.
Ковальски, варианты!
- 0
- 20 апреля 2012, 15:22
- 1d10t
- Оставить комментарий
Рекомендация к использованию: Наследование шаблонов
19
На примере будущего jQuery-шаблона для ПриветСочи.ру решил выложить мини-инструкцию использования наследования шаблонов, сильно сокращающий количество часто повторяющегося Smarty-кода.
ZIP-архив с примером
Коротко о файлах в примере (ссылка на архив внизу):
- topic.prototype.tpl — прототип топика, содержащий всю повторяющуюся разметку. Использованы вложенные конструкции типа
{block name=...} - topic_link.tpl, topic_photoset.tpl, topic_question.tpl, topic_topic.tpl — файлы, наследующие и заменяющие/дописывающие некоторые блоки прототипа топика (topic.prototype.tpl)
- topic.social.tpl — включение с кодом кнопочек публикации в разные соц-сети.
Коротко о содержании файлов:
Посмотрев файлы примера, не сложно заметить, что файлы topic_*.tpl содержат:- в начале каждого файла наличиствует код
{extends file=topic.prototype.tpl} - минимум специфической разметки, обрамленной в конструкции
— это замены и дополнения блоков. Флаг может либо отсутствовать (что означает полную замену содержимого блока), либо принимать принимать значения:{block name=... флаг}
- append — дописывает в конец содержимое блока к наследуемому блоку.
- prepend — дописывает в начало содержимое блока к наследуемому блоку.
- hide — скрывает блок (насколько я понял, если добавить в блок прототипа, то по умолчанию блок будет скрыт).
- nocache — запрещает кеширование содержания блока (а это вообще актуально для LS?).
Документация
ZIP-архив с примером
- +7
- 08 апреля 2012, 14:55
- 1d10t
- Оставить комментарий
QipSmiles hotfix (docker47.free.fr browser warning)
6Замена смайл-пака maliste
smiley.s3.amazonaws.com/maliste.zipРаспаковать в qipsmiles/smiles/ с заменой файлов.
MySQL комманды для замены смайлов в уже сохраненном контенте
На 0:50 видно окошко, в котором надо вписать эти комманды:
update `prefix_topic_content` set `topic_text`=replace(`topic_text`,'http://moktoipas.com/smileys/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_topic_content` set `topic_text`=replace(`topic_text`,'http://docker47.free.fr/divers/smileys/basic/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_topic_content` set `topic_text`=replace(`topic_text`,'http://docker47.free.fr/divers/smileys/_MSN/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_topic_content` set `topic_text`=replace(`topic_text`,'http://docker47.free.fr/divers/smileys/_gg3d.com/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_topic_content` set `topic_text_short`=replace(`topic_text_short`,'http://moktoipas.com/smileys/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_topic_content` set `topic_text_short`=replace(`topic_text_short`,'http://docker47.free.fr/divers/smileys/basic/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_topic_content` set `topic_text_short`=replace(`topic_text_short`,'http://docker47.free.fr/divers/smileys/_MSN/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_topic_content` set `topic_text_short`=replace(`topic_text_short`,'http://docker47.free.fr/divers/smileys/_gg3d.com/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_comment` set `comment_text`=replace(`comment_text`,'http://moktoipas.com/smileys/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_comment` set `comment_text`=replace(`comment_text`,'http://docker47.free.fr/divers/smileys/basic/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_comment` set `comment_text`=replace(`comment_text`,'http://docker47.free.fr/divers/smileys/_MSN/','http://smiley.s3.amazonaws.com/maliste/');
update `prefix_comment` set `comment_text`=replace(`comment_text`,'http://docker47.free.fr/divers/smileys/_gg3d.com/','http://smiley.s3.amazonaws.com/maliste/');
После выполнения mysql-комманд не забудьте сбросить кеш объектов
Если что-то ну никак не получается, обращайтесь в аську (она в профиле написана).
Удаление UTF-8 BOM из консоли
5
linux (debian tested)
freebsd (7.2 tested)
найти файлы с BOM
sed почему-то иногда не отрабатывает, поэтому php, find, awk, xargs:
find путь/к/лайвстриту/ -type f \( -name '*.tpl' -o -name '*.php' \) -exec sed -i '1 s/^\xef\xbb\xbf//' {} \;freebsd (7.2 tested)
find ./ -type f \( -name '*.tpl' -o -name '*.php' \) -exec sed -i -e '1 s/^\xef\xbb\xbf//' {} \;найти файлы с BOM
find ./ -type f \( -name '*.tpl' -o -name '*.php' \) -print0 | xargs -0r awk '/^\xEF\xBB\xBF/ {print FILENAME}{nextfile}'sed почему-то иногда не отрабатывает, поэтому php, find, awk, xargs:
php -r "ob_start();
passthru('find ./ -type f \( -name \'*.tpl\' -o -name \'*.php\' \) -print0 | xargs -0r awk \'/^\xEF\xBB\xBF/ {print FILENAME}{nextfile}\'');
foreach(array_filter(explode(\"\n\",ob_get_clean())) as \$f){
echo \"remove BOM from \$f...\n\";
file_put_contents(\$f, substr(file_get_contents(\$f), 3));
};"
- +3
- 22 февраля 2012, 15:29
- 1d10t
- Оставить комментарий
Репозитории бесплатных расширений
29Что здесь?
Стихийный список открытых репо на github и google-code (и прочих), в которых можно принять участие (форкнуть, модифицировать).Оставляйте в комментах ссылки, а я буду добавлять их в топик.
Оглавление
Читать дальше
Есть мысль. (шаблоны, javascript)
Те части яваскриптов, что в шаблонах повторяются гарантированно, вынести в /engine/lib/internal/template/ с названиями
А в шаблонах переопределять лишь необходимые части. В том числе, возможно, и с помощью ls.hook.inject вносить всякие незначительные поправки.
Мне кажется, верстальщикам будет больше счастья от этого
+ поддержка шаблонов станет проще
- main.core.js
- comments.core.js
А в шаблонах переопределять лишь необходимые части. В том числе, возможно, и с помощью ls.hook.inject вносить всякие незначительные поправки.
Мне кажется, верстальщикам будет больше счастья от этого
+ поддержка шаблонов станет проще
Некоторые ньюансы совместимости будущей версии XText для ветки LiveStreet 0.5
- будет работать только на jquery-шаблонах
- jquery-шаблоны должны будут в полной мере поддерживать список js-хуков и маркеров, которые мне понадобятся (полный список еще не отработан)
- поддержки tinymce традиционно не предвидится
- «из коробки» редактор будет поддерживаться только markItUp
вышеперечисленные моменты — отправная точка, без которой ничего не выйдет.
upd 18.01.2012
Разослал покупателям мыло со ссылкой на дев-релиз.- я наверное победил глюки с делегированием и наследованием ;)
- карты теперь подгружаются асинхронно
- всё переписано на jquery
- требуются правки текущих версий шаблонов (см. мои коммиты с 20 декабря)
- в блоке «мои файлы» появилась вкладка «загрузить», список разрешенных расширений в основном конфиге (строки 45,46)
- иконочки почти все из tango (претти кул, мля)
- все кнопочки на панели собраны в дропдаун-менюшку
upd 19.01.2012
- откатан шаблон street-spirit на 2397.ru
- пофиксил пару мелких багов в js и отправил пулл-реквесты в на гитхаб
upd 20.01.2012
- наконец-то добавлен слой яндекс-карты
upd 21.01.2012
- откатан шаблон new-jquery на 4newpeople.com
- пофиксен баг в шаблоне тега toc (оглавления)
upd 23.01.2012
- мини-фикс совместимости с sitemap
- мои правки наконец-то склеены с основной веткой livestreet'а ;) а это значит, что 0.5.2 будет гарантированно поддерживать xtext
Угадайте, что это ? %)
1
сабжище сабжовое.
верстальщики просто обязаны угадать :)
- +3
- 21 декабря 2011, 10:32
- 1d10t
- github.com/1d10t/livestreet/co...
- 9
CSS-неймспейсы для Internet Explorer
6
Дабы не плодить кучи css-файлов для разных версий ишака, придумал такой скриптик:
Применять в css-файлах можно, например, так:
/**
* Adds css classes to body like ie, ie-6, ie-gte-5-5, ie-not-7, etc.
* depends on msie browser version
*
* @author Sergey S Yaglov
* @link http://livestreet.ru/profile/1d10t/
*/
jQuery(function(){
if(!jQuery.browser.msie){
return;
}
var versions = ['5.5',6,7,8,9,10];
var body = jQuery('body:eq(0)');
var bv = jQuery.browser.version;
var classes = ['ie'];
var signs = {
'==': '-',
'>=': '-gte-',
'>': '-gt-',
'<=': '-lte-',
'<': '-lt-',
'!=': '-not-'
};
jQuery.each(versions, function(i,v){
for(var sign in signs){
var css_sign = signs[sign];
eval('if(bv '+sign+' v){classes.push("ie"+css_sign+new String(v).replace(".","-"));};');
}
});
body.addClass(classes.join(' '));
});Применять в css-файлах можно, например, так:
.my-class { ... стиль для нормальных браузеров ... }
body.ie .my-class{ ... стиль для ненормальных браузеров :) ... }
body.ie-gte-7.ie-lte-8 .my-class{ ... стиль для ишаков от 7 до 8 версии включительно ... }
Генерим autocomplete для LiveStreet под Eclipse
4
1. ставим ls-yii из репозтария
2. делаем
3. запускаем генератор
4. чекаем на ошибки получившиеся файлы
5. вписываем в проект external source

6. дико тащимся и говорим спасибо
траблашутинг:
— вырубите авадимовскую админку, у нее дикий автолоадер
— в GencodedocCommand закомментируйте 2 ob_start()'а
— смотрите на трейсы
чтобы поцоны совсем расслабились, методы для чистого движка
yaglov.ru/uploader/upload/0lvmlcc-01k50hc-0d1730z/files/codedoc.zip
2. делаем
chmod +x plugins/yii/include/framework/lsyiic
mkdir codedoc && chmod 0777 codedoc3. запускаем генератор
plugins/yii/include/framework/lsyiic lsshell gencodedoc end4. чекаем на ошибки получившиеся файлы
5. вписываем в проект external source

6. дико тащимся и говорим спасибо
траблашутинг:
— вырубите авадимовскую админку, у нее дикий автолоадер
— в GencodedocCommand закомментируйте 2 ob_start()'а
— смотрите на трейсы
чтобы поцоны совсем расслабились, методы для чистого движка
yaglov.ru/uploader/upload/0lvmlcc-01k50hc-0d1730z/files/codedoc.zip