예제 #1
0
 * Its based on the getDatabase.php script that Owen and Tomasz wrote.
 *
 */
$wgDBdevboxUser = '******';
$wgDBdevboxPass = '******';
$wgDBdevboxServer1 = 'dev-db-a1';
$wgDBdevboxServer2 = 'dev-db-b1';
$wgControlPageID = 6741;
$wgDatabaseDirectories = array("database_A", "database_B", "database_C");
$USAGE = "Usage:\tphp syncDevData.php\n";
$wikis = what_to_sync();
find_dumps(&$wikis);
foreach ($wikis as $name => $detail) {
    echo "\n== Importing new content for {$name} ==\n";
    // See if the dump is newer and if not skip it
    if (!needs_update($name, $detail)) {
        continue;
    }
    $file = save_dump($name, $detail);
    import_dump($name, $detail, $file);
}
/******************************************************************************/
function what_to_sync()
{
    global $wgDBdevboxServer2, $wgDBdevboxUser, $wgDBdevboxPass, $wgControlPageID;
    // DBs to sync are reprented as links from page $wgControlPageID.  The
    // pages don't have exist and just have to be named Sync:DBNAME
    $response = `mysql -h{$wgDBdevboxServer2} -u{$wgDBdevboxUser} -p{$wgDBdevboxPass} devbox -s -N -e "select pl_title from pagelinks where pl_from = {$wgControlPageID}"`;
    // Skip any links that don't start with Sync: and strip the Sync: off the
    // links that do match
    $dbnames = array();
예제 #2
0
  * la clé est le nom du plugin, ou plus exactement le nom de la classe dérivé de PlxPlugin
  * la valeur est un tableau associatif avec :
  * la clé est le numéro de version du plugin
  * la valeur est un tableau ordinaire contenant
  * le nom de l'archive ($filename)
  * la date de l'archive ($filedate)
  * le numéro de version comme indiqué dans le fichier infos.xml ($version)
  * l'url où demander l'archive zip du plugin ($repository)
  * l'auteur ($author)
  * le site web de l'auteur ($site)
  * la description du plugin ($description)
  * les pré-requis ($requirements).
  * le numéro de version contenu dans infos.xml est converti en flottant à multiplier par 1000
  * et à convertir en entier pour trier les versions
  * */
 if (needs_update()) {
     list($cache, $cache_icons) = buildCaches($files);
     // tri et sauvegarde du cache sur le disque dur si non vide
     if (!empty($cache)) {
         ksort($cache);
         // tri décroissant des versions de chaque plugin
         foreach (array_keys($cache) as $k) {
             krsort($cache[$k]);
         }
         // encodage et sauvegarde (il y a du javascript dans l'air)
         if (file_put_contents(CACHE_FILE, json_encode($cache), LOCK_EX) === false) {
             $error = 'Pas de droit en écriture sur le disque dur<br />Contactez votre webmaster.';
         } else {
             // file_put_contents(CACHE_ICONS, json_encode($cache_icons), LOCK_EX);
             file_put_contents(CACHE_ICONS, serialize($cache_icons), LOCK_EX);
         }