/** * @return $this */ public function test() { Config::_getInstance()->load('UpgradeDB'); if (!config('enabled', 'UpgradeDB')) { lang('disabled', 'UpgradeDB'); exit; } Error::_getInstance()->flush()->_('verbosity', 'die'); if (is_null($this->index()->run('test')->__())) { lang('upToDate', 'UpgradeDB'); exit; } if (!copyContent(BASE_PATH . config('testContentPath', 'UpgradeDB'), BASE_PATH . config('contentPath', 'Default'))) { lang('copyContentFailure', 'UpgradeDB'); } lang('copyContentSuccess', 'UpgradeDB'); linefeed(); return $this; }
/** * @param string $source * @param string $target * @return bool */ function copyContent($source, $target) { if (!is_writable($target)) { Error::_getInstance()->add('filesystem', 0, array($target)); return false; } $files = scandir($source); foreach ($files as $file) { switch (true) { case $file == '.': case $file == '..': continue; case is_dir($source . $file): if (!is_dir($target . $file)) { mkdir($target . $file); } copyContent("{$source}{$file}/", "{$target}{$file}/"); break; default: copy($source . $file, $target . $file); } } return true; }
} if ($_FILES["ext"]["tmp_name"] != "") { $myext = savefile("ext", $table, $content_id); } if ($_FILES["ext3"]["tmp_name"] != "") { $myext3 = savefile("ext3", $table . "3_", $content_id); } if ($_FILES["ext4"]["tmp_name"] != "") { $myext4 = savefile("ext4", $table . "4_", $content_id); } if ($_FILES["ext5"]["tmp_name"] != "") { $myext5 = savefile("ext5", $table . "5_", $content_id); } majfichier($id); majval($id); copyContent($id, $_GET["arbre_id"], $_GET["langue_id"]); $szQuery = ""; } else { $_GET["id"] = $content_id; if ($_FILES["ext"]["tmp_name"] != "" && $_POST["ext_chk"] != 1) { $myext = savefile("ext", $table); } else { if ($_POST["ext"] != "" && $_POST["ext_chk"] != 1) { $myext = ",ext='" . $_POST["ext"] . "'"; } else { if ($_POST["ext_chk"] == 1) { $myext = ",ext=null"; } } } if ($_FILES["ext2"]["tmp_name"] != "" && $_POST["ext2_chk"] != 1) {
function updateContent($content_id, $arbre_id, $langue_id) { //recherche du contenu_id $requete_select_contenu = "select contenu_id,shortlib from " . __racinebd__ . "contenu c inner join " . __racinebd__ . "langue l on c.langue_id=l.langue_id where arbre_id = " . $arbre_id . " and l.langue_id!=" . $langue_id; $link_select_contenu = query($requete_select_contenu); $requete_select_content = "select * from " . __racinebd__ . "content where content_id = " . $content_id; $link_select_content = query($requete_select_content); $ligne_select_content = fetch($link_select_content); //print_r($_POST); //$result = mysql_query("select * from table"); $listfile = array(); while ($ligne_select_contenu = fetch($link_select_contenu)) { //$requete="insert into ".__racinebd__."content "; $listchamps = array(); $listvalue = array(); $listext = array(); //$listchamps[]="contenu_id"; //$listvalue[]=$ligne_select_contenu["contenu_id"]; for ($i = 0; $i < mysql_num_fields($link_select_content); $i++) { if (mysql_field_name($link_select_content, $i) != "content_id" && mysql_field_name($link_select_content, $i) != "contenu_id") { $champs = mysql_field_name($link_select_content, $i); if (strpos($champs, "ext") === false) { if ($_POST[$champs . "___" . $ligne_select_contenu["shortlib"]] != "") { $value = "'" . addslashes($_POST[$champs . "___" . $ligne_select_contenu["shortlib"]]) . "'"; } else { $value = "'" . addslashes($ligne_select_content[$champs]) . "'"; } $listchamps[] = $champs . "=" . $value; } else { //print $champs."___".$ligne_select_contenu["shortlib"]." : ".$_FILES[$champs."___".$ligne_select_contenu["shortlib"]]; //print_r($_FILES); if (isset($_FILES[$champs . "___" . $ligne_select_contenu["shortlib"]])) { //$numext=explode("___",$champs); //sauvegarde du fichier /* if(strlen($numext[0])>3){ $numext=substr($numext[0],-1); */ //print "ici"; if (strlen($champs) > 3) { $numext = substr($champs, -1); //print $numext; $listfile[] = array($champs . "___" . $ligne_select_contenu["shortlib"], __racinebd__ . "content" . $numext . "_"); } else { $listfile[] = array($champs . "___" . $ligne_select_contenu["shortlib"], __racinebd__ . "content"); } //$value=($_POST[$champs."___".$ligne_select_contenu["shortlib"]]=="")?"null":"'".$_POST[$champs."___".$ligne_select_contenu["shortlib"]]."'"; $value = $_FILES[$champs . "___" . $ligne_select_contenu["shortlib"]]["name"] != "" ? "'" . getext($_FILES[$champs . "___" . $ligne_select_contenu["shortlib"]]["name"]) . "'" : "null"; } else { $value = $ligne_select_content[$champs] == "" ? "null" : "'" . $ligne_select_content[$champs] . "'"; $listext[] = $champs; } if ($_POST[$champs . "___" . $ligne_select_contenu["shortlib"] . "_chk"] == 1) { $listchamps[] = $champs . "=null"; } else { if ($value != "null") { $listchamps[] = $champs . "=" . $value; } } } } } $requete_update_content = "update " . __racinebd__ . "content set " . implode(",", $listchamps) . " where contenu_id=" . $ligne_select_contenu["contenu_id"]; //print $requete_insert_content; //echo $requete_insert_content; $link = query($requete_update_content); //verification que la mise ajour a été effectué sinon on crée un enregistrement $sql = "select * from " . __racinebd__ . "content where contenu_id=" . $ligne_select_contenu["contenu_id"]; $link = query($sql); if (num_rows($link) == 0) { copyContent($content_id, $arbre_id, $langue_id, $ligne_select_contenu["langue_id"]); } else { $tbl = fetch($link); /* print_r($listfile); print_r($listext); */ //sauvegarde des fichiers différents for ($j = 0; $j < count($listfile); $j++) { savefile($listfile[$j][0], $listfile[$j][1], $tbl["content_id"]); } $dernier_ajout_content = $tbl["content_id"]; //a faire pour l'update //print_r($listext); for ($listextindice = 0; $listextindice < count($listext); $listextindice++) { $suffixe = strlen($listext[$listextindice]) > 3 ? substr($listext[$listextindice], -1) . "_" : ""; //$suffixe=($listextindice==0)?"":($listextindice+1)."_"; //print $_SERVER["DOCUMENT_ROOT"].__uploaddir__.__racinebd__.'content'.$suffixe.$ligne_select_content['content_id'].'.'.$ligne_select_content[$listext[$listextindice]]."<br>"; @copy($_SERVER["DOCUMENT_ROOT"] . __uploaddir__ . __racinebd__ . 'content' . $suffixe . $ligne_select_content['content_id'] . '.' . $ligne_select_content[$listext[$listextindice]], $_SERVER["DOCUMENT_ROOT"] . __uploaddir__ . __racinebd__ . 'content' . $suffixe . $dernier_ajout_content . '.' . $ligne_select_content[$listext[$listextindice]]); @copy($_SERVER["DOCUMENT_ROOT"] . __uploaddir__ . 'tbl_' . __racinebd__ . 'content' . $suffixe . $ligne_select_content['content_id'] . '.' . $ligne_select_content[$listext[$listextindice]], $_SERVER["DOCUMENT_ROOT"] . __uploaddir__ . 'tbl_' . __racinebd__ . 'content' . $suffixe . $dernier_ajout_content . '.' . $ligne_select_content[$listext[$listextindice]]); for ($i = 0; $i < 5; $i++) { @copy($_SERVER["DOCUMENT_ROOT"] . __uploaddir__ . 'tbl_' . $i . __racinebd__ . 'content' . $suffixe . $ligne_select_content['content_id'] . '.' . $ligne_select_content[$listext[$listextindice]], $_SERVER["DOCUMENT_ROOT"] . __uploaddir__ . 'tbl_' . $i . __racinebd__ . 'content' . $suffixe . $dernier_ajout_content . '.' . $ligne_select_content[$listext[$listextindice]]); } } $requete_select_fichier = "select * from " . __racinebd__ . "fichiers where content_id = " . $ligne_select_content['content_id'] . " and supprimer=0"; $link_select_fichier = query($requete_select_fichier); while ($ligne_select_fichier = fetch($link_select_fichier)) { $requete_insert_fichier = "insert into " . __racinebd__ . "fichiers (content_id,titre,abstract,ext,nom_fichier,supprimer,contenu) values (\r\n " . $dernier_ajout_content . ",\r\n '" . addslashes($ligne_select_fichier['titre']) . "',\r\n '" . addslashes($ligne_select_fichier['abstract']) . "',\r\n " . ($ligne_select_fichier['ext'] == "" ? "null" : "'" . $ligne_select_fichier['ext'] . "'") . ",\r\n '" . addslashes($ligne_select_fichier['nom_fichier']) . "',\r\n " . $ligne_select_fichier['supprimer'] . ",\r\n '" . addslashes($ligne_select_fichier['contenu']) . "'\r\n )"; $link_insert_fichier = query($requete_insert_fichier); $dernier_ajout_fichier = insert_id(); copy($_SERVER["DOCUMENT_ROOT"] . __uploaddir__ . __racinebd__ . 'fichiers' . $ligne_select_fichier['fichiers_id'] . '.' . $ligne_select_fichier['ext'], $_SERVER["DOCUMENT_ROOT"] . __uploaddir__ . __racinebd__ . 'fichiers' . $dernier_ajout_fichier . '.' . $ligne_select_fichier['ext']); } } } }