Example #1
0
 public function actionDelete($id)
 {
     $success = false;
     if (is_numeric($id)) {
         $model = Lists::model()->findByPk($id);
         $items = ListsItems::model()->findAllByAttributes(array("list_id" => $model->id));
         if (is_object($model) && $model->delete()) {
             $success = true;
             if (is_array($items) && count($items)) {
                 foreach ($items as $item) {
                     $item->delete();
                 }
             }
         }
     }
     echo json_encode(array('status' => $success ? 'success' : 'fail'));
 }
Example #2
0
<div class="row">
    <div class="col-lg-12">
        <div class="panel panel-default">
            <div class="panel-heading">
                <a href="/admin/catalog" class="btn btn-success" title="Вернуться к списку товаров"><i class="fa fa-reply"></i> К списку товаров</a>
                <a href="/admin/catalog/categories/add" class="btn btn-success" title="Добавить категорию"><i class="fa fa-plus"></i> Добавить категорию</a>
            </div>
            <div class="panel-body">
                <?php 
$this->widget('CCustomGridView', array('id' => 'catalog-categories-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'cookey' => 'catalog-categories-size', 'columns' => array(array('name' => 'id', 'headerHtmlOptions' => array('style' => 'width: 100px')), array('class' => 'booster.widgets.TbEditableColumn', 'name' => 'name', 'editable' => array('url' => $this->createUrl('eip'), 'placement' => 'right'), 'filter' => CHtml::tag("input", array("name" => "CatalogCategories[name]", "type" => "text", "class" => "form-control"))), array('class' => 'booster.widgets.TbEditableColumn', 'name' => 'url', 'editable' => array('url' => $this->createUrl('eip'), 'placement' => 'right'), 'filter' => CHtml::tag("input", array("name" => "CatalogCategories[url]", "type" => "text", "class" => "form-control"))), array('class' => 'booster.widgets.TbEditableColumn', 'name' => 'lang_id', 'value' => 'ListsItems::model()->findByPk($data->lang_id)->name', 'editable' => array('url' => $this->createUrl('eip'), 'placement' => 'right', 'type' => 'select', 'source' => CHtml::listData(ListsItems::model()->findAllByAttributes(array("list_id" => 11)), "id", "name")), 'filter' => CHtml::dropDownList("CatalogObjects[lang_id]", '', array_merge(array('' => ''), CHtml::listData(ListsItems::model()->findAllByAttributes(array("list_id" => 11)), "id", "name")), array("class" => "form-control"))), array('class' => 'CCustomTogleColumn', 'toggleAction' => 'toggleActivity', 'name' => 'is_active', 'headerHtmlOptions' => array('style' => 'width: 120px')), array('header' => 'Действие', 'class' => 'CCustomButtonColumn')), 'pager' => array('class' => 'CCustomPager')));
?>
            </div>
        </div>
    </div>
</div>
Example #3
0
        ?>
</li>
                                    <?php 
    }
    ?>
                            </ul>
                        </div>
                        <?php 
}
?>
                    <div class="row">
                        <div class="col-lg-12">
                            <div class="form-group">
                                <label>Язык</label>
                                <?php 
$langs = ListsItems::model()->findAllByAttributes(array("list_id" => 11));
if (is_array($langs) && count($langs)) {
    ?>
                                    <select name="data[lang_id]" class="form-control">
                                    <?php 
    foreach ($langs as $lang) {
        ?>
                                        <option value="<?php 
        echo $lang->id;
        ?>
"><?php 
        echo CHtml::encode($lang->name);
        ?>
</option>
                                        <?php 
    }
Example #4
0
<div class="row">
    <div class="col-lg-12">
        <div class="panel panel-default">
            <div class="panel-heading">
                <a href="/admin/orders/add" class="btn btn-success" title="Добавить заказ"><i class="fa fa-plus"></i> Добавить заказ</a>
            </div>
            <div class="panel-body">
                <?php 
$this->widget('CCustomGridView', array('id' => 'orders-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'cookey' => 'orders-size', 'columns' => array(array('name' => 'id', 'headerHtmlOptions' => array('style' => 'width: 100px')), array('name' => 'customer_id', 'type' => 'raw', 'value' => 'Users::model()->findByPk($data->customer_id)->login', 'filter' => CHtml::listData(Users::model()->findAll(), "id", "login")), array('class' => 'booster.widgets.TbEditableColumn', 'name' => 'timestamp', 'value' => 'date("d.m.Y H:i", $data->timestamp)', 'editable' => array('url' => $this->createUrl('eip'), 'placement' => 'right', 'type' => 'date'), 'filter' => CHtml::tag("input", array("name" => "Orders[timestamp]", "type" => "text", "class" => "form-control datepicker"))), array('class' => 'booster.widgets.TbEditableColumn', 'name' => 'total_price', 'editable' => array('url' => $this->createUrl('eip'), 'placement' => 'right'), 'filter' => CHtml::tag("input", array("name" => "Orders[total_price]", "type" => "text", "class" => "form-control"))), array('class' => 'booster.widgets.TbEditableColumn', 'name' => 'status', 'value' => 'ListsItems::model()->findByPk($data->status)->name', 'editable' => array('url' => $this->createUrl('eip'), 'placement' => 'right', 'type' => 'select', 'source' => CHtml::listData(ListsItems::model()->findAllByAttributes(array("list_id" => 9)), "id", "name")), 'filter' => CHtml::dropDownList("Orders[status]", '', CHtml::listData(ListsItems::model()->findAllByAttributes(array("list_id" => 9)), "id", "name"), array("class" => "form-control"))), array('header' => 'Действие', 'class' => 'CCustomButtonColumn')), 'pager' => array('class' => 'CCustomPager')));
?>
            </div>
        </div>
    </div>
</div>
Example #5
0
 public function setValue($val)
 {
     if (!is_object($this->object)) {
         return false;
     }
     switch ($this->data_type) {
         case 'multiple':
             $fv = ListsFieldsValues::model()->findAllByAttributes(array("field_id" => $this->id, "object_id" => $this->object->id));
             $exists = array();
             $hasErrors = false;
             if (is_array($fv) && count($fv)) {
                 foreach ($fv as $item) {
                     if (!in_array($item->int_val, $val)) {
                         $item->delete();
                     } else {
                         $exists[] = $item->int_val;
                     }
                 }
             }
             if (is_array($val) && count($val)) {
                 foreach ($val as $v) {
                     if (!in_array($v, $exists)) {
                         $listItem = ListsItems::model()->findByPk($v);
                         if (is_object($listItem)) {
                             $newFieldValue = new ListsFieldsValues();
                             $newFieldValue->setAttributes(array("field_id" => $this->id, "object_id" => $this->object->id, "int_val" => $v));
                             if (!$newFieldValue->save()) {
                                 $hasErrors = true;
                             }
                         }
                     }
                 }
             }
             return !$hasErrors;
         case 'list':
             $hasErrors = true;
             $fv = ListsFieldsValues::model()->findByAttributes(array("field_id" => $this->id, "object_id" => is_object($this->object) ? $this->object->id : 0));
             if (!is_object($fv)) {
                 $fv = new ListsFieldsValues();
             }
             $v = ListsItems::model()->findByPk($val);
             if (is_object($v)) {
                 $fv->setAttributes(array("field_id" => $this->id, "object_id" => $this->object->id, "int_val" => $val));
                 if ($fv->save()) {
                     $hasErrors = false;
                 }
             }
             return !$hasErrors;
         case 'int':
         case 'bool':
         case 'date':
             $v = ListsFieldsValues::model()->findByAttributes(array("field_id" => $this->id, "object_id" => $this->object->id));
             if (!is_object($v)) {
                 $v = new ListsFieldsValues();
             }
             $v->setAttributes(array("field_id" => $this->id, "object_id" => $this->object->id, "int_val" => $val));
             return $v->save();
         default:
             $v = ListsFieldsValues::model()->findByAttributes(array("field_id" => $this->id, "object_id" => $this->object->id));
             if (!is_object($v)) {
                 $v = new ListsFieldsValues();
             }
             $v->setAttributes(array("field_id" => $this->id, "object_id" => $this->object->id, "text_val" => $val));
             return $v->save();
     }
 }
Example #6
0
?>
                                </select>
                            </div>
                            <div class="form-group">
                                <label>Дата оформления заказа</label>
                                <input type="text" name="data[timestamp]" value="" class="form-control datepicker" />
                            </div>
                            <div class="form-group">
                                <label>Стоимость заказа</label>
                                <input type="text" name="data[total_price]" value="" class="form-control" />
                            </div>
                            <div class="form-group">
                                <label>Статус заказа</label>
                                <select name="data[status]" class="form-control">
                                    <?php 
$items = ListsItems::model()->findAllByAttributes(array("list_id" => 9));
if (is_array($items) && count($items)) {
    foreach ($items as $item) {
        ?>
                                            <option value="<?php 
        echo $item->id;
        ?>
"><?php 
        echo CHtml::encode($item->name);
        ?>
</option>
                                            <?php 
    }
}
?>
                                </select>
Example #7
0
                                                        <?php 
                break;
            case 'multiple':
                ?>
                                                        <label><?php 
                echo $field->title;
                ?>
</label>
                                                        <select name="data[additional][<?php 
                echo $field->name;
                ?>
][]" class="form-control" multiple="multiple">
                                                            <option>Выберите из списка...</option>
                                                        <?php 
                if ($field->rel) {
                    $options = ListsItems::model()->findAllByAttributes(array("list_id" => $field->rel));
                    if (is_array($options) && count($options)) {
                        foreach ($options as $option) {
                            ?>
                                                                        <option value="<?php 
                            echo $option->id;
                            ?>
"><?php 
                            echo $option->name;
                            ?>
</option>
                                                                        <?php 
                        }
                    }
                }
                ?>
Example #8
0
 public function actionFilterRegions()
 {
     $regions = array();
     $requestData = array();
     if (isset($_REQUEST['data']['country'])) {
         $selectedCountry = $_REQUEST['data']['country'];
         $requestData = $selectedCountry;
         if (is_array($selectedCountry) && count($selectedCountry)) {
             $criteria = new CDbCriteria();
             $criteria->condition = "field_id = 3";
             $criteria->addInCondition("int_val", $selectedCountry);
             $criteria->group = "object_id";
             $listsFieldsValues = ListsFieldsValues::model()->findAll($criteria);
             if (is_array($listsFieldsValues) && count($listsFieldsValues)) {
                 foreach ($listsFieldsValues as $lfv) {
                     $o = ListsItems::model()->findByPk($lfv->object_id);
                     if (is_object($o)) {
                         $regions[] = $o;
                     }
                 }
             }
         }
     }
     $this->renderPartial("filter_regions", array("regions" => $regions, "requestData" => $requestData));
 }
Example #9
0
 public function actionToggleActivity()
 {
     if (isset($_REQUEST['pk'])) {
         $model = ListsItems::model()->findByPk($_REQUEST['pk']);
         if (is_object($model)) {
             $model->is_active = $model->is_active ? 0 : 1;
             if ($model->save()) {
                 return true;
             }
         }
     }
     return false;
 }
Example #10
0
 public function createObject($name, $langId, $dataArray)
 {
     $model = new CatalogObjects();
     //prepare data
     $uploaddir = 'images/upload/' . date("d.m.Y", time());
     $attributes = array();
     switch ($langId) {
         case 19:
             $attributes['category_id'] = 1;
             //@todo Выбор категории для импорта
             break;
         case 20:
             $attributes['category_id'] = 5;
             break;
         case 21:
             $attributes['category_id'] = 9;
             break;
     }
     $attributes['name'] = $name;
     $attributes['h1'] = $name;
     $attributes['title'] = $name;
     $toUrl = $langId == 21 ? $name . "-" . $dataArray['artikul'] . "-fr" : $name . "-" . $dataArray['artikul'];
     $attributes['url'] = translit::convert($toUrl, "-");
     $attributes['price'] = isset($dataArray['price']) ? str_replace(",", ".", $dataArray['price']) : 0;
     $attributes['is_active'] = 0;
     $attributes['is_deleted'] = 0;
     $attributes['on_main'] = 0;
     $attributes['lang_id'] = $langId;
     $attributes['views_count'] = 0;
     $artikul = isset($dataArray['artikul']) ? $dataArray['artikul'] : '';
     if ($langId == 19) {
         $attributes['anons'] = $dataArray['name_ru'];
     } else {
         $attributes['anons'] = '';
     }
     if (is_dir('import_images/' . $artikul)) {
         if (is_file('import_images/' . $artikul . '/1.jpg')) {
             $anonsPicPath = $uploaddir . "/a_" . md5(time() . $artikul . "a1") . ".jpg";
             $contentPicPath = $uploaddir . "/c_" . md5(time() . $artikul . "c1") . ".jpg";
             if (copy('import_images/' . $artikul . '/1.jpg', $anonsPicPath)) {
                 $attributes['anons_pic'] = "/" . $anonsPicPath;
             }
             if (copy('import_images/' . $artikul . '/1.jpg', $contentPicPath)) {
                 $attributes['content_pic'] = "/" . $contentPicPath;
             }
         }
         if (is_file('import_images/' . $artikul . '/2.jpg')) {
             $extraPicPath = $uploaddir . "/e_" . md5(time() . $artikul . "2") . ".jpg";
             if (copy('import_images/' . $artikul . '/2.jpg', $extraPicPath)) {
                 $attributes['extra_img'] = "/" . $extraPicPath;
             }
         }
     }
     //push data
     $model->setAttributes($attributes);
     if ($model->save()) {
         //prepare additional data
         if (isset($dataArray['ratings']['RP'])) {
             $model->field('rp')->setValue($dataArray['ratings']['RP']);
         }
         if (isset($dataArray['ratings']['WS'])) {
             $model->field('ws')->setValue($dataArray['ratings']['WS']);
         }
         $additionalFields = CatalogFilteredFields::model()->findAllByAttributes(array("category_id" => $model->category_id));
         if (is_array($additionalFields) && count($additionalFields)) {
             foreach ($additionalFields as $f) {
                 $fieldData = isset($dataArray[$f->name]) ? $dataArray[$f->name] : null;
                 $langPrefix = 'ru';
                 switch ($langId) {
                     case 19:
                         $langPrefix = 'ru';
                         break;
                     case 20:
                         $langPrefix = 'en';
                         break;
                     case 21:
                         $langPrefix = 'fr';
                         break;
                 }
                 if (is_array($fieldData) || $fieldData && !is_array($fieldData)) {
                     switch ($f->data_type) {
                         case 'int':
                             if (is_numeric($dataArray[$f->name])) {
                                 $model->field($f->name)->setValue($dataArray[$f->name]);
                             }
                             break;
                         case 'date':
                             if ($dataArray[$f->name]) {
                                 $model->field($f->name)->setValue(strtotime($dataArray[$f->name]));
                             }
                             break;
                         case 'bool':
                             $model->field($f->name)->setValue($fieldData ? 1 : 0);
                             break;
                         case 'multiple':
                             if (is_array($fieldData) && isset($fieldData[$langPrefix])) {
                                 $values = $fieldData[$langPrefix];
                                 if (is_array($values) && count($values)) {
                                     $setArr = array();
                                     $num = 0;
                                     foreach ($values as $value) {
                                         $listItem = ListsItems::model()->findByAttributes(array("list_id" => $f->rel, "name" => $value));
                                         if (!is_object($listItem)) {
                                             $listItem = new ListsItems();
                                             $listItem->setAttributes(array("list_id" => $f->rel, "name" => $value));
                                             $listItem->save();
                                             if (isset($fieldData['en'][$num]) && $fieldData['en'][$num]) {
                                                 $listItem->field("en_name")->setValue($fieldData['en'][$num]);
                                             }
                                             if (isset($fieldData['fr'][$num]) && $fieldData['fr'][$num]) {
                                                 $listItem->field("fr_name")->setValue($fieldData['fr'][$num]);
                                             }
                                         }
                                         $setArr[] = $listItem->id;
                                         $num++;
                                     }
                                     $model->field($f->name)->setValue($setArr);
                                 }
                             } else {
                                 if (is_array($fieldData)) {
                                     $values = $fieldData;
                                     if (is_array($values) && count($values)) {
                                         $setArr = array();
                                         foreach ($values as $value) {
                                             $listItem = ListsItems::model()->findByAttributes(array("list_id" => $f->rel, "name" => $value));
                                             if (!is_object($listItem)) {
                                                 $listItem = new ListsItems();
                                                 $listItem->setAttributes(array("list_id" => $f->rel, "name" => $value));
                                                 $listItem->save();
                                             }
                                             $setArr[] = $listItem->id;
                                         }
                                         $model->field($f->name)->setValue($setArr);
                                     }
                                 }
                             }
                             break;
                         case 'list':
                             if (is_array($fieldData) && isset($fieldData[$langPrefix])) {
                                 $value = $fieldData[$langPrefix];
                                 $listItem = ListsItems::model()->findByAttributes(array("list_id" => $f->rel, "name" => $value));
                                 if (!is_object($listItem)) {
                                     $listItem = new ListsItems();
                                     $listItem->setAttributes(array("list_id" => $f->rel, "name" => $value));
                                     $listItem->save();
                                     if (isset($fieldData['en']) && $fieldData['en']) {
                                         $listItem->field("en_name")->setValue($fieldData['en']);
                                     }
                                     if (isset($fieldData['fr']) && $fieldData['fr']) {
                                         $listItem->field("fr_name")->setValue($fieldData['fr']);
                                     }
                                 }
                                 $model->field($f->name)->setValue($listItem->id);
                             } else {
                                 if ($f->name == 'brand') {
                                     $brandName = $fieldData['name'];
                                     $value = $brandName;
                                     $listItem = ListsItems::model()->findByAttributes(array("list_id" => $f->rel, "name" => $value));
                                     if (!is_object($listItem)) {
                                         $listItem = new ListsItems();
                                         $listItem->setAttributes(array("list_id" => $f->rel, "name" => $value));
                                         $listItem->save();
                                         if (isset($fieldData['en']) && $fieldData['en']) {
                                             $listItem->field("en_name")->setValue($fieldData['en']);
                                         }
                                         if (isset($fieldData['fr']) && $fieldData['fr']) {
                                             $listItem->field("fr_name")->setValue($fieldData['fr']);
                                         }
                                         if (isset($fieldData['site'])) {
                                             $listItem->field('ru_site')->setValue($fieldData['site']);
                                         }
                                     } else {
                                         if (isset($fieldData['en']) && $fieldData['en']) {
                                             $listItem->field("en_name")->setValue($fieldData['en']);
                                         }
                                         if (isset($fieldData['fr']) && $fieldData['fr']) {
                                             $listItem->field("fr_name")->setValue($fieldData['fr']);
                                         }
                                         if (isset($fieldData['site'])) {
                                             $listItem->field('ru_site')->setValue($fieldData['site']);
                                         }
                                     }
                                     $model->field($f->name)->setValue($listItem->id);
                                 } else {
                                     if (!is_array($fieldData)) {
                                         //$value = $fieldData;
                                         $listItem = ListsItems::model()->findByAttributes(array("list_id" => $f->rel, "name" => $fieldData));
                                         if (!is_object($listItem)) {
                                             $listItem = new ListsItems();
                                             $listItem->setAttributes(array("list_id" => $f->rel, "name" => $fieldData));
                                             $listItem->save();
                                         }
                                         $model->field($f->name)->setValue($listItem->id);
                                     }
                                 }
                             }
                             break;
                         default:
                             $value = is_array($fieldData) && isset($fieldData[$langPrefix]) ? $fieldData[$langPrefix] : $fieldData;
                             $model->field($f->name)->setValue(trim($value));
                             break;
                     }
                 }
             }
         }
     } else {
         print_r($model->errors);
         die;
     }
 }
Example #11
0
            }
            ?>
>
                        <?php 
            if ($fieldName == 'region') {
                $selectedCountry = isset($_REQUEST['data']['country']) ? $_REQUEST['data']['country'] : array();
                $regions = array();
                if (is_array($selectedCountry) && count($selectedCountry)) {
                    $criteria = new CDbCriteria();
                    $criteria->condition = "field_id = 3";
                    $criteria->addInCondition("int_val", $selectedCountry);
                    $criteria->group = "object_id";
                    $listsFieldsValues = ListsFieldsValues::model()->findAll($criteria);
                    if (is_array($listsFieldsValues) && count($listsFieldsValues)) {
                        foreach ($listsFieldsValues as $lfv) {
                            $regions[] = ListsItems::model()->findByPk($lfv->object_id);
                        }
                    }
                }
                if (is_array($regions) && count($regions)) {
                    ?>
                                <ul class="region f_<?php 
                    echo $fieldName;
                    ?>
">
                                <?php 
                    foreach ($regions as $region) {
                        $regionField = CatalogFilteredFields::model()->findByAttributes(array("category_id" => $this->currentCategory->id, "name" => "region"));
                        $count = 0;
                        if (is_object($regionField)) {
                            $countCriteria = new CDbCriteria();
Example #12
0
 public function actionLang($id)
 {
     if (is_numeric($id)) {
         $lang = ListsItems::model()->findByPk($id);
         if (is_object($lang) && $lang->list_id == 11) {
             $this->setLang($lang->id);
         }
     }
     $this->redirect("/");
 }