svn: /pear/pearweb/trunk/ include/pear-database-channel.php sql/channels.sql

[email protected] ("Daniel O'Connor") Sat, 09 Apr 2011 13:35:17 +0000
Newsgroups php.pear.cvs,php.pear.core
Message-ID <[email protected]>
clockwerx                                Sat, 09 Apr 2011 13:35:17 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=310086

Log:
Altered channel table, channel API

Changed paths:
    U   pear/pearweb/trunk/include/pear-database-channel.php
    U   pear/pearweb/trunk/sql/channels.sql

Modified: pear/pearweb/trunk/include/pear-database-channel.php
===================================================================
--- pear/pearweb/trunk/include/pear-database-channel.php	2011-04-09 13:10:25 UTC (rev 310085)
+++ pear/pearweb/trunk/include/pear-database-channel.php	2011-04-09 13:35:17 UTC (rev 310086)
@@ -27,16 +27,46 @@
      *       - connect and retrieve the channel.xml
      *         to verify that this is possible
      */
-    static function add($name, $server)
+    static function add($name)
     {
         global $dbh;
-        $query = 'INSERT INTO channels (name) VALUES (?)';
+        $query = 'INSERT INTO channels (name, is_active) VALUES (?, 0)';
         $err = $dbh->query($query, array($name));
         if (DB::isError($err)) {
             return $err;
         }
     }

+    static function edit($name, $project_label, $project_link, $contact_name, $contact_email)
+    {
+        global $dbh;
+        $query = 'UPDATE channels SET project_label = ?, project_link = ?, contact_name = ?, contact_email = ? WHERE name = ?';
+        $err = $dbh->query($query, array($project_label, $project_link, $contact_name, $contact_email, $name));
+        if (DB::isError($err)) {
+            return $err;
+        }
+    }
+
+    static function activate($name)
+    {
+        global $dbh;
+        $query = "UPDATE channels SET is_active = 1 WHERE name = ?";
+        $err = $dbh->query($query, array($name));
+        if (DB::isError($err)) {
+            return $err;
+        }
+    }
+
+    static function remove($name)
+    {
+        global $dbh;
+        $query = "DELETE FROM channels WHERE name = ?";
+        $err = $dbh->query($query, array($name));
+        if (DB::isError($err)) {
+            return $err;
+        }
+    }
+
     /**
      * List all registered channels
      * @return array Format: array(array(channel server), array(channel server),... )
@@ -44,7 +74,30 @@
     static function listAll()
     {
         global $dbh;
-        $query = 'SELECT * FROM channels';
+        $query = 'SELECT name FROM channels';
         return $dbh->getAll($query, null, DB_FETCHMODE_ORDERED);
     }
-}
\ No newline at end of file
+
+    /**
+     * List all registered channels that are approved
+     * @return array Format: array(array(channel server), array(channel server),... )
+     */
+    static function listActive()
+    {
+        global $dbh;
+        $query = 'SELECT name FROM channels WHERE is_active = 1';
+        return $dbh->getAll($query, null, DB_FETCHMODE_ORDERED);
+    }
+
+
+    /**
+     * List all registered channels pending approval
+     * @return array Format: array(array(channel server), array(channel server),... )
+     */
+    static function listInactive()
+    {
+        global $dbh;
+        $query = 'SELECT name FROM channels WHERE is_active = 0';
+        return $dbh->getAll($query, null, DB_FETCHMODE_ORDERED);
+    }
+}

Modified: pear/pearweb/trunk/sql/channels.sql
===================================================================
--- pear/pearweb/trunk/sql/channels.sql	2011-04-09 13:10:25 UTC (rev 310085)
+++ pear/pearweb/trunk/sql/channels.sql	2011-04-09 13:35:17 UTC (rev 310086)
@@ -1,6 +1,12 @@
 CREATE TABLE channels (
-  name varchar(255) NOT NULL default '',
+  name varchar(255) NOT NULL default '',
+  is_active tinyint(1),
+  project_label varchar(255) NOT NULL default '',
+  project_link varchar(255) NOT NULL default '',
+  contact_name varchar(255) NOT NULL default '',
+  contact_email varchar(255) NOT NULL default '',
   PRIMARY KEY  (name),
 );

-INSERT INTO channels VALUES ('pear.php.net');
+INSERT INTO channels VALUES ('pear.php.net', 1, 'PEAR', 'http://pear.php.net/', 'PEAR Webmaster', '[email protected]');
+