/**
  * Get singleton instance
  * 
  * @return ilOpenmeetingsConfig
  */
 public static function getInstance()
 {
     if (self::$instance) {
         return self::$instance;
     }
     return self::$instance = new ilOpenmeetingsConfig();
 }
 function __construct()
 {
     global $CFG;
     include_once "./Customizing/global/plugins/Services/Repository/RepositoryObject/Openmeetings/classes/class.ilOpenmeetingsConfig.php";
     $settings = ilOpenmeetingsConfig::getInstance();
     $CFG = (object) array("openmeetings_openmeetingsAdminUser" => $settings->getSvrUsername(), "openmeetings_red5host" => $settings->getSvrUrl(), "openmeetings_red5port" => $settings->getSvrPort(), "openmeetings_webappname" => $settings->getSvrAppname(), "openmeetings_version_2_x" => $settings->getAllowUpdate("om2x"), "openmeetings_openmeetingsAdminUserPass" => $settings->getSvrPassword(), "openmeetings_openmeetingsModuleKey" => $this->getModuleKey());
 }
 /**
  * Init configuration form.
  *
  * @return object form object
  */
 public function initConfigurationForm()
 {
     global $lng, $ilCtrl, $ilDB;
     $pl = $this->getPluginObject();
     $this->getPluginObject()->includeClass('class.ilOpenmeetingsConfig.php');
     $this->object = ilOpenmeetingsConfig::getInstance();
     include_once "Services/Form/classes/class.ilPropertyFormGUI.php";
     $this->form = new ilPropertyFormGUI();
     $this->form->setTitle($pl->txt("openmeetings_plugin_configuration"));
     $this->form->setFormAction($ilCtrl->getFormAction($this));
     $this->form->addCommandButton("save", $lng->txt("save"));
     // url (text)
     $ti = new ilTextInputGUI($pl->txt("url"), "frmurl");
     $ti->setRequired(true);
     $ti->setMaxLength(256);
     $ti->setSize(60);
     $this->form->addItem($ti);
     // port (text)
     $ti = new ilTextInputGUI($pl->txt("port"), "frmport");
     $ti->setRequired(true);
     $ti->setMaxLength(10);
     $ti->setSize(10);
     $this->form->addItem($ti);
     // appname
     $ti = new ilTextInputGUI($pl->txt("appname"), "frmappname");
     $ti->setRequired(true);
     $ti->setMaxLength(32);
     $ti->setSize(20);
     $this->form->addItem($ti);
     // username (text)
     $ti = new ilTextInputGUI($pl->txt("username"), "frmusername");
     $ti->setRequired(true);
     $ti->setMaxLength(256);
     $ti->setSize(20);
     $this->form->addItem($ti);
     // password (text)
     $ti = new ilPasswordInputGUI($pl->txt("password"), "frmpassword");
     $ti->setRequired(true);
     $ti->setMaxLength(256);
     $ti->setSize(20);
     $ti->setRetype(false);
     $this->form->addItem($ti);
     foreach ($this->fields as $key => $item) {
         $field = new $item["type"]($this->plugin_object->txt('conf_' . $key), $key);
         $field->setInfo($this->plugin_object->txt($item["info"]));
         if (is_array($item["subelements"])) {
             foreach ($item["subelements"] as $subkey => $subitem) {
                 $subfield = new $subitem["type"]($this->plugin_object->txt('conf_' . $key . "_" . $subkey), $subkey);
                 $subfield->setInfo($this->plugin_object->txt($subitem["info"]));
                 $field->addSubItem($subfield);
             }
         }
         $this->form->addItem($field);
     }
     return $this->form;
 }
 function selectItemCheck($item)
 {
     include_once "./Customizing/global/plugins/Services/Repository/RepositoryObject/Openmeetings/classes/class.ilOpenmeetingsConfig.php";
     $settings = ilOpenmeetingsConfig::getInstance();
     if ($settings->getAllowUpdate($item) && ($item == "isDemoRoom" || $item == "ispublic" || $settings->getAllowUpdate("om2x") == true)) {
         $hd = new ilCheckboxInputGUI($this->lng->txt("rep_robj_xomv_rm" . $item), "rm" . $item);
         $hd->setInfo($this->lng->txt("rep_robj_xomv_info_" . $item));
     } else {
         $hd = new ilHiddenInputGUI("rm" . $item);
     }
     $hd->setValue(1);
     return $hd;
 }