Ejemplo n.º 1
0
 function registerEventHooks()
 {
     parent::registerEventHooks();
     Idno::site()->syndication()->registerService('indiesyndicate', function () {
         return true;
     }, ['note', 'article', 'image', 'like', 'share']);
     Idno::site()->addEventHook('user/auth/success', function (Event $event) {
         $is = (array) Idno::site()->session()->currentUser()->indiesyndicate;
         foreach ($is as $url => $details) {
             Idno::site()->syndication()->registerServiceAccount('indiesyndicate', $url, $details['name'], $details);
         }
     });
     Idno::site()->addEventHook('post/note/indiesyndicate', function (Event $event) {
         $eventdata = $event->data();
         $sa = $eventdata['syndication_account'];
         $object = $eventdata['object'];
         if ($this->doWebmention($sa, $object)) {
             return;
         }
         $details = $this->getAccountDetails($sa);
         $style = isset($details['style']) ? $details['style'] : 'default';
         $params = ['h' => 'entry', 'content' => $object->body, 'url' => $object->getSyndicationURL()];
         if (is_array($object->inreplyto) && !empty($object->inreplyto)) {
             $params['in-reply-to'] = $object->inreplyto[0];
         }
         $this->doMicropub($sa, $object, $params);
     });
     Idno::site()->addEventHook('post/image/indiesyndicate', function (Event $event) {
         $eventdata = $event->data();
         $sa = $eventdata['syndication_account'];
         $object = $eventdata['object'];
         if ($this->doWebmention($sa, $object)) {
             return;
         }
         $details = $this->getAccountDetails($sa);
         $style = isset($details['style']) ? $details['style'] : 'default';
         if ($style === 'microblog') {
             // combine name and content for twitter
             $content = '';
             if ($object->title) {
                 $content .= strip_tags($object->title);
             }
             if ($object->body) {
                 if (!empty($content)) {
                     $content .= "\n";
                 }
                 $content .= trim(strip_tags($object->body));
             }
             $params = ['h' => 'entry', 'content' => $content, 'url' => $object->getSyndicationURL()];
         } else {
             $params = ['h' => 'entry', 'name' => $object->title ? strip_tags($object->title) : '', 'content' => $object->body ? strip_tags($object->body) : '', 'url' => $object->getSyndicationURL()];
         }
         foreach ($object->getAttachments() as $attachment) {
             if ($file = \Idno\Entities\File::getByID($attachment['_id'])) {
                 $photofile = tempnam(sys_get_temp_dir(), 'indiesyndicate_photo');
                 $file->write($photofile);
                 $params['photo'] = '@' . $photofile;
                 break;
             }
         }
         $this->doMicropub($sa, $object, $params);
         if (isset($photofile)) {
             unlink($photofile);
         }
     });
     Idno::site()->addEventHook('post/article/indiesyndicate', function (Event $event) {
         $eventdata = $event->data();
         $sa = $eventdata['syndication_account'];
         $object = $eventdata['object'];
         if ($this->doWebmention($sa, $object)) {
             return;
         }
         $details = $this->getAccountDetails($sa);
         $style = isset($details['style']) ? $details['style'] : 'default';
         if ($style === 'microblog') {
             $params = ['h' => 'entry', 'content' => strip_tags($object->title) . ': ' . $object->getSyndicationURL(), 'url' => $object->getSyndicationURL()];
         } else {
             $params = ['h' => 'entry', 'name' => strip_tags($object->title), 'content' => strip_tags($object->body), 'url' => $object->getSyndicationURL()];
         }
         $this->doMicropub($sa, $object, $params);
     });
     Idno::site()->addEventHook('post/like/indiesyndicate', function (Event $event) {
         $eventdata = $event->data();
         $sa = $eventdata['syndication_account'];
         $object = $eventdata['object'];
         if ($this->doWebmention($sa, $object)) {
             return;
         }
         $details = $this->getAccountDetails($sa);
         $style = isset($details['style']) ? $details['style'] : 'default';
         $params = ['h' => 'entry', 'like-of' => $object->likeof, 'url' => $object->getSyndicationURL()];
         $this->doMicropub($sa, $object, $params);
     });
     Idno::site()->addEventHook('post/repost/indiesyndicate', function (Event $event) {
         $eventdata = $event->data();
         $sa = $eventdata['syndication_account'];
         $object = $eventdata['object'];
         if ($this->doWebmention($sa, $object)) {
             return;
         }
         $details = $this->getAccountDetails($sa);
         $style = isset($details['style']) ? $details['style'] : 'default';
         $params = ['h' => 'entry', 'repost-of' => $object->repostof, 'url' => $object->getSyndicationURL()];
         $this->doMicropub($sa, $object, $params);
     });
 }
Ejemplo n.º 2
0
Archivo: Main.php Proyecto: hank/Known
 function registerContentTypes()
 {
     parent::registerContentTypes();
     \Idno\Common\ContentType::register($this->getNamespace() . '\\RepliesContentType');
 }
Ejemplo n.º 3
0
 function init()
 {
     parent::init();
     $this->brevity = new Brevity();
 }