Опубликовано Декабрь 28th, 2009 SB
Нашел интересное и простое решение для предзагрузки изображений.
jQuery.preloadImages = function(){
for(var i = 0; i < arguments.length; i++){
jQuery("<img>").attr("src", arguments[i]);
}
}
Ипользовать так:
j(function(){
$.preloadImages('image1.png', 'image2.png', 'image3.png');
});
Tags: coding, Javascript
Опубликовано Декабрь 26th, 2009 SB
Наверное невозможно посчитать сколько существует плагинов для JQuery для создания выпадающих меню. Все это свидетельствует о том, что тема достаточно актуальна в веб разработке. В данном посте мы создадим простейшее меню, на примере которого можно понять как работаю более сложные варианты выпадающего меню.
Читать далее »
Tags: menu, coding, Javascript
Опубликовано Декабрь 26th, 2009 SB
Столкнулся с ошибкой при парсинге JOSN строки через eval: Invalid Label. Обычно код выглядит примерно так:
-
var jsonString = ‘{"val1": "some data", "val2": "some data"}’;
-
var myObj = eval(jsonString);
Проблема возникает из-за того, что eval переводит первый пункт строки JSON как JavaScript Label.
Решением будет добавлено скобок в начале и в конце строки.
-
var jsonString = ‘{"val1": "some data", "val2": "some data"}’;
-
var myObj = eval(‘(‘ + jsonString + ‘)’);
Tags: json, coding, Javascript
Опубликовано Декабрь 22nd, 2009 SB
Большинство языков программирования имеют функции для вставки строки в строку с указанной позиции. Но если посмотреть раздел String functions в PHP, то функции str_insert Вы не найдете.
В интеренете можно встретить массу подобных функций, со всяческими ухищрениями. Но есть гораздо более простой вариант из всех существующих:
-
$newstring = substr_replace($orig_string, $insert_string, $position, 0
);
Действительно просто?
Tags: coding, PHP
Опубликовано Ноябрь 21st, 2009 SB
Класс JHTML используется повсеместно в Joomla, но в тоже время он может показаться несколько загадочным классом, т.к. обычно мы видим странный вызов JHTML::_(), куда через параметр передаются какие то загадочные строки из которых потом получается не менее загадочный HTML. Читать далее »
Опубликовано Ноябрь 10th, 2009 SB
Недавно мне пришлось столкнуться с html кодом в полях CActiveRecord. Код наподобие <a href=»http://example.com» target=’_blank’>Test</a> преобразовывался в <a href=»http://example.com»>Test</a>, после недолгих копаний по скудной документации Yii вышел на Markdown parser. После экспериментов с его отключением из контроллера, пришлось сделать хак ядра:
В файле /framework/utils/CMarkdownParser.php сделать такие изменения:
-
public function safeTransform($content)
-
{
-
//$content=$this->transform($content);
-
//$purifier=new CHtmlPurifier;
-
//return $purifier->purify($content);
-
return $content;
-
}
Недостатки подхода хорошо описаны в комментарии к функции «uses CHtmlPurifier to purify the HTML content to avoid XSS attacks»
PS: продолжаются поиски «правильного» варианта решения проблемы.
Tags: coding, PHP, yii
Опубликовано Ноябрь 6th, 2009 SB
Когда то я наткнулся на замечательную статью Наиболее популярные велосипеды, подловил на мысли, что периодически страдаю велосипедостроением.
В XmlDocument.Load
можно задавать в качестве параметра не только локальные адреса, но и URL.
XmlDocument.Load(«http://server.com/xmldocument.xml»);
Но есть особенность при отлове ошибок – если URL будет неверным, но XmlDocument посчитает адрес за локальный файл и не сможет его открыть, соответственно нужно будет помимо Web Exceptions ловить и IO Exceptions. Читать далее »
Tags: .net, c#, coding
Опубликовано Ноябрь 6th, 2009 SB
Под Windows существует масса различных FTP клиентов на любой вкус. В одной из статей на хабре упомянулся клиент WinSCP – особых отличительных особенностей от того же тотал коммандера не имеется, НО Читать далее »
Tags: обзор, программа
Опубликовано Август 16th, 2009 SB
При разработке компонентов/модулей/шаблонов/плагинов/etc обязательно приходится сталкиваться с константами. Всего в Joomla насчитывается более 400 констант.
Каждый видел самую главную константу, которая есть во всех php файлах джумлы:
defined('_JEXEC') or die('Restricted access');
Она вставляется первой строчкой в файл и служит для того, чтобы проверить запущен ли файл из joomla. Ниже приведена таблица некоторых наиболее используемых констант
| DS |
Разделитель директорий (/) |
| JPATH_ADMINISTRATOR |
Путь к админке (/joomla/administrator) |
| JPATH_BASE |
Путь к вступлению каталог (/joomla) |
| JPATH_CACHE |
Путь к каталогу с кэшем (/joomla/cache) |
| JPATH_COMPONENT |
Путь к компоненту (/joomla/components/com_example) |
| JPATH_COMPONENT_ADMINISTRATOR |
Путь к административной части компонента (/joomla/administrator/components/com_example) |
| JPATH_COMPONENT_SITE |
Фронтенд компонента (/joomla/components/com_example) |
| JPATH_CONFIGURATION |
Путь к конфигу (/joomla) |
| JPATH_INSTALLATION |
Путь к инстальнику (/joomla/installation) |
| JPATH_LIBRARIES |
Путь к библиотекам (/joomla/libraries) |
| JPATH_PLUGINS |
Путь к плагинам (/joomla/plugins) |
| JPATH_ROOT |
Путь к фронтенду (/joomla) |
| JPATH_SITE |
Путь к сайту (http://joomla) |
| JPATH_THEMES |
Путь к шаблонам (/joomla/templates) |
Начинающие Joomla программисты очень часто используют данные константы для формирования адресов ссылок забывая, что константы содержат абсолютный путь, а не URL.
Чтобы получить адрес сайта необходимо использовать JURI::root()
Tags: coding, joomla
Опубликовано Май 3rd, 2009 SB
Многие уже наслышаны о новой технологии от Microsoft – XAML Browser Application, которая позволяет создавать .NET приложения работающие прямо в браузере. Эдакий Silverligth, только с поддержкой всех функций .NET Framework.
XBAP приложение является полностью клиентским, т.е. взаимодействие с сервером необязательно. Соотвественно можно разместить приложение на linux хостинге.
Для этого делаем обычный deploy в папку и загружаем её на сервер.
На сервере нужно создать в этой папке файл .htaccess с таким содержимым:
AddType «application/manifest» .manifest
AddType «application/x-ms-xbap» .xbap
AddType «application/octet-stream» .deploy
AddType «application/x-ms-application» .application
AddType «application/vnd.ms-xpsdocument» .xps
AddType «application/xaml+xml» .xaml
Теперь Mozilla будет корректно распознавать xbap файлы и загружать приложение.