bludit/bl-plugins/disqus/plugin.php

83 lines
2.6 KiB
PHP
Raw Normal View History

2015-08-14 03:22:26 +02:00
<?php
class pluginDisqus extends Plugin {
public function init()
{
$this->dbFields = array(
2017-10-19 12:29:07 +02:00
'shortname'=>'',
'enablePages'=>false,
'enablePosts'=>true
2015-08-14 03:22:26 +02:00
);
}
public function form()
{
global $Language;
2018-07-02 00:24:53 +02:00
$html = '<div class="alert alert-primary" role="alert">';
$html .= $this->description();
$html .= '</div>';
$html .= '<div>';
2017-10-19 12:29:07 +02:00
$html .= '<label>'.$Language->get('disqus-shortname').'</label>';
$html .= '<input name="shortname" id="jsshortname" type="text" value="'.$this->getValue('shortname').'">';
2015-08-17 04:33:49 +02:00
$html .= '</div>';
2017-10-19 12:29:07 +02:00
$html .= '<div>';
$html .= '<label>'.$Language->get('enable-disqus-on-pages').'</label>';
$html .= '<select name="enablePages">';
$html .= '<option value="true" '.($this->getValue('enablePages')===true?'selected':'').'>'.$Language->get('enabled').'</option>';
$html .= '<option value="false" '.($this->getValue('enablePages')===false?'selected':'').'>'.$Language->get('disabled').'</option>';
$html .= '</select>';
$html .= '</div>';
$html .= '<div>';
$html .= '<label>'.$Language->get('enable-disqus-on-posts').'</label>';
$html .= '<select name="enablePosts">';
$html .= '<option value="true" '.($this->getValue('enablePosts')===true?'selected':'').'>'.$Language->get('enabled').'</option>';
$html .= '<option value="false" '.($this->getValue('enablePosts')===false?'selected':'').'>'.$Language->get('disabled').'</option>';
$html .= '</select>';
$html .= '</div>';
2015-08-14 03:22:26 +02:00
return $html;
}
public function pageEnd()
{
2017-07-29 00:08:19 +02:00
global $pages;
2017-10-19 12:29:07 +02:00
global $Url, $Page;
2017-07-29 00:08:19 +02:00
$page = $pages[0];
if (empty($page)) {
return false;
}
2018-07-02 00:24:53 +02:00
if ( !$Url->notFound() &&
2017-10-19 12:35:10 +02:00
( $Url->whereAmI()=='page' &&
2018-07-02 00:24:53 +02:00
(($this->getDbField('enablePosts') && $Page->status()=='published') ||
2017-10-19 12:35:10 +02:00
($this->getDbField('enablePages') && $Page->status()=='static'))
2018-07-02 00:24:53 +02:00
) &&
2017-10-19 12:29:07 +02:00
$page->allowComments() ) {
$html = '<div id="disqus_thread"></div>';
$html .= '<script type="text/javascript">
var disqus_config = function () {
2017-05-30 20:28:55 +02:00
this.page.url = "'.$page->permalink().'";
this.page.identifier = "'.$page->uuid().'";
};
(function() {
var d = document, s = d.createElement("script");
s.src = "https://'.$this->getValue('shortname').'.disqus.com/embed.js";
s.setAttribute("data-timestamp", +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
2017-05-30 20:28:55 +02:00
';
return $html;
2015-08-17 04:33:49 +02:00
}
2015-08-17 17:07:18 +02:00
return false;
2015-08-14 03:22:26 +02:00
}
2017-10-19 12:29:07 +02:00
}