1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- /**
- * Elgg upgrade library.
- * Contains code for handling versioning and upgrades.
- *
- * @package Elgg.Core
- * @subpackage Upgrade
- */
- /**
- * Saves the processed upgrades to a dataset.
- *
- * @param array $processed_upgrades An array of processed upgrade filenames
- * (not the path, just the file)
- * @return bool
- * @access private
- *
- * @todo this is still required because of the hack in the 2011010101 upgrade
- */
- function elgg_set_processed_upgrades(array $processed_upgrades) {
- $processed_upgrades = array_unique($processed_upgrades);
- return datalist_set('processed_upgrades', serialize($processed_upgrades));
- }
- /**
- * Returns the version of the upgrade filename.
- *
- * @param string $filename The upgrade filename. No full path.
- * @return int|false
- * @since 1.8.0
- * @access private
- * @todo used by elgg_get_upgrade_files
- */
- function elgg_get_upgrade_file_version($filename) {
- preg_match('/^([0-9]{10})([\.a-z0-9-_]+)?\.(php)$/i', $filename, $matches);
- if (isset($matches[1])) {
- return (int) $matches[1];
- }
- return false;
- }
- /**
- * Returns a list of upgrade files relative to the $upgrade_path dir.
- *
- * @param string $upgrade_path The directory that has upgrade scripts
- * @return array|false
- * @access private
- *
- * @todo the wire and groups plugins and the installer are using this
- */
- function elgg_get_upgrade_files($upgrade_path = null) {
- if (!$upgrade_path) {
- $upgrade_path = elgg_get_root_path() . 'engine/lib/upgrades/';
- }
- $upgrade_path = sanitise_filepath($upgrade_path);
- $handle = opendir($upgrade_path);
- if (!$handle) {
- return false;
- }
- $upgrade_files = array();
- while ($upgrade_file = readdir($handle)) {
- // make sure this is a well formed upgrade.
- if (is_dir($upgrade_path . '$upgrade_file')) {
- continue;
- }
- $upgrade_version = elgg_get_upgrade_file_version($upgrade_file);
- if (!$upgrade_version) {
- continue;
- }
- $upgrade_files[] = $upgrade_file;
- }
- sort($upgrade_files);
- return $upgrade_files;
- }
- /**
- * Unlocks upgrade.
- *
- * @access private
- *
- * @todo the hack in the 2011010101 upgrade requires this
- */
- function _elgg_upgrade_unlock() {
- global $CONFIG;
- delete_data("drop table {$CONFIG->dbprefix}upgrade_lock");
- elgg_log('Upgrade unlocked.', 'NOTICE');
- }
|