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)); }
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); } }
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); }
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); } } }