本文整理汇总了PHP中module::activate方法的典型用法代码示例。如果您正苦于以下问题:PHP module::activate方法的具体用法?PHP module::activate怎么用?PHP module::activate使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类module
的用法示例。
在下文中一共展示了module::activate方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _reset
private function _reset()
{
$db = Database::instance();
// Drop all tables
foreach ($db->list_tables() as $table) {
$db->query("DROP TABLE IF EXISTS `{$table}`");
}
// Clean out data
dir::unlink(VARPATH . "uploads");
dir::unlink(VARPATH . "albums");
dir::unlink(VARPATH . "resizes");
dir::unlink(VARPATH . "thumbs");
dir::unlink(VARPATH . "modules");
dir::unlink(VARPATH . "tmp");
$db->clear_cache();
module::$modules = array();
module::$active = array();
// Use a known random seed so that subsequent packaging runs will reuse the same random
// numbers, keeping our install.sql file more stable.
srand(0);
gallery_installer::install(true);
module::load_modules();
foreach (array("user", "comment", "organize", "info", "rss", "search", "slideshow", "tag") as $module_name) {
module::install($module_name);
module::activate($module_name);
}
}
示例2: change
public function change()
{
access::verify_csrf();
$active_provider = module::get_var("gallery", "identity_provider", "user");
$providers = identity::providers();
$new_provider = Input::instance()->post("provider");
if ($new_provider != $active_provider) {
module::deactivate($active_provider);
// Switch authentication
identity::reset();
module::set_var("gallery", "identity_provider", $new_provider);
module::install($new_provider);
module::activate($new_provider);
module::event("identity_provider_changed", $active_provider, $new_provider);
module::uninstall($active_provider);
message::success(t("Changed to %description", array("description" => $providers->{$new_provider})));
try {
Session::instance()->destroy();
} catch (Exception $e) {
// We don't care if there was a problem destroying the session.
}
url::redirect(item::root()->abs_url());
}
message::info(t("The selected provider \"%description\" is already active.", array("description" => $providers->{$new_provider})));
url::redirect("admin/identity");
}
示例3: save
public function save()
{
access::verify_csrf();
$changes->activate = array();
$changes->deactivate = array();
$activated_names = array();
$deactivated_names = array();
foreach (module::available() as $module_name => $info) {
if ($info->locked) {
continue;
}
$desired = $this->input->post($module_name) == 1;
if ($info->active && !$desired && module::is_active($module_name)) {
$changes->deactivate[] = $module_name;
$deactivated_names[] = $info->name;
module::deactivate($module_name);
} else {
if (!$info->active && $desired && !module::is_active($module_name)) {
$changes->activate[] = $module_name;
$activated_names[] = $info->name;
module::install($module_name);
module::activate($module_name);
}
}
}
module::event("module_change", $changes);
// @todo this type of collation is questionable from a i18n perspective
if ($activated_names) {
message::success(t("Activated: %names", array("names" => join(", ", $activated_names))));
}
if ($deactivated_names) {
message::success(t("Deactivated: %names", array("names" => join(", ", $deactivated_names))));
}
url::redirect("admin/modules");
}
示例4: upgrade
public function upgrade()
{
if (php_sapi_name() == "cli") {
// @todo this may screw up some module installers, but we don't have a better answer at
// this time.
$_SERVER["HTTP_HOST"] = "example.com";
} else {
if (!identity::active_user()->admin && !Session::instance()->get("can_upgrade", false)) {
access::forbidden();
}
}
$available = module::available();
// Upgrade gallery first
$gallery = $available["gallery"];
if ($gallery->code_version != $gallery->version) {
module::upgrade("gallery");
module::activate("gallery");
}
// Then upgrade the rest
foreach (module::available() as $id => $module) {
if ($id == "gallery") {
continue;
}
if ($module->active && $module->code_version != $module->version) {
module::upgrade($id);
}
}
if (php_sapi_name() == "cli") {
print "Upgrade complete\n";
} else {
url::redirect("upgrader");
}
}
示例5: upgrade
public function upgrade()
{
if (php_sapi_name() == "cli") {
// @todo this may screw up some module installers, but we don't have a better answer at
// this time.
$_SERVER["HTTP_HOST"] = "example.com";
} else {
if (!identity::active_user()->admin && !Session::instance()->get("can_upgrade", false)) {
access::forbidden();
}
try {
access::verify_csrf();
} catch (Exception $e) {
url::redirect("upgrader");
}
}
$available = module::available();
// Upgrade gallery first
$gallery = $available["gallery"];
if ($gallery->code_version != $gallery->version) {
module::upgrade("gallery");
module::activate("gallery");
}
// Then upgrade the rest
$failed = array();
foreach (module::available() as $id => $module) {
if ($id == "gallery") {
continue;
}
if ($module->active && $module->code_version != $module->version) {
try {
module::upgrade($id);
} catch (Exception $e) {
// @todo assume it's MODULE_FAILED_TO_UPGRADE for now
$failed[] = $id;
}
}
}
// If the upgrade failed, this will get recreated
site_status::clear("upgrade_now");
// Clear any upgrade check strings, we are probably up to date.
site_status::clear("upgrade_checker");
if (php_sapi_name() == "cli") {
if ($failed) {
print "Upgrade completed ** WITH FAILURES **\n";
print "The following modules were not successfully upgraded:\n";
print " " . implode($failed, "\n ") . "\n";
print "Try getting newer versions or deactivating those modules\n";
} else {
print "Upgrade complete\n";
}
} else {
if ($failed) {
url::redirect("upgrader?failed=" . join(",", $failed));
} else {
url::redirect("upgrader");
}
}
}
示例6: change_provider
static function change_provider($new_provider)
{
$current_provider = module::get_var("gallery", "identity_provider");
if (!empty($current_provider)) {
module::uninstall($current_provider);
}
try {
IdentityProvider::reset();
$provider = new IdentityProvider($new_provider);
module::set_var("gallery", "identity_provider", $new_provider);
if (method_exists("{$new_provider}_installer", "initialize")) {
call_user_func("{$new_provider}_installer::initialize");
}
module::event("identity_provider_changed", $current_provider, $new_provider);
auth::login($provider->admin_user());
Session::instance()->regenerate();
} catch (Exception $e) {
static $restore_already_running;
// In case of error, make an attempt to restore the old provider. Since that's calling into
// this function again and can fail, we should be sure not to get into an infinite recursion.
if (!$restore_already_running) {
$restore_already_running = true;
// Make sure new provider is not in the database
module::uninstall($new_provider);
// Lets reset to the current provider so that the gallery installation is still
// working.
module::set_var("gallery", "identity_provider", null);
IdentityProvider::change_provider($current_provider);
module::activate($current_provider);
message::error(t("Error attempting to enable \"%new_provider\" identity provider, " . "reverted to \"%old_provider\" identity provider", array("new_provider" => $new_provider, "old_provider" => $current_provider)));
$restore_already_running = false;
}
throw $e;
}
}
示例7: index
function index()
{
if (!TEST_MODE) {
throw new Kohana_404_Exception();
}
// Force strict behavior to flush out bugs early
ini_set("display_errors", true);
error_reporting(-1);
// Jump through some hoops to satisfy the way that we check for the site_domain in
// config.php. We structure this such that the code in config will leave us with a
// site_domain of "." (for historical reasons)
// @todo: for tests, we should force the site_domain to something like example.com
$_SERVER["SCRIPT_FILENAME"] = "index.php";
$_SERVER["SCRIPT_NAME"] = "./index.php";
$config = Kohana_Config::instance();
$original_config = DOCROOT . "var/database.php";
$test_config = VARPATH . "database.php";
if (!file_exists($original_config)) {
print "Please copy kohana/config/database.php to {$original_config}.\n";
return;
} else {
copy($original_config, $test_config);
$db_config = Kohana::config('database');
if (empty($db_config['unit_test'])) {
$default = $db_config['default'];
$conn = $default['connection'];
$config->set('database.unit_test.benchmark', $default['benchmark']);
$config->set('database.unit_test.persistent', $default['persistent']);
$config->set('database.unit_test.connection.type', $conn['type']);
$config->set('database.unit_test.connection.user', $conn['user']);
$config->set('database.unit_test.connection.pass', $conn['pass']);
$config->set('database.unit_test.connection.host', $conn['host']);
$config->set('database.unit_test.connection.port', $conn['port']);
$config->set('database.unit_test.connection.socket', $conn['socket']);
$config->set('database.unit_test.connection.database', "{$conn['database']}_test");
$config->set('database.unit_test.character_set', $default['character_set']);
$config->set('database.unit_test.table_prefix', $default['table_prefix']);
$config->set('database.unit_test.object', $default['object']);
$config->set('database.unit_test.cache', $default['cache']);
$config->set('database.unit_test.escape', $default['escape']);
$db_config = Kohana::config('database');
}
if ($db_config['default']['connection']['database'] == $db_config['unit_test']['connection']['database']) {
print "Don't use the default database for your unit tests or you'll lose all your data.\n";
return;
}
try {
$db = Database::instance('unit_test');
$db->connect();
// Make this the default database for the rest of this run
Database::set_default_instance($db);
} catch (Exception $e) {
print "{$e->getMessage()}\n";
return;
}
}
try {
// Clean out the database
if ($tables = $db->list_tables()) {
foreach ($db->list_tables() as $table) {
$db->query("DROP TABLE {{$table}}");
}
}
// Clean out the filesystem. Note that this cleans out test/var/database.php, but that's ok
// because we technically don't need it anymore. If this is confusing, we could always
// arrange to preserve that one file.
@system("rm -rf test/var");
@mkdir('test/var/logs', 0777, true);
$active_modules = module::$active;
// Reset our caches
module::$modules = array();
module::$active = array();
module::$var_cache = array();
$db->clear_cache();
// Rest the cascading class path
$config->set("core", $config->load("core"));
// Install the active modules
// Force gallery and user to be installed first to resolve dependencies.
gallery_installer::install(true);
module::load_modules();
module::install("user");
module::activate("user");
$modules = $paths = array();
foreach (module::available() as $module_name => $unused) {
if (in_array($module_name, array("gallery", "user"))) {
$paths[] = MODPATH . "{$module_name}/tests";
continue;
}
if (file_exists($path = MODPATH . "{$module_name}/tests")) {
$paths[] = $path;
module::install($module_name);
module::activate($module_name);
}
}
$config->set('unit_test.paths', $paths);
// Trigger late-binding install actions (defined in gallery_event::user_login)
graphics::choose_default_toolkit();
$filter = count($_SERVER["argv"]) > 2 ? $_SERVER["argv"][2] : null;
print new Unit_Test($modules, $filter);
} catch (ORM_Validation_Exception $e) {
//.........这里部分代码省略.........
示例8: _do_save
private function _do_save()
{
$changes = new stdClass();
$changes->activate = array();
$changes->deactivate = array();
$activated_names = array();
$deactivated_names = array();
foreach (module::available() as $module_name => $info) {
if ($info->locked) {
continue;
}
try {
$desired = Input::instance()->post($module_name) == 1;
if ($info->active && !$desired && module::is_active($module_name)) {
module::deactivate($module_name);
$changes->deactivate[] = $module_name;
$deactivated_names[] = t($info->name);
} else {
if (!$info->active && $desired && !module::is_active($module_name)) {
if (module::is_installed($module_name)) {
module::upgrade($module_name);
} else {
module::install($module_name);
}
module::activate($module_name);
$changes->activate[] = $module_name;
$activated_names[] = t($info->name);
}
}
} catch (Exception $e) {
message::warning(t("An error occurred while installing the <b>%module_name</b> module", array("module_name" => $info->name)));
Kohana_Log::add("error", (string) $e);
}
}
module::event("module_change", $changes);
// @todo this type of collation is questionable from an i18n perspective
if ($activated_names) {
message::success(t("Activated: %names", array("names" => join(", ", $activated_names))));
}
if ($deactivated_names) {
message::success(t("Deactivated: %names", array("names" => join(", ", $deactivated_names))));
}
}
示例9: package
public function package()
{
$this->auto_render = false;
$db = Database::instance();
// Drop all tables
foreach ($db->list_tables() as $table) {
$db->query("DROP TABLE IF EXISTS `{$table}`");
}
// Clean out data
dir::unlink(VARPATH . "uploads");
dir::unlink(VARPATH . "albums");
dir::unlink(VARPATH . "resizes");
dir::unlink(VARPATH . "thumbs");
dir::unlink(VARPATH . "modules");
dir::unlink(VARPATH . "tmp");
$db->clear_cache();
module::$modules = array();
module::$active = array();
// Use a known random seed so that subsequent packaging runs will reuse the same random
// numbers, keeping our install.sql file more stable.
srand(0);
try {
gallery_installer::install(true);
module::load_modules();
foreach (array("user", "comment", "organize", "info", "rss", "search", "slideshow", "tag") as $module_name) {
module::install($module_name);
module::activate($module_name);
}
} catch (Exception $e) {
Kohana::log("error", $e->getTraceAsString());
print $e->getTrace();
throw $e;
}
url::redirect("scaffold/dump_database");
}
示例10: Index
function Index()
{
if (!TEST_MODE) {
print Kohana::show_404();
}
$original_config = DOCROOT . "var/database.php";
$test_config = VARPATH . "database.php";
if (!file_exists($original_config)) {
print "Please copy kohana/config/database.php to {$original_config}.\n";
return;
} else {
copy($original_config, $test_config);
$db_config = Kohana::config('database');
if (empty($db_config['unit_test'])) {
$default = $db_config['default'];
$conn = $default['connection'];
Kohana::config_set('database.unit_test.benchmark', $default['benchmark']);
Kohana::config_set('database.unit_test.persistent', $default['persistent']);
Kohana::config_set('database.unit_test.connection.type', $conn['type']);
Kohana::config_set('database.unit_test.connection.user', $conn['user']);
Kohana::config_set('database.unit_test.connection.pass', $conn['pass']);
Kohana::config_set('database.unit_test.connection.host', $conn['host']);
Kohana::config_set('database.unit_test.connection.port', $conn['port']);
Kohana::config_set('database.unit_test.connection.socket', $conn['socket']);
Kohana::config_set('database.unit_test.connection.database', "{$conn['database']}_test");
Kohana::config_set('database.unit_test.character_set', $default['character_set']);
Kohana::config_set('database.unit_test.table_prefix', $default['table_prefix']);
Kohana::config_set('database.unit_test.object', $default['object']);
Kohana::config_set('database.unit_test.cache', $default['cache']);
Kohana::config_set('database.unit_test.escape', $default['escape']);
$db_config = Kohana::config('database');
}
if ($db_config['default']['connection']['database'] == $db_config['unit_test']['connection']['database']) {
print "Don't use the default database for your unit tests or you'll lose all your data.\n";
return;
}
try {
$db = Database::instance('unit_test');
$db->connect();
// Make this the default database for the rest of this run
Database::$instances = array('default' => $db);
} catch (Exception $e) {
print "{$e->getMessage()}\n";
return;
}
}
// Find all tests, excluding sample tests that come with the unit_test module.
foreach (glob(MODPATH . "*/tests") as $path) {
if ($path != MODPATH . "unit_test/tests") {
$paths[] = $path;
}
}
Kohana::config_set('unit_test.paths', $paths);
// Clean out the database
if ($tables = $db->list_tables()) {
foreach ($db->list_tables() as $table) {
$db->query("DROP TABLE {$table}");
}
}
// Clean out the filesystem
@system("rm -rf test/var");
@mkdir('test/var/logs', 0777, true);
// Reset our caches
module::$modules = array();
module::$active = array();
module::$var_cache = array();
$db->clear_cache();
// Install all modules
// Force gallery and user to be installed first to resolve dependencies.
gallery_installer::install(true);
module::load_modules();
module::install("user");
module::activate("user");
$modules = array();
foreach (glob(MODPATH . "*/helpers/*_installer.php") as $file) {
$module_name = basename(dirname(dirname($file)));
if (in_array($module_name, array("gallery", "user"))) {
continue;
}
module::install($module_name);
module::activate($module_name);
}
$filter = count($_SERVER["argv"]) > 2 ? $_SERVER["argv"][2] : null;
print new Unit_Test($modules, $filter);
}
示例11: Index
function Index()
{
if (!TEST_MODE) {
print Kohana::show_404();
}
// Jump through some hoops to satisfy the way that we check for the site_domain in
// config.php. We structure this such that the code in config will leave us with a
// site_domain of "." (for historical reasons)
// @todo: for tests, we should force the site_domain to something like example.com
$_SERVER["SCRIPT_FILENAME"] = "index.php";
$_SERVER["SCRIPT_NAME"] = "./index.php";
$original_config = DOCROOT . "var/database.php";
$test_config = VARPATH . "database.php";
if (!file_exists($original_config)) {
print "Please copy kohana/config/database.php to {$original_config}.\n";
return;
} else {
copy($original_config, $test_config);
$db_config = Kohana::config('database');
if (empty($db_config['unit_test'])) {
$default = $db_config['default'];
$conn = $default['connection'];
Kohana::config_set('database.unit_test.benchmark', $default['benchmark']);
Kohana::config_set('database.unit_test.persistent', $default['persistent']);
Kohana::config_set('database.unit_test.connection.type', $conn['type']);
Kohana::config_set('database.unit_test.connection.user', $conn['user']);
Kohana::config_set('database.unit_test.connection.pass', $conn['pass']);
Kohana::config_set('database.unit_test.connection.host', $conn['host']);
Kohana::config_set('database.unit_test.connection.port', $conn['port']);
Kohana::config_set('database.unit_test.connection.socket', $conn['socket']);
Kohana::config_set('database.unit_test.connection.database', "{$conn['database']}_test");
Kohana::config_set('database.unit_test.character_set', $default['character_set']);
Kohana::config_set('database.unit_test.table_prefix', $default['table_prefix']);
Kohana::config_set('database.unit_test.object', $default['object']);
Kohana::config_set('database.unit_test.cache', $default['cache']);
Kohana::config_set('database.unit_test.escape', $default['escape']);
$db_config = Kohana::config('database');
}
if ($db_config['default']['connection']['database'] == $db_config['unit_test']['connection']['database']) {
print "Don't use the default database for your unit tests or you'll lose all your data.\n";
return;
}
try {
$db = Database::instance('unit_test');
$db->connect();
// Make this the default database for the rest of this run
Database::$instances = array('default' => $db);
} catch (Exception $e) {
print "{$e->getMessage()}\n";
return;
}
}
try {
// Find all tests, excluding sample tests that come with the unit_test module.
foreach (glob(MODPATH . "*/tests") as $path) {
if ($path != MODPATH . "unit_test/tests") {
$paths[] = $path;
}
}
Kohana::config_set('unit_test.paths', $paths);
// Clean out the database
if ($tables = $db->list_tables()) {
foreach ($db->list_tables() as $table) {
$db->query("DROP TABLE {$table}");
}
}
// Clean out the filesystem
@system("rm -rf test/var");
@mkdir('test/var/logs', 0777, true);
// Reset our caches
module::$modules = array();
module::$active = array();
module::$var_cache = array();
$db->clear_cache();
// Rest the cascading class path
Kohana::config_set("core", Kohana::config_load("core"));
// Install all modules
// Force gallery and user to be installed first to resolve dependencies.
gallery_installer::install(true);
module::load_modules();
module::install("user");
module::activate("user");
$modules = array();
foreach (glob(MODPATH . "*/helpers/*_installer.php") as $file) {
$module_name = basename(dirname(dirname($file)));
if (in_array($module_name, array("gallery", "user"))) {
continue;
}
module::install($module_name);
module::activate($module_name);
}
// Trigger late-binding install actions (defined in gallery_event::user_login)
graphics::choose_default_toolkit();
$filter = count($_SERVER["argv"]) > 2 ? $_SERVER["argv"][2] : null;
print new Unit_Test($modules, $filter);
} catch (Exception $e) {
print "Exception: {$e->getMessage()}\n";
print $e->getTraceAsString() . "\n";
}
}
示例12: change_provider
static function change_provider($new_provider)
{
if (!identity::active_user()->admin && PHP_SAPI != "cli") {
// Below, the active user is set to the primary admin.
access::forbidden();
}
$current_provider = module::get_var("gallery", "identity_provider");
if (!empty($current_provider)) {
module::uninstall($current_provider);
}
try {
IdentityProvider::reset();
$provider = new IdentityProvider($new_provider);
module::set_var("gallery", "identity_provider", $new_provider);
if (method_exists("{$new_provider}_installer", "initialize")) {
call_user_func("{$new_provider}_installer::initialize");
}
module::event("identity_provider_changed", $current_provider, $new_provider);
identity::set_active_user($provider->admin_user());
Session::instance()->regenerate();
} catch (Exception $e) {
static $restore_already_running;
// In case of error, make an attempt to restore the old provider. Since that's calling into
// this function again and can fail, we should be sure not to get into an infinite recursion.
if (!$restore_already_running) {
$restore_already_running = true;
// Make sure new provider is not in the database
try {
module::uninstall($new_provider);
// Lets reset to the current provider so that the gallery installation is still
// working.
module::set_var("gallery", "identity_provider", null);
IdentityProvider::change_provider($current_provider);
module::activate($current_provider);
} catch (Exception $e2) {
Kohana_Log::add("error", "Error restoring original identity provider\n" . $e2->getMessage() . "\n" . $e2->getTraceAsString());
}
message::error(t("Error attempting to enable \"%new_provider\" identity provider, reverted to \"%old_provider\" identity provider", array("new_provider" => $new_provider, "old_provider" => $current_provider)));
$restore_already_running = false;
}
throw $e;
}
}