ADD OG для статей
This commit is contained in:
parent
bc987157f6
commit
450196b1c6
|
|
@ -123,4 +123,18 @@ class Helper
|
||||||
return $og;
|
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, 97, '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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,4 +60,53 @@ class Markdown
|
||||||
$rep = '<a href="$0" title="$0" target="_blank">$1</a>';
|
$rep = '<a href="$0" title="$0" target="_blank">$1</a>';
|
||||||
return preg_replace($pr, $rep, $string);
|
return preg_replace($pr, $rep, $string);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static function getClear($string)
|
||||||
|
{
|
||||||
|
// Headers
|
||||||
|
for ($index = 3; $index > 0; $index--) {
|
||||||
|
|
||||||
|
$pr = '/(^#{' . $index . '} .{1,})/m';
|
||||||
|
|
||||||
|
preg_match_all($pr, $string, $headers);
|
||||||
|
|
||||||
|
if (isset($headers[0][0])) {
|
||||||
|
foreach ($headers[0] as $header) {
|
||||||
|
$hI = $index+1;
|
||||||
|
$string = str_replace($header, '', $string);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bold & Italic
|
||||||
|
$pr = '(\*{1,3}(.+?)\*{1,3})';
|
||||||
|
$rep = '$1';
|
||||||
|
$string = preg_replace($pr, $rep, $string);
|
||||||
|
|
||||||
|
// Uderline
|
||||||
|
$pr = '(\_{1}(.+?)\_{1})';
|
||||||
|
$rep = '$1';
|
||||||
|
$string = preg_replace($pr, $rep, $string);
|
||||||
|
|
||||||
|
// Images
|
||||||
|
$pr = '(\[img[\|]#(\d+)\])';
|
||||||
|
$rep = ' ';
|
||||||
|
$string = preg_replace($pr, $rep, $string);
|
||||||
|
|
||||||
|
// \n & \r
|
||||||
|
$string = str_replace(array("\n","\r"), ' ', $string);
|
||||||
|
|
||||||
|
// multi-space
|
||||||
|
$pr = '(\s{2,})';
|
||||||
|
$rep = ' ';
|
||||||
|
$string = preg_replace($pr, $rep, $string);
|
||||||
|
|
||||||
|
// URL
|
||||||
|
$pr = '((https{0,1}:\/\/[\da-z\.-]+\.[a-z]{2,6})[\/\w\?=&#%+\.,-]*\/?)';
|
||||||
|
$rep = '<a href="$0" title="$0" target="_blank">$1</a>';
|
||||||
|
$string = preg_replace($pr, $rep, $string);
|
||||||
|
|
||||||
|
return $string;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -199,7 +199,7 @@ class PageController extends Controller
|
||||||
self::render('article.php', array(
|
self::render('article.php', array(
|
||||||
'article' => $article,
|
'article' => $article,
|
||||||
'randomPoint' => Point::model()->getRandom(),
|
'randomPoint' => Point::model()->getRandom(),
|
||||||
// 'og' => Helper::buildOG($point),
|
'og' => Helper::buildArticleOG($article),
|
||||||
// 'user' => App::$user,
|
// 'user' => App::$user,
|
||||||
));
|
));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -15,4 +15,20 @@ class Article extends Model
|
||||||
return new self();
|
return new self();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getImg($size = 'small')
|
||||||
|
{
|
||||||
|
$imgId = (int)$this->photoId;
|
||||||
|
if ($imgId) {
|
||||||
|
|
||||||
|
$img = ArticlePhotos::model()->getByPK($imgId);
|
||||||
|
|
||||||
|
if ($img) {
|
||||||
|
return '/photos/articles/' . $size . '/' . $img->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return '/img/logo.png';
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,15 +16,4 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- hr/>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<a href="/page/point/id/<?= $randomPoint->id ?>" style="float: left; margin: 0 20px 0 0;"><img src="<?= $randomPoint->getImg() ?>" style="width: 200px;"/></a>
|
|
||||||
<h3 style="margin-top: 0;">Это интересно: <?= $randomPoint->name ?></h3>
|
|
||||||
<p>
|
|
||||||
<?= mb_substr($randomPoint->description, 0, 400, 'UTF-8') ?>...
|
|
||||||
<a class="" href="/page/point/id/<?= $randomPoint->id ?>" role="button"><nobr> читать далее »</nobr></a>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div -->
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue