svn: /web/doc-editor/trunk/php/ RepositoryManager.php

[email protected] (Yannick Torres)
Newsgroups php.doc.web
Message-ID <[email protected]>
yannick                                  Thu, 29 Apr 2010 05:42:06 +0000

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

Log:
Add new method to add a file into the progressWork table

Changed paths:
    U   web/doc-editor/trunk/php/RepositoryManager.php

Modified: web/doc-editor/trunk/php/RepositoryManager.php
===================================================================
--- web/doc-editor/trunk/php/RepositoryManager.php	2010-04-29 05:07:16 UTC (rev 298755)
+++ web/doc-editor/trunk/php/RepositoryManager.php	2010-04-29 05:42:06 UTC (rev 298756)
@@ -359,6 +359,93 @@
     }

     /**
+     * Register a file as a work in progress, into the database.
+     *
+     * @param $file        The file object to be added into the database.
+     * @param $revision    The revision of this file.
+     * @param $en_revision The EN revision of this file.
+     * @param $reviewed    The stats of the reviewed tag.
+     * @param $maintainer  The maintainer.
+     * @param $type        The type of work. Can be 'new' for new file, 'update' for an uptaded file, 'delete' for a file marked as delete.
+     * @return fileID of the file
+     */
+    public function addProgressWork($file, $revision, $en_revision, $reviewed, $maintainer, $type='update')
+    {
+        $db       = DBConnection::getInstance();
+        $am       = AccountManager::getInstance();
+        $vcsLogin = $am->vcsLogin;
+        $project  = $am->project;
+
+        $s = sprintf(
+            'SELECT
+                id
+             FROM
+                `progressWork`
+             WHERE
+                `project`="%s" AND
+                `lang`="%s" AND
+                `path`="%s" AND
+                `name`="%s"',
+            $project,
+            $file->lang,
+            $file->path,
+            $file->name
+        );
+        $r = $db->query($s);
+
+        // We insert or update the pendingCommit table
+        if ($r->num_rows == 0) {
+
+            $s = sprintf(
+                'INSERT into
+                    `progressWork`
+                    (`project`, `lang`, `path`, `name`, `revision`, `en_revision`, `reviewed`, `maintainer`, `user`, `date`, `type`)
+                 VALUES
+                    ("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", now(), "%s")',
+                $project,
+                $file->lang,
+                $file->path,
+                $file->name,
+                $revision,
+                $en_revision,
+                $reviewed,
+                $maintainer,
+                $vcsLogin,
+                $type
+            );
+            $db->query($s);
+            $fileID = $db->insert_id();
+
+        } else {
+
+            $a = $r->fetch_object();
+
+            $s = sprintf(
+                'UPDATE
+                    `progressWork`
+                 SET
+                    `revision`="%s",
+                    `en_revision`="%s",
+                    `reviewed`="%s",
+                    `maintainer`="%s"
+                 WHERE
+                    `id`="%s"',
+                $revision,
+                $en_revision,
+                $reviewed,
+                $maintainer,
+                $a->id
+            );
+            $db->query($s);
+            $fileID = $a->id;
+        }
+
+        return $fileID;
+    }
+
+    /**
+     * @TODO : DEPRECATED. Need to be removed.
+     *
      * Register a file as need to be commited, into the database.
      *
      * @param $file        The file object to be commited.
@@ -1409,6 +1496,8 @@
                  && !preg_match('/\.png$/', $name)
                  && !preg_match('/\.gif$/', $name)
                  && !preg_match('/\.jpg$/', $name)
+                 && !preg_match('/\.new$/', $name)
+                 && !preg_match('/\.patch$/', $name)
                  && $path != '/functions/'
                 ) {
                     if (is_dir($file->full_path)) {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.