svn: /web/doc-editor/trunk/php/ RepositoryFetcher.php
[email protected] (Yannick Torres)
| Newsgroups | php.doc.web |
|---|---|
| Message-ID | <[email protected]> |
yannick Sun, 26 Jun 2011 15:46:20 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=312495
Log:
Fix doc-base issue
Changed paths:
U web/doc-editor/trunk/php/RepositoryFetcher.php
svn-diffs-312495.txt
(text/x-diff, 22.7 KB)
Modified: web/doc-editor/trunk/php/RepositoryFetcher.php
===================================================================
--- web/doc-editor/trunk/php/RepositoryFetcher.php 2011-06-26 15:10:30 UTC (rev 312494)
+++ web/doc-editor/trunk/php/RepositoryFetcher.php 2011-06-26 15:46:20 UTC (rev 312495)
@@ -9,8 +9,6 @@
{
private static $instance;
- private $conn;
-
public static function getInstance()
{
if (!isset(self::$instance)) {
@@ -22,7 +20,6 @@
private function __construct()
{
- $this->conn = DBConnection::getInstance();
}
@@ -36,7 +33,8 @@
$am = AccountManager::getInstance();
$project = $am->project;
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
`date`
FROM
`staticValue`
@@ -44,10 +42,11 @@
`project` = "%s" AND
`type`="info"
ORDER BY `date` DESC
- LIMIT 0, 1';
- $params = array($am->project);
+ LIMIT 0, 1',
- $r = $this->conn->query($s, $params);
+ $am->project
+ );
+ $r = DBConnection::getInstance()->query($s);
$a = $r->fetch_assoc();
@@ -66,21 +65,24 @@
$infos = array();
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
count(*) as total
FROM
`staticValue`
WHERE
`project` = "%s" AND
- `type`="info"';
- $params = array($am->project);
+ `type`="info"',
- $r = $this->conn->query($s, $params);
+ $am->project
+ );
+ $r = DBConnection::getInstance()->query($s);
$a = $r->fetch_assoc();
$infos['total'] = $a['total'];
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
`field`, `value`, `date`
FROM
`staticValue`
@@ -88,10 +90,11 @@
`project` = "%s" AND
`type`="info"
ORDER BY `date` DESC
- LIMIT %d, %d';
- $params = array($am->project, (int)$start, (int)$limit);
+ LIMIT %s, %s',
- $r = $this->conn->query($s, $params);
+ $am->project, (int)$start, (int)$limit
+ );
+ $r = DBConnection::getInstance()->query($s);
$i=0;
while ($a = $r->fetch_assoc()) {
@@ -114,10 +117,6 @@
$return = array();
- if( !isset($appConf[$project]['skeletons.folder']) ) {
- return $return;
- }
-
$dir = realpath($appConf[$project]['skeletons.folder']);
$d = dir($dir);
while (false !== ($entry = $d->read())) {
@@ -140,19 +139,20 @@
{
$am = AccountManager::getInstance();
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
*
FROM
`work`
WHERE
`project` = "%s" AND
- ( `lang`="%s" OR `lang`="en" ) ';
- $params = array(
+ ( `lang`="%s" OR `lang`="en" ) ',
+
$am->project,
$am->vcsLang
);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
$infos = array();
while ($a = $r->fetch_assoc()) {
@@ -173,27 +173,27 @@
$am = AccountManager::getInstance();
$infos = array();
- $ids = is_array($id) ? implode(array_map('intval', $id), ',') : (int)$id;
+ $ids = is_array($id) ? implode($id, ',') : $id;
if( empty( $ids ) ) {
return $infos;
}
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
*
FROM
`work`
WHERE
`project` = "%s" AND
- (`lang`="%s" OR `lang`="en" OR `lang`="doc-base") AND `id` IN (%s)';
-
- $params = array(
+ (`lang`="%s" OR `lang`="en" OR `lang`="doc-base") AND `id` IN (%s)',
+
$am->project,
$am->vcsLang,
$ids
);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
while ($a = $r->fetch_assoc()) {
$infos[] = $a;
@@ -210,7 +210,8 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
count(*) as total
FROM
`files`
@@ -218,12 +219,11 @@
`project` = "%s" AND
`lang` = "%s" AND
`revision` != `en_revision` AND
- `status` is not null';
- $params = array(
+ `status` is not null',
$project,
$vcsLang
);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
$a = $r->fetch_object();
return ( $a->total > $am->userConf->needUpdate->nbDisplay && $am->userConf->needUpdate->nbDisplay != 0 ) ? $am->userConf->needUpdate->nbDisplay : $a->total;
@@ -241,11 +241,12 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $limit = ( $am->userConf->needUpdate->nbDisplay ) ? 'LIMIT '.(int)$am->userConf->needUpdate->nbDisplay : '';
+ $limit = ( $am->userConf->needUpdate->nbDisplay ) ? 'LIMIT '.$am->userConf->needUpdate->nbDisplay : '';
$m = $this->getModifies();
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
*
FROM
`files`
@@ -254,13 +255,12 @@
`lang` = "%s" AND
`revision` != `en_revision` AND
`status` is not NULL
- %s';
- $params = array(
+ %s',
$project,
$vcsLang,
$limit
);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
$node = array();
while ($a = $r->fetch_object()) {
@@ -322,19 +322,19 @@
$project = $am->project;
$m = $this->getModifies();
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
count(*) as total
FROM
`files`
WHERE
`project`="%s" AND
`lang` = "%s" AND
- reviewed != \'yes\'';
- $params = array(
+ reviewed != \'yes\'',
$project,
$vcsLang
);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
$a = $r->fetch_object();
return ( $a->total > $am->userConf->reviewed->nbDisplay && $am->userConf->reviewed->nbDisplay != 0 ) ? $am->userConf->reviewed->nbDisplay : $a->total;
@@ -351,10 +351,11 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $limit = ( $am->userConf->reviewed->nbDisplay ) ? 'LIMIT '.(int)$am->userConf->reviewed->nbDisplay : '';
+ $limit = ( $am->userConf->reviewed->nbDisplay ) ? 'LIMIT '.$am->userConf->reviewed->nbDisplay : '';
$m = $this->getModifies();
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
*
FROM
`files`
@@ -365,13 +366,12 @@
ORDER BY
`path`,
`name`
- %s';
- $params = array(
+ %s',
$project,
$vcsLang,
$limit
);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
$node = array();
while ($a = $r->fetch_object()) {
@@ -418,20 +418,19 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $s = 'SELECT
+ $s = sprintf('
+ SELECT
count(*) as total
FROM
`files`
WHERE
`project`="%s" AND
`lang`="%s" AND
- `status`="NotInEN"';
- $params = array(
+ `status`="NotInEN"',
$project,
- $vcsLang
- );
+ $vcsLang);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
$a = $r->fetch_object();
return $a->total;
@@ -449,7 +448,8 @@
$m = $this->getModifies();
- $s = 'SELECT
+ $s = sprintf('
+ SELECT
`id`,
`path`,
`name`
@@ -458,13 +458,11 @@
WHERE
`project`="%s" AND
`lang`="%s" AND
- `status`="NotInEN"';
- $params = array(
+ `status`="NotInEN"',
$project,
- $vcsLang
- );
+ $vcsLang);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
$node = array();
while ($a = $r->fetch_object()) {
@@ -488,7 +486,8 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $s = 'SELECT
+ $s = sprintf('
+ SELECT
count(*) as total
FROM
`files`
@@ -496,13 +495,12 @@
`project`="%s" AND
`lang`="%s" AND
`status` is NULL AND
- `revision` is NULL';
- $params = array(
+ `revision` is NULL',
$project,
$vcsLang
);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
$a = $r->fetch_object();
return ( $a->total > $am->userConf->newFile->nbDisplay && $am->userConf->newFile->nbDisplay != 0 ) ? $am->userConf->newFile->nbDisplay : $a->total;
@@ -520,10 +518,11 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $limit = ( $am->userConf->newFile->nbDisplay ) ? 'LIMIT '.(int)$am->userConf->newFile->nbDisplay : '';
+ $limit = ( $am->userConf->newFile->nbDisplay ) ? 'LIMIT '.$am->userConf->newFile->nbDisplay : '';
$m = $this->getModifies();
- $s = 'SELECT
+ $s = sprintf('
+ SELECT
`id`, `path`, `name`
FROM
`files`
@@ -532,15 +531,13 @@
`lang`="%s" AND
`status` is NULL AND
`revision` is NULL
- %s';
-
- $params = array(
+ %s',
$project,
$vcsLang,
$limit
);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
$node = array();
while ($a = $r->fetch_object()) {
@@ -566,19 +563,18 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
count(*) as total
FROM
`pendingPatch`
WHERE
`project`="%s" AND
- (`lang`="%s" OR `lang`=\'en\')';
- $params = array(
+ (`lang`="%s" OR `lang`=\'en\')',
$project,
$vcsLang
);
-
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
$a = $r->fetch_object();
return $a->total;
@@ -597,12 +593,11 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $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
+ $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
);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
$node = array();
while ($row = $r->fetch_assoc()) {
@@ -624,14 +619,12 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $s = 'SELECT * FROM `work` WHERE `project`="%s" AND (`lang`="%s" OR `lang`=\'en\') AND `name`=\'-\' ORDER BY id ASC';
- $params = array(
- $project,
- $vcsLang
+ $s = sprintf(
+ 'SELECT * FROM `work` WHERE `project`="%s" AND (`lang`="%s" OR `lang`=\'en\') AND `name`=\'-\' ORDER BY id ASC',
+ $project, $vcsLang
);
+ $r = DBConnection::getInstance()->query($s);
- $r = $this->conn->query($s, $params);
-
if( $r->num_rows == 0 ) {
return false;
}
@@ -655,13 +648,11 @@
$project = $am->project;
// We exclude item witch name == '-' ; this is new folder ; We don't display it.
- $s = 'SELECT count(*) as total FROM `pendingCommit` WHERE `project`="%s" AND (`lang`="%s" OR `lang`=\'en\') AND `name` != \'-\'';
- $params = array(
- $project,
- $vcsLang
+ $s = sprintf(
+ 'SELECT count(*) as total FROM `pendingCommit` WHERE `project`="%s" AND (`lang`="%s" OR `lang`=\'en\') AND `name` != \'-\'',
+ $project, $vcsLang
);
-
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
$a = $r->fetch_object();
return $a->total;
@@ -682,7 +673,8 @@
/**** We start by the work in progress module ****/
// We exclude item witch name == '-' ; this is new folder ; We don't display it.
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
CONCAT(`lang`, `path`, `name`) as filePath,
`user`,
`date`,
@@ -694,12 +686,11 @@
`lang` = "%s" AND
`project` = "%s"
ORDER BY
- type, date';
- $params = array(
+ type, date',
$lang,
$project
);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
$workInProgress = Array('nb'=>0,'data'=>Array());
@@ -714,7 +705,8 @@
/**** then, by the patches for review module ****/
// We exclude item witch name == '-' ; this is new folder ; We don't display it.
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
CONCAT(`lang`, `path`, `name`) as filePath,
`user`,
`date`,
@@ -726,12 +718,11 @@
`lang` = "%s" AND
`project` = "%s"
ORDER BY
- type, date';
- $params = array(
+ type, date',
$lang,
$project
);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
$PatchesForReview = Array('nb'=>0,'data'=>Array());
@@ -768,7 +759,8 @@
if( $module == 'PatchesForReview' ) {
// We exclude item witch name == '-' ; this is new folder ; We don't display it.
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
`id`,
`name` as patchName,
`user`,
@@ -776,11 +768,10 @@
FROM
`patches`
WHERE
- `project` = "%s"';
- $params = array(
+ `project` = "%s"',
$project
);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
$patches = Array();
@@ -795,20 +786,16 @@
$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")';
+ $langFilter = '(`lang` = "%s" OR `lang`="en" OR `lang`="doc-base")';
} else {
- $langFilter = '(`lang` = "%s")';
+ $langFilter = '(`lang` = "%s" OR `lang`="doc-base")';
}
// We exclude item witch name == '-' ; this is new folder ; We don't display it.
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
*
FROM
`work`
@@ -817,15 +804,14 @@
'.$langFilter.' AND
`name` != "-" AND
`module` = "%s" AND
- `patchID` IN (%s)';
- $params = array(
+ `patchID` IN (%s)',
$project,
$vcsLang,
$module,
- implode(",", array_map('intval', array_keys($patches)))
+ implode(",", array_keys($patches))
);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
while ($a = $r->fetch_object()) {
@@ -912,14 +898,15 @@
// Do we need to display EN Work ?
if( $am->userConf->main->displayENWork ) {
- $langFilter = '(`lang` = "%s" OR `lang`="en")';
+ $langFilter = '(`lang` = "%s" OR `lang`="en" OR `lang`="doc-base")';
} else {
- $langFilter = '(`lang` = "%s")';
+ $langFilter = '(`lang` = "%s" OR `lang`="doc-base")';
}
// We exclude item witch name == '-' ; this is new folder ; We don't display it.
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
*
FROM
`work`
@@ -928,13 +915,12 @@
'.$langFilter.' AND
`name` != "-" AND
`module` = "%s" AND
- `patchID` IS NULL';
- $params = array(
+ `patchID` IS NULL',
$project,
$vcsLang,
$module
);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
while ($a = $r->fetch_object()) {
@@ -1023,12 +1009,12 @@
$vcsLang = $am->vcsLang;
$project = $am->project;
- $s = 'SELECT `path`, `name` FROM `files` WHERE `path`
- LIKE \'/reference/%s/%%\' AND `lang`="%s" AND `project`="%s" ORDER BY `path`, `name`';
- $params = array(
+ $s = sprintf(
+ 'SELECT `path`, `name` FROM `files` WHERE `path`
+ LIKE \'/reference/%s/%%\' AND `lang`="%s" AND `project`="%s" ORDER BY `path`, `name`',
$ext, $vcsLang, $project
);
- $r = $this->conn->query($s, $params);
+ $r = DBConnection::getInstance()->query($s);
$node = array(); $i=0;
while ($a = $r->fetch_object()) {
@@ -1049,6 +1035,7 @@
*/
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.
@@ -1058,20 +1045,20 @@
}
// We start by searching file witch only this ID
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
`lang`, `path`, `name`
FROM
`files`
WHERE
`project`="%s" AND
`lang` = "%s" AND
- `xmlid` = "%s"';
- $params = array(
+ `xmlid` = "%s"',
$project,
$lang,
$id
);
- $r = $this->conn->query($s, $params);
+ $r = $db->query($s);
$nb = $r->num_rows;
if( $nb >= 1 ) {
@@ -1079,20 +1066,20 @@
} else {
// We now search file which contain this ID
- $s = 'SELECT
+ $s = sprintf(
+ 'SELECT
`lang`, `path`, `name`
FROM
`files`
WHERE
`project`="%s" AND
`lang` = "%s" AND
- `xmlid` LIKE "%%%s%%"';
- $params = array(
+ `xmlid` LIKE "%%%s%%"',
$project,
$lang,
$id
);
- $r = $this->conn->query($s, $params);
+ $r = $db->query($s);
$nb = $r->num_rows;
if( $nb == 0 ) {
@@ -1113,18 +1100,19 @@
public function getFileByKeyword($key)
{
$am = AccountManager::getInstance();
+ $db = DBConnection::getInstance();
$vcsLang = $am->vcsLang;
$project = $am->project;
- $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(
+ $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`',
$project,
$vcsLang,
- $key,
- $key
+ $db->real_escape_string($key),
+ $db->real_escape_string($key)
);
- $r = $this->conn->query($s, $params);
+ $r = $db->query($s);
$files = array();
while ($a = $r->fetch_object()) {
@@ -1243,22 +1231,17 @@
* @param $field The name of the field for this value
* @return The value.
*/
- public static function getStaticValue($type, $field)
+ public function getStaticValue($type, $field)
{
// Save in DB
- $s = 'SELECT id, value FROM staticValue WHERE
- `project` = "%s" AND
- `type` = "%s" AND
- `field`= "%s"';
- $params = array(
- AccountManager::getInstance()->project,
- $type,
- $field
- );
+ $s = "SELECT id, value FROM staticValue WHERE
+ `project`='".AccountManager::getInstance()->project."' AND
+ `type`='".$type."' AND
+ `field`= '".$field."'
+ ";
+ $r = DBConnection::getInstance()->query($s);
- $r = DBConnection::getInstance()->query($s, $params);
-
if( $r->num_rows == 0 ) {
return false;
} else {