Add document tags and hashtags to og:article:tag

This commit is contained in:
Kijin Sung 2018-03-15 12:22:43 +09:00
parent 7eed765ec5
commit e4fb4e1dbf
7 changed files with 39 additions and 2 deletions

View file

@ -523,11 +523,36 @@ class HTMLDisplayHandler
}
}
// Add tags and hashtags for articles.
if ($page_type === 'article')
{
$tags = array_unique(array_map('utf8_trim', explode(',', $oDocument->get('tags'))));
foreach ($tags as $tag)
{
if ($tag !== '')
{
Context::addOpenGraphData('og:article:tag', escape($tag, false));
}
}
if (config('seo.og_extract_hashtags'))
{
preg_match_all('/#([\pL\pN_]+)/u', strip_tags($oDocument->get('content')), $hashtags);
foreach ($hashtags[1] as $hashtag)
{
if (!in_array($hashtag, $tags))
{
Context::addOpenGraphData('og:article:tag', escape($hashtag, false));
}
}
}
}
// Add datetime for articles.
if ($page_type === 'article' && config('seo.og_use_timestamps'))
{
Context::addOpenGraphData('article:published_time', $oDocument->getRegdate('c'));
Context::addOpenGraphData('article:modified_time', $oDocument->getUpdate('c'));
Context::addOpenGraphData('og:article:published_time', $oDocument->getRegdate('c'));
Context::addOpenGraphData('og:article:modified_time', $oDocument->getUpdate('c'));
}
}

View file

@ -103,6 +103,7 @@ return array(
'og_enabled' => false,
'og_extract_description' => false,
'og_extract_images' => false,
'og_extract_hashtags' => false,
'og_use_timestamps' => false,
),
'mediafilter' => array(

View file

@ -924,6 +924,7 @@ class adminAdminController extends admin
Rhymix\Framework\Config::set('seo.og_enabled', $vars->og_enabled === 'Y');
Rhymix\Framework\Config::set('seo.og_extract_description', $vars->og_extract_description === 'Y');
Rhymix\Framework\Config::set('seo.og_extract_images', $vars->og_extract_images === 'Y');
Rhymix\Framework\Config::set('seo.og_extract_hashtags', $vars->og_extract_hashtags === 'Y');
Rhymix\Framework\Config::set('seo.og_use_timestamps', $vars->og_use_timestamps === 'Y');
// Save

View file

@ -596,6 +596,7 @@ class adminAdminView extends admin
Context::set('og_enabled', Rhymix\Framework\Config::get('seo.og_enabled'));
Context::set('og_extract_description', Rhymix\Framework\Config::get('seo.og_extract_description'));
Context::set('og_extract_images', Rhymix\Framework\Config::get('seo.og_extract_images'));
Context::set('og_extract_hashtags', Rhymix\Framework\Config::get('seo.og_extract_hashtags'));
Context::set('og_use_timestamps', Rhymix\Framework\Config::get('seo.og_use_timestamps'));
$this->setTemplateFile('config_seo');

View file

@ -239,6 +239,7 @@ $lang->og_extract_description = 'Extract Description from Document';
$lang->og_extract_description_fallback = 'Use general description only';
$lang->og_extract_images = 'Extract Images from Document';
$lang->og_extract_images_fallback = 'Use site default image only';
$lang->og_extract_hashtags = 'Extract Hashtags from Document';
$lang->og_use_timestamps = 'Include Timestamps';
$lang->autoinstall = 'EasyInstall';
$lang->last_week = 'Last Week';

View file

@ -235,6 +235,7 @@ $lang->og_extract_description = '본문에서 설명 추출';
$lang->og_extract_description_fallback = '모듈 또는 사이트 전체 설명만 사용';
$lang->og_extract_images = '본문에서 이미지 추출';
$lang->og_extract_images_fallback = '사이트 대표 이미지 사용';
$lang->og_extract_hashtags = '본문에서 해시태그 추출';
$lang->og_use_timestamps = '글 작성/수정 시각 표시';
$lang->autoinstall = '쉬운 설치';
$lang->last_week = '지난주';

View file

@ -63,6 +63,13 @@
<label for="og_extract_images_n" class="x_inline"><input type="radio" name="og_extract_images" id="og_extract_images_n" value="N" checked="checked"|cond="!$og_extract_images" /> {$lang->cmd_no} ({$lang->og_extract_images_fallback})</label>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label">{$lang->og_extract_hashtags}</label>
<div class="x_controls">
<label for="og_extract_hashtags_y" class="x_inline"><input type="radio" name="og_extract_hashtags" id="og_extract_hashtags_y" value="Y" checked="checked"|cond="$og_extract_hashtags" /> {$lang->cmd_yes}</label>
<label for="og_extract_hashtags_n" class="x_inline"><input type="radio" name="og_extract_hashtags" id="og_extract_hashtags_n" value="N" checked="checked"|cond="!$og_extract_hashtags" /> {$lang->cmd_no}</label>
</div>
</div>
<div class="x_control-group">
<label class="x_control-label">{$lang->og_use_timestamps}</label>
<div class="x_controls">