示例#1
0
 public static function AjouterElementOnglet($classeurId, $nom, $contenu, $fonctionChargement, $param, $charge, $activer)
 {
     if ($charge === true) {
         $charge = 1;
     } else {
         if ($charge === false) {
             $charge = 0;
         }
     }
     if ($activer === true) {
         $activer = 1;
     } else {
         if ($activer === false) {
             $activer = 0;
         }
     }
     self::AjouterElement(XML_TYPE_ONGLET);
     self::AjouterBalToBal(self::$elemCourant, XML_CLASSEUR, strval($classeurId));
     self::AjouterBalToBal(self::$elemCourant, XML_NOM, $nom);
     self::AjouterBalToBal(self::$elemCourant, XML_CONTENU, $contenu);
     self::AjouterBalToBal(self::$elemCourant, XML_FONCCHARG, to_ajax($fonctionChargement));
     self::AjouterBalToBal(self::$elemCourant, XML_PARAM, to_ajax($param));
     self::AjouterBalToBal(self::$elemCourant, XML_CHARGE, strval($charge));
     self::AjouterBalToBal(self::$elemCourant, XML_ACTIVER, strval($activer));
 }
示例#2
0
 public function __construct($prefixIdClass, $typeInput = '', $oblig = false, $retour = '', $info = '', $erreur = '', $type = '', $impact = '', $dependance = '', $rechargeFonc = '', $rechargeParam = '', $changeFonc = '', $changeParam = '', $niveau = '')
 {
     parent::__construct(BAL_DIV);
     GSession::PoidsJavascript(4);
     $this->currentCategorie == NULL;
     $this->nbElemCurCat = 0;
     $this->nbCat = 0;
     $this->prefixIdClass = $prefixIdClass;
     $this->niveau = $niveau;
     switch ($typeInput) {
         case INPUTSELECT_TYPE_FICHIER:
             $this->AddClass(INPUTFILESELECT_JQ);
             break;
         case INPUTSELECT_TYPE_NEW:
             $this->AddClass(INPUTNEWSELECT_JQ);
             break;
         case INPUTSELECT_TYPE_LISTE:
             $this->AddClass(LISTEINPUTSELECT_JQ);
             break;
         case INPUTSELECT_TYPE_LISTEFIND:
             $this->AddClass(INPUTSELECTFIND_JQ);
             $this->AddClass(LISTEINPUTSELECT_JQ);
             break;
         case INPUTSELECT_TYPE_FIND:
             $this->AddClass(INPUTSELECTFIND_JQ);
             $this->AddClass(INPUTSELECT_JQ);
             break;
         default:
             $this->AddClass(INPUTSELECT_JQ);
     }
     $this->AddClass('jq_fill');
     if ($oblig == true) {
         $this->AddClass('jq_input_form_oblig');
     }
     $elem = new SElement($this->prefixIdClass . INPUTSELECT . $this->niveau);
     $elem->AjouterClasse(INPUTSELECT . $this->niveau);
     $this->Attach($elem);
     $org = new SOrganiseur(2, 2, true);
     $elem->Attach($org);
     $org->FusionnerCellule(2, 1, 0, 1);
     //$org->SetCelluleDominante(1, 1);
     $org->SetLargeurCellule(1, 1, '100%');
     $org->SetLargeurCellule(1, 2, '0%');
     // Edit.
     $element = new SElement($this->prefixIdClass . INPUTSELECT_VALEUR . $this->niveau);
     //, true, '', '', false);
     $element->AjouterClasse(INPUTSELECT_VALEUR . $this->niveau);
     $edit = new SInput('', 'text', '', $this->prefixIdClass . INPUTSELECT_VALEUREDIT . $this->niveau);
     $edit->AddClass(INPUTSELECT_VALEUREDIT . $this->niveau);
     $edit->AddClass(INPUTSELECT_JQ_EDIT);
     $element->Attach($edit);
     $org->AttacherCellule(1, 1, $element);
     // Dérouleur.
     $element = new SElement($this->prefixIdClass . INPUTSELECT_DEROULEUR . $this->niveau);
     $element->AjouterClasse(INPUTSELECT_DEROULEUR . $this->niveau);
     $element->AddClass(INPUTSELECT_JQ_DEROULEUR);
     $org->AttacherCellule(1, 2, $element);
     // Liste.
     $div = new SBalise(BAL_DIV);
     $div->AddClass(INPUTSELECT_JQ_LISTE);
     $div->AddStyle('display:none;');
     $orgListe = new SOrganiseur(1, 2, true);
     $liste = new SElement($this->prefixIdClass . INPUTSELECT_LISTE . $this->niveau);
     $liste->AjouterClasse(INPUTSELECT_LISTE . $this->niveau);
     //$liste->AddClass(INPUTSELECT_JQ_ELEMENTS);
     $divElem = new SBalise(BAL_DIV);
     $divElem->AddClass(INPUTSELECT_JQ_ELEMENTS);
     $this->liste = new STableau(true);
     $divElem->Attach($this->liste);
     //$liste->Attach($this->liste);
     $liste->Attach($divElem);
     $orgListe->AttacherCellule(1, 1, $liste);
     // Barre de défilement.
     $elemDef = new SElement($this->prefixIdClass . INPUTSELECT_LISTE_BARDEF . $this->niveau);
     $elemDef->AjouterClasse(INPUTSELECT_LISTE_BARDEF . $this->niveau);
     $elemDef->AddClass(INPUTSELECT_JQ_BARREDEFILEMENT);
     $elemDefHaut = new SElement($this->prefixIdClass . INPUTSELECT_LISTE_BARDEF_HAUT . $this->niveau);
     $elemDefHaut->AjouterClasse(INPUTSELECT_LISTE_BARDEF_HAUT . $this->niveau);
     $elemDefHaut->AddClass(INPUTSELECT_JQ_BARREDEFILEMENT_HAUT);
     $elemDef->Attach($elemDefHaut);
     $divDefBarre = new SBalise(BAL_DIV);
     $elemDefBarre = new SElement($this->prefixIdClass . INPUTSELECT_LISTE_BARDEF_BARRE . $this->niveau);
     $elemDefBarre->AjouterClasse(INPUTSELECT_LISTE_BARDEF_BARRE . $this->niveau);
     $elemDefBarre->AddClass(INPUTSELECT_JQ_BARREDEFILEMENT_BARRE);
     $divDefBarre->Attach($elemDefBarre);
     $elemDef->Attach($divDefBarre);
     $elemDefBas = new SElement($this->prefixIdClass . INPUTSELECT_LISTE_BARDEF_BAS . $this->niveau);
     $elemDefBas->AjouterClasse(INPUTSELECT_LISTE_BARDEF_BAS . $this->niveau);
     $elemDefBas->AddClass(INPUTSELECT_JQ_BARREDEFILEMENT_BAS);
     $elemDef->Attach($elemDefBas);
     $orgListe->AttacherCellule(1, 2, $elemDef);
     $div->Attach($orgListe);
     $org->AttacherCellule(2, 1, $div);
     // Retour.
     if ($retour !== '') {
         $divRetour = new SBalise(BAL_DIV);
         $divRetour->SetText(strval($retour));
         $divRetour->AddClass(INPUTSELECT_JQ_RETOUR);
         $divRetour->AddProp(PROP_STYLE, 'display:none');
         $this->Attach($divRetour);
     }
     // Info.
     $divInfo = new SBalise(BAL_DIV);
     $elemInfo = new SElement(CLASSCADRE_INFO, false);
     $elemInfo->SetText($info);
     $divInfo->AddClass(INPUTSELECT_JQ_INFO);
     $divInfo->Attach($elemInfo);
     $divInfo->AddProp(PROP_STYLE, 'display:none');
     $this->Attach($divInfo);
     // Erreur.
     if ($erreur !== '') {
         $divErreur = new SBalise(BAL_DIV);
         $elemErreur = new SElement(CLASSCADRE_ERREUR, false);
         $elemErreur->SetText($erreur);
         $divErreur->AddClass(INPUTSELECT_JQ_ERREUR);
         $divErreur->Attach($elemErreur);
         $divErreur->AddProp(PROP_STYLE, 'display:none');
         $this->Attach($divErreur);
     }
     // Type.
     if ($type !== '') {
         $divType = new SBalise(BAL_DIV);
         $divType->SetText(strval($type));
         $divType->AddClass(INPUTSELECT_JQ_TYPE);
         $divType->AddProp(PROP_STYLE, 'display:none');
         $this->Attach($divType);
     }
     // Impact (Noms des différents types de select (séparés par des ',')
     // qui doivent se recharger si changement de celui-ci).
     if ($impact !== '') {
         $divImpact = new SBalise(BAL_DIV);
         $divImpact->SetText(to_html($impact));
         $divImpact->AddClass(INPUTSELECT_JQ_IMPACT);
         $divImpact->AddProp(PROP_STYLE, 'display:none');
         $this->Attach($divImpact);
     }
     // Dépendance (Noms des différents types de select (séparés par des ',')
     // dont la valeur est importante pour le rechargement de ce select).
     if ($dependance !== '') {
         $divDep = new SBalise(BAL_DIV);
         $divDep->SetText(to_html($dependance));
         $divDep->AddClass(INPUTSELECT_JQ_DEPENDANCE);
         $divDep->AddProp(PROP_STYLE, 'display:none');
         $this->Attach($divDep);
     }
     // RechargeFonc (Nom de la fonction Ajax de rechargement de la combobox).
     if ($rechargeFonc !== '') {
         $divRecFonc = new SBalise(BAL_DIV);
         $divRecFonc->SetText(strval($rechargeFonc));
         $divRecFonc->AddClass(INPUTSELECT_JQ_RECFONC);
         $divRecFonc->AddProp(PROP_STYLE, 'display:none');
         $this->Attach($divRecFonc);
     }
     // RechargeParam (Paramètres de la fonction Ajax de rechargement de la combobox).
     if ($rechargeParam !== '') {
         $divRecParam = new SBalise(BAL_DIV);
         $divRecParam->SetText(to_ajax($rechargeParam));
         $divRecParam->AddClass(INPUTSELECT_JQ_RECPARAM);
         $divRecParam->AddProp(PROP_STYLE, 'display:none');
         $this->Attach($divRecParam);
     }
     // ChangeFonc (Nom de la fonction Ajax qui est appelée quand la valeur de la combobox change).
     if ($changeFonc !== '') {
         $divChangeFonc = new SBalise(BAL_DIV);
         $divChangeFonc->SetText(strval($changeFonc));
         $divChangeFonc->AddClass(INPUTSELECT_JQ_CHANGEFONC);
         $divChangeFonc->AddProp(PROP_STYLE, 'display:none');
         $this->Attach($divChangeFonc);
     }
     // RechargeParam (Paramètres de la fonction Ajax qui est appelée quand la valeur de la combobox change).
     if ($changeParam !== '') {
         $divChangeParam = new SBalise(BAL_DIV);
         $divChangeParam->SetText(to_ajax($changeParam));
         $divChangeParam->AddClass(INPUTSELECT_JQ_CHANGEPARAM);
         $divChangeParam->AddProp(PROP_STYLE, 'display:none');
         $this->Attach($divChangeParam);
     }
 }
示例#3
0
 protected function ConstruireListe()
 {
     $divElem = NULL;
     if ($this->rechargement === false) {
         $this->AjouterClasse($this->prefixIdClass . LISTECLASS . $this->Niveau(), false);
         $this->AjouterClasse(LISTECLASS . $this->Niveau());
         // Construction de la partie triable de la liste si elle l'est.
         $this->ConstruireListeTriable();
         // Construction de la fonction appelée en cas de changement de page.
         $divChangePageFonc = new SBalise(BAL_DIV);
         $divChangePageFonc->AddClass(LISTE_JQ_PAGE_CHANGEFONC);
         $divChangePageFonc->SetText($this->foncAjaxRechargement);
         $divChangePageFonc->AddProp(PROP_STYLE, 'display: none;');
         $this->Attach($divChangePageFonc);
         // Construction des paramètres pour la fonction appelée en cas de changement de page.
         $divChangePageParam = new SBalise(BAL_DIV);
         $divChangePageParam->AddClass(LISTE_JQ_PAGE_CHANGEPARAM);
         $param = 'contexte=' . $this->contexte . '&' . $this->contexte . '[page][' . $this->TypeSynchro() . '][' . $this->Numero() . ']';
         $divChangePageParam->SetText(to_ajax($param));
         $divChangePageParam->AddProp(PROP_STYLE, 'display: none;');
         $this->Attach($divChangePageParam);
         // Construction du type de synchronisation de la liste (utilisé pour recharger une liste via ajax).
         $divTypeSynchro = new SBalise(BAL_DIV);
         $divTypeSynchro->AddClass(LISTE_JQ_TYPESYNCHRO);
         $divTypeSynchro->SetText($this->TypeSynchroPage());
         $divTypeSynchro->AddProp(PROP_STYLE, 'display: none;');
         $this->Attach($divTypeSynchro);
         // Construction du numéro de la liste (utilisé pour recharger une liste unique via ajax).
         $divNumero = new SBalise(BAL_DIV);
         $divNumero->AddClass(LISTE_JQ_NUMERO);
         $divNumero->SetText(strval($this->Numero()));
         $divNumero->AddProp(PROP_STYLE, 'display: none;');
         $this->Attach($divNumero);
         // Construction du niveau de la liste (utilisé pour savoir si la liste est contenu dans une autre).
         $divNiveau = new SBalise(BAL_DIV);
         $divNiveau->AddClass(LISTE_JQ_NIVEAU);
         $divNiveau->SetText(strval($this->Niveau()));
         $divNiveau->AddProp(PROP_STYLE, 'display: none;');
         $this->Attach($divNiveau);
         // Construction de la ligne de titre.
         $ligneTitre = $this->ConstruireLigneTitre();
         if ($ligneTitre !== NULL) {
             $this->Attach($ligneTitre);
         }
         // Construction d'une ligne de changement de page.
         $changePage = $this->ConstruireChangementPage();
         if ($changePage !== NULL) {
             $this->Attach($changePage);
         }
         $divElem = new SBalise(BAL_DIV);
         $divElem->AddClass(LISTE_JQ_LISTE);
         if ($this->Triable()) {
             $divElem->AddClass($this->typeLiaison);
         }
         $elemModele = $this->ConstruireElementModele();
         if ($elemModele !== NULL) {
             $divElem->Attach($elemModele);
         }
         $this->Attach($divElem);
     }
     // Construction des éléments de la liste.
     $ordre = 0;
     $poidsJavascriptMax = GSession::PoidsJavascriptMax();
     $noSupp = false;
     foreach ($this->elements as &$element) {
         if (GSession::PoidsJavascript() <= $poidsJavascriptMax) {
             $elem = $this->ConstruireElement($element, $ordre);
             if ($element[LISTE_ELEMENT_ACTION] == LISTE_ELEMACTION_CREAT) {
                 GSession::PoidsJavascript(8);
             } else {
                 if ($element[LISTE_ELEMENT_ACTION] == LISTE_ELEMACTION_MODIF && array_key_exists(LISTE_ELEMENT_MODIFIE, $element) && $element[LISTE_ELEMENT_MODIFIE] === true) {
                     GSession::PoidsJavascript(2);
                 }
             }
             if ($this->rechargement === false) {
                 $divElem->Attach($elem);
             } else {
                 $element[LISTE_ELEMENT_CONTENU] = $elem;
             }
             $ordre++;
         } else {
             $noSupp = true;
             GReponse::AjouterElementSuite($this->contexte);
             break;
         }
     }
     // Suppression des éléments qui ne font plus partie de la liste.
     if ($noSupp === false && $this->listeSuppressions !== NULL) {
         foreach ($this->listeSuppressions as $id => $elemSupp) {
             $elementSupp = array();
             $elementSupp[LISTE_ELEMENT_ID] = $id;
             $elementSupp[LISTE_ELEMENT_ACTION] = LISTE_ELEMACTION_SUPP;
             GSession::PoidsJavascript(1);
             $this->elements[] = $elementSupp;
             // Suppression du contexte.
             if (array_key_exists($id, $this->listeContexte)) {
                 unset($this->listeContexte[$id]);
             }
         }
     }
     if ($this->rechargement === false) {
         // Construction d'une ligne de changement de page.
         $changePage = $this->ConstruireChangementPage();
         if ($changePage !== NULL) {
             $this->Attach($changePage);
         }
         // Construction de l'élément de création.
         if ($this->HasDroitCreation()) {
             $elemCreat = $this->ConstruireElementCreation();
             if ($elemCreat) {
                 GSession::PoidsJavascript(8);
                 $this->Attach($elemCreat);
             }
         }
     } else {
         if ($this->HasDroitCreation()) {
             // Rechargement des listes pour l'élément création.
             foreach ($this->champs as $nomChamp => $champ) {
                 $this->GetDifferentielForListeElementCreation($nomChamp);
             }
         }
     }
     // Sauvegarde de la liste dans le contexte.
     // Si on a changé de page, on supprime l'ancienne liste du contexte.
     GContexte::Liste($this->contexte, $this->TypeSynchroPage(), $this->listeContexte);
 }
示例#4
0
 private function AjouterParamRetourAjax($nom, $valeur)
 {
     $retourTxt = $this->retour->GetText();
     if ($retourTxt !== '') {
         $retourTxt .= to_ajax('&');
     }
     $retourTxt .= to_html($nom . '=' . $valeur);
     $this->retour->SetText($retourTxt);
 }
 protected function userAuth()
 {
     $verify = new \Think\Verify();
     $code = $_REQUEST['verify'];
     //因为后面要使用Session的验证码,但是还需要在用户登陆时,清空原有的Session信息,所以需要变量传递
     // $verify	= $_SESSION['verify'];
     // $_SESSION['verify']	= "";
     if ((C('TEST_USERNAME') == "" || !C("TEST_USERNAME")) && !$verify->check($code, $id)) {
         return to_ajax(0, '抱歉,验证码错误!');
     }
     import('ORG.RBAC');
     /* 前台用户可以使用多方式登陆,后台暂设只能使用login_name登陆 */
     switch ($_REQUEST["login_type"]) {
         case "no":
             $where['id'] = trim($_REQUEST['username']);
             break;
         case "email":
             $where['email'] = trim($_REQUEST['username']);
             break;
         case "tel":
             $where['tel'] = trim($_REQUEST['username']);
             break;
         default:
             $where['username'] = trim($_REQUEST['username']);
             break;
     }
     $Account = D('Account');
     $authInfo = $Account->where($where)->select();
     //使用用户名、密码和状态的方式进行认证
     if (false == $authInfo) {
         return to_ajax(0, '帐号不存在或已禁用!');
     } else {
         if (sizeof($authInfo) > 1) {
             return to_ajax(0, '帐号异常,请与管理员联系!');
         } else {
             $authInfo = $authInfo[0];
             if (C("LOGIN_MD5")) {
                 //密码验证方式不同。
                 $inputPass = md5(trim($_REQUEST['password']));
                 $dbPass = $authInfo["pwd"];
             } else {
                 $inputPass = trim($_REQUEST["password"]);
                 $dbPass = DxFunction::authcode($authInfo['pwd'], 'DECODE');
             }
             if ($authInfo['status'] != 1) {
                 return to_ajax(0, "帐号异常!处于非正常状态,请与管理员联系!" . C("MANAGER_INFO"));
             } elseif ((C('TEST_USERNAME') == "" || !C("TEST_USERNAME")) && $inputPass != $dbPass) {
                 return to_ajax(0, '密码错误!');
             }
             if ($_REQUEST["saveMyAccount"] == "save") {
                 $authInfo["save_account"] = authcode(substr(session_id(), 0, 10) . mt_rand(10000, 99999) . time(), 'ENCODE');
                 cookie("account", $authInfo["save_account"]);
             }
             $this->setSession($authInfo);
             $log_id = $this->writeControllerLog();
             return to_ajax(1, '欢迎[' . $authInfo[C("LOGIN_USER_NICK_NAME")] . ']登录本系统!', $authInfo);
         }
     }
 }