public function testFormManager()
 {
     $objFormManager = new class_admin_formgenerator("test", new AdminFormB());
     $objFormManager->generateFieldsFromObject();
     $this->assertNotNull($objFormManager->getField("fielda1"));
     $this->assertNotNull($objFormManager->getField("fielda2"));
     $this->assertNotNull($objFormManager->getField("fieldb1"));
     $this->assertNotNull($objFormManager->getField("fieldb2"));
     $arrFields = $objFormManager->getArrFields();
     $arrKey = array_keys($arrFields);
     $this->assertEquals($arrKey[0], "fielda1");
     $this->assertEquals($arrKey[1], "fielda2");
     $this->assertEquals($arrKey[2], "fieldb1");
     $this->assertEquals($arrKey[3], "fieldb2");
     $objFormManager->setFieldToPosition("fielda2", 1);
     $objFormManager->setFieldToPosition("fieldb2", 4);
     $arrFields = $objFormManager->getArrFields();
     $arrKey = array_keys($arrFields);
     $this->assertEquals($arrKey[0], "fielda2");
     $this->assertEquals($arrKey[1], "fielda1");
     $this->assertEquals($arrKey[2], "fieldb1");
     $this->assertEquals($arrKey[3], "fieldb2");
 }
    /**
     * @param class_module_search_search $objSearch
     *
     * @return class_admin_formgenerator
     */
    public function getSearchAdminForm($objSearch)
    {
        $objForm = new class_admin_formgenerator("search", $objSearch);
        $objForm->generateFieldsFromObject();
        // Load filterable modules
        $arrFilterModules = $objSearch->getPossibleModulesForFilter();
        $objForm->getField("formfiltermodules")->setArrKeyValues($arrFilterModules);
        $objForm->addField(new class_formentry_checkbox("search", "filter_all"))->setStrLabel($this->getLang("select_all"))->setStrValue($objSearch->getStrInternalFilterModules() == "-1" || $objSearch->getStrInternalFilterModules() == "");
        $objForm->setFieldToPosition("search_filter_all", 3);
        $bitVisible = $objSearch->getStrInternalFilterModules() != "-1" && $objSearch->getStrInternalFilterModules() != "" || $objSearch->getObjChangeEnddate() != null || $objSearch->getObjChangeStartdate() != null;
        $objForm->setStrHiddenGroupTitle($this->getLang("form_additionalheader"));
        $objForm->addFieldToHiddenGroup($objForm->getField("formfiltermodules"));
        $objForm->addFieldToHiddenGroup($objForm->getField("formfilteruser"));
        $objForm->addFieldToHiddenGroup($objForm->getField("search_filter_all"));
        $objForm->addFieldToHiddenGroup($objForm->getField("changestartdate"));
        $objForm->addFieldToHiddenGroup($objForm->getField("changeenddate"));
        $objForm->setBitHiddenElementsVisible($bitVisible);
        //add js-code for enabling and disabling multiselect box for modules
        $strCore = class_resourceloader::getInstance()->getCorePathForModule("module_search");
        $strJS = <<<JS
            KAJONA.admin.loader.loadFile('{$strCore}/module_search/admin/scripts/search.js', function() {
                    KAJONA.admin.search.switchFilterAllModules();
                    \$('#search_filter_all').click(function() {KAJONA.admin.search.switchFilterAllModules()});

                });
JS;
        $strPlain = "<script type='text/javascript'>" . $strJS . "</script>";
        $objForm->addField(new class_formentry_plaintext())->setStrValue($strPlain);
        return $objForm;
    }
 /**
  * @param class_module_workflows_handler $objHandler
  *
  * @return class_admin_formgenerator
  */
 private function getHandlerForm(class_module_workflows_handler $objHandler)
 {
     $objForm = new class_admin_formgenerator("handler", $objHandler);
     $objForm->generateFieldsFromObject();
     $arrNames = $objHandler->getObjInstanceOfHandler()->getConfigValueNames();
     $objForm->getField("configval1")->setStrLabel(isset($arrNames[0]) ? $arrNames[0] : $this->getLang("workflow_handler_val1"));
     $objForm->getField("configval2")->setStrLabel(isset($arrNames[1]) ? $arrNames[1] : $this->getLang("workflow_handler_val2"));
     $objForm->getField("configval3")->setStrLabel(isset($arrNames[2]) ? $arrNames[2] : $this->getLang("workflow_handler_val3"));
     return $objForm;
 }
 /**
  * Hook to update the admin-form when editing / creating a single group
  * @param class_admin_formgenerator $objForm
  *
  * @return mixed
  */
 public function updateAdminForm(class_admin_formgenerator $objForm)
 {
     $arrDD = array();
     foreach (class_ldap::getAllInstances() as $objOneInstance) {
         $arrDD[$objOneInstance->getIntCfgNr()] = $objOneInstance->getStrCfgName();
     }
     $objForm->getField("cfg")->setArrKeyValues($arrDD);
 }
 /**
  * Generates a simple form to edit and create elements' basic data.
  *
  * @param class_module_pages_element $objElement
  *
  * @return class_admin_formgenerator
  */
 private function getElementForm(class_module_pages_element $objElement)
 {
     //Fetch Admin classes
     $arrClasses = class_resourceloader::getInstance()->getFolderContent("/admin/elements", array(".php"));
     $arrClassesAdmin = array();
     foreach ($arrClasses as $strClass) {
         $arrClassesAdmin[$strClass] = $strClass;
     }
     //Fetch Portal-Classes
     $arrClassesPortal = array();
     $arrClasses = class_resourceloader::getInstance()->getFolderContent("/portal/elements", array(".php"));
     foreach ($arrClasses as $strClass) {
         $arrClassesPortal[$strClass] = $strClass;
     }
     $objForm = new class_admin_formgenerator("element", $objElement);
     //redefine for proper lang-rendering
     $objElement->setArrModuleEntry("modul", "pages");
     $objForm->generateFieldsFromObject();
     $objForm->getField("cachetime")->setStrHint($this->getLang("element_cachetime_hint"));
     $objForm->getField("classadmin")->setArrKeyValues($arrClassesAdmin);
     $objForm->getField("classportal")->setArrKeyValues($arrClassesPortal);
     //check if the config-vals may be overriden
     /** @var $objAdminInstance class_element_admin */
     if ($objElement->getSystemid() != "") {
         $objAdminInstance = $objElement->getAdminElementInstance();
         if ($objAdminInstance->getConfigVal1Name() != "") {
             $objForm->addDynamicField("strConfigval1")->setStrLabel($objAdminInstance->getConfigVal1Name());
         }
         if ($objAdminInstance->getConfigVal2Name() != "") {
             $objForm->addDynamicField("strConfigval2")->setStrLabel($objAdminInstance->getConfigVal2Name());
         }
         if ($objAdminInstance->getConfigVal3Name() != "") {
             $objForm->addDynamicField("strConfigval3")->setStrLabel($objAdminInstance->getConfigVal3Name());
         }
     }
     return $objForm;
 }
 /**
  * Hook to update the admin-form when editing / creating a single user
  * @param class_admin_formgenerator $objForm
  *
  * @return mixed
  */
 public function updateAdminForm(class_admin_formgenerator $objForm)
 {
     $objForm->getField("user_username")->setBitReadonly(true);
 }