67 lines
2.0 KiB
PHP
67 lines
2.0 KiB
PHP
<?php
|
|
namespace Grav\Plugin;
|
|
|
|
use Grav\Common\Page\Page;
|
|
use Grav\Common\Plugin;
|
|
|
|
class TwittyPlugin extends Plugin
|
|
{
|
|
private $code = '<div class="container" align=center><a class="twitter-timeline" href="https://twitter.com/TWITTYNAME" data-widget-id="542690156990697473">Tweets de @TWITTYNAME</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?"http":"https";if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></div>';
|
|
|
|
public static function getSubscribedEvents()
|
|
{
|
|
return [
|
|
'onPluginsInitialized' => ['onPluginsInitialized', 0]
|
|
];
|
|
}
|
|
|
|
|
|
|
|
//public function onPluginsInitialized(Event $event)
|
|
public function onPluginsInitialized()
|
|
{
|
|
$this->enable([
|
|
'onPageInitialized' => ['onPageInitialized', 0]
|
|
]);
|
|
}
|
|
|
|
public function onPageInitialized()
|
|
{
|
|
$this->mergeConfig($this->grav['page']);
|
|
if ( $this->config->get('plugins.twitty.enabled') ) {
|
|
$page = $this->grav['page'];
|
|
$twig = $this->grav['twig'];
|
|
$uri = $this->grav['uri'];
|
|
$options = $this->config->get('plugins.twitty');
|
|
$twittyUsername = $this->config->get('plugins.twitty.twittyUsername');
|
|
|
|
//Read page and replace
|
|
$page->content($this->processHtml($page,$twittyUsername));
|
|
}
|
|
}
|
|
|
|
private function processHtml($page,$twittyUsername)
|
|
{
|
|
$content = $page->content();
|
|
|
|
$replace = array('TWITTYTEXT'=>$this->code,'TWITTYNAME'=>$twittyUsername);
|
|
return str_replace(array_keys($replace),array_values($replace), $content);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private function mergeConfig( Page $page )
|
|
{
|
|
$defaults = (array) $this->config->get('plugins.twitty');
|
|
if ( isset($page->header()->twitty) ) {
|
|
$this->config->set('plugins.twitty.enabled', true);
|
|
} else {
|
|
$this->config->set('plugins.twitty.enabled', false);
|
|
}
|
|
}
|
|
|
|
}
|
|
?>
|