Posts Tagged with yii 1

Displaying 71-72 of 72 results.
Wiki: Yii - пример создания виджета - widget example - шаблон для контроллераwiki
posted by admin on January 22, 2016
Итак - вот мой контроллер - он лежит в папке /protected/components

<?php
/* рассмотрим здесь "параметризированный" виджет*/
class AdminMenuWidget extends CWidget {

/*в общем случаем может
хранить целый массив свойст - нас же интересует
только текущее действие
- чтобы подсветить активный элемент меню*/
public $params = array(
// пусть по умолчанию будет активна ссылка на главную
'action'=>'index',
// следующие два не использую - просто для примера
'parameter 2'=>'value 2',
'parameter 3'=>'value 3',
);

public function run() {
// передаем данные в представление виджета
$this->render('adminmenu',array('params' => $this->params));
}
}


представление контроллера для этого вижжета лежит рядом - а именно так -

/protected/components/views


и выглядит так:

< ul class="nav nav-pills" >
< li<?php if ($params['action']=='index')
echo ' class="active"' ;
?>>
<?php echo CHtml::link('Админка', array('perfomance/index')); ?>
< /li >

< li<?php if ($params['action'] == 'showtickets')
echo ' class="active"' ;
?>>
<? php echo CHtml::link('Заявки', array('perfomance/showtickets')); ?>
< /li >

< li<?php if ($params['action'] == 'rebuildroles')
echo ' class="active"' ;
?>>
<?php echo CHtml::link('Роли', array('perfomance/rebuildroles')); ?> < /li >
</ul>


Как отобразить виджет
Это просто - например в представлении некоего контроллера я пишу:

<?php
$this->beginWidget('AdminMenuWidget',array(
'params'=>array(
//получаем текущее действие чтобы подсветить активный элемент меню
'action' => Yii::app()->getController()->getAction()->getId(),
)));
$this->endWidget();
?>
Read more
Wiki: Yii 1.1: Archive Yearly and Monthly in Blog systemwiki
posted by admin on January 22, 2016
Hi I had made simple archive system for blog system that can handle tbl_post. I had used simple CDbCriteria not more than that. I know there is more and many better way to this but I think this will give some idea to users to generate new idea or customized or modified this version of code.


//in module define

public $year;
public $month;


In controller controller of view you can use this. I had used here view for testing.

<?php
$monthsvalue = array('1'=>'January','2'=>'Feburary','3'=>'March','4'=>'April','5'=>'May','6'=>'June','7'=>'July','8'=>'August','9'=>'September','10'=>'October','11'=>'November','12'=>'December');


$condition = new CDbCriteria;
$condition->select='YEAR(t.createddate) as year'; //declare year in post model model
$condition->distinct=true;
$condition->order ='createddate DESC';

$yeardataarticle = Post::model()->findAll($condition);

foreach ($yeardataarticle as $ya):
$year =$ya->year;
echo '
';
echo $year;
$monthcriteria = new CDbCriteria;
$monthcriteria->select ='MONTH(t.createddate) as month'; // declare month in post model
$monthcriteria->condition ='YEAR(t.createddate)=:year';
$monthcriteria->params=array(':year'=>$year);
$months = Post::model()->findAll($monthcriteria);
foreach ($months as $month):


$montth = $month->month;
echo '
';

foreach($monthsvalue as $key=>$value):

if (!isset(${'printed'.$key.$year})) ${'printed'.$key.$year} = false;

//var_dump('printed'.$key.$year);exit;

if($key==$montth and !${'printed'.$key.$year}){

echo CHtml::link($value,array('//post/archivepost','year'=>$year,'month'=>$montth));
${'printed'.$key.$year}=true;

$postcount = new CDbCriteria;
$postcount->addCondition('MONTH(t.createddate)=:month AND YEAR(t.createddate)=:year');
$postcount->params = array(':month'=>$montth,':year'=>$year);
$count = Post::model()->count($postcount);
echo ' ('.$count.')';
}

endforeach;

endforeach;

endforeach;
?>
Read more