\|](.*?)\])|(\[#(\d+)\]))", $string, $links); $links = isset($links[0]) ? $links[0] : FALSE; if ($links) { foreach ($links as $link) { $idAndLink = mb_substr($link, 2, -1); $delimiter = strpos($idAndLink, '|') === FALSE ? '>' : '|'; $idAndLink = explode($delimiter, $idAndLink); $linkId = $idAndLink[0]; $linkName = isset($idAndLink[1]) ? $idAndLink[1] : ''; if ($linkId) { $linkPoint = Point::model()->getByPK($linkId); if ($linkPoint && $linkPoint->id) { $linkTitle = str_replace('"', 'ʺ', $linkPoint->name); switch ($replaceType) { case 'html': $linkName = $linkName ? $linkName : ''; $string = str_replace($link, '' . $linkName . '', $string); break; case 'js': $linkName = $linkName ? $linkName : ''; $string = str_replace($link, '' . $linkName . '', $string); break; default: $string = str_replace($link, $linkName, $string); break; } } } } } return $string; } public static function replaceImgs($string, $replaceType = 'clear') { preg_match_all("(\[img[\|]#(\d+)\])", $string, $images); $images = isset($images[0]) ? $images[0] : FALSE; if ($images) { foreach ($images as $img) { $imgAndId = mb_substr($img, 2, -1); $imgAndId = explode('#', $imgAndId); $imgId = (int)$imgAndId[1]; $imgObj = ArticlePhotos::model()->getByPK($imgId); if ($imgObj->name) { switch ($replaceType) { case 'html': $imgObj->caption = $linkTitle = str_replace('"', 'ʺ', $imgObj->caption); $imgTag = '
'; $string = str_replace($img, $imgTag, $string); break; default: $imgTag = ''; $string = str_replace($img, $imgTag, $string); break; } } else { switch ($replaceType) { case 'html': $imgTag = '
'; $string = str_replace($img, $imgTag, $string); break; default: $imgTag = ''; $string = str_replace($img, $imgTag, $string); break; } } } } return $string; } public static function getFirstImg($string) { preg_match_all("(\[img[\|]#(\d+)\])", $string, $images); $images = isset($images[0]) ? $images[0] : FALSE; $img = isset($images[0]) ? $images[0] : FALSE; if ($img) { $imgId = (int) mb_substr($img, 6, -1); $imgObj = ArticlePhotos::model()->getByPK($imgId); return $imgObj->name ? (int)$imgObj->id : 0; } return 0; } public static function buildOG($point) { $og = array(); $og['title'] = str_replace('"', 'ʺ', $point->name) . ' [wikipoints.ru]'; $point->description = str_replace('"', 'ʺ', $point->description); $og['description'] = mb_substr($point->description, 0, 99, 'UTF-8') . '…'; $og['site_name'] = 'WikiPoints: Лучшие выходные - это выходные в путешествии!'; $og['type'] = 'website'; $og['url'] = 'http://wikipoints.ru/?point=' . $point->id; $og['image'] = $point->getImg('middle'); return $og; } public static function buildArticleOG($article) { $og = array(); $og['title'] = str_replace('"', 'ʺ', $article->title) . ' [wikipoints.ru]'; $article->text = Markdown::getClear(str_replace('"', 'ʺ', $article->text)); $og['description'] = mb_substr($article->text, 0, 99, 'UTF-8') . '…'; $og['site_name'] = 'WikiPoints: Лучшие выходные - это выходные в путешествии!'; $og['type'] = 'website'; $og['url'] = 'http://wikipoints.ru/page/article/id/' . $article->id; $og['image'] = $article->getImg('middle'); return $og; } }