X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fpeopletag.php;h=3578c53fdf0d8d7f473b79ab382ba5253768d90e;hb=28ef2ccf427683837dde29f8b89ea8d5378f287b;hp=c508e05943c50382cb6f9d966a0b7bb31418381a;hpb=29146a13f295a13a4ee4470cffaaa7fde6858689;p=quix0rs-gnu-social.git diff --git a/actions/peopletag.php b/actions/peopletag.php index c508e05943..3578c53fdf 100644 --- a/actions/peopletag.php +++ b/actions/peopletag.php @@ -19,85 +19,74 @@ if (!defined('LACONICA')) { exit(1); } -require_once(INSTALLDIR.'/lib/profilelist.php'); +require_once INSTALLDIR.'/lib/profilelist.php'; -class PeopletagAction extends Action { - - function handle($args) { +class PeopletagAction extends Action +{ + + var $tag = null; + var $page = null; + + function handle($args) + { + parent::handle($args); + + parent::prepare($args); - parent::handle($args); + $this->tag = $this->trimmed('tag'); - $tag = $this->trimmed('tag'); - - if (!common_valid_profile_tag($tag)) { - $this->client_error(sprintf(_('Not a valid people tag: %s'), $tag)); - return; - } + if (!common_valid_profile_tag($this->tag)) { + $this->clientError(sprintf(_('Not a valid people tag: %s'), $this->tag)); + return; + } - $page = $this->trimmed('page'); - - if (!$page) { - $page = 1; - } - - # Looks like we're good; show the header + $this->page = $this->trimmed('page'); - common_show_header(sprintf(_('Users self-tagged with %s - page %d'), $tag, $page), - NULL, $tag, array($this, 'show_top')); + if (!$this->page) { + $this->page = 1; + } + + $this->showPage(); + } + + function showContent() + { + + $profile = new Profile(); - $this->show_people($tag, $page); + $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; + } - common_show_footer(); - } + # 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)); - function show_people($tag, $page) { - - $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 - - $profile->query(sprintf('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 ' . - $lim, $tag)); - - $pl = new ProfileList($profile); - $cnt = $pl->show_list(); - - common_pagination($page > 1, - $cnt > PROFILES_PER_PAGE, - $page, - $this->trimmed('action'), - array('tag' => $tag)); - } - - function show_top($tag) { - $instr = sprintf(_('These are users who have tagged themselves "%s" ' . - 'to show a common interest, characteristic, hobby or job.'), $tag); - common_element_start('div', 'instructions'); - common_element_start('p'); - common_text($instr); - common_element_end('p'); - common_element_end('div'); - } - - function get_title() { - return NULL; - } - - function show_header($arr) { - return; - } + $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); + } + }