Сообщения

Сообщения за февраль, 2015

Yii (вложенное дерево страниц)

Имеем таблицу tbl_page вида d_id d_name d_url  department_d_id где department_d_id = 0 - это корневой элемент в первом приближении < pre > < code > $a = Department::model()->findAll(); for ($i = 0; $i < count($a); $i++) {     if ($a[$i]['department_d_id'] == 0 && $a[$i]['department_d_id'] != NULL)     {         $my[$i] = array             (             //'text' => CHtml::link($one->d_name, array($one->d_url)),             'text' => $a[$i]['d_name'],             'id' => $a[$i]['d_id'],             'expanded' => false,         );     } } </ code > </ pre >   так мы создали корневые элементы for ($x = 0; $x < count($my); $x++) {     for ($y = 0; $y < count($a); $y++)     {         if ($my[$x][id] == $a[$y]['department_d_id'])         {             $my[$x][children][] = array                 (                 // 't

Yii для чайников \Yii for dummies (связанные списки dropDownList)

интересно это что какая то секретная информация. толком ниче найти не могу. вот сделал по www.yiiframework.com/wiki/24 первый список _form.php <?php $criteria = new CDbCriteria (); $criteria -> addInCondition( 'id_parent' , array ( '0' )); $opts = CHtml :: listData( Department :: model() -> findAll( $criteria ), 'F_ID' , 'F_Name' ); //создаем список из базы $result = Motor :: model() -> findByPk( $model -> m_id); //ищем есть ли в базе такие записи if ( isset ( $result )) $result = Department :: model() -> find( 'F_Name=:myParams' , array ( ':myParams' => $result -> m_department)); //проверяем запись с таким именем if ( isset ( $result )) $model -> m_department = $result -> F_ID; echo $form -> dropDownList( $model , 'm_department' , $opts , array ( 'empty' => Yii :: t( 'default' , 'выберите цех' ), 'ajax' =>

Yii для чайников \Yii for dummies (создание базы))

Изображение
 для наглядности решил использовать mysql workbench . для ленивых (актуально 20.02.2015) подключение к локальной базе. я создал такую базу для общего понмания   получаем --------- -- MySQL Script generated by MySQL Workbench -- 02/20/15 20:38:33 -- Model: New Model Version: 1.0 -- MySQL Workbench Forward Engineering SET @OLD_UNIQUE_CHECKS = @@UNIQUE_CHECKS , UNIQUE_CHECKS = 0 ; SET @OLD_FOREIGN_KEY_CHECKS = @@FOREIGN_KEY_CHECKS , FOREIGN_KEY_CHECKS = 0 ; SET @OLD_SQL_MODE = @@SQL_MODE , SQL_MODE = 'TRADITIONAL,ALLOW_INVALID_DATES' ; -- ----------------------------------------------------- -- Schema mydb -- ----------------------------------------------------- DROP SCHEMA IF EXISTS `mydb` ; -- ----------------------------------------------------- -- Schema mydb -- ----------------------------------------------------- CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;

Yii для чайников \Yii for dummies (инструментарий)

Если вы десктопщик - 1. Качаем новый денвер  НАМНОГО лучше openserver 2.IDE     2.1 Netbeans бесплатная ide     2.2. php designer платная ide. сам не работал Для всех 2. качаем первый фреймворк . 3. Качаем waterfox браузер х64 на основе фф Редакторы Mysql 1. Встроенный Phpmyadmin 2. Workbench приколен тем что может рисовать uml диаграммы и строить на основании их таблицы 3. ems mysql бесплатен и довольно удобен. сам пользуюсь Если у вас сервер 1. WinSCP -  это графический клиент SFTP для Windows с открытым исходным кодом. Он также поддерживает [устаревший] протокол SCP. Предназначен для защищённого копирования файлов между компьютером и серверами, поддерживающими эти протоколы. 2. Если у вас не настроен FTP на сервере, то подключить IDE не получится. Поэтому любой редактор с подсветкой кода вам в помощь. Сам использую npp  .Поддержки синтаксиса yii нет, только php. но вроде нет редакторов (не ide) с поддержкой yii

Yii (установка)

Изображение
Для настольщиков: 1. Качаем новый денвер 2. качаем первый фреймворк . второй имеет безжалостно мало документации. для новичков не советую. может ситуация выправится, но и сейчас пользователей Yii  не очень много, так что это только мечты 3.Скорее всего у вас система x64. Так что смысла пользоваться дохлыми браузерами смысла ноль. Качаем waterfox 4.Естественно все устанавливаем. 5.Создаем папку под проект в денвере я назвал yiiproj.lc 6.в ней не забываем папку www 7.получилось так: Z:\home\yiiproj.lc\www\ Сюда я скопировал папку framework из распакованного архива, скаченного с yiiframework.com . В папке Z:\home\yiiproj.lc\www\yii\framework находится сам фреймворк: разные папки и файлы, в том числе yiic.bat. Он нужен для создания нового проекта - нового сайта. делаем так: открываем cmd: Пуск - выполнить -cmd В открывшемся черном окне написал: Z:/usr/local/php5/php.exe z:/home/yiiproj.lc/www/yii/framework/yiic webapp z:/home/yiiproj.lc/www/yiiproj  мы разнесли

Yii сохранение в базе внешнего ключа и отображение его имени из другой таблицы

в общем как обычно идея проста - при сохранении нужно записывать внешний ключ на другую таблицу. при отображении находить по внешнему ключу имя во внешней таблице и отображать уже его. 1. список в _form пишу < div class = "row" > < ? php echo $form - > labelEx ( $model , 'm_department' ) ; ? > < ? php $criteria = new CDbCriteria ( ) ; $criteria - > addInCondition ( 'id_parent' , array ( '0' ) ) ; $opts = CHtml : : listData ( Department : : model ( ) - > findAll ( $criteria ) , 'F_ID' , 'F_Name' ) ; echo $form - > dropDownList ( $model , 'm_department' , $opts , array ( 'empty' = > '' ) ) ; ? > < ? php echo $form - > error ( $model , 'm_department' ) ; ? > < / div > так нахожу список всех подразделений из другой модели в своей модели пишу protected function a

Yii для чайников \Yii for dummies (CPasswordHelper и аутентификация)

имеем таблицу юзер // CREATE TABLE ` user `( `u_id` int ( 11 ) NOT NULL AUTO_INCREMENT COMMENT 'ид' , `u_username` varchar ( 45 ) NOT NULL COMMENT 'логин' , `u_password` varchar ( 255 ) NOT NULL COMMENT 'пароль' , `u_salt` varchar ( 255 ) DEFAULT NULL COMMENT 'соль' , `role_r_id` int ( 11 ) DEFAULT NULL COMMENT 'роль' , `u_comment` text COMMENT 'комментарий' , `u_created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'дата создания' , `u_ban_date` timestamp NULL DEFAULT NULL COMMENT 'дата блокировки' , `u_dep` int ( 11 ) DEFAULT NULL COMMENT 'отдел' , `u_sector` int ( 11 ) DEFAULT NULL COMMENT 'участок' , `ban` tinyint ( 1 ) DEFAULT NULL COMMENT 'бан' , PRIMARY KEY ( `u_id` ), UNIQUE KEY `u_id_UNIQUE` ( `u_id` ), UNIQUE KEY `u_username_UNIQUE` ( `u_username` ) ) ENGINE = InnoDB AUTO_INCREMENT = 18 D