. */ if (!defined('LACONICA')) { exit(1); } require_once INSTALLDIR.'/lib/profilelist.php'; class PeopletagAction extends Action { var $tag = null; var $page = null; function handle($args) { parent::handle($args); parent::prepare($args); $this->tag = $this->trimmed('tag'); if (!common_valid_profile_tag($this->tag)) { $this->clientError(sprintf(_('Not a valid people tag: %s'), $this->tag)); return; } $this->page = $this->trimmed('page'); if (!$this->page) { $this->page = 1; } $this->showPage(); } function showContent() { $profile = new Profile(); $offset = ($page-1)*PROFILES_PER_PAGE; $limit = PROFILES_PER_PAGE + 1; if (common_config('db','type') == 'pgsql') { $lim = ' LIMIT ' . $limit . ' OFFSET ' . $offset; } else { $lim = ' LIMIT ' . $offset . ', ' . $limit; } # XXX: memcached this $qry = 'SELECT profile.* ' . 'FROM profile JOIN profile_tag ' . 'ON profile.id = profile_tag.tagger ' . 'WHERE profile_tag.tagger = profile_tag.tagged ' . 'AND tag = "%s" ' . 'ORDER BY profile_tag.modified DESC'; $profile->query(sprintf($qry, $this->tag, $lim)); $pl = new ProfileList($profile, null, $this); $cnt = $pl->show(); $this->pagination($this->page > 1, $cnt > PROFILES_PER_PAGE, $this->page, $this->trimmed('action'), array('tag' => $this->tag)); } function title() { return sprintf( _('Users self-tagged with %s - page %d'), $this->tag, $this->page); } }