Exemple #1
0
 public function onLoad()
 {
     parent::onLoad();
     // get user details
     $account = $this->getHandler('AmunService\\User\\Account')->getOneById($this->user->getId(), array('id', 'status', 'name', 'gender', 'thumbnailUrl', 'timezone', 'updated', 'date', 'countryTitle'), Sql::FETCH_OBJECT);
     $this->template->assign('account', $account);
     // check whether remote profile
     if ($account->status == Account\Record::REMOTE) {
         header('HTTP/1.1 301 Moved Permanently');
         header('Location: ' . $account->profileUrl);
         exit;
     }
     // get acctivites
     $activities = $this->getActivities();
     $this->template->assign('activities', $activities);
     // load groups
     $groups = $this->getHandler('AmunService\\User\\Friend\\Group')->getAll(array(), 0, 16, 'id', Sql::SORT_DESC, new Condition(array('userId', '=', $this->user->getId())));
     $this->template->assign('groups', $groups);
     // form url
     $activityUrl = $this->config['psx_url'] . '/' . $this->config['psx_dispatch'] . 'api/user/activity';
     $receiverUrl = $this->config['psx_url'] . '/' . $this->config['psx_dispatch'] . 'api/user/activity/receiver';
     $this->template->assign('activityUrl', $activityUrl);
     $this->template->assign('receiverUrl', $receiverUrl);
     // template
     $this->htmlCss->add('my');
     $this->htmlJs->add('amun');
     $this->htmlJs->add('my');
     $this->htmlContent->add(Html\Content::META, Atom\Writer::link($this->page->getTitle(), $this->config['psx_url'] . '/' . $this->config['psx_dispatch'] . 'api/my/activity/' . $this->user->getName() . '?format=atom'));
 }
Exemple #2
0
 public function onLoad()
 {
     parent::onLoad();
     // add path
     $this->path->add('Friends', $this->page->getUrl() . '/friends');
     // get friends
     $friends = $this->getFriends();
     $this->template->assign('friends', $friends);
     // form url
     $url = $this->config['psx_url'] . '/' . $this->config['psx_dispatch'] . 'api/user/friend';
     $this->template->assign('friendUrl', $url);
     // template
     $this->htmlCss->add('my');
     $this->htmlJs->add('amun');
     $this->htmlJs->add('my');
     $this->htmlContent->add(Html\Content::META, Atom\Writer::link($this->page->getTitle(), $this->config['psx_url'] . '/' . $this->config['psx_dispatch'] . 'api/user/friend?format=atom&filterBy=authorId&filterOp=equals&filterValue=' . $this->user->getId()));
 }
Exemple #3
0
 /**
  * @httpMethod GET
  * @path /
  */
 public function doIndex()
 {
     if ($this->user->hasRight('forum_view')) {
         // load forum
         $resultForum = $this->getForum();
         $this->template->assign('resultForum', $resultForum);
         // options
         $url = $this->service->getApiEndpoint() . '/form?format=json&method=create&pageId=' . $this->page->getId();
         $this->setOptions(array(array('forum_add', 'Add', 'javascript:amun.services.forum.showForm(\'' . $url . '\')')));
         // template
         $this->htmlCss->add('forum');
         $this->htmlJs->add('forum');
         $this->htmlJs->add('ace-html');
         $this->htmlJs->add('bootstrap');
         $this->htmlJs->add('prettify');
         $this->htmlContent->add(Html\Content::META, Atom\Writer::link($this->page->getTitle(), $this->service->getApiEndpoint() . '?format=atom&filterBy=pageId&filterOp=equals&filterValue=' . $this->page->getId()));
     } else {
         throw new Exception('Access not allowed');
     }
 }
Exemple #4
0
 /**
  * @httpMethod GET
  * @path /{userName}
  */
 public function doProfile()
 {
     if ($this->user->hasRight('profile_view')) {
         $account = $this->getAccount();
         if (!$account instanceof Account\Record) {
             throw new Exception('Invalid user');
         }
         $this->template->assign('account', $account);
         // check whether remote profile
         if ($account->status == Account\Record::REMOTE) {
             Base::setResponseCode(301);
             header('Location: ' . $account->profileUrl);
             exit;
         }
         // add path
         $this->path->add($account->name, $this->page->getUrl() . '/' . $account->name);
         // get activities
         $activities = $this->getActivities($account);
         $this->template->assign('activities', $activities);
         // options
         $url = $this->config['psx_url'] . '/' . $this->config['psx_dispatch'] . 'api/user/friend';
         $options = new Option(__CLASS__, $this->registry, $this->user, $this->page);
         if (!$this->user->isAnonymous() && !$this->user->hasFriend($account)) {
             $options->add('profile_view', 'Add as friend', 'javascript:amun.services.profile.friendshipRequest(' . $this->user->getId() . ', ' . $account->id . ', \'' . $url . '\', this)');
         }
         $options->load(array($this->page, $account));
         $this->template->assign('options', $options);
         // template
         $this->htmlCss->add('profile');
         $this->htmlJs->add('amun');
         $this->htmlJs->add('profile');
         $this->htmlContent->add(Html\Content::META, Atom\Writer::link('Activity', $this->config['psx_url'] . '/' . $this->config['psx_dispatch'] . 'api/my/activity/' . $account->id . '?format=atom'));
         $this->htmlContent->add(Html\Content::META, '<link rel="alternate" type="application/stream+json" href="' . $this->config['psx_url'] . '/' . $this->config['psx_dispatch'] . 'api/user/activity/' . $account->id . '?format=jas" />');
         $this->htmlContent->add(Html\Content::META, '<link rel="meta" type="application/rdf+xml" title="FOAF" href="' . $this->config['psx_url'] . '/' . $this->config['psx_dispatch'] . 'api/my/foaf/' . $account->name . '" />');
         $this->htmlContent->add(Html\Content::META, '<link rel="profile" type="html/text" href="' . $account->profileUrl . '" />');
     } else {
         throw new Exception('Access not allowed');
     }
 }
Exemple #5
0
 public function testLink()
 {
     $html = Writer::link('foo > bar', 'http://foo.com');
     $this->assertEquals('<link rel="alternate" type="application/atom+xml" title="foo &gt; bar" href="http://foo.com" />', $html);
 }