public function run() { $tags = Style::model()->findStyleWeights($this->limit, $this->singer_id); foreach ($tags as $tag => $options) { //$color = '#'.dechex(rand(100, 255)).dechex(rand(0, 200)).dechex(rand(50, 100)); $text = CHtml::encode($tag); //$id_hidden = CHtml::hiddenField('style_'.$options['id'], $options['id']); //$content = $link.$id_hidden; echo CHtml::tag('span', array('id' => $options['id'], 'style' => "font-size:{$options['weight']}pt; color: #2E3CA3; cursor: pointer;"), $text) . "\n"; } }
public function selectBySingerId($singer_id) { $criteria = new CDbCriteria(); $criteria->select = '*'; $criteria->condition = 'id=:singer_id'; $criteria->params = array(':singer_id' => $singer_id); $result = Singer::model()->find($criteria); $image = Image::model()->selectByRow('singer', $singer_id); $style = Style::model()->selectBySingerId($singer_id); $result = $result['attributes']; if ($image) { $result['path'] = $image->path; } if ($style) { $result['style'] = $style; } return $result; }
public function actionGenre() { // error_log('genre_id ' . Yii::app()->request->getPost('genre')); Filter::setGenreId(Yii::app()->request->getPost('genre')); $tagList = ''; if (Filter::getGenreId() != 0) { $data = Style::model()->selectStyleAllParameters(); $tagList .= CHtml::tag('option', array('value' => $data[Filter::getGenreId()]['style_id'], 'selected' => true), CHtml::encode($data[Filter::getGenreId()]['name']), true) . "\n"; } else { $data = Style::model()->selectStyle(); //Filter::setStyleId(0); foreach ($data as $key => $value) { if (Filter::getStyleId() == $key) { $tagList .= CHtml::tag('option', array('value' => $key, 'selected' => true), CHtml::encode($value), true) . "\n"; } else { $tagList .= CHtml::tag('option', array('value' => $key), CHtml::encode($value), true) . "\n"; } } $this->responceAjax($tagList); Yii::app()->end(); /*$nameStyle=$data[0]; echo CHtml::tag('option', array('value'=>0), CHtml::encode($data[0]), true) . "\n";*/ } //error_log(print_r($data,true)); $name = ''; //echo CHtml::tag('option', array('value'=>0, 'selected'=>true), CHtml::encode('All genre'), true) . "\n"; $nameStyle = $data[Filter::getGenreId()]['name']; // error_log($nameStyle); Filter::setStyleId($data[Filter::getGenreId()]['style_id']); //error_log(Filter::getStyleId()); foreach ($data as $key => $value) { if ($name == $value['name'] || $nameStyle == $value['name']) { continue; } $tagList .= CHtml::tag('option', array('value' => $value['style_id']), CHtml::encode($value['name']), true) . "\n"; $name = $value['name']; } $this->responceAjax($tagList); }
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; }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer the ID of the model to be loaded */ public function loadModel($id) { $model = Style::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
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(); } }