public function loadModel($id)
 {
     if (($model = ChemicalItem::model()->findByPk($id)) === null) {
         throw new CHttpException(404, 'Страница не найдена');
     }
     return $model;
 }
 public function run()
 {
     if (empty($this->model) || empty($this->model->categories)) {
         return;
     }
     $criteria = new CDbCriteria();
     $criteria->addCondition('t.id <> :id');
     $criteria->params[':id'] = $this->model->id;
     $criteria->order = 'RAND()';
     if ($this->limit > 0) {
         $criteria->limit = (int) $this->limit;
     }
     $models = ChemicalItem::model()->published()->category($this->model->categories[0]->id)->findAll($criteria);
     $this->render($this->view, array('models' => $models, 'model' => $this->model));
 }
 public function actionShow($alias)
 {
     $model = ChemicalItem::model()->published()->with(array('producer', 'categories' => array('scopes' => 'published', 'order' => 'categories.sort ASC'), 'reasons' => array('scopes' => 'active', 'order' => 'reasons.sort ASC'), 'products' => array('scopes' => 'active', 'order' => 'products.sort ASC'), 'images' => array('scopes' => 'published', 'order' => 'images.sort ASC')))->findByAlias($alias);
     if (!$model) {
         throw new CHttpException(404);
     }
     // Учитываем фильтр в каталоге
     $filter = Yii::app()->user->getState('chemicalCatalogFilter');
     // Определяем следующий товар
     $nextProduct = $model->getNextProduct($filter);
     // Определяем предыдущий товар
     $prevProduct = $model->getPrevProduct($filter);
     // Добавляем в просмотренное
     $this->getModule()->getComponent('watched')->put($model);
     $this->render('item', array('model' => $model, 'nextProduct' => $nextProduct, 'prevProduct' => $prevProduct, 'returnUrl' => Yii::app()->user->getState('chemicalCatalogReturnUrl')));
 }
Ejemplo n.º 4
0
                <?php 
echo $form->checkBoxListRow($model, 'categoriesArray', ChemicalItem::model()->categoryList);
?>
            </div>            
        </div>
        <div class="span4">
            <div style="height: 300px; border: 1px #999 solid; padding: 15px; overflow-y: auto;">
                <?php 
echo $form->checkBoxListRow($model, 'reasonsArray', ChemicalItem::model()->reasonList);
?>
            </div>            
        </div>
        <div class="span4">
            <div style="height: 300px; border: 1px #999 solid; padding: 15px; overflow-y: auto;">
                <?php 
echo $form->checkBoxListRow($model, 'productsArray', ChemicalItem::model()->productList);
?>
            </div>            
        </div>        
    </div>

    <div class="row-fluid control-group <?php 
echo $model->hasErrors('image') ? 'error' : '';
?>
">
        <div class="span7  popover-help"  data-original-title="<?php 
echo $model->getAttributeLabel('image');
?>
">
            <?php 
if (!$model->isNewRecord && $model->image) {
Ejemplo n.º 5
0
<?php

$this->widget('yupe\\widgets\\OGridView', array('id' => 'item-grid', 'type' => 'condensed', 'dataProvider' => $model->search(), 'filter' => $model, 'columns' => array(array('name' => 'id', 'type' => 'raw', 'value' => 'CHtml::link($data->id, $data->url, array("target" => "_blank"))', 'htmlOptions' => array('style' => 'width:40px')), array('name' => 'image', 'type' => 'raw', 'value' => '$data->image ? CHtml::image($data->getImageUrl(220, 150), $data->title)  : ""', 'filter' => false, 'sortable' => false, 'htmlOptions' => array('style' => 'width:220px')), array('name' => 'search_category', 'value' => '$data->categoriesNames', 'filter' => CHtml::activeDropDownList($model, 'search_category', ChemicalItem::model()->categoryList, array('encode' => false, 'empty' => '')), 'htmlOptions' => array('style' => 'width:180px')), array('name' => 'title', 'class' => 'yupe.widgets.CustomEditableColumn', 'editable' => array('placement' => 'right')), array('name' => 'alias', 'class' => 'yupe.widgets.CustomEditableColumn', 'editable' => array('placement' => 'right')), array('name' => 'article', 'class' => 'yupe.widgets.CustomEditableColumn', 'editable' => array('placement' => 'right')), array('name' => 'producer_id', 'value' => '$data->producerTitle', 'filter' => $model->producerList), array('name' => 'price', 'value' => '$data->getPrice()', 'filter' => false), array('name' => 'badge_text', 'class' => 'yupe.widgets.CustomEditableColumn', 'editable' => array('placement' => 'right')), array('name' => 'badge_color', 'class' => 'yupe.widgets.CustomEditableColumn', 'editable' => array('placement' => 'right')), array('name' => 'status', 'type' => 'raw', 'value' => '$this->grid->returnBootstrapStatusHtml($data, "status", "Status", array("pencil", "ok-sign"))', 'filter' => $model->getStatusList(), 'sortable' => false), array('class' => 'bootstrap.widgets.TbButtonColumn', 'template' => '{images}{update}{delete}', 'buttons' => array('images' => array('icon' => 'picture', 'label' => 'Изображения', 'url' => 'array("/chemical/itemImageBackend/index", "item_id" => $data->id)')), 'htmlOptions' => array('style' => 'width: 80px; text-align: right;')))));
Ejemplo n.º 6
0
 public function getPrevProduct($filter = array())
 {
     $criteria = $this->_constructCriteriaByFilter($filter);
     $criteria->order = 'producer.sort DESC, t.title DESC';
     // Условие выборки по порядку
     $fullCriteria = clone $criteria;
     $fullCriteria->addCondition('((t.title <= :title AND t.id <> :id) OR (producer.sort < :producerSort))');
     $fullCriteria->params[':id'] = $this->id;
     $fullCriteria->params[':title'] = $this->title;
     $fullCriteria->params[':producerSort'] = $this->producer->sort;
     $fullCriteria->order = 't.title DESC';
     $prevProduct = ChemicalItem::model()->published()->find($fullCriteria);
     if ($prevProduct === null) {
         $prevProduct = ChemicalItem::model()->published()->find($criteria);
     }
     return $prevProduct;
 }
 public function getPrevProduct($filter = array())
 {
     $criteria = $this->_constructCriteriaByFilter($filter);
     $criteria->order = 't.title DESC';
     // Условие выборки по порядку
     $fullCriteria = clone $criteria;
     $fullCriteria->addCondition('t.title <= (SELECT `title` from `' . $this->tableName() . '` WHERE id = :id) AND t.id <> :id');
     $fullCriteria->params[':id'] = $this->id;
     $fullCriteria->order = 't.title DESC';
     $prevProduct = ChemicalItem::model()->published()->find($fullCriteria);
     if ($prevProduct === null) {
         $prevProduct = ChemicalItem::model()->published()->find($criteria);
     }
     return $prevProduct;
 }