function getContent() { if (!empty($this->arguments[0])) { $user = \Idno\Entities\User::getByHandle($this->arguments[0]); } if (empty($user)) { $this->noContent(); } // Users own their own profiles $this->setOwner($user); $types = 'Idno\\Entities\\ActivityStreamPost'; $search['verb'] = 'post'; $offset = (int) $this->getInput('offset'); $count = \Idno\Entities\ActivityStreamPost::countFromX($types, array('owner' => $user->getUUID())); $feed = \Idno\Entities\ActivityStreamPost::getFromX($types, array('owner' => $user->getUUID()), array(), \Idno\Core\site()->config()->items_per_page, $offset); $last_modified = $user->updated; if (!empty($feed) && is_array($feed)) { if ($feed[0]->updated > $last_modified) { $last_modified = $feed[0]->updated; } } $this->setLastModifiedHeader($last_modified); $t = \Idno\Core\site()->template(); $t->__(array('title' => $user->getTitle(), 'body' => $t->__(array('user' => $user, 'items' => $feed, 'count' => $count, 'offset' => $offset))->draw('entity/User/profile'), 'description' => 'The ' . \Idno\Core\site()->config()->title . ' profile for ' . $user->getTitle()))->drawPage(); }
function getContent() { $offset = (int) $this->getInput('offset'); $types = $this->getInput('types'); if (!empty($this->arguments[0])) { // If we're on the friendly content-specific URL if ($friendly_types = explode('/', $this->arguments[0])) { $types = []; // Run through the URL parameters and set content types appropriately foreach ($friendly_types as $friendly_type) { if ($content_type_class = \Idno\Common\ContentType::categoryTitleToClass($friendly_type)) { $types[] = $content_type_class; } } } } if (empty($types)) { $types = 'Idno\\Entities\\ActivityStreamPost'; $search = ['verb' => 'post']; } else { if (!is_array($types)) { $types = [$types]; } $types[] = '!Idno\\Entities\\ActivityStreamPost'; $search = []; } $count = \Idno\Entities\ActivityStreamPost::countFromX($types, []); $feed = \Idno\Entities\ActivityStreamPost::getFromX($types, $search, [], \Idno\Core\site()->config()->items_per_page, $offset); if (\Idno\Core\site()->session()->isLoggedIn()) { $create = \Idno\Common\ContentType::getRegistered(); } else { $create = false; } if (!empty(\Idno\Core\site()->config()->description)) { $description = \Idno\Core\site()->description; } else { $description = 'An independent social website, powered by idno.'; } $t = \Idno\Core\site()->template(); $t->__(array('title' => \Idno\Core\site()->config()->title, 'description' => $description, 'body' => $t->__(array('items' => $feed, 'contentTypes' => $create, 'offset' => $offset, 'count' => $count))->draw('pages/home')))->drawPage(); }
<p class="user-tbl"> <small><strong>Joined</strong><br><time datetime="<?php echo date('r', $user->created); ?> " class="dt-published"><?php echo date('r', $user->created); ?> </time></small> </p> </div> <div class="col-sm-2 col-xs-6"> <p class="user-tbl"> <small><strong>Last update posted</strong> <br> <?php if ($feed = \Idno\Entities\ActivityStreamPost::getFromX(null, ['owner' => $user->getUUID()], array(), 1, 0)) { ?> <time datetime="<?php echo date('r', $feed[0]->updated); ?> " class="dt-published"><?php echo date('r', $feed[0]->updated); ?> </time> <?php } else { ?> Never <?php } ?>
function getContent() { $query = $this->getInput('q'); $offset = (int) $this->getInput('offset'); $types = $this->getInput('types'); $friendly_types = array(); // Check for an empty site if (!\Idno\Entities\User::get()) { $this->forward(\Idno\Core\Idno::site()->config()->getURL() . 'begin/'); } if (!empty($this->arguments[0])) { // If we're on the friendly content-specific URL if ($friendly_types = explode('/', $this->arguments[0])) { $friendly_types = array_filter($friendly_types); if (empty($friendly_types) && !empty($query)) { $friendly_types = array('all'); } $types = array(); // Run through the URL parameters and set content types appropriately foreach ($friendly_types as $friendly_type) { if ($friendly_type == 'all') { $types = \Idno\Common\ContentType::getRegisteredClasses(); break; } if ($content_type_class = \Idno\Common\ContentType::categoryTitleToClass($friendly_type)) { $types[] = $content_type_class; } } } } else { // If user has content-specific preferences, do something with $friendly_types if (empty($query)) { $types = \Idno\Core\Idno::site()->config()->getHomepageContentTypes(); } } $search = array(); if (!empty($query)) { $search = \Idno\Core\Idno::site()->db()->createSearchArray($query); } if (empty($types)) { $types = \Idno\Common\ContentType::getRegisteredClasses(); } else { if (!is_array($types)) { $types = array($types); } $types[] = '!Idno\\Entities\\ActivityStreamPost'; } $count = \Idno\Entities\ActivityStreamPost::countFromX($types, array()); $feed = \Idno\Entities\ActivityStreamPost::getFromX($types, $search, array(), \Idno\Core\Idno::site()->config()->items_per_page, $offset); if (\Idno\Core\Idno::site()->session()->isLoggedIn()) { $create = \Idno\Common\ContentType::getRegistered(); // If we can't create an object of this type, hide from the button bar foreach ($create as $key => $obj) { if (!$obj->createable) { unset($create[$key]); } } } else { $create = false; } if (!empty(\Idno\Core\Idno::site()->config()->description)) { $description = \Idno\Core\Idno::site()->config()->description; } else { $description = 'An independent social website, powered by Known.'; } // If we have a feed, set our last modified flag to the time of the latest returned entry if (!empty($feed)) { if (is_array($feed)) { $feed = array_filter($feed); $this->setLastModifiedHeader(reset($feed)->updated); } } if (!empty(\Idno\Core\Idno::site()->config()->homepagetitle)) { $title = \Idno\Core\Idno::site()->config()->homepagetitle; } else { $title = \Idno\Core\Idno::site()->config()->title; } $t = \Idno\Core\Idno::site()->template(); $t->__(array('title' => $title, 'description' => $description, 'content' => $friendly_types, 'body' => $t->__(array('items' => $feed, 'contentTypes' => $create, 'offset' => $offset, 'count' => $count, 'subject' => $query, 'content' => $friendly_types))->draw('pages/home')))->drawPage(); }
/** * Retrieve all posts as an RSS feed * @param bool|true $hide_private Should we hide private posts? Default: true. * @param string $user_uuid User UUID to export for. Default: all users. * @return bool|false|string */ static function getExportRSS($hide_private = true, $user_uuid = '') { $types = \Idno\Common\ContentType::getRegisteredClasses(); if ($hide_private) { $groups = ['PUBLIC']; } else { $groups = []; } if (!empty($user_uuid)) { $search = ['owner' => $user_uuid]; if ($user = User::getByUUID($user_uuid)) { $title = $user->getTitle(); $description = $user->getDescription(); $base_url = $user_uuid; } } else { $search = []; $title = Idno::site()->config()->getTitle(); $description = Idno::site()->config()->getDescription(); $base_url = Idno::site()->config()->getDisplayURL(); } if ($feed = \Idno\Entities\ActivityStreamPost::getFromX($types, $search, array(), PHP_INT_MAX, 0, $groups)) { $rss_theme = new Template(); $rss_theme->setTemplateType('rss'); return $rss_theme->__(array('title' => $title, 'description' => $description, 'body' => $rss_theme->__(array('items' => $feed, 'offset' => 0, 'count' => sizeof($feed), 'subject' => [], 'nocdata' => true, 'base_url' => $base_url))->draw('pages/home')))->drawPage(false); } return false; }