Exemple #1
0
 public function parserGroups($groups_sxe, $parent = null)
 {
     foreach ($groups_sxe as $item) {
         $group = ShopGroups::findOne(['verification_code' => $item->{'Ид'}]);
         $link = $group && $group->links_id ? Links::findOne($group->links_id) : new Links();
         $translit = new Translit();
         $link->categories_id = Yii::$app->params['shop']['categoriesId'];
         $link->parent = $parent;
         $link->anchor = strval(isset($item->{'НаименованиеНаСайте'}) && $item->{'НаименованиеНаСайте'} ? $item->{'НаименованиеНаСайте'} : $item->{'Наименование'});
         $link->name = isset($link->id) ? $translit->slugify($link->anchor, $link->tableName(), 'name', '-', $link->id) : $translit->slugify($link->anchor, $link->tableName(), 'name', '-', null);
         $link->level = $parent !== null ? Links::findOne($parent)->level + 1 : 1;
         $link->url = (new Links())->getPrefixUrl(Yii::$app->params['shop']['groupUrlPrefix'], $link->level, $parent) . '/' . $link->name;
         $link->child_exist = 1;
         $link->seq = isset($link->id) ? $link->seq : Links::findLastSequence(Yii::$app->params['shop']['categoriesId'], $parent) + 1;
         $link->title = isset($link->id) ? $link->title : $link->anchor;
         $link->created_at = isset($link->id) ? $link->created_at : time();
         $link->updated_at = time();
         $link->state = $item->{'НеПубликуетсяНаСайте'} == 'истина' ? 0 : 1;
         $link->layouts_id = Yii::$app->params['shop']['group_layouts_id'];
         $link->views_id = Yii::$app->params['shop']['goods_views_id'];
         $link->save();
         if ($item->{'Картинки'} && $item->{'Картинки'}->{'Картинка'}) {
             $this->addImage($item->{'Картинки'}->{'Картинка'}, Yii::$app->params['shop']['gallery']['group'], $link->id);
         }
         if (!Contents::findOne(['links_id' => $link->id])) {
             $content = new Contents();
             $content->links_id = $link->id;
             $content->seq = 1;
             $content->save();
         }
         if (!$group) {
             $group = new ShopGroups();
             $group->verification_code = strval($item->{'Ид'});
         }
         $group->links_id = $link->id;
         $group->name = strval($item->{'Наименование'});
         $group->save();
         $this->shop_groups[] = $group;
         ShopGoods::updateAll(['state' => 0], ['shop_groups_id' => $group->id]);
         if ($item->{'Группы'}->{'Группа'}) {
             $this->parserGroups($item->{'Группы'}->{'Группа'}, $link->id);
         }
     }
     return true;
 }