52 lines
1.5 KiB
PHP
52 lines
1.5 KiB
PHP
<?php
|
|
|
|
class Helper
|
|
{
|
|
|
|
public static function boolval($var)
|
|
{
|
|
return (bool) $var;
|
|
}
|
|
|
|
public static function replaceLinks($string, $linkTemplate = '/page/point/id/')
|
|
{
|
|
preg_match_all("(\[#(\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] : '<span class="glyphicon glyphicon-link"></span>';
|
|
|
|
if ($linkId) {
|
|
$linkPoint = Point::model()->getByPK($linkId);
|
|
if ($linkPoint->id) {
|
|
$linkPoint->name = str_replace('"', 'ʺ', $linkPoint->name);
|
|
$string = str_replace($link, '<a href="' . $linkTemplate . $linkId . '" title="' . $linkPoint->name . '">' . $linkName . '</a>', $string);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return $string;
|
|
}
|
|
|
|
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, 97, 'UTF-8') . '...';
|
|
$og['site_name'] = 'WikiPoints: Лучшие выходные - это выходные в путешествии!';
|
|
$og['type'] = 'website';
|
|
$og['url'] = 'http://wikipoints.ru/?point=' . $point->id;
|
|
$og['image'] = $point->getImg('middle');
|
|
|
|
return $og;
|
|
}
|
|
|
|
}
|