svn: /web/doc-editor/trunk/php/ AccountManager.php DBConnection.php DictionaryManager.php File.php LogManager.php RepositoryFetcher.php RepositoryManager.php ToolsCheckDoc.php ToolsCheckEntities.php ToolsError.php TranslationStatistic.php TranslatorStatistic.php UserNotes.php
[email protected] (Neal Poole)
| Newsgroups | php.doc.web |
|---|---|
| Message-ID | <[email protected]> |
nbpoole Wed, 22 Jun 2011 20:00:24 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=312387
Log:
Major changes to how SQL is handled. The database query method will now perform sprintf-like replacements, but will escape parameters beforehand using real_escape_string. Developers should be very careful to write their SQL queries with this in mind: strings should be properly quoted and integers should be cast as such using %d. In other news, getInstance calls for the DB have been moved to the constructor for various classes and are stored in a private instance field called conn.
Changed paths:
U web/doc-editor/trunk/php/AccountManager.php
U web/doc-editor/trunk/php/DBConnection.php
U web/doc-editor/trunk/php/DictionaryManager.php
U web/doc-editor/trunk/php/File.php
U web/doc-editor/trunk/php/LogManager.php
U web/doc-editor/trunk/php/RepositoryFetcher.php
U web/doc-editor/trunk/php/RepositoryManager.php
U web/doc-editor/trunk/php/ToolsCheckDoc.php
U web/doc-editor/trunk/php/ToolsCheckEntities.php
U web/doc-editor/trunk/php/ToolsError.php
U web/doc-editor/trunk/php/TranslationStatistic.php
U web/doc-editor/trunk/php/TranslatorStatistic.php
U web/doc-editor/trunk/php/UserNotes.php
svn-diffs-312387.txt
(text/x-diff, 98.8 KB)
Modified: web/doc-editor/trunk/php/AccountManager.php
===================================================================
--- web/doc-editor/trunk/php/AccountManager.php 2011-06-22 18:10:50 UTC (rev 312386)
+++ web/doc-editor/trunk/php/AccountManager.php 2011-06-22 20:00:24 UTC (rev 312387)
@@ -11,6 +11,7 @@
class AccountManager
{
private static $instance;
+ private $conn;
public static function getInstance()
{
@@ -100,6 +101,8 @@
);
$this->appConf = Config::getInstance()->getConf();
+
+ $this->conn = DBConnection::getInstance();
}
/**
@@ -116,11 +119,9 @@
*/
public function updateLastConnect()
{
- $s = sprintf(
- 'UPDATE `users` SET `last_connect`=now() WHERE `userID`="%s"',
- $this->userID
- );
- DBConnection::getInstance()->query($s);
+ $s = 'UPDATE `users` SET `last_connect`=now() WHERE `userID`=%d';
+ $params = array($this->userID);
+ $this->conn->query($s, $params);
}
/**
@@ -231,21 +232,10 @@
$this->vcsLang = $lang;
$this->email = $email;
- $s = sprintf(
- 'SELECT
- *
- FROM
- `users`
- WHERE
- `project` = "%s" AND
- `vcs_login` = "%s" AND
- `anonymousIdent` = "%s" ',
- $project,
- $this->vcsLogin,
- $this->anonymousIdent
- );
+ $s = 'SELECT * FROM `users` WHERE `project` = "%s" AND `vcs_login` = "%s" AND `anonymousIdent` = "%s"';
+ $params = array($project, $this->vcsLogin, $this->anonymousIdent);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
if ($r->num_rows == 1) {
@@ -373,22 +363,17 @@
public function updateEmail()
{
- $db = DBConnection::getInstance();
-
- $s = sprintf(
- 'UPDATE `users` SET `email`="%s" WHERE `userID`="%s"',
- $this->email, $this->userID
- );
- $db->query($s);
+ $s = 'UPDATE `users` SET `email`="%s" WHERE `userID`=%d';
+ $params = array($this->email, $this->userID);
+ $this->conn->query($s, $params);
}
public function getVCSUsers()
{
- $db = DBConnection::getInstance();
+ $s = 'SELECT DISTINCT(`vcs_login`) as userName FROM `users` WHERE project="%s" AND vcs_login != "anonymous"';
+ $params = array($this->project);
+ $r = $this->conn->query($s, $params);
- $s = 'SELECT DISTINCT(`vcs_login`) as userName FROM `users` WHERE project="'.$this->project.'" AND vcs_login != "anonymous"';
- $r = $db->query($s);
-
$result = array();
$i=0;
@@ -402,19 +387,10 @@
public function setFileOwner($fileIdDB, $newOwner)
{
- $db = DBConnection::getInstance();
-
- $s = sprintf(
- 'UPDATE
- `work`
- SET
- `user` = "%s"
- WHERE
- `id` = "%s"',
- $db->real_escape_string($newOwner),
- $fileIdDB
- );
- $db->query($s);
+ $s = 'UPDATE `work` SET `user` = "%s" WHERE `id` = %d';
+ $params = array($newOwner, $fileIdDB);
+
+ $this->conn->query($s, $params);
}
@@ -428,17 +404,10 @@
$am = AccountManager::getInstance();
$project = $am->project;
- $s = sprintf(
- 'SELECT
- `email`
- FROM
- `users`
- WHERE
- `project` = "%s" AND
- `vcs_login` = "%s"',
- $project, $user
- );
- $r = DBConnection::getInstance()->query($s);
+ $s = 'SELECT `email` FROM `users` WHERE `project` = "%s" AND `vcs_login` = "%s"';
+ $params = array($project, $user);
+
+ $r = $this->conn->query($s, $params);
$nb = $r->num_rows;
// We have found an email
@@ -458,14 +427,11 @@
*/
private function register()
{
- $db = DBConnection::getInstance();
+ $s = 'INSERT INTO `users` (`project`, `vcs_login`, `email`, `anonymousIdent`, `conf`) VALUES ("%s","%s","%s","%s","%s")';
+ $params = array($this->project, $this->vcsLogin, $this->email, $this->anonymousIdent, json_encode($this->defaultConf));
- $s = sprintf(
- 'INSERT INTO `users` (`project`, `vcs_login`, `email`, `anonymousIdent`, `conf`) VALUES ("%s","%s","%s","%s","%s")',
- $this->project, $this->vcsLogin, $this->email, $this->anonymousIdent, $db->real_escape_string(json_encode($this->defaultConf))
- );
- $db->query($s);
- return $db->insert_id();
+ $this->conn->query($s, $params);
+ return $this->conn->insert_id();
}
/**
@@ -490,21 +456,15 @@
unset($_SESSION['userConf']->{$module}->{$itemName});
$_SESSION['userConf']->{$module}->{$itemName} = ( is_numeric($value) ) ? (int) $value : $value;
- $db = DBConnection::getInstance();
-
// In DB
if( $this->isAnonymous ) {
- $s = sprintf(
- 'UPDATE `users` SET `conf`="%s" WHERE `vcs_login`="%s" AND `anonymousIdent`="%s"',
- $db->real_escape_string(json_encode($this->userConf)), "anonymous", $this->anonymousIdent
- );
+ $s = 'UPDATE `users` SET `conf`="%s" WHERE `vcs_login`="anonymous" AND `anonymousIdent`="%s"';
+ $params = array(json_encode($this->userConf), $this->anonymousIdent);
} else {
- $s = sprintf(
- 'UPDATE `users` SET `conf`="%s" WHERE `vcs_login`="%s"',
- $db->real_escape_string(json_encode($this->userConf)), $this->vcsLogin
- );
+ $s = 'UPDATE `users` SET `conf`="%s" WHERE `vcs_login`="%s"';
+ $params = array(json_encode($this->userConf), $this->vcsLogin);
}
- $db->query($s);
+ $this->conn->query($s, $params);
}
/**
@@ -513,19 +473,13 @@
*/
public function eraseData()
{
- $db = DBConnection::getInstance();
+ $s = 'DELETE FROM `commitMessage` WHERE `user`="%s"';
+ $params = array($this->vcsLogin);
+ $this->conn->query($s, $params);
- $s = sprintf(
- 'DELETE FROM `commitMessage` WHERE `user`="%s"',
- $this->vcsLogin
- );
- $db->query($s);
-
- $s = sprintf(
- 'DELETE FROM `users` WHERE `userID`="%s"',
- $this->userID
- );
- $db->query($s);
+ $s = 'DELETE FROM `users` WHERE `userID`=%d';
+ $params = array($this->userID);
+ $this->conn->query($s, $params);
}
/**
Modified: web/doc-editor/trunk/php/DBConnection.php
===================================================================
--- web/doc-editor/trunk/php/DBConnection.php 2011-06-22 18:10:50 UTC (rev 312386)
+++ web/doc-editor/trunk/php/DBConnection.php 2011-06-22 20:00:24 UTC (rev 312387)
@@ -38,9 +38,11 @@
}
}
- public function query($s)
- {
- $r = $this->conn->query($s) or die('Error: '.$this->conn->error.'|'.$s);
+ public function query($s, array $params)
+ {
+ $params = array_map(array($this, 'real_escape_string'), $params);
+ $query = vsprintf($s, $params);
+ $r = $this->conn->query($query) or die('Error: '.$this->conn->error.'|'.$query);
return $r;
}
Modified: web/doc-editor/trunk/php/DictionaryManager.php
===================================================================
--- web/doc-editor/trunk/php/DictionaryManager.php 2011-06-22 18:10:50 UTC (rev 312386)
+++ web/doc-editor/trunk/php/DictionaryManager.php 2011-06-22 20:00:24 UTC (rev 312387)
@@ -4,11 +4,14 @@
*
*/
+require_once dirname(__FILE__) . '/DBConnection.php';
+
class DictionaryManager {
private static $instance;
public $acronyms;
public $entities;
+ private $conn;
public static function getInstance()
{
@@ -21,6 +24,7 @@
public function __construct()
{
+ $this->conn = DBConnection::getInstance();
}
/**
@@ -30,16 +34,10 @@
*/
public function delWord($wordId)
{
- $s = sprintf(
- 'DELETE FROM
- `dictionary`
- WHERE
- `id` = "%s"',
+ $s = 'DELETE FROM `dictionary` WHERE `id`=%d';
+ $params = array($wordId);
- $wordId
- );
-
- DBConnection::getInstance()->query($s);
+ $this->conn->query($s, $params);
}
/**
@@ -52,20 +50,11 @@
$project = $am->project;
$vcsLang = $am->vcsLang;
- $s = sprintf(
- 'SELECT
- `id`, `valueEn`, `valueLang`, `lastUser`, `lastDate`
- FROM
- `dictionary`
- WHERE
- `project` = "%s" AND `lang`="%s"',
+ $s = 'SELECT `id`, `valueEn`, `valueLang`, `lastUser`, `lastDate` FROM `dictionary` WHERE `project` = "%s" AND `lang`="%s"';
+ $params = array($project, $vcsLang);
- $project,
- $vcsLang
- );
+ $r = $this->conn->query($s, $params);
- $r = DBConnection::getInstance()->query($s);
-
$infos = array();
while ($a = $r->fetch_assoc()) {
$infos[] = $a;
@@ -84,7 +73,6 @@
*/
public function manageDictionaryWord($wordId, $valueEn, $valueLang)
{
- $db = DBConnection::getInstance();
$am = AccountManager::getInstance();
$vcsLogin = $am->vcsLogin;
$project = $am->project;
@@ -93,43 +81,14 @@
$time = @date("Y-m-d H:i:s");
if( $wordId == 'new' ) {
-
- $s = sprintf(
- 'INSERT INTO
- `dictionary`
- (`project`, `lang`, `valueEn`, `valueLang`, `lastUser`, `lastDate`)
- VALUES ("%s", "%s", "%s", "%s", "%s", "%s")',
- $project,
- $vcsLang,
- $db->real_escape_string($valueEn),
- $db->real_escape_string($valueLang),
- $db->real_escape_string($vcsLogin),
- $time
- );
-
+ $s = 'INSERT INTO `dictionary` (`project`, `lang`, `valueEn`, `valueLang`, `lastUser`, `lastDate`) VALUES ("%s", "%s", "%s", "%s", "%s", "%s")';
+ $params = array($project, $vcsLang, $valueEn, $valueLang, $vcsLogin, $time);
} else {
-
- $s = sprintf(
- 'UPDATE
- `dictionary`
- SET
- `valueEn` = "%s",
- `valueLang`= "%s",
- `lastUser` = "%s",
- `lastDate` = "%s"
- WHERE
- `id` = %s',
-
- $db->real_escape_string($valueEn),
- $db->real_escape_string($valueLang),
- $db->real_escape_string($vcsLogin),
- $time,
- $wordId
- );
-
+ $s = 'UPDATE `dictionary` SET `valueEn` = "%s", `valueLang`= "%s", `lastUser` = "%s", `lastDate` = "%s" WHERE `id` = %d';
+ $params = array($valueEn, $valueLang, $vcsLogin, $time, $wordId);
}
- $db->query($s);
+ $this->conn->query($s, $params);
return $time;
}
Modified: web/doc-editor/trunk/php/File.php
===================================================================
--- web/doc-editor/trunk/php/File.php 2011-06-22 18:10:50 UTC (rev 312386)
+++ web/doc-editor/trunk/php/File.php 2011-06-22 20:00:24 UTC (rev 312387)
@@ -19,6 +19,8 @@
public $isDir;
public $isFile;
+
+ private $conn;
/**
* Constructor will normalize the lang and the path as specified as parameters.
@@ -77,7 +79,7 @@
$this->full_path_dir = $appConf[$project]['vcs.path'].$lang.'/';
$this->full_path_fallback = $appConf[$project]['vcs.path'].'en/'.$this->name;
}
-
+ $this->conn = DBConnection::getInstance();
}
public function exist()
@@ -294,7 +296,6 @@
public function isModified()
{
$am = AccountManager::getInstance();
- $db = DBConnection::getInstance();
$project = $am->project;
// If the current file is a .new file, we must escape the .new otherwise, we haven't any result from the database
@@ -304,8 +305,7 @@
$hereName = $this->name;
}
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
`id` as fidDB,
`user`,
`anonymousIdent`,
@@ -317,14 +317,15 @@
`project` = "%s" AND
`lang`="%s" AND
`path`="%s" AND
- `name`="%s"',
- $db->real_escape_string($project),
- $db->real_escape_string($this->lang),
- $db->real_escape_string($this->path),
- $db->real_escape_string($hereName)
+ `name`="%s"';
+ $params = array(
+ $project,
+ $this->lang,
+ $this->path,
+ $hereName
);
- $r = $db->query($s);
+ $r = $this->conn->query($s, $params);
if( $r->num_rows == 0 ) {
return false;
Modified: web/doc-editor/trunk/php/LogManager.php
===================================================================
--- web/doc-editor/trunk/php/LogManager.php 2011-06-22 18:10:50 UTC (rev 312386)
+++ web/doc-editor/trunk/php/LogManager.php 2011-06-22 20:00:24 UTC (rev 312387)
@@ -6,6 +6,8 @@
{
private static $instance;
+ private $conn;
+
public static function getInstance()
{
if (!isset(self::$instance)) {
@@ -17,6 +19,7 @@
private function __construct()
{
+ $this->conn = DBConnection::getInstance();
}
/**
@@ -34,11 +37,9 @@
$result = array();
- $s = sprintf(
- 'SELECT `id`, `text` FROM `commitMessage` WHERE `project`="%s" AND `user`="%s"',
- $project, $vcsLogin
- );
- $r = DBConnection::getInstance()->query($s);
+ $s = 'SELECT `id`, `text` FROM `commitMessage` WHERE `project`="%s" AND `user`="%s"';
+ $params = array(project, $vcsLogin);
+ $r = $this->conn->query($s, $params);
while ($a = $r->fetch_assoc()) {
$result[] = $a;
}
@@ -55,23 +56,17 @@
public function addCommitLog($log)
{
$am = AccountManager::getInstance();
- $db = DBConnection::getInstance();
- $log = $db->real_escape_string($log);
$project = $am->project;
$vcsLogin = $am->vcsLogin;
- $s = sprintf(
- 'SELECT id FROM `commitMessage` WHERE `project`="%s" AND `text`="%s" AND `user`="%s"',
- $project, $log, $vcsLogin
- );
- $r = $db->query($s);
+ $s = 'SELECT id FROM `commitMessage` WHERE `project`="%s" AND `text`="%s" AND `user`="%s"';
+ $params = array($project, $log, $vcsLogin);
+ $r = $this->conn->query($s, $params);
if ($r->num_rows == 0 ) {
- $s = sprintf(
- 'INSERT INTO `commitMessage` (`project`, `text`,`user`) VALUES ("%s", "%s", "%s")',
- $project, $log, $vcsLogin
- );
- $db->query($s);
+ $s = 'INSERT INTO `commitMessage` (`project`, `text`,`user`) VALUES ("%s", "%s", "%s")';
+ $params = array($project, $log, $vcsLogin);
+ $this->conn->query($s, $params);
}
}
@@ -83,12 +78,9 @@
*/
public function updateCommitLog($logID, $log)
{
- $db= DBConnection::getInstance();
- $s = sprintf(
- 'UPDATE `commitMessage` SET `text`="%s" WHERE `id`="%s"',
- $db->real_escape_string($log), $logID
- );
- $db->query($s);
+ $s = 'UPDATE `commitMessage` SET `text`="%s" WHERE `id`=%d';
+ $params = array($log, $logID);
+ $this->conn->query($s, $params);
}
/**
@@ -98,10 +90,9 @@
*/
public function delCommitLog($logID)
{
- $s = sprintf(
- 'DELETE FROM `commitMessage` WHERE `id`="%s"', $logID
- );
- DBConnection::getInstance()->query($s);
+ $s = 'DELETE FROM `commitMessage` WHERE `id`=%d';
+ $params = array($logID);
+ $this->conn->query($s, $params);
}
/**
@@ -145,15 +136,12 @@
*/
public function saveFailedBuild($lang, $log)
{
- $db = DBConnection::getInstance();
$project = AccountManager::getInstance()->project;
- $s = sprintf(
- 'INSERT INTO `failedBuildLog` (`project`, `lang`, `log`, `date`)
- VALUES ("%s","%s", "%s", now())',
- $project, $lang, $db->real_escape_string(json_encode($log))
- );
- $db->query($s);
+ $s = 'INSERT INTO `failedBuildLog` (`project`, `lang`, `log`, `date`)
+ VALUES ("%s","%s", "%s", now())';
+ $params = array($project, $lang, json_encode($log));
+ $this->conn->query($s, $params);
}
/**
@@ -203,8 +191,9 @@
{
$project = AccountManager::getInstance()->project;
- $s = 'SELECT `id`, `lang`, `date` FROM `failedBuildLog` WHERE `project` = \''.$project.'\'';
- $r = DBConnection::getInstance()->query($s);
+ $s = 'SELECT `id`, `lang`, `date` FROM `failedBuildLog` WHERE `project` = "%s"';
+ $params = array($project);
+ $r = $this->conn->query($s, $params);
$node = array();
while ($a = $r->fetch_assoc()) {
@@ -223,8 +212,9 @@
*/
public function getFailedBuildData($id, $highlight=true)
{
- $s = 'SELECT `log` FROM `failedBuildLog` WHERE `id`=\''.$id.'\'';
- $r = DBConnection::getInstance()->query($s);
+ $s = 'SELECT `log` FROM `failedBuildLog` WHERE `id`=%d';
+ $params = array($id);
+ $r = $this->conn->query($s, $params);
$a = $r->fetch_object();
Modified: web/doc-editor/trunk/php/RepositoryFetcher.php
===================================================================
--- web/doc-editor/trunk/php/RepositoryFetcher.php 2011-06-22 18:10:50 UTC (rev 312386)
+++ web/doc-editor/trunk/php/RepositoryFetcher.php 2011-06-22 20:00:24 UTC (rev 312387)
@@ -9,6 +9,8 @@
{
private static $instance;
+ private $conn;
+
public static function getInstance()
{
if (!isset(self::$instance)) {
@@ -20,6 +22,7 @@
private function __construct()
{
+ $this->conn = DBConnection::getInstance();
}
@@ -33,8 +36,7 @@
$am = AccountManager::getInstance();
$project = $am->project;
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
`date`
FROM
`staticValue`
@@ -42,11 +44,10 @@
`project` = "%s" AND
`type`="info"
ORDER BY `date` DESC
- LIMIT 0, 1',
+ LIMIT 0, 1';
+ $params = array($am->project);
- $am->project
- );
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$a = $r->fetch_assoc();
@@ -65,24 +66,21 @@
$infos = array();
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
count(*) as total
FROM
`staticValue`
WHERE
`project` = "%s" AND
- `type`="info"',
+ `type`="info"';
+ $params = array($am->project);
- $am->project
- );
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$a = $r->fetch_assoc();
$infos['total'] = $a['total'];
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
`field`, `value`, `date`
FROM
`staticValue`
@@ -90,11 +88,10 @@
`project` = "%s" AND
`type`="info"
ORDER BY `date` DESC
- LIMIT %s, %s',
+ LIMIT %d, %d';
+ $params = array($am->project, (int)$start, (int)$limit);
- $am->project, (int)$start, (int)$limit
- );
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$i=0;
while ($a = $r->fetch_assoc()) {
@@ -139,20 +136,19 @@
{
$am = AccountManager::getInstance();
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
*
FROM
`work`
WHERE
`project` = "%s" AND
- ( `lang`="%s" OR `lang`="en" ) ',
-
+ ( `lang`="%s" OR `lang`="en" ) ';
+ $params = array(
$am->project,
$am->vcsLang
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$infos = array();
while ($a = $r->fetch_assoc()) {
@@ -173,27 +169,27 @@
$am = AccountManager::getInstance();
$infos = array();
- $ids = is_array($id) ? implode($id, ',') : $id;
+ $ids = is_array($id) ? implode(array_map('intval', $id), ',') : (int)$id;
if( empty( $ids ) ) {
return $infos;
}
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
*
FROM
`work`
WHERE
`project` = "%s" AND
- (`lang`="%s" OR `lang`="en" OR `lang`="doc-base") AND `id` IN (%s)',
-
+ (`lang`="%s" OR `lang`="en" OR `lang`="doc-base") AND `id` IN (%s)';
+
+ $params = array(
$am->project,
$am->vcsLang,
$ids
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
while ($a = $r->fetch_assoc()) {
$infos[] = $a;
@@ -210,8 +206,7 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
count(*) as total
FROM
`files`
@@ -219,11 +214,12 @@
`project` = "%s" AND
`lang` = "%s" AND
`revision` != `en_revision` AND
- `status` is not null',
+ `status` is not null';
+ $params = array(
$project,
$vcsLang
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$a = $r->fetch_object();
return ( $a->total > $am->userConf->needUpdate->nbDisplay && $am->userConf->needUpdate->nbDisplay != 0 ) ? $am->userConf->needUpdate->nbDisplay : $a->total;
@@ -241,12 +237,11 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $limit = ( $am->userConf->needUpdate->nbDisplay ) ? 'LIMIT '.$am->userConf->needUpdate->nbDisplay : '';
+ $limit = ( $am->userConf->needUpdate->nbDisplay ) ? 'LIMIT '.(int)$am->userConf->needUpdate->nbDisplay : '';
$m = $this->getModifies();
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
*
FROM
`files`
@@ -255,12 +250,13 @@
`lang` = "%s" AND
`revision` != `en_revision` AND
`status` is not NULL
- %s',
+ %s';
+ $params = array(
$project,
$vcsLang,
$limit
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$node = array();
while ($a = $r->fetch_object()) {
@@ -322,19 +318,19 @@
$project = $am->project;
$m = $this->getModifies();
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
count(*) as total
FROM
`files`
WHERE
`project`="%s" AND
`lang` = "%s" AND
- reviewed != \'yes\'',
+ reviewed != \'yes\'';
+ $params = array(
$project,
$vcsLang
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$a = $r->fetch_object();
return ( $a->total > $am->userConf->reviewed->nbDisplay && $am->userConf->reviewed->nbDisplay != 0 ) ? $am->userConf->reviewed->nbDisplay : $a->total;
@@ -351,11 +347,10 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $limit = ( $am->userConf->reviewed->nbDisplay ) ? 'LIMIT '.$am->userConf->reviewed->nbDisplay : '';
+ $limit = ( $am->userConf->reviewed->nbDisplay ) ? 'LIMIT '.(int)$am->userConf->reviewed->nbDisplay : '';
$m = $this->getModifies();
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
*
FROM
`files`
@@ -366,12 +361,13 @@
ORDER BY
`path`,
`name`
- %s',
+ %s';
+ $params = array(
$project,
$vcsLang,
$limit
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$node = array();
while ($a = $r->fetch_object()) {
@@ -418,19 +414,20 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $s = sprintf('
- SELECT
+ $s = 'SELECT
count(*) as total
FROM
`files`
WHERE
`project`="%s" AND
`lang`="%s" AND
- `status`="NotInEN"',
+ `status`="NotInEN"';
+ $params = array(
$project,
- $vcsLang);
+ $vcsLang
+ );
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$a = $r->fetch_object();
return $a->total;
@@ -448,8 +445,7 @@
$m = $this->getModifies();
- $s = sprintf('
- SELECT
+ $s = 'SELECT
`id`,
`path`,
`name`
@@ -458,11 +454,13 @@
WHERE
`project`="%s" AND
`lang`="%s" AND
- `status`="NotInEN"',
+ `status`="NotInEN"';
+ $params = array(
$project,
- $vcsLang);
+ $vcsLang
+ );
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$node = array();
while ($a = $r->fetch_object()) {
@@ -486,8 +484,7 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $s = sprintf('
- SELECT
+ $s = 'SELECT
count(*) as total
FROM
`files`
@@ -495,12 +492,13 @@
`project`="%s" AND
`lang`="%s" AND
`status` is NULL AND
- `revision` is NULL',
+ `revision` is NULL';
+ $params = array(
$project,
$vcsLang
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$a = $r->fetch_object();
return ( $a->total > $am->userConf->newFile->nbDisplay && $am->userConf->newFile->nbDisplay != 0 ) ? $am->userConf->newFile->nbDisplay : $a->total;
@@ -518,11 +516,10 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $limit = ( $am->userConf->newFile->nbDisplay ) ? 'LIMIT '.$am->userConf->newFile->nbDisplay : '';
+ $limit = ( $am->userConf->newFile->nbDisplay ) ? 'LIMIT '.(int)$am->userConf->newFile->nbDisplay : '';
$m = $this->getModifies();
- $s = sprintf('
- SELECT
+ $s = 'SELECT
`id`, `path`, `name`
FROM
`files`
@@ -531,13 +528,15 @@
`lang`="%s" AND
`status` is NULL AND
`revision` is NULL
- %s',
+ %s';
+
+ $params = array(
$project,
$vcsLang,
$limit
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$node = array();
while ($a = $r->fetch_object()) {
@@ -563,18 +562,19 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
count(*) as total
FROM
`pendingPatch`
WHERE
`project`="%s" AND
- (`lang`="%s" OR `lang`=\'en\')',
+ (`lang`="%s" OR `lang`=\'en\')';
+ $params = array(
$project,
$vcsLang
);
- $r = DBConnection::getInstance()->query($s);
+
+ $r = $this->conn->query($s, $params);
$a = $r->fetch_object();
return $a->total;
@@ -593,11 +593,12 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $s = sprintf(
- 'SELECT `id`, CONCAT(`lang`, `path`) AS `path`, `name`, `posted_by` AS \'by\', `uniqID`, `date` FROM `pendingPatch` WHERE `project`="%s" AND (`lang`="%s" OR `lang`=\'en\')',
- $project, $vcsLang
+ $s = 'SELECT `id`, CONCAT(`lang`, `path`) AS `path`, `name`, `posted_by` AS \'by\', `uniqID`, `date` FROM `pendingPatch` WHERE `project`="%s" AND (`lang`="%s" OR `lang`=\'en\')';
+ $params = array(
+ $project,
+ $vcsLang
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$node = array();
while ($row = $r->fetch_assoc()) {
@@ -619,12 +620,14 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $s = sprintf(
- 'SELECT * FROM `work` WHERE `project`="%s" AND (`lang`="%s" OR `lang`=\'en\') AND `name`=\'-\' ORDER BY id ASC',
- $project, $vcsLang
+ $s = 'SELECT * FROM `work` WHERE `project`="%s" AND (`lang`="%s" OR `lang`=\'en\') AND `name`=\'-\' ORDER BY id ASC';
+ $params = array(
+ $project,
+ $vcsLang
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
+
if( $r->num_rows == 0 ) {
return false;
}
@@ -648,11 +651,13 @@
$project = $am->project;
// We exclude item witch name == '-' ; this is new folder ; We don't display it.
- $s = sprintf(
- 'SELECT count(*) as total FROM `pendingCommit` WHERE `project`="%s" AND (`lang`="%s" OR `lang`=\'en\') AND `name` != \'-\'',
- $project, $vcsLang
+ $s = 'SELECT count(*) as total FROM `pendingCommit` WHERE `project`="%s" AND (`lang`="%s" OR `lang`=\'en\') AND `name` != \'-\'';
+ $params = array(
+ $project,
+ $vcsLang
);
- $r = DBConnection::getInstance()->query($s);
+
+ $r = $this->conn->query($s, $params);
$a = $r->fetch_object();
return $a->total;
@@ -673,8 +678,7 @@
/**** We start by the work in progress module ****/
// We exclude item witch name == '-' ; this is new folder ; We don't display it.
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
CONCAT(`lang`, `path`, `name`) as filePath,
`user`,
`date`,
@@ -686,11 +690,12 @@
`lang` = "%s" AND
`project` = "%s"
ORDER BY
- type, date',
+ type, date';
+ $params = array(
$lang,
$project
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$workInProgress = Array('nb'=>0,'data'=>Array());
@@ -705,8 +710,7 @@
/**** then, by the patches for review module ****/
// We exclude item witch name == '-' ; this is new folder ; We don't display it.
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
CONCAT(`lang`, `path`, `name`) as filePath,
`user`,
`date`,
@@ -718,11 +722,12 @@
`lang` = "%s" AND
`project` = "%s"
ORDER BY
- type, date',
+ type, date';
+ $params = array(
$lang,
$project
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$PatchesForReview = Array('nb'=>0,'data'=>Array());
@@ -759,8 +764,7 @@
if( $module == 'PatchesForReview' ) {
// We exclude item witch name == '-' ; this is new folder ; We don't display it.
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
`id`,
`name` as patchName,
`user`,
@@ -768,10 +772,11 @@
FROM
`patches`
WHERE
- `project` = "%s"',
+ `project` = "%s"';
+ $params = array(
$project
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$patches = Array();
@@ -786,6 +791,11 @@
$node[$a->user][$a->patchName]['folders'] = array();
}
+ // Bugfix: if we don't have any patches, the query below will fail.
+ // So we return immediately if that's the case.
+ if (empty($patches))
+ return '[]';
+
// Do we need to display EN Work ?
if( isset($am->userConf->main->displayENWork) && $am->userConf->main->displayENWork === true ) {
$langFilter = '(`lang` = "%s" OR `lang`="en")';
@@ -794,8 +804,7 @@
}
// We exclude item witch name == '-' ; this is new folder ; We don't display it.
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
*
FROM
`work`
@@ -804,14 +813,15 @@
'.$langFilter.' AND
`name` != "-" AND
`module` = "%s" AND
- `patchID` IN (%s)',
+ `patchID` IN (%s)';
+ $params = array(
$project,
$vcsLang,
$module,
- implode(",", array_keys($patches))
+ implode(",", array_map('intval', array_keys($patches)))
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
while ($a = $r->fetch_object()) {
@@ -905,8 +915,7 @@
// We exclude item witch name == '-' ; this is new folder ; We don't display it.
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
*
FROM
`work`
@@ -915,12 +924,13 @@
'.$langFilter.' AND
`name` != "-" AND
`module` = "%s" AND
- `patchID` IS NULL',
+ `patchID` IS NULL';
+ $params = array(
$project,
$vcsLang,
$module
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
while ($a = $r->fetch_object()) {
@@ -1009,12 +1019,12 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $s = sprintf(
- 'SELECT `path`, `name` FROM `files` WHERE `path`
- LIKE \'/reference/%s/%%\' AND `lang`="%s" AND `project`="%s" ORDER BY `path`, `name`',
+ $s = 'SELECT `path`, `name` FROM `files` WHERE `path`
+ LIKE \'/reference/%s/%%\' AND `lang`="%s" AND `project`="%s" ORDER BY `path`, `name`';
+ $params = array(
$ext, $vcsLang, $project
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$node = array(); $i=0;
while ($a = $r->fetch_object()) {
@@ -1035,7 +1045,6 @@
*/
public function getFileByXmlID($lang, $id)
{
- $db = DBConnection::getInstance();
$project = AccountManager::getInstance()->project;
// If user forget ".php" at this end of the permlink, this is "function" how is search into DB.
@@ -1045,20 +1054,20 @@
}
// We start by searching file witch only this ID
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
`lang`, `path`, `name`
FROM
`files`
WHERE
`project`="%s" AND
`lang` = "%s" AND
- `xmlid` = "%s"',
+ `xmlid` = "%s"';
+ $params = array(
$project,
$lang,
$id
);
- $r = $db->query($s);
+ $r = $this->conn->query($s, $params);
$nb = $r->num_rows;
if( $nb >= 1 ) {
@@ -1066,20 +1075,20 @@
} else {
// We now search file which contain this ID
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
`lang`, `path`, `name`
FROM
`files`
WHERE
`project`="%s" AND
`lang` = "%s" AND
- `xmlid` LIKE "%%%s%%"',
+ `xmlid` LIKE "%%%s%%"';
+ $params = array(
$project,
$lang,
$id
);
- $r = $db->query($s);
+ $r = $this->conn->query($s, $params);
$nb = $r->num_rows;
if( $nb == 0 ) {
@@ -1100,19 +1109,18 @@
public function getFileByKeyword($key)
{
$am = AccountManager::getInstance();
- $db = DBConnection::getInstance();
$vcsLang = $am->vcsLang;
$project = $am->project;
- $s = sprintf(
- 'SELECT `lang`, `path`, `name` FROM `files` WHERE `project`="%s" AND (`lang`="%s" OR `lang`=\'en\')
- AND ( `name` LIKE \'%%%s%%\' OR `xmlid` LIKE \'%%%s%%\' ) ORDER BY `lang`, `path`, `name`',
+ $s = 'SELECT `lang`, `path`, `name` FROM `files` WHERE `project`="%s" AND (`lang`="%s" OR `lang`=\'en\')
+ AND ( `name` LIKE \'%%%s%%\' OR `xmlid` LIKE \'%%%s%%\' ) ORDER BY `lang`, `path`, `name`';
+ $params = array(
$project,
$vcsLang,
- $db->real_escape_string($key),
- $db->real_escape_string($key)
+ $key,
+ $key
);
- $r = $db->query($s);
+ $r = $this->conn->query($s, $params);
$files = array();
while ($a = $r->fetch_object()) {
@@ -1235,12 +1243,16 @@
{
// Save in DB
- $s = "SELECT id, value FROM staticValue WHERE
- `project`='".AccountManager::getInstance()->project."' AND
- `type`='".$type."' AND
- `field`= '".$field."'
- ";
- $r = DBConnection::getInstance()->query($s);
+ $s = 'SELECT id, value FROM staticValue WHERE
+ `project` = "%s" AND
+ `type` = "%s" AND
+ `field`= "%s"';
+ $params = array(
+ AccountManager::getInstance()->project,
+ $type,
+ $field
+ );
+ $r = $this->conn->query($s, $params);
if( $r->num_rows == 0 ) {
return false;
Modified: web/doc-editor/trunk/php/RepositoryManager.php
===================================================================
--- web/doc-editor/trunk/php/RepositoryManager.php 2011-06-22 18:10:50 UTC (rev 312386)
+++ web/doc-editor/trunk/php/RepositoryManager.php 2011-06-22 20:00:24 UTC (rev 312387)
@@ -14,6 +14,8 @@
{
private static $instance;
+ private $conn;
+
public static function getInstance()
{
if (!isset(self::$instance)) {
@@ -61,6 +63,7 @@
private function __construct()
{
+ $this->conn = DBConnection::getInstance();
}
public function getAvailableLanguage()
@@ -143,13 +146,12 @@
*/
public function cleanUp()
{
- $db = DBConnection::getInstance();
$project = AccountManager::getInstance()->project;
// We cleanUp the database before update vcs and apply again all tools
foreach (array('files', 'translators', 'errorfiles') as $table) {
- $db->query("DELETE FROM `$table` WHERE `project`='$project'");
- $db->query("OPTIMIZE TABLE `$table` ");
+ $this->conn->query("DELETE FROM `$table` WHERE `project`='%s'", array($project));
+ $this->conn->query("OPTIMIZE TABLE `$table` ", array());
}
}
@@ -163,7 +165,7 @@
{
$project = AccountManager::getInstance()->project;
- DBConnection::getInstance()->query("DELETE FROM `failedBuildLog` WHERE `project`= '$project' AND `date` < date_sub(now(),interval 1 month)");
+ $this->conn->query("DELETE FROM `failedBuildLog` WHERE `project`= '%s' AND `date` < date_sub(now(),interval 1 month)", array($project));
}
@@ -172,7 +174,6 @@
*/
public function updateFolder($path)
{
- $db = DBConnection::getInstance();
$rf = RepositoryFetcher::getInstance();
$am = AccountManager::getInstance();
$project = $am->project;
@@ -375,14 +376,12 @@
*/
public function addProgressWork($file, $revision, $en_revision, $reviewed, $maintainer, $type='update')
{
- $db = DBConnection::getInstance();
$am = AccountManager::getInstance();
$vcsLogin = $am->vcsLogin;
$anonymousIdent = $am->anonymousIdent;
$project = $am->project;
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
id
FROM
`work`
@@ -390,23 +389,24 @@
`project`="%s" AND
`lang`="%s" AND
`path`="%s" AND
- `name`="%s"',
+ `name`="%s"';
+ $params = array(
$project,
$file->lang,
$file->path,
$file->name
);
- $r = $db->query($s);
+ $r = $this->conn->query($s, $params);
// We insert or update the work table
if ($r->num_rows == 0) {
- $s = sprintf(
- 'INSERT into
+ $s = 'INSERT into
`work`
(`project`, `lang`, `path`, `name`, `revision`, `en_revision`, `reviewed`, `maintainer`, `user`, `anonymousIdent`, `date`, `type`)
VALUES
- ("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", now(), "%s")',
+ ("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", now(), "%s")';
+ $params = array(
$project,
$file->lang,
$file->path,
@@ -419,15 +419,14 @@
$anonymousIdent,
$type
);
- $db->query($s);
- $fileID = $db->insert_id();
+ $this->conn->query($s, $params);
+ $fileID = $this->conn->insert_id();
} else {
$a = $r->fetch_object();
- $s = sprintf(
- 'UPDATE
+ $s = 'UPDATE
`work`
SET
`revision`="%s",
@@ -440,7 +439,8 @@
`module`="workInProgress",
`patchID` = NULL
WHERE
- `id`="%s"',
+ `id`="%s"';
+ $params = array(
$revision,
$en_revision,
$reviewed,
@@ -449,7 +449,7 @@
$am->anonymousIdent,
$a->id
);
- $db->query($s);
+ $this->conn->query($s, $params);
$fileID = $a->id;
}
@@ -463,22 +463,24 @@
*/
public function delWork($files)
{
- $db = DBConnection::getInstance();
$am = AccountManager::getInstance();
$project = $am->project;
while( list($path, $data) = each($files))
{
- $query = sprintf('DELETE FROM `work`
+ $query = 'DELETE FROM `work`
WHERE
`project` = "%s" AND
`lang` = "%s" AND
`path` = "%s" AND
- `name` = "%s"',
+ `name` = "%s"';
+ $params = array(
$project,
- $data->lang, $data->path, $data->name
+ $data->lang,
+ $data->path,
+ $data->name
);
- $db->query($query);
+ $this->conn->query($query, $params);
}
}
@@ -491,32 +493,30 @@
*/
public function moveToPatch($patchID, $filesID)
{
- $db = DBConnection::getInstance();
$am = AccountManager::getInstance();
$vcsLogin = $am->vcsLogin;
$project = $am->project;
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
`name`
FROM
`patches`
WHERE
`project` = "%s" AND
`id` = "%s" AND
- `user` = "%s"',
+ `user` = "%s"';
+ $params = array(
$project,
$patchID,
$vcsLogin
);
- $r = $db->query($s);
+ $r = $this->conn->query($s, $params);
- if( $db->affected_rows() == 0 ) {
+ if( $this->conn->affected_rows() == 0 ) {
return 'Patches unknow for this project or for this user';
}
- $s = sprintf(
- 'UPDATE
+ $s = 'UPDATE
`work`
SET
`patchID` = "%s",
@@ -524,16 +524,16 @@
WHERE
`project` = "%s" AND
`user` = "%s" AND
- `id` IN (%s)',
-
+ `id` IN (%s)';
+ $params = array(
$patchID,
$project,
$vcsLogin,
- $filesID
+ implode(',', array_map('intval', explode(',', $filesID)))
);
- $r = $db->query($s);
+ $r = $this->conn->query($s, $params);
- if( $db->affected_rows() < 1 ) {
+ if( $this->conn->affected_rows() < 1 ) {
return 'Error. Is this file(s) is(are) own by you ?';
} else {
return true;
@@ -549,13 +549,11 @@
*/
public function moveToWork($filesID)
{
- $db = DBConnection::getInstance();
$am = AccountManager::getInstance();
$vcsLogin = $am->vcsLogin;
$project = $am->project;
- $s = sprintf(
- 'UPDATE
+ $s = 'UPDATE
`work`
SET
`patchID` = NULL,
@@ -563,15 +561,16 @@
WHERE
`project` = "%s" AND
`user` = "%s" AND
- `id` IN (%s)',
+ `id` IN (%s)';
+ $params = array(
$project,
$vcsLogin,
- $filesID
+ implode(',', array_map('intval', explode(',', $filesID)))
);
- $r = $db->query($s);
+ $r = $this->conn->query($s, $params);
- if( $db->affected_rows() < 1 ) {
+ if( $this->conn->affected_rows() < 1 ) {
return 'Error. Is this file(s) is(are) own by you ?';
} else {
return true;
@@ -587,7 +586,6 @@
*/
public function deletePatch($patchID)
{
- $db = DBConnection::getInstance();
$am = AccountManager::getInstance();
$vcsLogin = $am->vcsLogin;
$project = $am->project;
@@ -609,31 +607,31 @@
}
// We start by change files for this patch.
- $s = sprintf(
- 'UPDATE
+ $s = 'UPDATE
`work`
SET
`patchID` = NULL,
`module` = "workInProgress"
WHERE
`project` = "%s" AND
- `patchID` = %s',
+ `patchID` = %d';
+ $params = array(
$project,
$patchID
);
- $db->query($s);
+ $this->conn->query($s, $params);
// We now delete this patch
- $s = sprintf(
- 'DELETE FROM
+ $s = 'DELETE FROM
`patches`
WHERE
`project` = "%s" AND
- `id` = %s',
+ `id` = %d';
+ $params = array(
$project,
$patchID
);
- $db->query($s);
+ $this->conn->query($s, $params);
return true;
}
@@ -646,21 +644,20 @@
*/
public function getPatchInfo($patchID)
{
- $db = DBConnection::getInstance();
$am = AccountManager::getInstance();
$vcsLogin = $am->vcsLogin;
$project = $am->project;
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
*
FROM
`patches`
WHERE
- `id` = "%s"',
+ `id` = "%s"';
+ $params = array(
$patchID
);
- $r = $db->query($s);
+ $r = $this->conn->query($s, $params);
if( $r->num_rows == 0 ) {
return false;
@@ -677,26 +674,24 @@
*/
public function createPatch($name)
{
- $db = DBConnection::getInstance();
$am = AccountManager::getInstance();
$vcsLogin = $am->vcsLogin;
$project = $am->project;
- $s = sprintf(
- 'INSERT INTO
+ $s = 'INSERT INTO
`patches`
(`project`, `name`, `user`, `anonymousIdent`, `date`)
VALUES
- ("%s", "%s", "%s", "%s", %s)',
+ ("%s", "%s", "%s", "%s", now())';
+ $params = array(
$project,
$name,
$vcsLogin,
- $am->anonymousIdent,
- "now()"
+ $am->anonymousIdent
);
- $db->query($s);
+ $this->conn->query($s, $params);
- return $db->insert_id();
+ return $this->conn->insert_id();
}
@@ -708,28 +703,27 @@
*/
public function modPatch($patchID, $name)
{
- $db = DBConnection::getInstance();
$am = AccountManager::getInstance();
$vcsLogin = $am->vcsLogin;
$project = $am->project;
- $s = sprintf(
- 'UPDATE
+ $s = 'UPDATE
`patches`
SET
`name` = "%s"
WHERE
`project` = "%s" AND
`user` = "%s" AND
- `id` = %s',
+ `id` = %d';
+ $params = array(
$name,
$project,
$vcsLogin,
$patchID
);
- $db->query($s);
+ $this->conn->query($s, $params);
- if( $db->affected_rows() != 1 ) {
+ if( $this->conn->affected_rows() != 1 ) {
return 'Error';
} else {
return true;
@@ -744,7 +738,6 @@
*/
public function addPendingDelete($file)
{
- $db = DBConnection::getInstance();
$am = AccountManager::getInstance();
$vcsLogin = $am->vcsLogin;
$project = $am->project;
@@ -752,12 +745,12 @@
$date = @date("Y-m-d H:i:s");
- $s = sprintf(
- 'INSERT INTO
+ $s = 'INSERT INTO
`work`
(`project`, `lang`, `path`, `name`, `revision`, `en_revision`, `reviewed`, `maintainer`, `user`, `anonymousIdent`, `date`, `type`)
VALUES
- ("%s", "%s", "%s", "%s", "-", "-", "-", "-", "%s", "%s", "%s", "delete")',
+ ("%s", "%s", "%s", "%s", "-", "-", "-", "-", "%s", "%s", "%s", "delete")';
+ $params = array(
$project,
$file->lang,
$file->path,
@@ -766,10 +759,10 @@
$anonymousIdent,
$date
);
- $db->query($s);
+ $this->conn->query($s, $params);
return array(
- 'id' => $db->insert_id(),
+ 'id' => $this->conn->insert_id(),
'by' => Array("user"=> $vcsLogin, "anonymousIdent" => $anonymousIdent),
'date' => $date
);
@@ -1144,26 +1137,25 @@
*/
public function SetFileProgress($idDB, $progress)
{
- $db = DBConnection::getInstance();
$am = AccountManager::getInstance();
$project = $am->project;
$vcsLogin = $am->vcsLogin;
$anonymousIdent = $am->anonymousIdent;
// We start by get the current row
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
`user`,
`anonymousIdent`
FROM
`work`
WHERE
`project` = "%s" AND
- `id` = %s',
+ `id` = %d';
+ $params = array(
$project,
$idDB
);
- $r = $db->query($s);
+ $r = $this->conn->query($s, $params);
if( $r->num_rows == 0 ) {
return 'file_dont_exist_in_workInProgress';
@@ -1176,23 +1168,23 @@
}
}
- $s = sprintf(
- 'UPDATE
+ $s = 'UPDATE
`work`
SET
- `progress` = %s
+ `progress` = "%s"
WHERE
`project` = "%s" AND
`user` = "%s" AND
`anonymousIdent` = "%s" AND
- `id` = %s',
+ `id` = %d';
+ $params = array(
$progress,
$project,
$vcsLogin,
$anonymousIdent,
$idDB
);
- $db->query($s);
+ $this->conn->query($s, $params);
return true;
}
@@ -1206,7 +1198,6 @@
*/
public function clearLocalChange($type, $file)
{
- $db = DBConnection::getInstance();
$am = AccountManager::getInstance();
$appConf = $am->appConf;
$project = $am->project;
@@ -1227,8 +1218,7 @@
$return['errorFirst'] = 0;
// We need select row from work table
- $s = sprintf("
- SELECT
+ $s = "SELECT
`id`,
`user`,
`anonymousIdent`
@@ -1238,14 +1228,15 @@
`project` = '%s' AND
`lang` = '%s' AND
`path` = '%s' AND
- `name` = '%s'",
+ `name` = '%s'";
+ $params = array(
$project,
$lang,
$path,
$name
);
- $r = $db->query($s);
+ $r = $this->conn->query($s, $params);
if( $r->num_rows == 0 ) {
@@ -1272,10 +1263,10 @@
$return['oldIdDB'] = $a->id;
// We need delete row from work table
- $s = 'DELETE FROM `work` WHERE `id`="' .$a->id. '"';
+ $s = 'DELETE FROM `work` WHERE `id`=%d';
+ $params = array($a->id);
+ $this->conn->query($s, $params);
- $db->query($s);
-
// If type == delete, we stop here and return
if ($type == 'delete') {
return $return;
@@ -1309,8 +1300,9 @@
// We need reload original information
$s = "SELECT `revision`, `en_revision`, `maintainer`, `reviewed` FROM `files`
- WHERE `project`='$project' AND `lang`='$lang' AND `path`='$path' AND `name`='$name'";
- $r = $db->query($s);
+ WHERE `project`='%s' AND `lang`='%s' AND `path`='%s' AND `name`='%s'";
+ $params = array($project, $lang, $path, $name);
+ $r = $this->conn->query($s, $params);
$a = $r->fetch_object();
$return['rev'] = $a->revision;
@@ -1358,7 +1350,6 @@
public function updateFileInfo($files)
{
- $db = DBConnection::getInstance();
$am = AccountManager::getInstance();
foreach ($files as $file) {
@@ -1369,8 +1360,7 @@
if ($file->lang == 'en') { // en file
// update EN file info
- $s = sprintf(
- 'UPDATE `files`
+ $s = 'UPDATE `files`
SET
`xmlid` = "%s",
`revision` = "%s",
@@ -1380,24 +1370,25 @@
`project` = "%s" AND
`lang` = "%s" AND
`path` = "%s" AND
- `name` = "%s"',
+ `name` = "%s"';
+ $params = array(
$info['xmlid'], $info['rev'], $size, $date, $am->project, $file->lang, $file->path, $file->name
);
- $db->query($s);
+ $this->conn->query($s, $params);
// update LANG file info
- $s = sprintf(
- 'UPDATE `files`
+ $s = 'UPDATE `files`
SET
`en_revision` = "%s"
WHERE
`project` = "%s" AND
`lang` != "%s" AND
`path` = "%s" AND
- `name` = "%s"',
+ `name` = "%s"';
+ $params = array(
$info['rev'], $am->project, $file->lang, $file->path, $file->name
);
- $db->query($s);
+ $this->conn->query($s, $params);
} else { // lang file
@@ -1416,8 +1407,7 @@
- (intval((time() - $date) / 86400));
// update LANG file info
- $s = sprintf(
- 'UPDATE `files`
+ $s = 'UPDATE `files`
SET
`xmlid` = "%s",
`revision` = "%s",
@@ -1433,12 +1423,13 @@
`project` = "%s" AND
`lang` = "%s" AND
`path` = "%s" AND
- `name` = "%s"',
+ `name` = "%s"';
+ $params = array(
$info['xmlid'], $info['en-rev'], $enInfo['rev'], trim($info['reviewed']), $size, $date,
trim($info['maintainer']), trim($info['status']), $size_diff,
$date_diff, $am->project, $file->lang, $file->path, $file->name
);
- $db->query($s);
+ $this->conn->query($s, $params);
// Run the errorTools under this file
$tmpFile[0]['en_content'] = $en->read(true);
@@ -1455,8 +1446,7 @@
{
// update LANG file info
- $s = sprintf(
- 'UPDATE `files`
+ $s = 'UPDATE `files`
SET
`xmlid` = "%s",
`revision` = "%s",
@@ -1472,12 +1462,13 @@
`project` = "%s" AND
`lang` = "%s" AND
`path` = "%s" AND
- `name` = "%s"',
+ `name` = "%s"';
+ $params = array(
$info['xmlid'], $info['en-rev'], 0, trim($info['reviewed']), $size, $date,
trim($info['maintainer']), trim($info['status']), 0,
0, $am->project, $file->lang, $file->path, $file->name
);
- $db->query($s);
+ $this->conn->query($s, $params);
// Run the errorTools under this file
// If the EN file don't exist, it's because we have a file witch only exist into LANG, for example, translator.xml
@@ -1504,7 +1495,6 @@
public function updateTranslatorInfo()
{
$ExistingLanguage = $this->getExistingLanguage();
- $db = DBConnection::getInstance();
$am = AccountManager::getInstance();
foreach ($ExistingLanguage as $lang) {
@@ -1547,26 +1537,26 @@
$person = array_merge($default, $person);
// We try to remove this record if it exist
- $query = sprintf(
- 'DELETE FROM `translators` WHERE `project`="%s" AND `lang`="%s" AND `nick`="%s"',
+ $query = 'DELETE FROM `translators` WHERE `project`="%s" AND `lang`="%s" AND `nick`="%s"';
+ $params = array(
$am->project,
$lang,
- $db->real_escape_string($person['nick'])
+ $person['nick']
);
- $db->query($query);
+ $this->conn->query($query, $params);
- $query = sprintf(
- 'INSERT INTO `translators` (`project`, `lang`, `nick`, `name`, `mail`, `vcs`, `editor`)
- VALUES ("%s", "%s", "%s", "%s", "%s", "%s", "%s")',
+ $query = 'INSERT INTO `translators` (`project`, `lang`, `nick`, `name`, `mail`, `vcs`, `editor`)
+ VALUES ("%s", "%s", "%s", "%s", "%s", "%s", "%s")';
+ $params = array(
$am->project,
$lang,
- $db->real_escape_string($person['nick']),
- $db->real_escape_string($name),
- $db->real_escape_string($person['email']),
- $db->real_escape_string($person['vcs']),
- $db->real_escape_string($person['editor'])
+ $person['nick'],
+ $name,
+ $person['email'],
+ $person['vcs'],
+ $person['editor']
);
- $db->query($query);
+ $this->conn->query($query, $params);
}
}
@@ -1678,13 +1668,13 @@
$lang_file = $appConf[$project]['vcs.path'] .$lang .$f->path .$f->name;
if (!@is_file($en_file)) {
- $query = sprintf(
- 'INSERT INTO `files` (`project`, `lang`, `path`, `name`, `status`)
- VALUES ("%s", "%s", "%s", "%s", "%s")',
+ $query = 'INSERT INTO `files` (`project`, `lang`, `path`, `name`, `status`)
+ VALUES ("%s", "%s", "%s", "%s", "%s")';
+ $params = array(
$project,
$lang, $f->path, $f->name, 'NotInEN'
);
- DBConnection::getInstance()->query($query);
+ $this->conn->query($query, $params);
}
}
@@ -1704,7 +1694,6 @@
*/
public function applyRevCheck($path = '/', $revType='new', $revLang='all')
{
- $db = DBConnection::getInstance();
$am = AccountManager::getInstance();
$appConf = $am->appConf;
$project = $am->project;
@@ -1764,34 +1753,34 @@
if( $revType == 'update' )
{
//... table `files`
- $query = sprintf(
- 'DELETE FROM `files`
+ $query = 'DELETE FROM `files`
WHERE `project`="%s" AND
- `lang`="%s" AND
+ `lang`="en" AND
`path`="%s" AND
- `name`="%s"',
- $am->project, 'en', $f->path, $f->name
+ `name`="%s"';
+ $params = array(
+ $am->project, $f->path, $f->name
);
- $db->query($query);
+ $this->conn->query($query, $params);
//... table `errorfiles`
- $query = sprintf(
- 'DELETE FROM `errorfiles`
+ $query = 'DELETE FROM `errorfiles`
WHERE `project`="%s" AND
- `lang`="%s" AND
+ `lang`="en" AND
`path`="%s" AND
- `name`="%s"',
- $am->project, 'en', $f->path, $f->name
+ `name`="%s"';
+ $params = array(
+ $am->project, $f->path, $f->name
);
- $db->query($query);
+ $this->conn->query($query, $params);
}
// Sql insert.
- $query = sprintf(
- 'INSERT INTO `files` (`project`, `lang`, `xmlid`, `path`, `name`, `revision`, `size`, `mdate`, `maintainer`, `status`, `check_oldstyle`, `check_undoc`, `check_roleerror`, `check_badorder`, `check_noseealso`, `check_noreturnvalues`, `check_noparameters`, `check_noexamples`, `check_noerrors`)
- VALUES ("%s", "%s", "%s", "%s", "%s", "%s", %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)',
+ $query = 'INSERT INTO `files` (`project`, `lang`, `xmlid`, `path`, `name`, `revision`, `size`, `mdate`, `maintainer`, `status`, `check_oldstyle`, `check_undoc`, `check_roleerror`, `check_badorder`, `check_noseealso`, `check_noreturnvalues`, `check_noparameters`, `check_noexamples`, `check_noerrors`)
+ VALUES ("%s", "en", "%s", "%s", "%s", "%s", "%s", "%s", NULL, NUL, "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s")';
+ $params = array(
$am->project,
- 'en', $xmlid, $f->path, $f->name, $en_revision, $en_size, $en_date, 'NULL', 'NULL',
+ $xmlid, $f->path, $f->name, $en_revision, $en_size, $en_date,
$ToolsCheckDocResult['check_oldstyle'],
$ToolsCheckDocResult['check_undoc'],
$ToolsCheckDocResult['check_roleerror'],
@@ -1802,7 +1791,7 @@
$ToolsCheckDocResult['check_noexamples'],
$ToolsCheckDocResult['check_noerrors']
);
- $db->query($query);
+ $this->conn->query($query, $params);
$error = new ToolsError();
$error->setParams($infoEN['content'], '', 'en', $f->path, $f->name, '');
@@ -1841,26 +1830,26 @@
if( $revType == 'update' )
{
// ... `file`
- $query = sprintf(
- 'DELETE FROM `files`
+ $query = 'DELETE FROM `files`
WHERE `project`="%s" AND
`lang`="%s" AND
`path`="%s" AND
- `name`="%s"',
+ `name`="%s"';
+ $params = array(
$project, $lang, $lang_file->path, $lang_file->name
);
- $db->query($query);
+ $this->conn->query($query, $params);
//... table `errorfiles`
- $query = sprintf(
- 'DELETE FROM `errorfiles`
+ $query = 'DELETE FROM `errorfiles`
WHERE `project`="%s" AND
`lang`="%s" AND
`path`="%s" AND
- `name`="%s"',
+ `name`="%s"';
+ $params = array(
$project, $lang, $lang_file->path, $lang_file->name
);
- $db->query($query);
+ $this->conn->query($query, $params);
}
if ( $lang_file->exist() ) {
@@ -1879,16 +1868,16 @@
$xmlid = ($infoLANG['xmlid'] == 'NULL') ? 'NULL' : $infoLANG['xmlid'];
$reviewed = ($infoLANG['reviewed'] == 'NULL') ? 'NULL' : $infoLANG['reviewed'];
- $query = sprintf(
- 'INSERT INTO `files` (`project`, `lang`, `xmlid`, `path`, `name`, `revision`, `en_revision`, `reviewed`, `size`, `size_diff`, `mdate`, `mdate_diff`, `maintainer`, `status`)
- VALUES ("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", %s, %s, %s, %s, "%s", "%s")',
+ $query = 'INSERT INTO `files` (`project`, `lang`, `xmlid`, `path`, `name`, `revision`, `en_revision`, `reviewed`, `size`, `size_diff`, `mdate`, `mdate_diff`, `maintainer`, `status`)
+ VALUES ("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s")';
+ $params = array(
$project,
$lang, $xmlid, $lang_file->path, $lang_file->name,
$revision, $en_revision, $reviewed,
$size, $size_diff, $date, $date_diff,
$maintainer, $status
);
- $db->query($query);
+ $this->conn->query($query, $params);
// Check for error in this file ONLY if this file is uptodate
if ($revision == $en_revision && $revision != 0 ) {
@@ -1901,16 +1890,16 @@
$error->saveError();
}
} else {
- $query = sprintf(
- 'INSERT INTO `files` (`project`, `lang`, `path`, `name`, `size`)
- VALUES ("%s", "%s", "%s", "%s", %s)',
+ $query = 'INSERT INTO `files` (`project`, `lang`, `path`, `name`, `size`)
+ VALUES ("%s", "%s", "%s", "%s", "%s")';
+ $params = array(
$project,
$lang,
$lang_file->path,
$lang_file->name,
$en_size
);
- $db->query($query);
+ $this->conn->query($query, $params);
}
}
}
@@ -1931,16 +1920,17 @@
{
for ($i = 0; $i < count($files); $i++) {
- $query = sprintf('DELETE FROM files
+ $query = 'DELETE FROM files
WHERE
`project` = "%s" AND
`lang` = "%s" AND
`path` = "%s" AND
- `name` = "%s"',
+ `name` = "%s"';
+ $params = array(
AccountManager::getInstance()->project,
$files[$i]->lang, $files[$i]->path, $files[$i]->name
);
- DBConnection::getInstance()->query($query);
+ $this->conn->query($query, $params);
}
}
@@ -1955,23 +1945,29 @@
*/
public function setStaticValue($type, $field, $value, $forceNew=false)
{
- $db = DBConnection::getInstance();
$project = AccountManager::getInstance()->project;
$s = "SELECT id FROM staticValue WHERE
- `project` = '".$project."' AND
- `type` = '".$type."' AND
- `field` = '".$field."'
+ `project` = '%s' AND
+ `type` = '%s' AND
+ `field` = '%s'
";
- $r = $db->query($s);
+ $params = array(
+ $project,
+ $type,
+ $field
+ );
+ $r = $this->conn->query($s, $params);
if( $r->num_rows == 0 || $forceNew) {
- $s = "INSERT INTO staticValue (`project`, `type`, `field`, `value`, `date`) VALUES ('".$project."' , '".$type."' , '".$field."', '".$db->real_escape_string($value)."', now())";
- $db->query($s);
+ $s = "INSERT INTO staticValue (`project`, `type`, `field`, `value`, `date`) VALUES ('%s', '%s', '%s', '%s', now())";
+ $params = array($project, $type, $field, $value);
+ $this->conn->query($s, $params);
} else {
$a = $r->fetch_object();
- $s = "UPDATE staticValue SET `value`= '".$db->real_escape_string($value)."', `date`=now() WHERE `id`='".$a->id."'";
- $db->query($s);
+ $s = "UPDATE staticValue SET `value`= '%s', `date`=now() WHERE `id`=%d";
+ $params = array($value, $a->id);
+ $this->conn->query($s, $params);
}
}
Modified: web/doc-editor/trunk/php/ToolsCheckDoc.php
===================================================================
--- web/doc-editor/trunk/php/ToolsCheckDoc.php 2011-06-22 18:10:50 UTC (rev 312386)
+++ web/doc-editor/trunk/php/ToolsCheckDoc.php 2011-06-22 20:00:24 UTC (rev 312387)
@@ -10,12 +10,15 @@
*/
class ToolsCheckDoc {
+ private $conn;
+
/**
* Initialise
*
*/
function __construct()
{
+ $this->conn = DBConnection::getInstance();
}
/**
@@ -27,9 +30,15 @@
*/
function getCheckDocFiles($path, $errorType)
{
- $s = sprintf('SELECT name FROM `files` WHERE `lang`="en" AND `path`="%s" AND `%s`=1', $path, $errorType);
- $r = DBConnection::getInstance()->query($s);
+ $errorTypes = array('check_oldstyle', 'check_undoc', 'check_roleerror', 'check_badorder', 'check_noseealso', 'check_noreturnvalues', 'check_noparameters', 'check_noexamples', 'check_noerrors');
+ if (!in_array($errorType, $errorTypes))
+ return array();
+
+ $s = 'SELECT name FROM `files` WHERE `lang`="en" AND `path`="%s" AND `%s`=1';
+ $params = array($path, $errorType);
+ $r = $this->conn->query($s, $params);
+
$node = array();
while ($row = $r->fetch_assoc()) {
$node[] = $row;
@@ -69,7 +78,7 @@
ORDER BY path';
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, array());
$nb = $r->num_rows;
$i = 0;
while ($a = $r->fetch_object()) {
Modified: web/doc-editor/trunk/php/ToolsCheckEntities.php
===================================================================
--- web/doc-editor/trunk/php/ToolsCheckEntities.php 2011-06-22 18:10:50 UTC (rev 312386)
+++ web/doc-editor/trunk/php/ToolsCheckEntities.php 2011-06-22 20:00:24 UTC (rev 312387)
@@ -25,6 +25,7 @@
private $entityNames;
private $entityUrls;
+ private $conn;
/**
* Initialise
@@ -52,6 +53,7 @@
$this->supportedSchemes[] = 'ftp';
}
+ $this->conn = DBConnection::getInstance();
}
public static function getInstance()
@@ -83,10 +85,10 @@
FROM
`checkEntities`
WHERE
- `project` = \''.$project.'\'
+ `project` = "%s"
';
-
- $r = DBConnection::getInstance()->query($s);
+ $params = array($project);
+ $r = $this->conn->query($s, $params);
$nb = $r->num_rows;
$i = 0;
while ($a = $r->fetch_array()) {
@@ -107,7 +109,7 @@
{
$project = ProjectManager::getInstance()->project;
- DBConnection::getInstance()->query('DELETE FROM `checkEntities` WHERE `project`="'.$project.'"');
+ $this->conn->query('DELETE FROM `checkEntities` WHERE `project`="%s"', array($project));
}
@@ -169,15 +171,15 @@
$r = $this->checkUrl($num, $url);
- $query = sprintf(
- 'INSERT INTO `checkEntities` (`project`, `entities`, `url`, `result`, `date`)
- VALUES ("%s", "%s", "%s", "%s", now())',
+ $query = 'INSERT INTO `checkEntities` (`project`, `entities`, `url`, `result`, `date`)
+ VALUES ("%s", "%s", "%s", "%s", now())';
+ $params = array(
$project,
$name,
$url,
$r[0]
);
- DBConnection::getInstance()->query($query);
+ $this->conn->query($query, $params);
exit();
}
@@ -202,15 +204,15 @@
$r = $this->checkUrl($num, $entityUrl);
- $query = sprintf(
- 'INSERT INTO `checkEntities` (`project`, `entities`, `url`, `result`, `date`)
- VALUES ("%s", "%s", "%s", "%s", now())',
+ $query = 'INSERT INTO `checkEntities` (`project`, `entities`, `url`, `result`, `date`)
+ VALUES ("%s", "%s", "%s", "%s", now())';
+ $params = array(
$project,
$this->entityNames[$num],
$entityUrl,
$r[0]
);
- DBConnection::getInstance()->query($query);
+ $this->conn->query($query, $params);
}
++$num; // (for the count)
}
Modified: web/doc-editor/trunk/php/ToolsError.php
===================================================================
--- web/doc-editor/trunk/php/ToolsError.php 2011-06-22 18:10:50 UTC (rev 312386)
+++ web/doc-editor/trunk/php/ToolsError.php 2011-06-22 20:00:24 UTC (rev 312387)
@@ -59,14 +59,15 @@
*/
private $errorStack;
+ private $conn;
+
/**
* Initialise the check
- *
- * @param resource $db Database connexion
*/
function __construct()
{
$this->errorStack = array();
+ $this->conn = DBConnection::getInstance();
}
/**
@@ -108,10 +109,10 @@
$FileName = $nodes[$i]['name'];
// Remove all row in errorfiles tables
- $s = 'DELETE FROM errorfiles WHERE `project`=\''.$project.'\' AND lang=\''.$FileLang.'\' AND path=\''.$FilePath.'\' AND name=\''.$FileName.'\'';
+ $s = 'DELETE FROM errorfiles WHERE `project`="%s" AND lang="%s" AND path="%s" AND name="%s"';
+ $params = array($project, $FileLang, $FilePath, $FileName);
+ $this->conn->query($s, $params);
- DBConnection::getInstance()->query($s);
-
if( $FileLang != 'en' ) {
$this->setParams($nodes[$i]['en_content'], $nodes[$i]['lang_content'], $FileLang, $FilePath, $FileName, $nodes[$i]['maintainer']);
} else {
@@ -172,14 +173,19 @@
`errorfiles`
WHERE
'.$type.'
- `project` = \''.$project.'\' AND
- `lang` = \''.$this->lang.'\' AND
- `path` = \''.$this->filePath.'\' AND
- `name` = \''.$this->fileName.'\'
+ `project` = "%s" AND
+ `lang` = "%s" AND
+ `path` = "%s" AND
+ `name` = "%s"
';
+ $params = array(
+ $project,
+ $this->lang,
+ $this->filePath,
+ $this->fileName
+ );
+ $r = $this->conn->query($s, $params);
- $r = DBConnection::getInstance()->query($s);
-
$return = array();
while ($record = $r->fetch_object()) {
@@ -207,27 +213,27 @@
$project = $am->project;
if ( $am->userConf->error->skipNbLiteralTag ) {
- $type = ' type != \'nbLiteralTag\' AND ';
+ $type = 'type != "nbLiteralTag" AND ';
} else {
$type = '';
}
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
*
FROM
`errorfiles`
WHERE
- %s
+ ' . $type . '
`project`= "%s" AND
`lang` = "%s" AND
- `type` != "-No error-"',
+ `type` != "-No error-"';
+ $params = array(
$type,
$project,
$this->lang
);
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$node = array();
$alreadyNode = array();
@@ -296,21 +302,28 @@
*/
function saveError()
{
- $db = DBConnection::getInstance();
$project = AccountManager::getInstance()->project;
if( count($this->errorStack) > 0 ) {
- $sql = 'INSERT INTO errorfiles (`project`, `lang`, `path`, `name`, `maintainer`, `value_en`,`value_lang`,`type`) VALUES';
- $pattern = ' ("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s"),';
+ $sql = 'INSERT INTO errorfiles (`project`, `lang`, `path`, `name`, `maintainer`, `value_en`,`value_lang`,`type`) VALUES ';
+ $errorSQL = array();
+ $params = array();
foreach ($this->errorStack as $error) {
- $sql .= sprintf($pattern, $project, $this->lang, $this->filePath, $this->fileName, trim($this->maintainer,"'"), $db->real_escape_string($error['value_en']),
- $db->real_escape_string($error['value_lang']), $error['type']);
+ $errorSQL[] = '("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s")';
+
+ $params[] = $project;
+ $params[] = $this->lang;
+ $params[] = $this->filePath;
+ $params[] = $this->fileName;
+ $params[] = $this->maintainer;
+ $params[] = $error['value_en'];
+ $params[] = $error['value_lang'];
+ $params[] = $error['type'];
}
- $sql = substr($sql, 0, -1);
- $db->query($sql);
+ $this->conn->query($sql . implode(', ', $error_sql), $params);
}
Modified: web/doc-editor/trunk/php/TranslationStatistic.php
===================================================================
--- web/doc-editor/trunk/php/TranslationStatistic.php 2011-06-22 18:10:50 UTC (rev 312386)
+++ web/doc-editor/trunk/php/TranslationStatistic.php 2011-06-22 20:00:24 UTC (rev 312387)
@@ -8,6 +8,8 @@
{
private static $instance;
+ private $conn;
+
public static function getInstance()
{
if (!isset(self::$instance)) {
@@ -19,6 +21,7 @@
private function __construct()
{
+ $this->conn = DBConnection::getInstance();
}
/**
@@ -32,26 +35,31 @@
$project = AccountManager::getInstance()->project;
if( $lang == 'all' ) {
- $where = '';
- $groupBy = 'GROUP BY `lang`';
+ $s = 'SELECT
+ COUNT(*) AS total,
+ SUM(`size`) AS total_size,
+ `lang`
+ FROM
+ `files`
+ WHERE
+ (`status` != "NotInEN" OR `status` IS NULL ) AND
+ `project` = "%s"
+ GROUP BY `lang`';
+ $params = array($project);
} else {
- $where = '`lang` = \''.$lang.'\' AND';
- $groupBy = '';
- }
-
- $s = 'SELECT
+ $s = 'SELECT
COUNT(*) AS total,
SUM(`size`) AS total_size,
`lang`
- FROM
+ FROM
`files`
- WHERE
- ' . $where . '
- ( `status` != "NotInEN" OR `status` IS NULL ) AND
- `project` = \''.$project.'\'
- ' . $groupBy . '
- ';
- $res = DBConnection::getInstance()->query($s);
+ WHERE
+ `lang` = "%s" AND
+ (`status` != "NotInEN" OR `status` IS NULL ) AND
+ `project` = "%s"';
+ $params = array($lang, $project);
+ }
+ $res = $this->conn->query($s, $params);
while( $r = $res->fetch_array() ) {
$result[$r['lang']]['total'] = $r['total'];
@@ -73,27 +81,34 @@
$result = array();
if( $lang == 'all' ) {
- $where = '';
- $groupBy = 'GROUP BY `lang`';
+ $s = 'SELECT
+ COUNT(`name`) AS total,
+ SUM(`size`) AS total_size,
+ `lang`
+ FROM
+ `files`
+ WHERE
+ `revision` = `en_revision` AND
+ `revision` != 0 AND
+ `project` = "%s"
+ GROUP BY `lang`';
+ $params = array($project);
} else {
- $where = '`lang` = \''.$lang.'\' AND';
- $groupBy = '';
+ $s = 'SELECT
+ COUNT(`name`) AS total,
+ SUM(`size`) AS total_size,
+ `lang`
+ FROM
+ `files`
+ WHERE
+ `lang` = "%s" AND
+ `revision` = `en_revision` AND
+ `revision` != 0 AND
+ `project` = "%s"';
+ $params = array($lang, $project);
}
- $s = 'SELECT
- COUNT(`name`) AS total,
- SUM(`size`) AS total_size,
- `lang`
- FROM
- files
- WHERE
- ' . $where . '
- `revision` = `en_revision` AND
- `revision` != 0 AND
- `project` = \''.$project.'\'
- ' . $groupBy . '
- ';
- $res = DBConnection::getInstance()->query($s);
+ $res = $this->conn->query($s, $params);
while( $r = $res->fetch_array() ) {
$result[$r['lang']]['total'] = $r['total'];
@@ -115,29 +130,34 @@
$result = array();
if( $lang == 'all' ) {
- $where = '';
- $groupBy = 'GROUP BY `lang`';
+ $s = 'SELECT
+ COUNT(`name`) AS total,
+ SUM(`size`) AS total_size,
+ `lang`
+ FROM
+ `files`
+ WHERE
+ `en_revision` != `revision` AND
+ `size` is not NULL AND
+ `project` = "%s"
+ GROUP BY `lang`';
+ $params = array($project);
} else {
- $where = '`lang` = \''.$lang.'\' AND';
- $groupBy = '';
+ $s = 'SELECT
+ COUNT(`name`) AS total,
+ SUM(`size`) AS total_size,
+ `lang`
+ FROM
+ `files`
+ WHERE
+ `lang` = "%s" AND
+ `en_revision` != `revision` AND
+ `size` is not NULL AND
+ `project` = "%s"';
+ $params = array($lang, $project);
}
- $s = 'SELECT
- COUNT(`name`) AS total,
- SUM(`size`) AS total_size,
- `lang`
- FROM
- `files`
- WHERE
- ' . $where . '
- `en_revision` != `revision`
- AND
- `size` is not NULL
- AND
- `project` = \''.$project.'\'
- ' . $groupBy . '
- ';
- $res = DBCOnnection::getInstance()->query($s);
+ $res = $this->conn->query($s, $params);
while( $r = $res->fetch_array() ) {
$result[$r['lang']]['total'] = $r['total'];
@@ -154,39 +174,48 @@
*/
public function getNoTransFileCount($lang='all')
{
- $db = DBConnection::getInstance();
$project = AccountManager::getInstance()->project;
$result = $summary = array();
- if( $lang == 'all' ) {
- $where = '`lang` != \'en\' AND';
- } else {
- $where = '`lang` = \''.$lang.'\' AND';
- }
-
// We get EN files
- $s = 'SELECT * FROM files WHERE `lang`=\'en\' AND `project`=\''.$project.'\'';
+ $s = 'SELECT * FROM files WHERE `lang`="en" AND `project`="$project"';
+ $params = array($project);
+ $r = $this->conn->query($s, $params);
- $r = $db->query($s);
-
while( $a = $r->fetch_object() ) {
$resultEN[$a->path.$a->name] = $a->size;
}
- $s = 'SELECT
- `path`, `name`, `lang`
- FROM
- `files`
- WHERE
- ' . $where . '
- `revision` is NULL AND
- `status` is NULL AND
- `project` = \''.$project.'\'
- ';
+ if( $lang == 'all' ) {
+ $s = 'SELECT
+ `path`, `name`, `lang`
+ FROM
+ `files`
+ WHERE
+ `lang` != "en" AND
+ `revision` is NULL AND
+ `status` is NULL AND
+ `project` = "%s"
+ ';
+ $params = array($project);
+ }
+ else {
+ $s = 'SELECT
+ `path`, `name`, `lang`
+ FROM
+ `files`
+ WHERE
+ `lang` = "%s" AND
+ `revision` is NULL AND
+ `status` is NULL AND
+ `project` = "%s"
+ ';
+ $params = array($lang, $project);
+ }
- $r = $db->query($s);
+ $r = $this->conn->query($s, $params);
while( $a = $r->fetch_object() ) {
$result[$a->lang][$a->path.$a->name] = 'exist';
Modified: web/doc-editor/trunk/php/TranslatorStatistic.php
===================================================================
--- web/doc-editor/trunk/php/TranslatorStatistic.php 2011-06-22 18:10:50 UTC (rev 312386)
+++ web/doc-editor/trunk/php/TranslatorStatistic.php 2011-06-22 20:00:24 UTC (rev 312387)
@@ -8,6 +8,8 @@
{
private static $instance;
+ private $conn;
+
public static function getInstance()
{
if (!isset(self::$instance)) {
@@ -19,6 +21,7 @@
private function __construct()
{
+ $this->conn = DBConnection::getInstance();
}
/**
@@ -32,22 +35,28 @@
$project = AccountManager::getInstance()->project;
if( $lang == 'all' ) {
- $where = '';
+ $s = 'SELECT
+ `id`, `nick`, `name`, `mail`, `vcs`, `lang`
+ FROM
+ `translators`
+ WHERE
+ `project` = "%s"
+ ';
+ $params = array($project);
} else {
- $where = 'AND `lang`="'.$lang.'"';
+ $s = 'SELECT
+ `id`, `nick`, `name`, `mail`, `vcs`, `lang`
+ FROM
+ `translators`
+ WHERE
+ `project` = "%s" AND
+ `lang` = "%s"
+ ';
+ $params = array($project, $lang);
}
- $s = 'SELECT
- `id`, `nick`, `name`, `mail`, `vcs`, `lang`
- FROM
- `translators`
- WHERE
- `project` = \''.$project.'\'
- '.$where.'
- ';
+ $result = $this->conn->query($s, $params);
- $result = DBConnection::getInstance()->query($s);
-
$persons = array();
while ($r = $result->fetch_object()) {
@@ -72,27 +81,41 @@
$project = AccountManager::getInstance()->project;
if( $lang == 'all' ) {
- $where = '';
+ $s = 'SELECT
+ COUNT(`name`) AS total,
+ `maintainer`,
+ `lang`
+ FROM
+ `files`
+ WHERE
+ `revision` = `en_revision` AND
+ `project` = "%s"
+ GROUP BY
+ `maintainer`
+ ORDER BY
+ `maintainer`
+ ';
+ $params = array($project);
} else {
- $where = '`lang`="'.$lang.'" AND';
+ $s = 'SELECT
+ COUNT(`name`) AS total,
+ `maintainer`,
+ `lang`
+ FROM
+ `files`
+ WHERE
+ `lang` = "%s"
+ `revision` = `en_revision` AND
+ `project` = "%s"
+ GROUP BY
+ `maintainer`
+ ORDER BY
+ `maintainer`
+ ';
+ $params = array($lang, $project);
}
- $s = 'SELECT
- COUNT(`name`) AS total,
- `maintainer`,
- `lang`
- FROM
- `files`
- WHERE
- ' . $where . '
- `revision` = `en_revision` AND
- `project` = \''.$project.'\'
- GROUP BY
- `maintainer`
- ORDER BY
- `maintainer`
- ';
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$result = array();
while ($a = $r->fetch_object()) {
@@ -112,30 +135,49 @@
$project = AccountManager::getInstance()->project;
if( $lang == 'all' ) {
- $where = '';
+ $s = 'SELECT
+ COUNT(`name`) AS total,
+ `maintainer`,
+ `lang`
+ FROM
+ `files`
+ WHERE
+ ' . $where . '
+ `en_revision` != `revision`
+ AND
+ `size` is not NULL
+ AND
+ `project` = "%s"
+ GROUP BY
+ `maintainer`
+ ORDER BY
+ `maintainer`
+ ';
+ $params = array($project);
} else {
- $where = '`lang`="'.$lang.'" AND';
+ $s = 'SELECT
+ COUNT(`name`) AS total,
+ `maintainer`,
+ `lang`
+ FROM
+ `files`
+ WHERE
+ `lang` = "%s"
+ AND
+ `en_revision` != `revision`
+ AND
+ `size` is not NULL
+ AND
+ `project` = "%s"
+ GROUP BY
+ `maintainer`
+ ORDER BY
+ `maintainer`
+ ';
+ $params = array($lang, $project);
}
- $s = 'SELECT
- COUNT(`name`) AS total,
- `maintainer`,
- `lang`
- FROM
- `files`
- WHERE
- ' . $where . '
- `en_revision` != `revision`
- AND
- `size` is not NULL
- AND
- `project` = \''.$project.'\'
- GROUP BY
- `maintainer`
- ORDER BY
- `maintainer`
- ';
- $r = DBConnection::getInstance()->query($s);
+ $r = $this->conn->query($s, $params);
$result = array();
while ($a = $r->fetch_object()) {
@@ -188,4 +230,4 @@
}
}
-?>
\ No newline at end of file
+?>
Modified: web/doc-editor/trunk/php/UserNotes.php
===================================================================
--- web/doc-editor/trunk/php/UserNotes.php 2011-06-22 18:10:50 UTC (rev 312386)
+++ web/doc-editor/trunk/php/UserNotes.php 2011-06-22 20:00:24 UTC (rev 312387)
@@ -1,13 +1,13 @@
<?php
-/*
- *
- *
- */
+require_once dirname(__FILE__) . '/DBConnection.php';
+
class UserNotes {
private static $instance;
+ private $conn;
+
public static function getInstance()
{
if (!isset(self::$instance)) {
@@ -19,27 +19,26 @@
public function __construct()
{
-
+ $this->conn = DBConnection::getInstance();
}
public function getNotes($file)
{
$am = AccountManager::getInstance();
- $db = DBConnection::getInstance();
$project = $am->project;
- $s = sprintf(
- 'SELECT
+ $s = 'SELECT
`id`, `user`, `date`, `note`
FROM
`userNotes`
WHERE
- `project` = "%s" AND `file`="%s"',
+ `project` = "%s" AND `file`="%s"';
+ $params = array(
$project,
- $db->real_escape_string($file) // must be like this : fr/reference/cairo/cairocontext/appendpath.xml
+ $file // must be like this : fr/reference/cairo/cairocontext/appendpath.xml
);
- $r = $db->query($s);
+ $r = $this->conn->query($s, $params);
$infos = array();
while ($a = $r->fetch_assoc()) {
@@ -53,52 +52,50 @@
public function addNote($file, $note)
{
$am = AccountManager::getInstance();
- $db = DBConnection::getInstance();
$project = $am->project;
$vcsLogin = $am->vcsLogin;
- $s = sprintf(
- 'INSERT INTO
+ $s = 'INSERT INTO
`userNotes`
(`project`, `file`, `user`, `date`, `note`)
VALUES
- ("%s", "%s", "%s", now(), "%s")',
+ ("%s", "%s", "%s", now(), "%s")';
+ $params = array(
$project,
$file,
$vcsLogin,
- $db->real_escape_string($note)
+ $note
);
- $db->query($s);
+ $this->conn->query($s, $params);
}
public function delNote($noteID)
{
$am = AccountManager::getInstance();
- $db = DBConnection::getInstance();
$vcsLogin = $am->vcsLogin;
// A user can only delete his note. Not those of others users.
- $s = sprintf(
- 'SELECT user FROM
+ $s = 'SELECT user FROM
`userNotes`
WHERE
- id = "%s"',
+ id = %d';
+ $params = array(
$noteID
);
- $r = $db->query($s);
+ $r = $this->conn->query($s, $params);
$a = $r->fetch_object();
if( $a->user == $vcsLogin ) {
// We can delete it
- $s = sprintf(
- 'DELETE FROM
+ $s = 'DELETE FROM
`userNotes`
WHERE
- id = "%s"',
+ id = %d';
+ $params = array(
$noteID
);
- $db->query($s);
+ $this->conn->query($s, $params);
return true;
} else {
return false;