begin process at 2012 05 31 01:00:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

POO

 > 

Autre

 > 

Gestion d'onglets en session


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Gestion d'onglets en session

mercredi 28 avril 2010 à 11:23:07 | Gestion d'onglets en session

sebshiva

Bonjour!

Bon, je post très rarement sur des forums, trouvant la plupart du temps moi même les solutions à mes problèmes...mais...là...je sèche. (3 jours que je bloc là dessus....)

En fait voilà :
Je monte une classe de gestion d'onglets dont ces derniers, leurs position, celui actif, le dernier ainsi que le pré-actif sont stockés en session.
(l'info actif, pre-actif et dernier sert à la mise en page ultérieur)
Je ne vous livrerais pas toute la classe mais juste la méthode qui coince, en l'occurrence celle qui sert à déclarer actif un onglet donné à partir de son id.
J'ai déjà eu des soucis avec une classe de ce type qui ne restait pas en session (visiblement à cause d'index integer), mais là tout se passe bien à ce niveau, mais quand je var_dump, les clés 'active', 'endTab' etc ne sont pas effacées comme elles le devraient.
Je passe sûrement à côté d'une évidence, mais j'ai beau chercher, je ne trouve pas.
Code PHP :
protected function setActiveTab($sIdTab) {
		
	$mPosTab = $this->getPosTab($sIdTab); 
//renvoi la position de l'onglet à activer (sa clé)
	$iActiveTab = $this->getActiveTab(); 
//renvoi la position de l'onglet actif (sa clé)
	$iCountOfTabs = $this->getCountOfTabs();
//renvoi le nombre d'onglets

	if ((!empty($this->aTabs) && (false !== $mPosTab)) && ($iActiveTab !== $mPosTab)) {
//vérification pour éviter un traitement inutile
		if (isset($this->aTabs[$iActiveTab]['active']))
			unset($this->aTabs[$iActiveTab]['active']);
		if (isset($this->aTabs[$iActiveTab-1]['preActive']))
			unset($this->aTabs[$iActiveTab-1]["preActive"]);
		if (isset($this->aTabs[$iCountOfTabs]["endTab"]))
			unset($this->aTabs[$iCountOfTabs]["endTab"]);
//je vire tous les index active, preActive, endTab
		foreach($this->aTabs as $key=>$aTab) {
			if (in_array($this->sIdTab, $aTab)) {
				$this->aTabs[(string)$key]['active'] = true;
				if ($key != 0)
					$this->aTabs[$key-1]['preActive'] = true;
				break;
			}
		}
		$this->aTabs[$iCountOfTabs-1]['endTab'] = true;
// -1 parce que mon tableau par de 0
		return $this->updateTabsMemory();
//copie le tableau en session en écrasant l'ancien
	}
	return false;
//si ça n'a rien fait
}


le var_dump devrait ressembler à quelque chose comme ça :
Code PHP :
array(2) {
  [0]=>
  array(5) {
    ["url"]=>
    string(4) "url2"
    ["title"]=>
    string(8) "Onglet 2"
    ["idTab"]=>
    string(1) "2"
    ["preActive"]=>
    bool(true)
  }
  [1]=>
  array(4) {
    ["url"]=>
    string(4) "url3"
    ["title"]=>
    string(16) "Onglet plus long"
    ["idTab"]=>
    string(1) "3"
    ["active"]=>
    bool(true)
    ["endTab"]=>
    bool(true)
  }
}

Si quelqu'un a une idée....
Pour précision, avant que je rajoute les clés "preActive" et "endTab", ça marchait très bien.

D'avance merci à ceux qui prendront le temps de me lire :)
mercredi 28 avril 2010 à 11:25:16 | Re : Gestion d'onglets en session

sebshiva

désolé pour les couleurs.... c'est pas très lisible là du coup...
vendredi 30 avril 2010 à 21:41:11 | Re : Gestion d'onglets en session

sebshiva

Réponse acceptée !
Bon, bein ça marche.
J'ai galérer pendant une semaine, mais bon, c'est bien fait pour moi.
Ça m'apprendra à mettre des choses dans des méthodes qui n'ont rien à y faire.

(l'info actif, pre-actif et dernier sert à la mise en page ultérieur)


Ben voilà, je n'ai laissé actif pour s'y retrouver, je me débrouille autrement pour le reste, mais à l'étape finale de présentation.
Je n'ai donc pas trouvé la vrai raison du pourquoi mes unset ne se faisaient pas, mais dans tous les cas, j'en tire une bonne leçon.
...et la nouvelle version de cette méthode fait 12 lignes de moins...

Bref, je me réponds à moi même, histoire de mettre ce post en résolu.


Cette discussion est classée dans : string, actif, active, atabs, endtab


Répondre à ce message

Sujets en rapport avec ce message

>>>>>>SYSTEM<<<<<< [ par ec4 ] salut a tousje voudrais utiliser la commande :string system (string command ,[ int return_var])mais je ne sais qui mettre ds la variable command.De pl problème de comparaison de variables string [ par julp ] je cherche comment savoir si deux variables (en fait ce sont des chaînes) sont égales. Pour l'instant j'ai essayé ceci :if (!($a==$b)):instruc;endif;m Probleme string [ par g0belin ] Comment faire de la concatenation de string??je veux fair comme sa mais sa marhce pas...$erreurI ='$erreurI'+"Vos 2 MOTS DE PASSE ne sont pas INDENTIQ SPLIT [ par fatNugly ] y'a t'il une fonction en php qui fait la meme chose que la fonction split en vb soitune fonction a laquelle on donne le nom du string ansi que le cara lien caché [ par agentpsyko ] je cherche un script php permettant d'executer un lien dans une page web sans ouvrir de nouvelle fentre ou autreex: le mec arrive sur aaa.php et dans variable string en PHP [ par alainj ] Bonjour, Je récupére du texte a partir d'un champ de formulaire que je stocke dans une variable.Cette variable fait partie du texte d'un mail.lorque l URGENT!!!!!!!!! Serveur Socket [ par Tibo82 ] Voilà, j'ai déjà laissé un message concernant les sockets en php et que je n'y connaissait rien. Maintenant j'ai réussi a crée un client qui fonction Active scripting : détection possible? [ par paprikarmasutra ] Salut à tous,Voilà je cherche un moyen pour détecter si chez le client l'active scripting est activé ou non, auquel cas j'affiche tel ou tel code.Je r Site l'utilisateur quite une session ce dernière restet'elle active [ par microdevweb ] Je devellope actuelement une site imode, j'aimerais y fait un chat mais le javascript n'exite pas encore pour imode.Donc je penssais travailler avec l Comment s'avoir si une session est encore active [ par microdevweb ] Voila je développe un chat pour Imode, ne sachant pas utilisé de javascript je cré une session pour chaque membre qui se connecte et mémorire l'id de


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,819 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales