Обновлён перевод. Добавлены строки для нового хелпера Number.
Все заметки с тегом «mystuff»
-
Русские языковые файлы для CodeIgniter 1.6.3
7 июля 2008
-
jQuery, определение браузера
7 июля 2008
Заметил, что jQuery.browser.version неверно определяет версию IE. Седьмой считается шестым.
Ошибка уже в трэкере, но ещё не поправлена:
http://dev.jquery.com/ticket/1867
http://dev.jquery.com/ticket/2661
http://dev.jquery.com/ticket/2413
user-agent, отдаваемый IE7 сменился с последними обновлениями на:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)
Соответственно регулярка совпала с MSIE 6.0.
Мораль: user-agent — штука ненадёжная. Лучше проверять наличие объектов, например:
//IE6 if (window.external && (typeof window.XMLHttpRequest == "undefined")) { //… }
-
Букмарклет, подгружающий внешний скрипт
2 июля 2008
В текущем проекте была задача написания полуавтоматического граббера страниц. Для этого необходимо было делать инъекцию скрипта в текущую страницу. Решил таким букмарклетом:
<a href="javascript:(function(){var d=document,s; s=d.createElement('script'); if(typeof s!='object')s=d.standardCreateElement('script'); s.src='http://example.com/js/bookmarklet.js'; s.type='text/javascript'; document.getElementsByTagName('head')[0].appendChild(s);})();">Do it!</a>
В более читаемом виде:
(function(){ var d = document, s; s = d.createElement('script'); if(typeof s != 'object'){ s = d.standardCreateElement('script'); } s.src = 'http://example.com/js/bookmarklet.js'; s.type = 'text/javascript'; document.getElementsByTagName('head')[0].appendChild(s); })();
Оттестировано в IE6, IE7, FF2, FF3, Opera 9.2, Opera 9.5, Safari.
-
PHP, многомерные массивы
3 июня 2008
Всё описанное ниже успешно опровергнуто в комментариях.
Всё, как и ожидается. В $new_arr будет копия $arr:
$arr = array( 'one' => 'val_one', 'two' => 'val_two' ); $new_arr = $arr;
А вот тут не всё так просто… вместо массива $subarr в $new_arr будет ссылка на него.
$subarr = array( 'one_one' => 'val_one_one' ); $arr = array( 'one' => $subarr ); $new_arr = $arr;
-
Подключение стиля только для Safari 3
27 мая 2008
Иногда, когда макет уже свёрстан, приходится вносить коррективы для некоторых отдельных браузеров. В случае IE очень помогают условные комментарии. В случае Safari обычно используются хаки.
Но выход есть.
<head> <link type="text/css" media="screen and (-webkit-min-device-pixel-ratio:0)" href="/css/safari.css"/> </head>
В итоге получаем чёткое побраузерное разделение кода и валидные HTML и CSS.
Опробовано на Windows-версии Safari 3.1. Если у кого есть под рукой мак — буду признателен за тестирование.
-
Drupal 5 Thickbox update
26 мая 2008
Обновление JS и CSS кода модуля Drupal 5 Thickbox до последней доступной на данный момент версии.
Исправляет баги IE6 с позиционированием бокса на длинных страницах.
Требует jQuery Update.
В основную ветку Drupal 5 включено не будет из-за требуемого jQuery Update.
-
Никогда не называйте картинки «banner»
24 мая 2008
Страшно популярный Firefox-овский Adblock Plus их благополучно порежет.
То же относится и ко всем именам, начинающимся с «banner» и многим-многим другим. Если что-то не загружается только в FF — проверяйте Adblock.
Кстати, с его русским листом паттернов вообще всё не очень хорошо: блочит google analytics намертво.
-
Несколько советов верстальщикам
22 мая 2008
Приму и я затеянную Никитой эстафету.
-
Русские языковые файлы для CodeIgniter 1.6.2
15 мая 2008
Основан на русском переводе для CodeIgniter 1.51, выполненном Шульга Алексеем. Том самом, который можно найти в русскоязычной группе Google.
Допереведны новые строки, сделаны некоторые правки в старых.
-
Прикручиваем xdebug к Denwer
13 мая 2008
Когда-то меня спрашивали, как прикрутить Xdebug к Денверу. Вот пошаговая инструкция:
Сливаем dll Xdebug тут: http://xdebug.org/download.php.
Копируем слитый файлик (в моём случае это php_xdebug-2.0.3-5.2.5.dll) в путь_к_denwer/usr/local/php5/ext/.
Прописываем в путь_к_denwer/usr/local/php5/php.ini:
[xdebug] zend_extension_ts=/usr/local/php5/ext/php_xdebug-2.0.3-5.2.5.dll
- Проверяем, что всё работает при помощи phpinfo(): должна появится секция xdebug и не должно быть предупреждений вроде
XDEBUG NOT LOADED AS ZEND EXTENSION
.
UPD: для PHP 5.3 необходимо заменить
zend_extension_ts
наzend_extension
.UPD2: на официальном сайте есть волшебная страничка, которая всегда подскажет, что с вашим xdebug не так.