 |
|
 |
Pais porrada de Bethrezen


Bethrezen
Bethrezen
C Днем рождения!
Администрация Блогов@Mail.Ru от всей души поздравляет Thomas Angelo с днем рождения.
Вы можете присоединиться к нам, отправив открытку или оставив свои поздравления в комментариях к этой записи.
Bethrezen
Bethrezen
Последние сайты
настроение: Творческое
Bethrezen
Bethrezen
jQuery Serialize - PHP like serialize function for JavaScript
ENG: I've addapted a JavaScript serialize function by Kevin van Zonneveld to jQuery. Function works like the same named function in PHP. Be free to use it in your projects. It is especially needed when you want to post Object in AJAX (in jQuery "$.ajax()"). RUS: Я адаптировал JavaScript serialize функцию, написанную Kevin van Zonneveld, для использования с jQuery. Serialize работает также как и одноименная функция в PHP. Она хорошо выручит Вас, если Вы захотите передать в AJAX запросе Объект (JavaScript object).
Example of using: $.serialize({data: 'value'});
Source code:
jQuery.extend({ serialize: function( mixed_value ) { // http://kevin.vanzonneveld.net // + original by: Arpad Ray (mailto:arpad@php.net) // + improved by: Dino // + bugfixed by: Andrej Pavlovic // + bugfixed by: Garagoth // + input by: DtTvB (http://dt.in.th/2008-09-16.string-length-in-bytes.html) // + bugfixed by: Russell Walker // % note: We feel the main purpose of this function should be to ease the transport of data between php & js // % note: Aiming for PHP-compatibility, we have to translate objects to arrays // * example 1: serialize(['Kevin', 'van', 'Zonneveld']); // * returns 1: 'a:3:{i:0;s:5:"Kevin";i:1;s:3:"van";i:2;s:9:"Zonneveld";}' // * example 2: serialize({firstName: 'Kevin', midName: 'van', surName: 'Zonneveld'}); // * returns 2: 'a:3:{s:9:"firstName";s:5:"Kevin";s:7:"midName";s:3:"van";s:7:"surName";s:9:"Zonneveld";}'
var _getType = function( inp ) { var type = typeof inp, match; var key; if (type == 'object' && !inp) { return 'null'; } if (type == "object") { if (!inp.constructor) { return 'object'; } var cons = inp.constructor.toString(); match = cons.match(/(\w+)\(/); if (match) { cons = match[1].toLowerCase(); } var types = ["boolean", "number", "string", "array"]; for (key in types) { if (cons == types[key]) { type = types[key]; break; } } } return type; }; var type = _getType(mixed_value); var val, ktype = '';
switch (type) { case "function": val = ""; break; case "undefined": val = "N"; break; case "boolean": val = "b:" + (mixed_value ? "1" : "0"); break; case "number": val = (Math.round(mixed_value) == mixed_value ? "i" : "d") + ":" + mixed_value; break; case "string": val = "s:" + encodeURIComponent(mixed_value).replace(/%../g, 'x').length + ":\"" + mixed_value + "\""; break; case "array": case "object": val = "a"; /* if (type == "object") { var objname = mixed_value.constructor.toString().match(/(\w+)\(\)/); if (objname == undefined) { return; } objname[1] = serialize(objname[1]); val = "O" + objname[1].substring(1, objname[1].length - 1); } */ var count = 0; var vals = ""; var okey; var key; for (key in mixed_value) { ktype = _getType(mixed_value[key]); if (ktype == "function") { continue; }
okey = (key.match(/^[0-9]+$/) ? parseInt(key, 10) : key); vals += $.serialize(okey) + $.serialize(mixed_value[key]); count++; } val += ":" + count + ":{" + vals + "}"; break; } if (type != "object" && type != "array") { val += ";"; } return val; } });
NJoy

Метки: jQuery, javascript, PHP, serialize
Bethrezen
Bethrezen
Yii - создание своих типов Action-ов
Пишу одно прлиожение на Yii Framework. Структура приложения такова, что необходимо разграничить экшены контроллеров(CController) по папкам и сделать их типовыми. Экшены разграничиваются легко. Предположим, что у нас есть ряд экшенов для администрирования. Всем им надо установить какие-либо свойства или же сделать при их вызове какие-то типовые действия. Рассмотрим на примере изменения титла страницы. Вот код моего базового экшена: [code] class dotPlantAdminAction extends CAction { /** * Constructor. * Runs CAction constructor and makes some changes for Admin action type */ public function __construct($controller,$id) { parent::__construct($controller,$id); $this->controller->pageTitle = dotPlant::getName() . " - Admin "; } public function run() { } } [/code]
В конструкторе мы сначала вызываем parent::__construct с необходимыми параметрами. Это грубо-говоря идёт инициализация базового CAction.
Допустим у нас есть контроллер SettingsController. И нам нужно сделать его на основе нашего экшена. Создаем папку protected/controllers/Settings/. В ней создаем файл ActionAdmin.php с таким вот кодом: [code]
class ActionAdmin extends dotPlantAdminAction { public function run() { $this->controller->render('admin'); } } [/code] Видите? Нам достаточно только объявить run() и уже всё готово. При загрузке запустится необходимый нам конструктор базового контроллера с нашими действиями. Вот по такому принципу я разграничиваю например админку в своей CMS dotPlant на Yii Framework. Слава PHP пятому!
Метки: yii, PHP, CAction, CController
Bethrezen
Bethrezen
Как легально увеличить количество сайтов на хостинге
Здравствуйте. Вот решил поделиться легальным способом обхода ограничений на количество сайтов на хостинге. Всё что нужно - иметь хостинг хотя бы на один сайт и возможность создавать несколько(или даже неограниченное количество) алиасов для сайта. Метод основывается на возможностях mod_rewrite Apache. Вот пример .htaccess файла: RewriteEngine on
# Главный узел RewriteCond %{HTTP_HOST} ^mysite\.ru$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d
# Допустим тут всё перенаправляется на index.php RewriteRule . index.php
RewriteCond %{HTTP_HOST} ^example\.ru$ RewriteCond %{REQUEST_URI} !^/example\.ru/ RewriteRule (.*) /example\.ru/$1
Таким образом, в главной папке нашего сайта лежит содержимое mysite.ru. В этой же папке есть папка example.ru, в которой находится содержимое второго сайта. Такой метод прошёл на Хостинге "ТаймВэб". К примеру, там можно взять минимальный хостинг на 2 сайта стоимостью всего 120 руб./мес., объемом дискового пространства 1000 Мб и радоваться жизни! PS: А хостинг, кстати, хороший. Рекомендую!
Метки: хостинг, tricks
Bethrezen
Bethrezen
DailySnap: DropDown jQuery Navigation Menu

Выпадающее меню навигации v0.1. Простенькое выпадающее меню на jQuery. Использует модуль категорий для динамической генерации HTML разметки на UL-ах. Реализовано как CWidget. Использовалось: jQuery, CSS, The Gimp для фона и картинок, Yii Framework
Метки: dailysnap, dropdown, jQuery, menu, navigation, yii framework, work
Bethrezen
Bethrezen
Счастье - это просто :)
Я заметил за собой особеность.Когда я пишу код, я смотрю работает отдельный блок или нет, потом дописываю. И вот когда я уже вроде бы всё дописал и оно должно работать, я ставлю на просмотр, а сам ухожу курить. Прихожу, все работает и я счастлив O:-)
Метки: Счастье, код, работа
Bethrezen
Bethrezen
Возможно последний пост в уходящем году
Вот сегодня проснулся утром, захожу на BestPersons.ru, а там меня ждала приятная новость: 
Мне, конечно, откровенно пофиг на второе место... Ничего особенного оно мне не даёт. Но всё таки - приятно.
Тут вот многие подводят итоге уходящего года... Но кому мои какие-то достижения или обиды будут интересны?
Так что я просто ПОЗДРАВЛЯЮ ВСЕХ С НАСТУПАЮЩЕМ НОВЫМ ГОДОМ.И пусть у тебя, мой уважаемый читатель, будет всё ништяково, но без неблагоприятных последствий.
Метки: Comics, newyear, bestpersons
Bethrezen
Bethrezen
Yahoo! Новая работа
А меня приняли в Demis Group! Yahoo! Буду вJ0bывать веб-программистом :)
Метки: работа, demis, web
Bethrezen
Bethrezen
Domolink - suxx
Надо же, я в этом месяце привысил лимит в 20 Gb и мне урезали скорость в 4 раза. Раньше сколько не привышал - не урезали... суки =(
Метки: интернет
Bethrezen
Bethrezen
Обезьянка
На Last.fm в почтовых уведомлениях меня порадовала подпись: "Всего наилучшего, Почтовая обезьянка Last.fm"
Метки: lastfm
Bethrezen
Bethrezen
Новый BestPersons
Вчера вечером так и не дождался обновления BestPersons, зато сегодня утром увидел его во всей красе. Интерфейс заметно улучшился и выполнен в лучших традициях Web 2.0. Появилась так давно требуемая мною функция группировки одинаковых сообщений в ленте, что исключает повторы. Появился ещё один рейтинг в топе. И теперь о плохом.... плохом? ну да. Моя аватарка куда то пропала после обновления и её пришлось закачивать заново. Но разве это так ужасно? Ах да, сейчас этот текст был написан в новом редакторе, что основан на TinyMCE. Тоже полезная вещь, правда катов и юзер-тегов нет :( А ещё, есть функция черновиков.. Только я не понимаю пока что как она реализована.
Метки: bestpersons, ads, Review
Bethrezen
Bethrezen
Немного рекламы
Вот решил пропиарить любимый сервис:

Наконец то, долгожданное обновление. Может быть теперь надпись "beta" не будет висеть над логотипом? :)
Метки: bestpersons, ads
Bethrezen
Bethrezen
Одминский вечер
Вчера к нам в гости приходили два брата близнеца почти одинаковы с лица - Кир и Артем. Принесли свои ноутбуки. Ставил я им туда Windows XP, ну и по просьбе почти трудящихся поставил им в догонку Ubuntu 8.04. Почему то в Ubuntu, который я себе ни разу не ставил, не определился WiFi.. ну да и фиг с ним. Зато пиво попили от души))) Под конец мы с Настей заснули... Когда я проснулся, то подтянувшиеся ранее Генка и Сашка сами ушли О_о
Метки: Вечер
Bethrezen
Bethrezen
C Днем рождения!
Администрация Блогов@Mail.Ru от всей души поздравляет Bethrezen с днем рождения.
Вы можете присоединиться к нам, отправив открытку или оставив свои поздравления в комментариях к этой записи.
Bethrezen
Bethrezen
С днем рождения меня!
Бзднём рождения меня любимого)) гыгы
Метки: bethrezen

|
 |