本文整理汇总了PHP中Gdn_ApplicationManager::EnabledApplicationFolders方法的典型用法代码示例。如果您正苦于以下问题:PHP Gdn_ApplicationManager::EnabledApplicationFolders方法的具体用法?PHP Gdn_ApplicationManager::EnabledApplicationFolders怎么用?PHP Gdn_ApplicationManager::EnabledApplicationFolders使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Gdn_ApplicationManager
的用法示例。
在下文中一共展示了Gdn_ApplicationManager::EnabledApplicationFolders方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Configure
/**
* Garden management screen.
*/
public function Configure()
{
$this->Permission('Garden.Settings.Manage');
$this->AddSideMenu('garden/settings/configure');
$this->AddJsFile('email.js');
$this->Title(Translate('General Settings'));
$Validation = new Gdn_Validation();
$ConfigurationModel = new Gdn_ConfigurationModel($Validation);
$ConfigurationModel->SetField(array('Garden.Locale', 'Garden.Title', 'Garden.RewriteUrls', 'Garden.Email.SupportName', 'Garden.Email.SupportAddress', 'Garden.Email.UseSmtp', 'Garden.Email.SmtpHost', 'Garden.Email.SmtpUser', 'Garden.Email.SmtpPassword', 'Garden.Email.SmtpPort'));
// Set the model on the form.
$this->Form->SetModel($ConfigurationModel);
// Load the locales for the locale dropdown
$Locale = Gdn::Locale();
$AvailableLocales = $Locale->GetAvailableLocaleSources();
$this->LocaleData = ArrayCombine($AvailableLocales, $AvailableLocales);
// Check to see if mod_rewrit is enabled.
if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())) {
$this->SetData('HasModRewrite', TRUE);
} else {
$this->SetData('HasModRewrite', FALSE);
}
// If seeing the form for the first time...
if ($this->Form->AuthenticatedPostBack() === FALSE) {
// Apply the config settings to the form.
$this->Form->SetData($ConfigurationModel->Data);
} else {
// Define some validation rules for the fields being saved
$ConfigurationModel->Validation->ApplyRule('Garden.Locale', 'Required');
$ConfigurationModel->Validation->ApplyRule('Garden.Title', 'Required');
$ConfigurationModel->Validation->ApplyRule('Garden.RewriteUrls', 'Boolean');
$ConfigurationModel->Validation->ApplyRule('Garden.Email.SupportName', 'Required');
$ConfigurationModel->Validation->ApplyRule('Garden.Email.SupportAddress', 'Required');
$ConfigurationModel->Validation->ApplyRule('Garden.Email.SupportAddress', 'Email');
// If changing locale, redefine locale sources:
$NewLocale = $this->Form->GetFormValue('Garden.Locale', FALSE);
if ($NewLocale !== FALSE && Gdn::Config('Garden.Locale') != $NewLocale) {
$ApplicationManager = new Gdn_ApplicationManager();
$PluginManager = Gdn::Factory('PluginManager');
$Locale = Gdn::Locale();
$Locale->Set($NewLocale, $ApplicationManager->EnabledApplicationFolders(), $PluginManager->EnabledPluginFolders(), TRUE);
}
if ($this->Form->Save() !== FALSE) {
$this->StatusMessage = Translate("Your settings have been saved.");
}
}
$this->Render();
}
示例2: Configure
/**
* Allows the configuration of basic setup information in Garden. This
* should not be functional after the application has been set up.
*
* @since 2.0.0
* @access public
* @param string $RedirectUrl Where to send user afterward.
*/
public function Configure($RedirectUrl = '')
{
// Create a model to save configuration settings
$Validation = new Gdn_Validation();
$ConfigurationModel = new Gdn_ConfigurationModel($Validation);
$ConfigurationModel->SetField(array('Garden.Locale', 'Garden.Title', 'Garden.RewriteUrls', 'Garden.WebRoot', 'Garden.Cookie.Salt', 'Garden.Cookie.Domain', 'Database.Name', 'Database.Host', 'Database.User', 'Database.Password', 'Garden.Registration.ConfirmEmail', 'Garden.Email.SupportName'));
// Set the models on the forms.
$this->Form->SetModel($ConfigurationModel);
// Load the locales for the locale dropdown
// $Locale = Gdn::Locale();
// $AvailableLocales = $Locale->GetAvailableLocaleSources();
// $this->LocaleData = array_combine($AvailableLocales, $AvailableLocales);
// If seeing the form for the first time...
if (!$this->Form->IsPostback()) {
// Force the webroot using our best guesstimates
$ConfigurationModel->Data['Database.Host'] = 'localhost';
$this->Form->SetData($ConfigurationModel->Data);
} else {
// Define some validation rules for the fields being saved
$ConfigurationModel->Validation->ApplyRule('Database.Name', 'Required', 'You must specify the name of the database in which you want to set up Vanilla.');
// Let's make some user-friendly custom errors for database problems
$DatabaseHost = $this->Form->GetFormValue('Database.Host', '~~Invalid~~');
$DatabaseName = $this->Form->GetFormValue('Database.Name', '~~Invalid~~');
$DatabaseUser = $this->Form->GetFormValue('Database.User', '~~Invalid~~');
$DatabasePassword = $this->Form->GetFormValue('Database.Password', '~~Invalid~~');
$ConnectionString = GetConnectionString($DatabaseName, $DatabaseHost);
try {
$Connection = new PDO($ConnectionString, $DatabaseUser, $DatabasePassword);
} catch (PDOException $Exception) {
switch ($Exception->getCode()) {
case 1044:
$this->Form->AddError(T('The database user you specified does not have permission to access the database. Have you created the database yet? The database reported: <code>%s</code>'), strip_tags($Exception->getMessage()));
break;
case 1045:
$this->Form->AddError(T('Failed to connect to the database with the username and password you entered. Did you mistype them? The database reported: <code>%s</code>'), strip_tags($Exception->getMessage()));
break;
case 1049:
$this->Form->AddError(T('It appears as though the database you specified does not exist yet. Have you created it yet? Did you mistype the name? The database reported: <code>%s</code>'), strip_tags($Exception->getMessage()));
break;
case 2005:
$this->Form->AddError(T("Are you sure you've entered the correct database host name? Maybe you mistyped it? The database reported: <code>%s</code>"), strip_tags($Exception->getMessage()));
break;
default:
$this->Form->AddError(sprintf(T('ValidateConnection'), strip_tags($Exception->getMessage())));
break;
}
}
$ConfigurationModel->Validation->ApplyRule('Garden.Title', 'Required');
$ConfigurationFormValues = $this->Form->FormValues();
if ($ConfigurationModel->Validate($ConfigurationFormValues) !== TRUE || $this->Form->ErrorCount() > 0) {
// Apply the validation results to the form(s)
$this->Form->SetValidationResults($ConfigurationModel->ValidationResults());
} else {
$Host = array_shift(explode(':', Gdn::Request()->RequestHost()));
$Domain = Gdn::Request()->Domain();
// Set up cookies now so that the user can be signed in.
$ExistingSalt = C('Garden.Cookie.Salt', FALSE);
$ConfigurationFormValues['Garden.Cookie.Salt'] = $ExistingSalt ? $ExistingSalt : RandomString(10);
$ConfigurationFormValues['Garden.Cookie.Domain'] = '';
// Don't set this to anything by default. # Tim - 2010-06-23
// Additional default setup values.
$ConfigurationFormValues['Garden.Registration.ConfirmEmail'] = TRUE;
$ConfigurationFormValues['Garden.Email.SupportName'] = $ConfigurationFormValues['Garden.Title'];
$ConfigurationModel->Save($ConfigurationFormValues, TRUE);
// If changing locale, redefine locale sources:
$NewLocale = 'en-CA';
// $this->Form->GetFormValue('Garden.Locale', FALSE);
if ($NewLocale !== FALSE && Gdn::Config('Garden.Locale') != $NewLocale) {
$ApplicationManager = new Gdn_ApplicationManager();
$Locale = Gdn::Locale();
$Locale->Set($NewLocale, $ApplicationManager->EnabledApplicationFolders(), Gdn::PluginManager()->EnabledPluginFolders(), TRUE);
}
// Install db structure & basic data.
$Database = Gdn::Database();
$Database->Init();
$Drop = FALSE;
// Gdn::Config('Garden.Version') === FALSE ? TRUE : FALSE;
$Explicit = FALSE;
try {
include PATH_APPLICATIONS . DS . 'dashboard' . DS . 'settings' . DS . 'structure.php';
} catch (Exception $ex) {
$this->Form->AddError($ex);
}
if ($this->Form->ErrorCount() > 0) {
return FALSE;
}
// Create the administrative user
$UserModel = Gdn::UserModel();
$UserModel->DefineSchema();
$UsernameError = T('UsernameError', 'Username can only contain letters, numbers, underscores, and must be between 3 and 20 characters long.');
$UserModel->Validation->ApplyRule('Name', 'Username', $UsernameError);
$UserModel->Validation->ApplyRule('Name', 'Required', T('You must specify an admin username.'));
//.........这里部分代码省略.........
示例3: DisablePlugin
public function DisablePlugin($PluginName)
{
// 1. Check to make sure that no other enabled plugins rely on this one
// Get all available plugins and compile their requirements
foreach ($this->EnabledPlugins as $CheckingName => $CheckingInfo) {
$RequiredPlugins = ArrayValue('RequiredPlugins', $CheckingInfo, FALSE);
if (is_array($RequiredPlugins) && array_key_exists($PluginName, $RequiredPlugins) === TRUE) {
throw new Exception(sprintf(T('You cannot disable the %1$s plugin because the %2$s plugin requires it in order to function.'), $PluginName, $CheckingName));
}
}
// 2. Perform necessary hook action
$this->_PluginHook($PluginName, self::ACTION_DISABLE, TRUE);
// 3. Disable it
RemoveFromConfig('EnabledPlugins' . '.' . $PluginName);
unset($this->EnabledPlugins[$PluginName]);
// Redefine the locale manager's settings $Locale->Set($CurrentLocale, $EnabledApps, $EnabledPlugins, TRUE);
$ApplicationManager = new Gdn_ApplicationManager();
$Locale = Gdn::Locale();
$Locale->Set($Locale->Current(), $ApplicationManager->EnabledApplicationFolders(), $this->EnabledPluginFolders(), TRUE);
}
示例4: Configure
/**
* Allows the configuration of basic setup information in Garden. This
* should not be functional after the application has been set up.
*/
public function Configure($RedirectUrl = '')
{
$Config = Gdn::Factory(Gdn::AliasConfig);
$ConfigFile = PATH_CONF . DS . 'config.php';
// Create a model to save configuration settings
$Validation = new Gdn_Validation();
$ConfigurationModel = new Gdn_ConfigurationModel('Configuration', $ConfigFile, $Validation);
$ConfigurationModel->SetField(array('Garden.Locale', 'Garden.Title', 'Garden.RewriteUrls', 'Garden.WebRoot', 'Garden.Cookie.Salt', 'Garden.Cookie.Domain', 'Database.Name', 'Database.Host', 'Database.User', 'Database.Password'));
// Set the models on the forms.
$this->Form->SetModel($ConfigurationModel);
// Load the locales for the locale dropdown
// $Locale = Gdn::Locale();
// $AvailableLocales = $Locale->GetAvailableLocaleSources();
// $this->LocaleData = array_combine($AvailableLocales, $AvailableLocales);
// If seeing the form for the first time...
if (!$this->Form->IsPostback()) {
// Force the webroot using our best guesstimates
$ConfigurationModel->Data['Database.Host'] = 'localhost';
$this->Form->SetData($ConfigurationModel->Data);
} else {
// Define some validation rules for the fields being saved
$ConfigurationModel->Validation->AddRule('Connection', 'function:ValidateConnection');
$ConfigurationModel->Validation->ApplyRule('Database.Name', 'Connection');
$ConfigurationModel->Validation->ApplyRule('Garden.Title', 'Required');
$ConfigurationFormValues = $this->Form->FormValues();
if ($ConfigurationModel->Validate($ConfigurationFormValues) !== TRUE) {
// Apply the validation results to the form(s)
$this->Form->SetValidationResults($ConfigurationModel->ValidationResults());
} else {
$Host = Gdn_Url::Host();
$Domain = Gdn_Url::Domain();
// Set up cookies now so that the user can be signed in.
$ConfigurationFormValues['Garden.Cookie.Salt'] = RandomString(10);
$ConfigurationFormValues['Garden.Cookie.Domain'] = strpos($Host, '.') === FALSE ? '' : $Host;
// Don't assign the domain if it is a non .com domain as that will break cookies.
$ConfigurationModel->Save($ConfigurationFormValues);
// If changing locale, redefine locale sources:
$NewLocale = 'en-CA';
// $this->Form->GetFormValue('Garden.Locale', FALSE);
if ($NewLocale !== FALSE && Gdn::Config('Garden.Locale') != $NewLocale) {
$ApplicationManager = new Gdn_ApplicationManager();
$PluginManager = Gdn::Factory('PluginManager');
$Locale = Gdn::Locale();
$Locale->Set($NewLocale, $ApplicationManager->EnabledApplicationFolders(), $PluginManager->EnabledPluginFolders(), TRUE);
}
// Set the instantiated config object's db params and make the database use them (otherwise it will use the default values from conf/config-defaults.php).
$Config->Set('Database.Host', $ConfigurationFormValues['Database.Host']);
$Config->Set('Database.Name', $ConfigurationFormValues['Database.Name']);
$Config->Set('Database.User', $ConfigurationFormValues['Database.User']);
$Config->Set('Database.Password', $ConfigurationFormValues['Database.Password']);
$Config->ClearSaveData();
Gdn::FactoryInstall(Gdn::AliasDatabase, 'Gdn_Database', PATH_LIBRARY . DS . 'database' . DS . 'class.database.php', Gdn::FactorySingleton, array(Gdn::Config('Database')));
// Install db structure & basic data.
$Database = Gdn::Database();
$Drop = FALSE;
// Gdn::Config('Garden.Version') === FALSE ? TRUE : FALSE;
$Explicit = FALSE;
try {
include PATH_APPLICATIONS . DS . 'garden' . DS . 'settings' . DS . 'structure.php';
} catch (Exception $ex) {
$this->Form->AddError(strip_tags($ex->getMessage()));
}
if ($this->Form->ErrorCount() > 0) {
return FALSE;
}
// Create the administrative user
$UserModel = Gdn::UserModel();
$UserModel->DefineSchema();
$UserModel->Validation->ApplyRule('Name', 'Username', 'Admin username can only contain letters, numbers, and underscores.');
$UserModel->Validation->ApplyRule('Password', 'Required');
$UserModel->Validation->ApplyRule('Password', 'Match');
if (!$UserModel->SaveAdminUser($ConfigurationFormValues)) {
$this->Form->SetValidationResults($UserModel->ValidationResults());
} else {
// The user has been created successfully, so sign in now
$Authenticator = Gdn::Authenticator();
$AuthUserID = $Authenticator->Authenticate(array('Name' => $this->Form->GetValue('Name'), 'Password' => $this->Form->GetValue('Password'), 'RememberMe' => TRUE));
}
if ($this->Form->ErrorCount() > 0) {
return FALSE;
}
// Assign some extra settings to the configuration file if everything succeeded.
$ApplicationInfo = array();
include CombinePaths(array(PATH_APPLICATIONS . DS . 'garden' . DS . 'settings' . DS . 'about.php'));
$Config->Load($ConfigFile, 'Save');
$Config->Set('Garden.Version', ArrayValue('Version', ArrayValue('Garden', $ApplicationInfo, array()), 'Undefined'));
$Config->Set('Garden.WebRoot', Gdn_Url::WebRoot());
$Config->Set('Garden.RewriteUrls', function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules()) ? TRUE : FALSE);
$Config->Set('Garden.Domain', $Domain);
$Config->Set('Garden.CanProcessImages', function_exists('gd_info'));
$Config->Set('Garden.Messages.Cache', 'arr:["Garden\\/Settings\\/Index"]');
// Make sure that the "welcome" message is cached for viewing
$Config->Set('EnabledPlugins.HTMLPurifier', 'HtmlPurifier');
// Make sure html purifier is enabled so html has a default way of being safely parsed
$Config->Save();
}
//.........这里部分代码省略.........
示例5: EnablePlugin
public function EnablePlugin($PluginName, $Validation, $Setup = FALSE, $EnabledPluginValueIndex = 'Folder')
{
// Check that the plugin is in AvailablePlugins...
$Plugin = $this->GetPluginInfo($PluginName, self::ACCESS_PLUGINNAME);
// If not, we're dealing with a special case. Enabling with a classname...
if (!$Plugin) {
$ClassName = $PluginName;
$PluginFile = Gdn_LibraryMap::GetCache('plugin', $ClassName);
if ($PluginFile) {
$Plugin = $this->PluginAvailable($PluginFile);
$PluginName = $Plugin['Index'];
}
}
// Couldn't load the plugin info.
if (!$Plugin) {
return;
}
$PluginName = $Plugin['Index'];
$this->TestPlugin($PluginName, $Validation, $Setup);
if (is_object($Validation) && count($Validation->Results()) > 0) {
return FALSE;
}
// If everything succeeded, add the plugin to the $EnabledPlugins array in conf/config.php
// $EnabledPlugins['PluginClassName'] = 'Plugin Folder Name';
// $PluginInfo = ArrayValue($PluginName, $this->AvailablePlugins(), FALSE);
$PluginInfo = $this->GetPluginInfo($PluginName);
$PluginFolder = ArrayValue('Folder', $PluginInfo);
$PluginEnabledValue = ArrayValue($EnabledPluginValueIndex, $PluginInfo, $PluginFolder);
SaveToConfig('EnabledPlugins.' . $PluginName, $PluginEnabledValue);
$this->EnabledPlugins[$PluginName] = $PluginInfo;
$this->RegisterPlugin($PluginInfo['ClassName'], $PluginInfo);
$ApplicationManager = new Gdn_ApplicationManager();
$Locale = Gdn::Locale();
$Locale->Set($Locale->Current(), $ApplicationManager->EnabledApplicationFolders(), $this->EnabledPluginFolders(), TRUE);
return TRUE;
}
示例6: DisablePlugin
public function DisablePlugin($PluginName)
{
// 1. Check to make sure that no other enabled plugins rely on this one
// Get all available plugins and compile their requirements
foreach ($this->EnabledPlugins as $CheckingName => $CheckingInfo) {
$RequiredPlugins = ArrayValue('RequiredPlugins', $CheckingInfo, FALSE);
if (is_array($RequiredPlugins) && array_key_exists($PluginName, $RequiredPlugins) === TRUE) {
throw new Exception(sprintf(Gdn::Translate('You cannot disable the %1$s plugin because the %2$s plugin requires it in order to function.'), $PluginName, $CheckingName));
}
}
// 2. Disable it
$Config = Gdn::Factory(Gdn::AliasConfig);
$Config->Load(PATH_CONF . DS . 'config.php', 'Save');
$Config->Remove('EnabledPlugins' . '.' . $PluginName);
$Config->Save();
unset($this->EnabledPlugins[$PluginName]);
// Redefine the locale manager's settings $Locale->Set($CurrentLocale, $EnabledApps, $EnabledPlugins, TRUE);
$ApplicationManager = new Gdn_ApplicationManager();
$Locale = Gdn::Locale();
$Locale->Set($Locale->Current(), $ApplicationManager->EnabledApplicationFolders(), $this->EnabledPluginFolders(), TRUE);
}
示例7: Configure
/**
* Garden management screen.
*/
public function Configure()
{
$this->Permission('Garden.Settings.Manage');
$this->AddSideMenu('garden/settings/configure');
$Validation = new Gdn_Validation();
$ConfigurationModel = new Gdn_ConfigurationModel('Configuration', PATH_CONF . DS . 'config.php', $Validation);
$ConfigurationModel->SetField(array('Garden.Locale', 'Garden.Title', 'Garden.RewriteUrls'));
// Set the model on the form.
$this->Form->SetModel($ConfigurationModel);
// Load the locales for the locale dropdown
$Locale = Gdn::Locale();
$AvailableLocales = $Locale->GetAvailableLocaleSources();
$this->LocaleData = ArrayCombine($AvailableLocales, $AvailableLocales);
// If seeing the form for the first time...
if ($this->Form->AuthenticatedPostBack() === FALSE) {
// Apply the config settings to the form.
$this->Form->SetData($ConfigurationModel->Data);
} else {
// Define some validation rules for the fields being saved
$ConfigurationModel->Validation->ApplyRule('Garden.Locale', 'Required');
$ConfigurationModel->Validation->ApplyRule('Garden.Title', 'Required');
$ConfigurationModel->Validation->ApplyRule('Garden.RewriteUrls', 'Boolean');
// If changing locale, redefine locale sources:
$NewLocale = $this->Form->GetFormValue('Garden.Locale', FALSE);
if ($NewLocale !== FALSE && Gdn::Config('Garden.Locale') != $NewLocale) {
$ApplicationManager = new Gdn_ApplicationManager();
$PluginManager = Gdn::Factory('PluginManager');
$Locale = Gdn::Locale();
$Locale->Set($NewLocale, $ApplicationManager->EnabledApplicationFolders(), $PluginManager->EnabledPluginFolders(), TRUE);
}
if ($this->Form->Save() !== FALSE) {
$this->StatusMessage = Translate("Your settings have been saved.");
}
}
$this->Render();
}