вторник, 13 января 2009 г.

Загрузить файл PHP в строку

Небольшой пример, как загрузить PHP файл в переменную. Думаю, пригодится для AJAX рендеринга в духе Ruby on Rails.
page.replace_html "element_id", :partial => "file.rhtml"

В примере используются Output Control Functions с командой include().
<?php
$string = get_include_contents('somefile.php');

function get_include_contents($filename) {
if (is_file($filename)) {
ob_start();
include $filename;
$contents = ob_get_contents();
ob_end_clean();
return $contents;
}
return false;
}

?>

  • ob_start() -- Включает буферизацию вывода
  • ob_get_contents() -- Возвращает содержимое буфера вывода
  • ob_end_clean() -- Освобождает (очищает) буфер вывода и выключает буферизацию

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

пятница, 9 января 2009 г.

ColorPicker - инструмент для выбора цвета

ColorPickerЭтот JavaScript-компонент предоставляет простой и удобный инструмент для выбора HSV цвета.

Как добавить ColorPicker


  1. включите файлы javascript в секции HEAD
  2. добавьте ссылку на файл стилей colorpicker.css в секции HEAD
  3. добавьте поле input для хранения/отправки 16-ричного значения цвета (без ведущего #)
  4. инициализируйте ColorPicker

<script type="text/javascript">
new Control.ColorPicker("colorFieldName");
</script>

Внимание: Не вызывайте "new Control.ColorPicker()" пока не закроете все окружающие форму (form) блочные элементы (напр. div). В противном случае это вызовет ошибку IE Operation Aborted в IE 6/7. Вместо этого используйте:
Event.observe(window, "load", function() { 
new Control.ColorPicker("colorfield4", { "swatch" : "colorbox4" })
});

Этот способ в «чистом» виде непригоден для AJAX-методов, поэтому рекомендую вынести его в отдельную функцию, которую вызывать каждый раз, когда аяксовый метод отработал.

яваскрипт (javascript)


<script type="text/javascript">
//<![CDATA[
function activateColorPicker(){
cp_Label = new Control.ColorPicker("label_color", { "swatch" : "inside_color1" });
}
// first time Run (for IE)
Event.observe(window, "load", function() {
activateColorPicker();
});
//]]>
</script>

ajax_delete_label.rjs : Пример вызова функции для Ruby on Rails.


page.replace_html 'labels_container', :partial => 'custom_labels'
page.call 'activateColorPicker'

Скачать ColorPicker можно с его страницы в Google Code: colorpickerjs.
Читать дальше »

понедельник, 8 декабря 2008 г.

AJAX-индикаторы бесплатно и быстро

При разработке AJAX-приложений порой не лишне дать пользователю знать, что выполняется ajax-запрос, а не просто «оно чего-то затупило...». Для этого часто используется анимированное изображение GIF, так называемый “ajax-loader”. Появление такого индикатора оказывает на душевное состояние пользователя прямо-таки благотворное воздействие. Он видит – что-то происходит, его запрос выполняется, его здесь любят и ценят :). К показателю «дружественности» интерфейса +1.

Ajaxload
Читать дальше »