• Авторизация


jQuery Serialize - PHP like serialize function for JavaScript 25-06-2009 13:12


Внимание! Эта версия устарела и содержит ошибки. Исправленная версия в моем блоге.


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

[показать]
комментарии: 2 понравилось! вверх^ к полной версии
Яндекс.Метрика - Демография - DailySnap 24-06-2009 19:51


Установил себе на сайт бета версию счетчика Яндекс.Метрика. Сегодня покопавшись, нашёл интересную страничку.
[300x240]
Кликабельно

Интересно, Как Яндекс определяет пол и возраст посетителей?

[показать]
комментарии: 0 понравилось! вверх^ к полной версии

Yii - создание своих типов Action-ов 29-05-2009 16:50


Пишу одно прлиожение на 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()
     {
       
     }
}




В конструкторе мы сначала вызываем parent::__construct с необходимыми параметрами. Это грубо-говоря идёт инициализация базового CAction.

Допустим у нас есть контроллер SettingsController. И нам нужно сделать его на основе нашего экшена. Создаем папку  protected/controllers/Settings/. В ней создаем файл ActionAdmin.php с таким вот кодом:
code:


class ActionAdmin extends dotPlantAdminAction

{

    public function run()

    {

    $this->controller->render('admin');    

    }

}




Видите? Нам достаточно только объявить run() и уже всё готово. При загрузке запустится необходимый нам конструктор базового контроллера с нашими действиями.

Вот по такому принципу я разграничиваю например админку в своей CMS dotPlant на Yii Framework. Слава PHP пятому!

[показать]
комментарии: 0 понравилось! вверх^ к полной версии
Как легально увеличить количество сайтов на хостинге 26-03-2009 13:42


Здравствуйте. Вот решил поделиться легальным способом обхода ограничений на количество сайтов на хостинге.


Всё что нужно - иметь хостинг хотя бы на один сайт и возможность создавать несколько(или даже неограниченное количество) алиасов для сайта.


Метод основывается на возможностях 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: А хостинг, кстати, хороший. Рекомендую!



[показать]
комментарии: 0 понравилось! вверх^ к полной версии
Тестирование ScribeFire 11-03-2009 12:13


Тестируем ScribeFire для FireFox 3.
[320x240]Слева должна быть картинка, которая у меня на десктопе стоит.

Картинка загружена по FTP на мой сервак. Картинка кликабельна!

:);-)


комментарии: 2 понравилось! вверх^ к полной версии
Странный звонок %-/ 11-03-2009 11:44


Только что мне позвонили на сотовый. Я беру, а там, на другом конце провода, идёт бурное обсуждение разницы между политиком-женщиной и политиком-мужчиной. Причем звонящему явно было не до меня. Ну нчего, я всё послушал.. пока не надоело) Потом послал смску с вопросом мол зачем мне звонили. Оказалось телефон незаблокирован был и меня набрал случайно :) Хех)) забавненько!

Technorati:

комментарии: 3 понравилось! вверх^ к полной версии
~ странное ~ 16-02-2009 17:40


Собирая осколки образа
Из жгучих воспоминаний
Серым рисую я твой лик
На белом листе моих ожиданий

Нам уже никогда не вернуть
То, что было когда-то с нами
Я сегодня решил свернуть
С дороги своих оправданий

Bethrezen @ 17:12 on 16 Feb 2009



PS: something special is coming...
комментарии: 12 понравилось! вверх^ к полной версии
TaLk2DoG: Re[4]: Прикосновение - Дневник DoRaN 16-02-2009 12:42


Если Вы когда-нибудь спросите меня, знал ли я эту девушку, я отвечу отрицательно. Однако спросив помню ли я, Вы получите положительный ответ.

TaLk2DoG


.:: Re[4]: Прикосновение - Дневник DoRaN






Уже вечер. DoG не появлялся с самого утра. Это на него не похоже. Скрывается? Вряд ли. Я оставил ему сообщение, но ответа не последовало. Может быть у него дела? Тем не менее, мне от этого не лучше. Он один знает, что произошло на самом деле. По крайней мере, мне так кажется. А может он ничего и не знает? Может никто ничего не знает? Тогда что же мне делать...
Я определенно схожу с ума. Проснулся от ощущения, что кто-то на меня смотрит, кто-то обо мне слишком громко думает и от этого мозг не выдерживая начинает гудеть как старый реактивный самолет.

Надо расслабиться. Надо отдохнуть. Час назад мне написал rasSOUL4egg. Я не помню кто это, но у меня такое ощущение, что эта персона мне знакома и очень хорошо меня знает. rasSOUL4egg предложил мне встретиться у магазина L***. Говорит, что он давно меня не видел и беспокоится за моё состояние.

Странно, почему он не позвонил мне? Почему всего лишь написал?

Ну ничего.. Пойду встречусь с ним, может эта встреча внесет хоть каплю ясности в моё сознание.


PS: А как я его узнаю? Надеюсь, он увидит меня первым.
комментарии: 6 понравилось! вверх^ к полной версии
Moscow 10-02-2009 20:16


Вот совсем скоро уезжаю в Москву.. Эхх...

[показать]
комментарии: 7 понравилось! вверх^ к полной версии
Overdrive 19-01-2009 16:23


Ничто так не помогает отдохнуть от работы, как гитара с овердрайвом (rock)

[показать]

Сообщение добавлено через MovableType API

комментарии: 8 понравилось! вверх^ к полной версии
Маленькая мысль о судьбе перерастает в ... 16-01-2009 17:38


Судьба... это понятие требует существенного рефакторинга в сознании социума [x18]

[показать]

Сообщение добавлено через MovableType API

комментарии: 5 понравилось! вверх^ к полной версии
Они следят за нами 16-01-2009 17:08


И всё то про нас уже давно знают. Вот про меня тут. Про GohDan тут, а про Гительмана вообще много чего известно.
Так что никуда мы не скроемся.

[показать]

Сообщение добавлено через MovableType API

комментарии: 9 понравилось! вверх^ к полной версии
Save - Копилка Грехов (2009) - скачать mp3 16-01-2009 11:20


Наконец то вышел новый долгожданный альбом Save - Копилка Грехов 2009. Появившиеся песни из EP  мне очень понравились. Надеюсь и Вам тоже придется по вкусу.

[350x350]
Исполнитель: Save
Альбом: Копилка грехов
Год выхода: 2009
Жанр: Nu metal
Время: 54:07
Качество: 256 kbps
Размер: 94 мб

01. Сорви повязку с глаз
02. Ложь прошла сквозь стену
03. Без слов
04. Изверг
05. Линии в разных мирах
06. Ловец снов
07. Ты для меня
08. 10 на прощанье
09. Под руку с мечтой
10. Смерть или Бог
11. 215





Скачать альбом в mp3 с rapidshare


[показать] UPD: Скачать с torrents.ru
комментарии: 2 понравилось! вверх^ к полной версии
Приветствуем grizzzlly 15-01-2009 13:50


Мой друг Пушистыч добрался до лиру. Приветствуем Grizzzlly

Настроение сейчас - Работать.... работать!!!
комментарии: 3 понравилось! вверх^ к полной версии
Чувствуется... 14-01-2009 08:51


"mellophrenia чувствует все и сразу. Как неразделенная любовь, как незаканчивающаяся месть" (c)


Как же хорошо сказала... Ведь действительно такое ощущение частенько появляется.. само по себе.. Что... Зачем.. Почему...

[показать]

Сообщение добавлено через MovableType API

комментарии: 2 понравилось! вверх^ к полной версии
О блогах и сайтах 11-01-2009 09:59



С BestPersons.

ozhigin, 10.01.2009 в 21:58 #

О 2 МЕСТО) МОЛОДЕЦ








bethrezen, 11.01.2009 в 00:16 #

иногда я бываю и первым)) хотя мне как то пофиг, если честно










ozhigin, 11.01.2009 в 09:33 #

когда первый ещё бы)))










bethrezen, 11.01.2009 в 09:54 #

это прибавляет лишь несколько читателей на BP, но только 1% из них превращается в реальных читателей. да и пишу я откровенное гавно, понятное или линуксоидам или шизоидам.






Да, у меня бывает плохое настроение. Но вот я начал работу ещё над сайтом Yii Framework - Russia.


[показать]

Сообщение добавлено через MovableType API

комментарии: 4 понравилось! вверх^ к полной версии
Про женщин 08-01-2009 13:52

Это цитата сообщения Даша-милаша Оригинальное сообщение

-4701-



Женщины делятся на хороших и идеальных. Хорошая должна иметь большую Ж, маленькую П и уметь держать в руках Х, где Ж - жилплощадь, П - потребность, а Х - хозяйство... А то, что вы подумали - это уже идеальная женщина. (с)
комментарии: 4 понравилось! вверх^ к полной версии