Ejemplo n.º 1
0
 public function selectBySingerId($singer_id)
 {
     $criteria = new CDbCriteria();
     $criteria->select = 'style_id';
     $criteria->condition = 'singer_id=:singer_id';
     $criteria->params = array(':singer_id' => $singer_id);
     $result = Singer_style::model()->findAll($criteria);
     $data = array();
     foreach ($result as $i => $value) {
         $data[$value->style_id] = $value->style_id;
     }
     return $data;
 }
Ejemplo n.º 2
0
 public function findStyleWeights($limit = 50, $singer_id = false)
 {
     $tags = array();
     //$id = array('0');
     $style = Singer_style::model()->selectBySingerId($singer_id);
     $id = isset($style) ? $style : array('0');
     /*foreach ($style as $i=>$value)
       $id[] = $value;*/
     $criteria = new CDbCriteria();
     $criteria->select = '*';
     $criteria->addNotInCondition('id', $id);
     $criteria->order = 'name';
     $criteria->limit = $limit;
     $models = Style::model()->findAll($criteria);
     $sizeRange = 8;
     $minCount = log(3 + 1);
     //log(Yii::app()->db->createCommand("SELECT MIN(frequency) FROM " . $this->tableName())->queryScalar() + 1);
     $maxCount = log(0 + 1);
     //log(Yii::app()->db->createCommand("SELECT MAX(frequency) FROM " . $this->tableName())->queryScalar() + 1);
     $countRange = $maxCount - $minCount == 0 ? 1 : $maxCount - $minCount;
     foreach ($models as $model) {
         $tags[$model->name] = array('weight' => round(12 + (log($model->parent_id + 1) - $minCount) * ($sizeRange / $countRange)), 'id' => $model->id);
     }
     return $tags;
 }
Ejemplo n.º 3
0
 public function run()
 {
     $model = new Singer();
     $exist = $model->findByAttributes(array('id' => Yii::app()->request->getPost('singer_id')));
     if ($exist) {
         $model = $exist;
         $row_id = $model->id;
     } else {
         $model->name = Yii::app()->request->getPost('name') ? Yii::app()->request->getPost('name') : 'noname';
         $model->user_id = Yii::app()->user->getId();
         if (!($row_id = $model->Add())) {
             echo CJSON::encode(array('status' => 'error'));
             Yii::app()->end();
         }
     }
     switch (Yii::app()->request->getPost('object')) {
         //редагуєм текстові поля
         case 'name':
             $this->edit_element($model, 'name', Yii::app()->request->getPost('name'));
             break;
         case 'description':
             $this->edit_element($model, 'description', Yii::app()->request->getPost('description'));
             break;
         case 'site':
             $this->edit_element($model, 'site', Yii::app()->request->getPost('site'));
             break;
     }
     if (Yii::app()->request->getPost('object') == 'poster') {
         //редагуєм постер
         $poster = new Image();
         $exist = $poster->findByAttributes(array('table' => 'singer', 'row_id' => $row_id));
         if ($exist) {
             $poster = $exist;
             $new = false;
         } else {
             $new = true;
         }
         $poster->image = CUploadedFile::getInstance($poster, 'image');
         $poster->table = 'singer';
         $poster->type_id = '3';
         $poster->row_id = $row_id;
         if ($image_name = $poster->Add($new)) {
             echo CJSON::encode(array('part' => CHtml::image('/images/singer/' . $image_name, 'постер', array('class' => 'singer_poster_image', 'title' => "Постер Друга ріка")), 'status' => 'success', 'singer_id' => $row_id));
             Yii::app()->end();
         } else {
             echo CJSON::encode(array('part' => CHtml::textField('ERROR', ''), 'status' => $status));
             Yii::app()->end();
         }
     }
     if (Yii::app()->request->getPost('object') == 'style') {
         //редагуєм стилі
         $style_id = explode(',', Yii::app()->request->getPost('id'));
         $exist = Singer_style::model()->selectBySingerId($model->id);
         $parent = Style::model()->getNewParent($style_id, $exist);
         //error_log(var_export($parent,1));
         if ($parent) {
             foreach ($parent as $key => $id) {
                 if (!in_array($id, $style_id)) {
                     $style_id[] = $id;
                 }
             }
         }
         foreach ($style_id as $i => $id) {
             if (in_array($id, $exist)) {
                 unset($style_id[$id]);
                 continue;
             }
             $style[$i] = new Singer_style();
             $style[$i]->singer_id = $model->id;
             $style[$i]->style_id = $id;
         }
         if (isset($style)) {
             $transaction = Yii::app()->db->beginTransaction();
             try {
                 foreach ($style as $i => $item) {
                     $item->save(false);
                 }
                 $transaction->commit();
             } catch (Exception $e) {
                 $transaction->rollback();
                 echo CJSON::encode(array('status' => 'error'));
                 Yii::app()->end();
             }
         }
         echo CJSON::encode(array('status' => 'success', 'singer_id' => $row_id));
         Yii::app()->end();
     }
 }