09 Янв 2009 admin | Отзывов: 2 | Рубрика JSON, Javascript
Перевод статьи с YUI Blog.
==
JSON - это формат обмена данными. Поскольку он хранит только данные, то является нейтральным в плане безопасности . Безопасность систем, использующих JSON, определяется качеством реализации этих систем. Сам JSON не содержит уязвимостей.
Веб-браузер представляет собой особую среду для приложений. Развитие модели безопасности браузера связано со множеством предсказуемых и весьма неприятных ошибок. Большинство дыр в безопасности браузеров было устранено, но в некоторых случаях использованные решения становятся причиной неудобств, а поиск путей обхода этих неудобств, в свою очередь, приводит к появлению новых ошибок.
Теги: Javascript, JSON, security, безопасность
27 Дек 2008 admin | 1 отзыв | Рубрика CakePHP
Все радуемся рождественскому (и новогоднему) подарку от разработчиков чудо-фреймворка.
Постоянная ссылка на сообщение (10 words, примерное время чтения - 2 сек)
23 Дек 2008 admin | 1 отзыв | Рубрика Javascript, jQuery
Как сообщает Ajaxian, в новой версии есть довольно существенные изменения:
- Интегрирован Sizzle
- Убрана проверка версии браузера: например, вместо if ( jQuery.browser.msie && !jQuery.isXMLDoc(this) ) { будет if ( !jQuery.support.noCloneEvent && !jQuery.isXMLDoc(this) ) {
- “Живое” делегирование событий: в том смысле, что если вы добавляете элементы, то на них также будут распространяться делегированные ранее события, если использовать конструкции такого рода: $(”#foo > div”).live(”click”, someFn);
$(this).closest(”div”);: возвращает ближайшего предка для указанного селектора
Переписаны некоторые функции:
- .offset() теперь работает намного быстрее.
- .hide()/.show() стали быстре на 50% - 200%
- .append/prepend/before/after - в 10-15 раз быстрее
Теги: beta, Javascript, jQuery
23 Дек 2008 admin | Отзывов: 3 | Рубрика CakePHP, Переводы
…О чем сообщает Nate Abele в статье на Bakery
Я сам еще новую версию не посмотрел, но вот что пишет cakebaker по поводу перехода с версии RC3:
При обновлении с RC3 до RC4 особых проблем не было. Помимо замены папки “cake” также пришлось заменить “app/webroot/css.php”, так как этот файл изменился по сравнению с RC3.
В ядре кейка также произошли определенные изменения, которые могут (в редких случаях) стать причиной проблем:
- Метод ClassRegistry::_duplicate() теперь приватный (т.е. стал ClassRegistry::__duplicate())
- То же самое с Router::matchRoute() (стал Router::__matchRoute())
- параметр XmlNode::toArray() (в cake/libs/xml.php) изменился с “$object = null” на “$camelize = true”
Теги: CakePHP, rc4, release
19 Дек 2008 admin | Ваш отзыв | Рубрика PHP, wordpress
Для одного блога нужно было сделать вставку особым образом сформированных постов php-скриптом. Весьма кстати здесь оказывается то, что WordPress написан с умом, и напрямую в базу данных для решения этой задачи лезть не надо. А все, что нужно, это:
// подключить файл, "загружающий" WordPress
include($pathToWordpress.'/'.'wp-blog-header.php');
// указать параметры
// статус поста - "опубликован"
$post_array = array('post_status' => 'publish',
// автор - админ (пользователь с id = 1)
'post_author' => 1,
// заголовок поста
'post_title' => $my_title,
// текст поста
'post_content' => $text,
// название поста
'post_name' => $pub_title,
// теги
'tags_input' => 'тег1, тег2, тег3',
// категории
'post_category' => array(3, 4)
);
// добавление записи в блог
wp_insert_post($post_array);
Постоянная ссылка на сообщение (114 words, примерное время чтения - 27 сек)
Теги: PHP, wordpress
15 Дек 2008 admin | 1 отзыв | Рубрика CakePHP, Переводы
Феликс (debuggable.com) написал короткий, но интересный пост о том, как можно создать динамическую домашнюю страницу для сайта на CakePHP.
Понятно, что для статических страниц сгодится стандартная функциональность PagesController, но если нужна динамика, то можно сделать так:
class PagesController extends AppController {
public function view() {
// Your normal pages
}
public function homepage() {
$posts = ClassRegistry::init('Post')->find('all');
$this->set(compact('posts'));
}
}
–
[Да, давно пора отказаться от дедовских методов типа requestAction :)]
Постоянная ссылка на сообщение (92 words, примерное время чтения - 22 сек)
13 Дек 2008 admin | Ваш отзыв | Рубрика CakePHP, Статьи
Представим себе следующую ситуацию. После регистрации на сайте у пользователя есть возможность в настройках профиля поставить галочку “Хочу получать по e-mail новости проекта”, а у владельца сайта должна быть возможность эти новости всем подписавшимся пользователям рассылать при их появлении.
В CakePHP есть EmailComponent для отправки сообщений электронной почты, но, к сожалению, для рассылки этот компонент не подойдет. Если в базе будет много пользователей, то отправка им сообщений в цикле скорее всего приведет к таймауту скрипта.
Чтобы не писать свое решение с очередями сообщений, обходом тайм-лимита и всем прочим, решил посмотреть, что есть уже готового.
Теги: CakePHP, email, phplist, Статьи
11 Дек 2008 admin | Ваш отзыв | Рубрика CakePHP, PHP, Переводы
Оригинал
==
Данная статья не описывает основы интернационализации и локализации в cakePHP - для ознакомления с ними лучше заглянуть в мануал.
Сначала опишем требования, чтобы лучше понимать, зачем и почему что и как сделано в данной статье:
- Приложение должно поддерживать два языка или более (в нашем случае - английский и русский)
- Язык по умолчанию - английский
- Переключение языка производится с помощью параметра в URL
- Формат URL должен быть таким: example.com/eng/controller/action
- Выбранный язык должен сохраняться в сессии и куках
Это отрывок сообщения
CakePHP: переключение языка приложения при помощи URL (i18n & l10n)
.
Прочитать сообщение полностью (842 words, примерное время чтения - 3:22 мин) Теги: CakePHP, i18n, l10n, router
09 Дек 2008 admin | 1 отзыв | Рубрика PHP
Недавно для одного сайта нужно было сделать возможность скачивания нескольких файлов в виде zip-архива. Сайт - на хостинге, где нет возможности подключить/использовать ZipArchive. Есть поддержка zlib, но gz-архивы в Windows без дополнительных средств не открываются, а надо.
Вспомнил, что phpMyAdmin (который на хостинге установлен) умеет экспортировать данные в архивах различных форматов, в том числе и zip. При этом ZipArchive не используется. В PMA используется расположенный в папке /libraries/ файл zip.lib.php, в котором описан класс zipfile. У класса есть два метода: addFile() добавляет файл в архив, file() возвращает содержимое архива. Для работы класса нужна поддержка zlib, так как используется функция gzcompress().
Теги: PHP, zip, zlib
06 Дек 2008 admin | Ваш отзыв | Рубрика CakePHP, Баги
…Если у вас в приложении есть база данных, а в ней таблица с названием вида “названиебазы_list”, то при генерации кеша схем (describe-ы, которые видно в логе в режиме отладки) кеш для данной таблицы будет заменен кешем, содержащим описание структуры базы данных. Это связано с тем, что в кеше с ключом cake_model_ИсточникДанных_Базаданных_list кейк хранит именно структуру БД. Я с этим столкнулся в процессе интеграции PHPList и CakePHP (возможно, об этом будет статья позже): по умолчанию для рассылок была создана база phplist, содержащая таблицу phplist_list.
Постоянная ссылка на сообщение (84 words, примерное время чтения - 20 сек)
Теги: CakePHP, Баги