appendTo() public method

public appendTo ( Suin\RSSWriter\ChannelInterface $channel )
$channel Suin\RSSWriter\ChannelInterface
Beispiel #1
0
 /**
  * Display rss feeds from content category
  * @return string
  * @throws ForbiddenException
  */
 public function actionRss()
 {
     $path = $this->request->getPathWithoutControllerAction();
     $configs = $this->getConfigs();
     // build model data
     $model = new EntityCategoryList($path, $configs, 0);
     // remove global layout
     $this->layout = null;
     // check if rss display allowed for this category
     if ((int) $model->category['configs']['showRss'] !== 1) {
         throw new ForbiddenException(__('Rss feed is disabled for this category'));
     }
     // initialize rss feed objects
     $feed = new Feed();
     $channel = new Channel();
     // set channel data
     $channel->title($model->category['title'])->description($model->category['description'])->url(App::$Alias->baseUrl . '/content/list/' . $model->category['path'])->appendTo($feed);
     // add content data
     if ($model->getContentCount() > 0) {
         foreach ($model->items as $row) {
             $item = new Item();
             // add title, short text, url
             $item->title($row['title'])->description($row['text'])->url(App::$Alias->baseUrl . $row['uri']);
             // add poster
             if ($row['thumb'] !== null) {
                 $item->enclosure(App::$Alias->scriptUrl . $row['thumb'], $row['thumbSize'], 'image/jpeg');
             }
             // append response to channel
             $item->appendTo($channel);
         }
     }
     // define rss read event
     App::$Event->run(static::EVENT_RSS_READ, ['model' => $model, 'feed' => $feed, 'channel' => $channel]);
     // render response from feed object
     return $feed->render();
 }
$blogCommentChannel->url('https://blog.jacobemerick.com');
// todo depends on env
$blogCommentChannel->appendTo($blogCommentFeed);
$query = "\n    SELECT `comment_meta`.`id`, `comment_meta`.`date`, `comment`.`body`, `commenter`.`name`,\n           `post`.`title`, `post`.`category`, `post`.`path`\n    FROM `jpemeric_comment`.`comment_meta`\n    INNER JOIN `jpemeric_comment`.`comment` ON `comment`.`id` = `comment_meta`.`comment`\n    INNER JOIN `jpemeric_comment`.`commenter` ON `commenter`.`id` = `comment_meta`.`commenter` AND\n                                                 `commenter`.`trusted` = :trusted_commenter\n    INNER JOIN `jpemeric_comment`.`comment_page` ON `comment_page`.`id` = `comment_meta`.`comment_page` AND\n                                                    `comment_page`.`site` = :comment_site\n    INNER JOIN `jpemeric_blog`.`post` ON `post`.`path` = `comment_page`.`path` AND\n                                         `post`.`display` = :display_post\n    WHERE `comment_meta`.`display` = :active_comment\n    ORDER BY `comment_meta`.`date` DESC";
$bindings = ['trusted_commenter' => 1, 'comment_site' => 2, 'display_post' => 1, 'active_comment' => 1];
$activeBlogComments = $db->getRead()->fetchAll($query, $bindings);
foreach ($activeBlogComments as $blogComment) {
    $blogCommentItem = new Item();
    $blogCommentItem->title("Comment on '{$blogComment['title']}' from {$blogComment['name']}");
    $url = "https://blog.jacobemerick.com/{$blogComment['category']}/{$blogComment['path']}/";
    $url .= "#comment-{$blogComment['id']}";
    $blogCommentItem->url($url);
    $blogCommentItem->guid($url, true);
    $description = $blogComment['body'];
    $description = strip_tags($description);
    $description = strtok($description, "\n");
    if (strlen($description) > 250) {
        $description = wordwrap($description, 250);
        $description = strtok($description, "\n");
        if (substr($description, -1) != '.') {
            $description .= '…';
        }
    }
    $description = html_entity_decode($description);
    $description = trim($description);
    $blogCommentItem->description($description);
    $pubDate = new DateTime($blogComment['date']);
    $blogCommentItem->pubDate($pubDate->getTimestamp());
    $blogCommentItem->appendTo($blogCommentChannel);
}
$buildFeed($blogCommentFeed, 'blog', 'rss-comments');
Beispiel #3
0
    $channel->title('Wurst update status');
    $channel->description("Uni-Hamburg server");
    $channel->url('http://zbh.uni-hamburg.de');
    $channel->appendTo($feed);
    $transformerCategory = new RecordToCategoryTransformer();
    $transformerTitle = new RecordToTitleTransformer($transformerCategory);
    $transformerDescription = new RecordToDescriptionTransformer($app['twig']);
    foreach ($app['wurst.history']->collection() as $id => $element) {
        $item = new Item();
        $item->author("wurst update");
        $item->url("http://{$SERVER_ROOT_SCRIPT}/details/{$id}");
        $item->pubDate($element->getDate());
        $item->title($transformerTitle->transform($element));
        $item->category($transformerCategory->transform($element));
        $item->description($transformerDescription->transform($element));
        $item->appendTo($channel);
    }
    return new Response($feed, 200);
});
/**
 * Method to show details for given record in rss stream
 *
 * @todo ids for all records are not unique,
 * @todo so it may be a problem but this situation is not so probable
 * @todo we can just ignore that, but it should be changed for good
 *      
 */
$app->get('/details/{unique}', function (Request $request, $unique) use($app) {
    assert($collection = $app['wurst.history']->collection(), "History can not be empty");
    assert($element = isset($collection[$unique]) ? $collection[$unique] : null, "Unknown record index");
    return $app['twig']->render('record.html.twig', array('element' => $element));