Ejemplo n.º 1
0
function xmf_setMeta($key, $value, $moduleName = false)
{
    if (!$moduleName) {
        $moduleName = xmf_getCurrentModuleName();
    }
    $xoopsDB =& Database::getInstance();
    $ret = xmf_getMeta($key, $moduleName);
    if ($ret === '0' || $ret > 0) {
        $sql = sprintf("UPDATE %s SET metavalue = %s WHERE metakey = %s", $xoopsDB->prefix($moduleName . '_meta'), $xoopsDB->quoteString($value), $xoopsDB->quoteString($key));
    } else {
        $sql = sprintf("INSERT INTO %s (metakey, metavalue) VALUES (%s, %s)", $xoopsDB->prefix($moduleName . '_meta'), $xoopsDB->quoteString($key), $xoopsDB->quoteString($value));
    }
    $ret = $xoopsDB->queryF($sql);
    if (!$ret) {
        return false;
    }
    return true;
}
Ejemplo n.º 2
0
 function moduleUpgrade(&$module)
 {
     $dirname = $module->getVar('dirname');
     ob_start();
     $table = new Xmf_Database_Table($dirname . '_meta');
     if (!$table->exists()) {
         $table->setStructure("\r\n                `metakey` varchar(50) NOT NULL default '',\r\n                `metavalue` varchar(255) NOT NULL default '',\r\n            PRIMARY KEY (`metakey`)");
         $table->setData("'version',0");
         if (!$this->updateTable($table)) {
             /**
              * @todo trap the errors
              */
         }
     }
     $dbVersion = xmf_getMeta('version', $dirname);
     if (!$dbVersion) {
         $dbVersion = 0;
     }
     $newDbVersion = constant(strtoupper($dirname . '_db_version')) ? constant(strtoupper($dirname . '_db_version')) : 0;
     echo 'Database version : ' . $dbVersion . '<br />';
     echo 'New database version : ' . $newDbVersion . '<br />';
     if ($newDbVersion > $dbVersion) {
         for ($i = $dbVersion + 1; $i <= $newDbVersion; $i++) {
             $upgrade_function = $dirname . '_db_upgrade_' . $i;
             if (function_exists($upgrade_function)) {
                 $upgrade_function();
             }
         }
     }
     echo "<code>" . _DB_XMF_UPDATE_UPDATING_DATABASE . "<br />";
     // if there is a function to execute for this DB version, let's do it
     //$function_
     $this->automaticUpgrade($dirname, $module->modinfo['object_items']);
     echo "</code>";
     $feedback = ob_get_clean();
     if (method_exists($module, "setMessage")) {
         $module->setMessage($feedback);
     } else {
         echo $feedback;
     }
     xmf_setMeta("version", $newDbVersion, $dirname);
     //Set meta version to current
     return true;
 }