*/ class RewriteModuleExtras { /** * @see GalleryModule::upgrade */ function upgrade($module, $currentVersion) { switch ($currentVersion) { case null: /* Initial install */ foreach (array('prefixMap' => serialize(array()), 'usePrefixes' => 'true', 'galleryLocation' => '') as $key => $value) { $ret = $module->setParameter($key, $value); if ($ret->isError()) { return $ret->wrap(__FILE__, __LINE__); } } $currentVersion = '0.8.0'; break; case '0.0.1': $currentVersion = '0.0.2'; case '0.0.2': $currentVersion = '0.0.3'; case '0.0.3': foreach (array('prefixes' => '', 'views' => '') as $key => $value) { $ret = $module->setParameter($key, $value); if ($ret->isError()) { return $ret->wrap(__FILE__, __LINE__); } } $currentVersion = '0.0.4'; case '0.0.4': $prefixMap = array(); list ($ret, $views) = GalleryCoreApi::getPluginParameter('module', 'rewrite', 'views'); if ($ret->isError()) { return $ret->wrap(__FILE__, __LINE__); } $views = explode('|', $views); list ($ret, $prefixes) = GalleryCoreApi::getPluginParameter('module', 'rewrite', 'prefixes'); if ($ret->isError()) { return $ret->wrap(__FILE__, __LINE__); } $prefixes = explode('|', $prefixes); for ($i = 0; $i < sizeof($views); $i++) { if (strlen($prefixes[$i])) { $prefixMap[$views[$i]] = $prefixes[$i]; } } foreach (array('prefixMap' => serialize($prefixMap)) as $key => $value) { $ret = $module->setParameter($key, $value); if ($ret->isError()) { return $ret->wrap(__FILE__, __LINE__); } } $ret = $module->removeItemParameter('views', 0); if ($ret->isError()) { return $ret->wrap(__FILE__, __LINE__); } $ret = $module->removeItemParameter('prefixes', 0); if ($ret->isError()) { return $ret->wrap(__FILE__, __LINE__); } $currentVersion = '0.0.5'; case '0.0.5': $currentVersion = '0.1.0'; case '0.1.0': $currentVersion = '0.1.1'; case '0.1.1': $currentVersion = '0.1.2'; case '0.1.2': $currentVersion = '0.1.3'; case '0.1.3': foreach (array('usePrefixes' => 'true', 'rewriteLocation' => '', 'rewriteBase' => '') as $key => $value) { $ret = $module->setParameter($key, $value); if ($ret->isError()) { return $ret->wrap(__FILE__, __LINE__); } } $currentVersion = '0.1.4'; case '0.1.4': $currentVersion = '0.1.5'; case '0.1.5': foreach (array('galleryLocation' => '', 'step' => 1) as $key => $value) { $ret = $module->setParameter($key, $value); if ($ret->isError()) { return $ret->wrap(__FILE__, __LINE__); } } $currentVersion = '0.1.6'; case '0.1.6': $currentVersion = '0.1.7'; case '0.1.7': $currentVersion = '0.1.8'; case '0.1.8': $ret = $module->removeItemParameter('rewriteLocation', 0); if ($ret->isError()) { return $ret->wrap(__FILE__, __LINE__); } $ret = $module->removeItemParameter('rewriteBase', 0); if ($ret->isError()) { return $ret->wrap(__FILE__, __LINE__); } $currentVersion = '0.1.9'; case '0.1.9': $currentVersion = '0.1.10'; case '0.1.10': $currentVersion = '0.8.0'; break; default: return GalleryStatus::error(ERROR_BAD_PLUGIN, __FILE__, __LINE__, sprintf('Unknown module version %s', $currentVersion)); } return GalleryStatus::success(); } } ?>