]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/peopletag.php
trac750 update Facebook status when posting to Identi.ca from Facebook
[quix0rs-gnu-social.git] / actions / peopletag.php
index 7dede384ef99805c46bee328f067182af67ad9b6..3578c53fdf0d8d7f473b79ab382ba5253768d90e 100644 (file)
 
 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);
+        $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) {
-               
-               $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.created 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 = $this->get_instructions();
-               $output = common_markup_to_html($instr);
-               common_element_start('div', 'instructions');
-               common_raw($output);
-               common_element_end('div');
-       }
-
-       function get_instructions($tag) {
-               return sprintf(_('These are %%site.name%% users who have tagged themselves "%s" ' .
-                                                'to show a common interest, characteristic, hobby or job.'), $tag);
-       }
-       
-       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);
+    }
+    
 }