Ejemplo n.º 1
0
 public function up()
 {
     require_once \Yii::getAlias('@csRoot/services/simplehtmldom_1_5/simple_html_dom.php');
     foreach (\app\models\HD::query()->all() as $item) {
         echo $item['title'] . ' => ';
         $doc = str_get_html($item['content']);
         $p = $doc->find('p');
         $fields = [];
         if (count($p) > 0) {
             $sub_type = trim($p[0]->plaintext);
             $fields['sub_type'] = $sub_type;
             $items = $doc->find('select/option');
             $new = [];
             foreach ($items as $i) {
                 $new[] = [$item['id'], trim($i->attr['value']), trim($i->plaintext)];
             }
             if (count($new) > 0) {
                 \app\models\HDtown::batchInsert(['country_id', 'name', 'title'], $new);
             }
         } else {
             $i = $doc->find('input[name="city"]');
             \app\models\HDtown::insert(['country_id' => $item['id'], 'name' => trim($i[0]->attr['value'])]);
         }
         $i = $doc->find('input[name="country_en"]');
         if (count($i) > 0) {
             $fields['name'] = $i[0]->attr['value'];
         }
         if (count($fields)) {
             (new \app\models\HD($item))->update($fields);
         }
         echo 'ok' . "\n";
     }
 }
Ejemplo n.º 2
0
 public function action()
 {
     // подготавливаю данные
     $country = HD::find($this->country)->getField('name');
     $town = HDtown::find($this->town)->getField('name');
     $datetime = $this->date->format('Y-m-d') . ' ' . $this->time;
     // получаю данные Дизайна Человека
     $extractor = new \app\modules\HumanDesign\calculate\YourHumanDesignRu();
     $data = $extractor->calc(new \DateTime($datetime), $country, $town);
     // сохраняю картинку
     $url = new \cs\services\Url($data->image);
     $path = new SitePath('/upload/HumanDesign');
     $path->add([Yii::$app->user->id, 8, $url->getExtension()]);
     $path->write($url->read());
     $data->image = $path->getPath();
     // обновляю пользовтельские данные
     /** @var \app\models\User $user */
     $user = Yii::$app->user->identity;
     $fields = ['human_design' => $data->getJson(), 'birth_date' => $this->date->format('Y-m-d'), 'birth_time' => $this->time . ':00', 'birth_country' => $this->country, 'birth_town' => $this->town];
     $user->update($fields);
     return true;
 }
Ejemplo n.º 3
0
 /**
  * Возвращает место рождения в виде строки
  *
  * @return string
  */
 public function getBirthPlace()
 {
     $c = $this->getField('birth_country');
     $t = $this->getField('birth_town');
     $arr = [];
     if ($c) {
         $country = HD::find($c);
         if ($country) {
             $arr[] = $country->getField('title');
         }
     }
     if ($t) {
         $town = HDtown::find($t);
         if ($town) {
             $arr[] = $town->getField('title');
         }
     }
     if (count($arr) > 0) {
         return join(', ', $arr);
     } else {
         return '';
     }
 }
Ejemplo n.º 4
0
JS
);
    $form = ActiveForm::begin(['id' => 'contact-form', 'enableAjaxValidation' => true]);
    ?>

                    <?php 
    echo $model->field($form, 'date');
    ?>
                    <?php 
    echo $model->field($form, 'time');
    ?>
                    <?php 
    echo $model->field($form, 'country')->dropDownList(\yii\helpers\ArrayHelper::map(\app\models\HD::query()->select('id,title')->orderBy(['title' => SORT_ASC])->all(), 'id', 'title'));
    ?>
                    <?php 
    echo $model->field($form, 'town')->dropDownList(\yii\helpers\ArrayHelper::merge([0 => 'Ничего не выбрано'], \yii\helpers\ArrayHelper::map(\app\models\HDtown::query(['country_id' => $model->country])->select('id,title')->orderBy(['title' => SORT_ASC])->all(), 'id', 'title')));
    ?>

                    <div class="form-group">
                        <hr>
                        <?php 
    echo Html::submitButton('Далее', ['class' => 'btn btn-primary', 'name' => 'contact-button', 'style' => 'width:100%', 'id' => 'buttonNext']);
    ?>
                    </div>
                    <?php 
    ActiveForm::end();
    ?>
                </div>
                <!--                /Форма подключения дизайна человека -->

            <?php 
Ejemplo n.º 5
0
 /**
  * AJAX
  *
  * REQUEST:
  * - id - int - идентификатор
  *
  * @return array
  */
 public function actionProfile_human_design_ajax()
 {
     $id = self::getParam('id');
     $item = HD::find($id);
     $items = HDtown::query(['country_id' => $id])->select(['id', 'title'])->all();
     return self::jsonSuccess(['item' => ['sub_type' => $item->getField('sub_type')], 'items' => $items]);
 }