internal void Parse() { if (String.IsNullOrEmpty(FileName)) { throw new InvalidOperationException(); } string extensionDir = String.Empty; using (StreamReader reader = new StreamReader(FileName)) { foreach (object o in PHPIniFile.ParseIniFile(reader)) { PHPIniSetting directive = o as PHPIniSetting; if (directive != null) { Settings.Add(directive); RawEntries.Add(directive); // Get the path to the extension directory - this will be used later if (String.Equals(directive.Name, "extension_dir", StringComparison.OrdinalIgnoreCase)) { extensionDir = directive.GetTrimmedValue(); } } else { PHPIniExtension extension = o as PHPIniExtension; if (extension != null) { Extensions.Add(extension); RawEntries.Add(extension); } else { PHPIniBase entry = o as PHPIniBase; if (entry != null) { RawEntries.Add(entry); } } } } } if (String.IsNullOrEmpty(extensionDir) || !Path.IsPathRooted(extensionDir)) { extensionDir = Path.Combine(Path.GetDirectoryName(FileName), "ext"); } if (Directory.Exists(extensionDir)) { AddAllAvailableExtensions(extensionDir); } }
public override bool Equals(object obj) { PHPIniSetting setting = obj as PHPIniSetting; if (setting == null) { return(false); } return(String.Equals(setting.Name, Name, StringComparison.OrdinalIgnoreCase) && String.Equals(setting.Value, Value, StringComparison.OrdinalIgnoreCase) && String.Equals(setting.Section, Section, StringComparison.OrdinalIgnoreCase)); }
// Constructor for Edit Setting Dialog public AddEditSettingDialog(PHPModule module, PHPIniSetting setting) : base(module) { _module = module; InitializeComponent(); InitializeUI(); // The dialog is used in the "Edit setting" mode Text = Resources.AddEditSettingDialogEditSetting; _nameTextBox.Enabled = false; _sectionTextBox.Enabled = false; _nameTextBox.Text = setting.Name; _valueTextBox.Text = setting.Value; _sectionTextBox.Text = setting.Section; UpdateUI(); }
internal void AddOrUpdateSettings(IEnumerable <PHPIniSetting> settings) { foreach (PHPIniSetting setting in settings) { bool settingFound = false; int index = -1; int lastIndex = -1; for (int i = 0; i < RawEntries.Count; i++) { PHPIniBase b = RawEntries[i]; PHPIniSetting existing = b as PHPIniSetting; if (existing != null) { lastIndex = i; if (String.Equals(existing.Name, setting.Name, StringComparison.OrdinalIgnoreCase)) { existing.Value = setting.Value; existing.UpdateText(); settingFound = true; break; } // This finds the index after the last setting for a given section if (String.Equals(existing.Section, setting.Section, StringComparison.OrdinalIgnoreCase)) { index = i; } } else { // This finds the index after section declaration, // in case there are no settings defined in that section PHPIniSection section = b as PHPIniSection; if ((section != null) && (String.Equals(section.Name, setting.Section, StringComparison.OrdinalIgnoreCase))) { index = i; } } } if (!settingFound) { setting.UpdateText(); if (index == -1) { lastIndex++; RawEntries.Insert(lastIndex, new PHPIniString("")); lastIndex++; RawEntries.Insert(lastIndex, new PHPIniString('[' + setting.Section + ']')); lastIndex++; RawEntries.Insert(lastIndex, setting); } else { RawEntries.Insert(index + 1, setting); } } } }
internal void RemoveSetting(PHPIniSetting setting) { Invoke("RemovePHPIniSetting", setting.GetData()); }
public PHPSettingItem(PHPIniSetting setting) { _setting = setting; Text = _setting.Name; SubItems.Add(_setting.Value); SubItems.Add(_setting.Section); }
private static PHPIniSetting GetToApplyUploadTmpDir(PHPIniFile file) { PHPIniSetting setting = file.GetSetting("upload_tmp_dir"); if (setting == null || !IsAbsoluteFilePath(setting.GetTrimmedValue(), false)) { string value = Environment.ExpandEnvironmentVariables(@"%WINDIR%\Temp\"); setting = new PHPIniSetting("upload_tmp_dir", DoubleQuotesWrap(value), "PHP"); } return setting; }
private static PHPIniSetting GetToApplySessionPath(PHPIniFile file) { PHPIniSetting setting = file.GetSetting("session.save_path"); if (setting == null || !IsAbsoluteFilePath(setting.GetTrimmedValue(), false)) { string value = Environment.ExpandEnvironmentVariables(@"%WINDIR%\Temp\"); setting = new PHPIniSetting("session.save_path", DoubleQuotesWrap(value), "Session"); } return setting; }
private PHPIniSetting GetToApplyErrorLog(PHPIniFile file) { var handlerName = _currentPhpHandler.Name; var setting = file.GetSetting("error_log"); if (setting == null || !IsAbsoluteFilePath(setting.GetTrimmedValue(), true)) { var value = Path.Combine(Environment.ExpandEnvironmentVariables(@"%WINDIR%\Temp\"), handlerName + "_errors.log"); setting = new PHPIniSetting("error_log", DoubleQuotesWrap(value), "PHP"); } return setting; }
public void RemovePHPIniSetting(object settingData) { EnsureServerConnection(); PHPIniFile file = GetPHPIniFile(); PHPIniSetting setting = new PHPIniSetting(); setting.SetData(settingData); if (file.Remove(setting)) { file.Save(file.FileName); } }
public void RemovePHPIniSetting(object settingData) { EnsureServerConnection(); PHPIniSetting setting = new PHPIniSetting(); setting.SetData(settingData); try { PHPConfigHelper configHelper = new PHPConfigHelper(ManagementUnit); configHelper.RemovePHPIniSetting(setting); } catch (FileNotFoundException) { RaiseException("ErrorPHPIniNotFound"); } }
public bool SaveSetting(string settingName, string settingValue, string settingSection) { var setting = GetSetting(settingName); if (setting == null) { // The setting doesn't currently exist. Add a new setting setting = new PHPIniSetting() { Name = settingName, Section = settingSection, }; } else { if (String.Compare(setting.Value, settingValue) == 0) return true; // No update needed } setting.Value = settingValue; var settingChangableType = PlacementRules.GetChangableLocation(settingName); if (!filesWhereSettingIsReadFrom[settingChangableType].Contains(SettingLocation.UserIni)) { //throw new InvalidOperationException("Can't set this"); return false; } // Save this setting to .user.ini file var phpFile = _settings[SettingLocation.UserIni]; phpFile.AddOrUpdateSettings(new List<PHPIniSetting>() { setting }); phpFile.Save(); return true; }
public void RemovePHPIniSetting(object settingData) { EnsureServerConnection(); PHPIniSetting setting = new PHPIniSetting(); setting.SetData(settingData); try { ManagementUnitWrapper mgmtUnitWrapper = new ManagementUnitWrapper(ManagementUnit); PHPConfigHelper configHelper = new PHPConfigHelper(mgmtUnitWrapper); configHelper.RemovePHPIniSetting(setting); } catch (FileNotFoundException) { RaiseException("ErrorPHPIniNotFound"); } catch (InvalidOperationException) { RaiseException("ErrorPHPIsNotRegistered"); } }
protected override void OnAccept() { try { PHPIniSetting setting = new PHPIniSetting(); setting.Name = _nameTextBox.Text.Trim(); setting.Value = _valueTextBox.Text.Trim(); setting.Section = _sectionTextBox.Text.Trim(); RemoteObjectCollection<PHPIniSetting> settings = new RemoteObjectCollection<PHPIniSetting>(); settings.Add(setting); _module.Proxy.AddOrUpdateSettings(settings); DialogResult = DialogResult.OK; SettingName = setting.Name; Close(); } catch (Exception ex) { DisplayErrorMessage(ex, Resources.ResourceManager); } }
private static PHPIniSetting GetToApplyDateTimeZone(PHPIniFile file) { PHPIniSetting setting = file.GetSetting("date.timezone"); if (setting == null) { setting = new PHPIniSetting("date.timezone", DoubleQuotesWrap(GetPHPTimeZone()), "Date"); } return setting; }
public void RemovePHPIniSetting(PHPIniSetting setting) { Debug.Assert(IsPHPRegistered()); PHPIniFile file = new PHPIniFile(PHPIniFilePath); file.Parse(); if (file.Remove(setting)) { file.Save(file.FileName); } }
public void RemovePHPIniSetting(PHPIniSetting setting) { EnsurePHPIsRegistered(); var file = new PHPIniFile(PHPIniFilePath); file.Parse(); if (file.Remove(setting)) { file.Save(file.FileName); } }
public PHPSettingItem(PHPIniSetting setting) { _setting = setting; }