Дуэли
         Помощь
добавить запись мои записи мои метки new мои дуэли избранное обо мне настройки оформление  
читать всех друзей редактировать друзей редактировать группы дни рождения настройка подписки  
создать сообщество мои сообщества каталог сообществ  
комментируемые активные популярные читаемые звездные блогиЗвездные блоги на Mail.Ru популярные записи последние записи опросы  
мои дуэли победы поражения прямой эфир двустволка new в десятку! new  
  Блог
  Инфо
  Друзья
  Мой Мир
  Фото
  Видео
  Подписаться на обновления

Pais porrada de Bethrezen

Метки  

Записи с меткой: PHP

25-06-2009 13:12 (cсылка)  
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

29-05-2009 16:49 (cсылка)  
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

  Комментариев: 2    

22-10-2008 01:22 (cсылка)  
Bethrezen
Bethrezen

Бажная жизнь

Вот узнал сегодня, что RJ TextEdit отказывается работать через FTP с одним моим сервером на FreeBSD 6. Что-то не то с листингом директорий. Обидно очень, пришлось перелезть обратно на PHP Expert Editor 4.3.

А ещё я в данный момент подумываю, чтобы не писать прогу для Plurk на Qt, а писать её сразу в Java, чтобы потом часть кода можно было в j2me отправить без изменений... Наверное это глупая идея. Всё таки Qt работает быстрее. Да и C++ я знаю лучше чем Java.

Но это всё мысли. А тем временем мне надо продолжать работать.

OMFG! jQuery is still unstable. Damn! I was made to add some source into it.....

PS: Как хорошо, что я запасся ягуаром...


Метки: работа, PHP, Review

02-10-2008 10:33 (cсылка)  
Bethrezen
Bethrezen

Свадьба О_о

Вчера у меня весь день болели почки.. Пытался вечером долго заснуть.. Уже начало получаться и тут... Бац.. Звонок от Коляна. Моего бывшего одноклассника и хорошего друга. Он женится. Вот так вот, ребята. Кто бы мог подумать, что он раньше всех нас в загс побежит :)
Состояние легкого шока у меня сохраняется до сих пор.

А вообще, у меня куча работы, которая на удивление не стоит на месте. Возможно, что в начале следующей недели выпущу новый маленький Open-Source проектик на PHP5 с использованием Zend Framework.

Дорогие френды и ПЧ, кому я обещал фотки. К концу недели они будут. Сейчас действительно много работы, да и фоток вы мне покидали достаточно много:)


Метки: good news, FrIeNdS, opensource, PHP, work

25-07-2008 10:05 (cсылка)  
Bethrezen
Bethrezen

Начинаю open-source проект Music Plant

Начинаю новый open-source project Music Plant. Хостинг проекта осуществляется великим SourceForge и лежит собственно он тут: https://sourceforge.net/projects/musicplant/

Краткое описание проекта:
Music plant is a PHP application for sharing your music library with
others. Supports Amarok media database import (MySQL, others are in
todo list) and standalone indexing of your local folders.
Registered users can upload music at site.
Other features:
- play streamed mp3,ogg
- download album in zip or tar archive
- full-text search
- lyrics import
- album import
- rss feed of recently added music

- caching

- themes

- multi-language

Собственно одному тут не справится, поэтому я произвожу набор всех желающих. Посмотреть доступные места в проекте можно тут: https://sourceforge.net/people/?group_id=234555 . Несмотря на те вакансии, которые там есть, я приглашаю всех желающих принять участие в проекте. Если заинтересованы - свяжитесь со мной любым доступным способом(желательно по ICQ или b37hr3z3nСОБАКАgmailТОЧКАcom).


Метки: open-source, music-plant, PHP, sourceforge, opensource, projects