uploadify + zend + session

Метки: | | / Дата: 15.06.2011 12:42 / Обсудить (0)
]]>
]]>ешение проблемы с сессией при загрузке файлов с uploadify.

В параметрах uploadify:
"scriptData": {"PHPSESSID": "'.Zend_Session::getId().'"},


В preDispatch плагина фронтконтроллера (можно специального):
$phpSessId = $request->getParam('PHPSESSID');
if (!empty($phpSessId) && Zend_Session::getId() != $phpSessId) {
    if(Zend_Session::isStarted()) {
        Zend_Session::destroy();
    }
    Zend_Session::setId($phpSessId);
    Zend_Session::start();
}
]]>
]]>В последнее время меня заинтересовала P2P валюта Bitcoin. Я и раньше про нее слышал, но интерес возник после волны публикаций на хабре.

Оказалось, что для биткойна уже есть несколько агрегаторов платежей. На основе одного из них (mybitcoin.com) я набросал сервис для оплаты за телефоны за BTC. В принципе можно прикрутить оплату чего угодно (то, что можно полатить за электронную наличность), но ограничусь пока телефонами.

Сейчас обработка проходит вручную - после оплаты на сайте мне приходи письмо и смска с информацией об оплате, после чего я вручную плачу. При интересе к сервису прикручу автооплату.

Комиссия сервиса пока 15%, дальше посмотрим. Курс от mtgox.com*официальный курс доллара.

Ссылки по теме:
Что такое Bitcoin
Как работает Bitcoin
Как добыть Bitcoin

Обновил QTreeGridView

Рубрика: Дневник / Метки: / Дата: 29.04.2011 17:55 / Обсудить (0)
]]>
]]>Приняли мой issue для yiiext, обновил расширение QTreeGridView.
]]>
]]>CQTreeGridView - расширение для стандартного CGridView, для работы с моделями, расширенными YiiExt Nested set behaviour. Для визуального отображения используется плагин для jQuery treeTable, для перетаскивания - jQuery ui.



Работа по перемещению веток с помощью drag-and-drop. Потомка сделать корнем можно.

В расширении уже есть типовые actions, которые можно подключить. Или взять за основу для своих.

Внутри архива уже есть нужные jQuery ui и jQuery treeTable. jQuery treeTable немного изменен.

Использование:
- Сгенерировать модель, crud. Избавиться от упоминаний id, leftkey, rightkey И level в модели и формах.
- Cкачать YiiExt Nested set behaviour, следуя инструкциям расширить модель. Если Выбрали режим с одним корнем - вставить вручную запись с id=1, level=1, leftKey=1, rightKey=2. В модели сделать публичное свойство parentId.
- Добавить в метод search сортировку по полю root (если есть) и leftkey. Если все делали по инструкции, то этой строчкой:
        $criteria->order = $this->tree->hasManyRoots
                           ?$this->tree->rootAttribute . ', ' . $this->tree->leftAttribute
                           :$this->tree->leftAttribute;

- Скачать CQTreeGridView, положить в extensions.
- Во вью admin вместо виджета zii.widgets.grid.CGridView использовать ext.QTreeGridView.CQTreeGridView , добавить опцию 'ajaxUpdate' => false.
- добавить в контроллер:
    public $CQtreeGreedView  = array (
        'modelClassName' => 'Page2', //название класса
        'adminAction' => 'admin' //action, где выводится QTreeGridView. Сюда будет идти редирект с других действий.
    );

- добавить типовые действия в контроллер:
    public function actions() {
        return array (
            'create'=>'ext.QTreeGridView.actions.Create',
            'update'=>'ext.QTreeGridView.actions.Update',
            'delete'=>'ext.QTreeGridView.actions.Delete',
            'moveNode'=>'ext.QTreeGridView.actions.MoveNode',
            'makeRoot'=>'ext.QTreeGridView.actions.MakeRoot',
        );
    }


Скачать расширение 77
]]>
]]>Прежде всего шпаргалка для себя в будущем:)

Установить нужные вещи для компиляции:
yum install autoconf automake libtool php-devel


Скачать нужное расширений, разархивировать^
phpize
./configure
make
make install

Настройки для php.ini для некоторых расширений:

eAccelerator:
extension=eaccelerator.so
eaccelerator.shm_size="100"
eaccelerator.allowed_admin_path = "/var/www/control.php"
eaccelerator.cache_dir="/var/cache/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="1"
eaccelerator.compress="0"
eaccelerator.compress_level="0"


xDebug:
[debug]
; Remote settings
xdebug.remote_autostart=off
xdebug.remote_enable=on
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000

; General
xdebug.show_local_vars=On
xdebug.dump.SERVER=HTTP_HOST, SERVER_NAME
xdebug.dump_globals=On
xdebug.collect_params=4
xdebug.auto_trace=off
xdebug.collect_includes=on
xdebug.collect_return=off
xdebug.default_enable=on
xdebug.extended_info=1
xdebug.manual_url=http://www.php.net
xdebug.show_mem_delta=1
xdebug.max_nesting_level=100
xdebug.idekey=netbeans-xdebug

; Trace options
xdebug.trace_format=0
xdebug.trace_output_dir=/tmp/xdebuglogs
xdebug.trace_options=0
xdebug.trace_output_name=tracelog

; Profiling
xdebug.profiler_append=0
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1
xdebug.profiler_output_dir=/tmp/profiler
xdebug.profiler_output_name=out.%H%R

Запуск профайлера - ?XDEBUG_PROFILE=1