Архивы автора: antyat

IMUNES

IMUNES (Integrated Multiprotocol Network Emulator / Simulator) — эмулятор компьютерной сети, построенный на основе виртуализированной системы FreeBSD. Внутри виртуальных узлов могут исполняться демоны динамической маршрутизации, генераторы трафика, анализаторы и прочие программы.

Ориентирован на исследование компьютерных сетей.

Разрабатывается в Университете Загреба; спонсируется министерством науки и технологии Хорватии.

Конфигурирование выполняется с помощью GUI-интерфейса.

Основными элементами из которой строится виртуальная сеть являются различные netgraph-устройства ядра FreeBSD (ng_pipe, ng_hub, ng_bridge и так далее).

Дополнительная информация

Как работает Ajax в CakePHP 2 по сравнению с CakePHP 1.2; Ajax in CakePHP 2 instead of CakePHP 1.2

И так, как в cakephp 1.2 можно было работать с ajax — например обновление выпадающих списков.

Мы имеем специальности (professions) на которых есть курсы (courses). Задача при выборе специальности обновить выпадающий список с нужными курсами.

Какие настройки не обходимо сделать в первую очередь:

в лейауте — вывести подключение какого либо JS движка (Prototype или Jquery):

echo $javascript->link(array('prototype'));

в app_controller — подключение нужных хелперов (причем порядок подключения хелперов не важен):

var $helpers = array('Html', 'Form',  'Ajax','Javascript');

Что нужно вделать в контроллере (например students_controller.php) (модель Student) для вывода студентов одного курса:

выбираем все специальности и выводим их в простой список

 function index () {
$this->loadModel('Profession');
$professions = $this->Profession->find('list');
$this->set(compact('professions'));
}
функция вызываемая со страницы асинхронно через AJAX
function update_course () {
 if(!empty($this->data['Student']['profession_id'])) {
 $profession_id = $this->data['Student']['profession_id'];
 $this->loadModel('Course');
 $options = $this->Course->find('list', array('conditions' => array ('Course.profession_id' => $profession_id)));
 $this->set(compact('options'));
 }

содержимое вьюшки update_course

<?php
if(!empty($options)) {
 echo "<option value=''>Выберите курс</option>";
 foreach($options as $k => $v) {
 echo "<option value='$k'>$v</option>";
 }
}
?>

что нужно сделать во вьюшке index…

выводим список факультетов… особое внимание на выделенный жирным текстом кусок кода.

<div>
 <?php
 echo $form->input('profession_id', array('options' => $professions, 'empty' => 'Выберите специальность', 'label' => '', 'id' => 'professions'), null);
 ?>
 </div>

теперь как формируется courses

<div>
 <?php
 echo $form->select('course_id', array(), null, array('id' => 'courses'));
 $course_options = array('url' => 'update_course','update' => 'courses');
 echo $ajax->observeField('professions', $course_options);
 ?>
 </div>

Собственно все!!! Так работает автомагия cakephp 1.2. Однако не все так просто если мы посмотрим на CakePHP 2.? (пока работаю с 2.0 )

Привет, мир! Hello world! ;-)

Завел таки себе личный блог… Накопилось просто много чего для запомнить или просто кому рассказать о Cakephp 2.0  — может пригодится… Сейчас занят разбирательством  с cakephp 2.0, перепрыгнул на него прямо с cakephp 1.2, соответственно первые посты будут про то что изменилось и как с этим бороться…

Писать попробую и на русском и на английском, так как гляжу с инфой в не русском интернете тоже не густо… Потом поглядим о чем дальше писать…

I’ve just made own blog at last. I have a lot of information to memorize or to tell anybody interested in  CakePHP 2.0 framework — Perhaps it will be usefull for you. Right now I’m exploring diferences between CakePHP 2.0 and CakePHP 1.2 which I used before. So coming new posts will be about CakePHP 2.0 tips and tricks.

I’ll try to write posts in English too, because of lack of information about using CakePHP 2.0 in Non Russian segment of Internet.

Sorry for my poor English…