public function up()
 {
     $this->execute('ALTER TABLE galaxysss_1.gs_unions_office ADD category VARCHAR(100) NULL;');
     $path = Yii::getAlias('@app/app/assets/1.xml');
     $data = file_get_contents($path);
     $x = new \DOMDocument();
     $x->loadXML($data);
     $ret = [];
     /** @var \DOMElement $element */
     foreach ($x->documentElement->childNodes as $element) {
         if ($element instanceof \DOMElement) {
             $data = $element->getAttribute('data-jmapping');
             $pos = Str::pos('lat', $data);
             $pos1 = Str::pos('lng', $data);
             $lat = Str::sub($data, $pos + 5, $pos1 - $pos - 7);
             $pos = Str::pos('lng', $data);
             $pos1 = Str::pos('category', $data);
             $lng = Str::sub($data, $pos + 5, $pos1 - $pos - 8);
             $pos = Str::pos('category', $data);
             $category = Str::sub($data, $pos + 11);
             $category = Str::sub($category, 0, Str::length($category) - 2);
             $category = explode('|', $category);
             $list = $element->getElementsByTagName("p");
             if ($list->length == 1) {
                 /** @var \DOMElement $content */
                 $content = $list->item(0);
                 $content = $x->saveXML($content);
                 $content = Str::sub($content, 3);
                 $content = Str::sub($content, 0, Str::length($content) - 4);
                 $content = explode('<br/>', $content);
                 $ret2 = [];
                 foreach ($content as $item) {
                     if (StringHelper::startsWith($item, '<b>')) {
                         $item = Str::sub($item, 3);
                         $item = Str::sub($item, 0, Str::length($item) - 4);
                     }
                     $ret2[] = trim($item);
                 }
                 $name = $ret2[0];
                 array_shift($ret2);
                 if (StringHelper::startsWith($ret2[count($ret2) - 1], 'Открытие')) {
                     $ret2 = array_reverse($ret2);
                     array_shift($ret2);
                     $ret2 = array_reverse($ret2);
                 }
                 if (StringHelper::startsWith($ret2[count($ret2) - 1], '"ВкусВилл')) {
                     $ret2 = array_reverse($ret2);
                     array_shift($ret2);
                     $ret2 = array_reverse($ret2);
                 }
                 $address = $ret2[0];
                 array_shift($ret2);
                 $ret[] = [392, $address, $name, $lat, $lng, join('|', $category), Html::tag('p', join('<br/>', $ret2))];
             }
         }
     }
     $this->batchInsert('gs_unions_office', ['union_id', 'point_address', 'name', 'point_lat', 'point_lng', 'category', 'content'], $ret);
 }
Beispiel #2
0
 /**
  * Возвращает название статьи
  *
  * @return string
  */
 public function getHeader()
 {
     $h4 = $this->getDocument()->find('div.rt-article/.module-content/h4')[0];
     $name = $h4->plaintext;
     if (Str::sub($name, 0, 1) == '«') {
         $name = Str::sub($name, 1);
     }
     if (Str::sub($name, Str::length($name) - 1, 1) == '»') {
         $name = Str::sub($name, 0, Str::length($name) - 1);
     }
     $name = Str::sub($name, 0, 1) . Str::toLower(Str::sub($name, 1));
     return $name;
 }
Beispiel #3
0
 public function getContent()
 {
     if (is_null($this->content)) {
         $arr = $this->getContentAsArray();
         $ret = [];
         $ret[] = Html::tag('p', Html::img($this->getImage(), ['width' => '100%', 'class' => 'thumbnail']));
         foreach ($arr as $item) {
             if (StringHelper::endsWith($item, "\n")) {
                 $item = Str::sub($item, 0, Str::length($item) - 1);
             }
             if (StringHelper::endsWith($item, "\r")) {
                 $item = Str::sub($item, 0, Str::length($item) - 1);
             }
             $ret[] = Html::tag('p', $item);
         }
         $this->content = join("\r\n", $ret);
     }
     return $this->content;
 }
Beispiel #4
0
 /**
  * @return array
  * [[
  *     'name'
  *     'url'
  * ],...]
  */
 public function getItems()
 {
     $doc = $this->getDocument($this->url);
     $ret = [];
     foreach ($doc->find('.rt-leading-articles/.rt-article') as $div) {
         $a = $div->find('.module-title/a')[0];
         $url = 'http://www.ronnastar.com' . $a->attr['href'];
         $h4 = $div->find('.module-content/h4')[0];
         $name = $h4->plaintext;
         if (Str::sub($name, 0, 1) == '«') {
             $name = Str::sub($name, 1);
         }
         if (Str::sub($name, Str::length($name) - 1, 1) == '»') {
             $name = Str::sub($name, 0, Str::length($name) - 1);
         }
         $name = Str::sub($name, 0, 1) . Str::toLower(Str::sub($name, 1));
         $ret[] = ['name' => $name, 'url' => $url];
     }
     return $ret;
 }
Beispiel #5
0
 /**
  * @return array
  * [[
  *     'name'
  *     'url'
  * ],...]
  */
 public function getItems()
 {
     $doc = $this->getDocument($this->url);
     $ret = [];
     $c = 1;
     foreach ($doc->find('.wall_item') as $div) {
         if ($c > 1) {
             $url = 'https://vk.com' . $div->find('.wi_date')[0]->attr['href'];
             $html = $div->find('.pi_text')[0];
             $header = explode('..............................', $html->plaintext);
             $header = trim($header[0]);
             if (StringHelper::endsWith($header, '.')) {
                 $header = Str::sub($header, 0, Str::length($header) - 1);
             }
             $header = Str::toLower($header);
             $first = Str::toUpper(Str::sub($header, 0, 1));
             $header = $first . Str::sub($header, 1);
             $ret[] = ['name' => $header, 'url' => $url];
         }
         $c++;
     }
     return $ret;
 }
Beispiel #6
0
 /**
  * Создает краткое содержимое текста, которое может быть также и HTML
  *
  * @param string $text
  * @param int $len
  *
  * @return string plain text
  */
 public static function getMiniText($text, $len = 200)
 {
     $htmlSpecial = ['&nbsp;' => ' ', '&#8212;' => '—'];
     $strip = strip_tags($text);
     foreach ($htmlSpecial as $code => $replaceChar) {
         $strip = str_replace($code, $replaceChar, $strip);
     }
     $strip = trim($strip);
     if (Str::length($strip) > $len) {
         return Str::sub($strip, 0, $len) . ' ...';
     }
     return $strip;
 }
Beispiel #7
0
 /**
  * Возвращает название статьи
  *
  * @return string
  */
 public function getHeader()
 {
     $html = $this->getObjArticle();
     $header = explode('..............................', $html->plaintext);
     $header = trim($header[0]);
     if (StringHelper::endsWith($header, '.')) {
         $header = Str::sub($header, 0, Str::length($header) - 1);
     }
     $header = Str::toLower($header);
     $first = Str::toUpper(Str::sub($header, 0, 1));
     $header = $first . Str::sub($header, 1);
     return $header;
 }