|
| Script PHP de mise à jour des clins d'oeil | |
|
+3lolly27 nabazland quichedood 7 participants | Auteur | Message |
---|
quichedood Nabz Junior
Localisation : Val d'oise (95) Nbr de messages : 99 Carottes : 6889
| Sujet: Script PHP de mise à jour des clins d'oeil Sam 24 Fév 2007 - 18:05 | |
| Salut à tous, Juste pour partager un petit bout de code que j'ai réalisé et qui pourrait servir à certains d'entre vous (à moins que vous l'ayez déjà fait :p) - Code:
-
$array_char_explode_1 = array('=','>','"'); $array_char_explode_2 = array('\',\'','(\'','\')'); $string_to_find_2 = 'onclick="selectItem(\''; $array_lang = array(1, 2); foreach($array_lang as $id_lang) { $idm_file_violet = 'http://my.nabaztag.com/vl/action/myMessagesClin.do?langClin='.$id_lang; $idm_file_violet_2 = 'http://my.nabaztag.com/vl/action/myMessagesClinChoice.do?langClin='.$id_lang.'&idClin='; $string_to_find_1 = 'myMessagesClinChoice.do?langClin='.$id_lang.'&idClin='; if ($handle = @fopen($idm_file_violet, 'r')) { while (!feof($handle)) { $string_1 = strstr(fgets($handle), $string_to_find_1); if($string_1 != FALSE) { $string_detail_1 = explode('|', str_replace($array_char_explode_1,'|', $string_1)); $array_type_wink[] = array('id' => $string_detail_1[2], 'name' => $string_detail_1[7]); } } fclose($handle); foreach($array_type_wink as $wink_category) { if ($handle = @fopen($idm_file_violet_2.$wink_category['id'], 'r')) { while (!feof($handle)) { $string_2 = strstr(fgets($handle), $string_to_find_2); if($string_2 != FALSE) { $string_detail_2 = explode('|', str_replace($array_char_explode_2,'|', $string_2)); $buffer[] = array('num' => $string_detail_2[2], 'aff' => utf8_decode(stripslashes($string_detail_2[1]))); } } fclose($handle); } } unset($array_type_wink); } } La liste des clins d'oeil (id + nom) se retrouve dans le tableau "buffer" Voilà c'est tout | |
| | | nabazland Karotzeur taquin
Age : 57 Localisation : Rouen - France Nabaztag : Caulfield (v2.1) Nbr de messages : 9783 Carottes : 13344
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Sam 24 Fév 2007 - 19:05 | |
| Ben ca c'est une bonne idée ! Merchiiiiii ! _____________________________
| |
| | | lolly27 Diamond Nabz
Age : 49 Localisation : France Nabaztag : LOLLY (v2) Nbr de messages : 2510 Carottes : 6558
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Sam 24 Fév 2007 - 19:46 | |
| Hi hi hi comme d'hab je sais pas comment smen servir ni où mettre ça ! | |
| | | quichedood Nabz Junior
Localisation : Val d'oise (95) Nbr de messages : 99 Carottes : 6889
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Sam 24 Fév 2007 - 20:15 | |
| Ce script ce destine à ceux qui utilise l'API via un site en PHP.
Il faut rajouter des bricoles autour selon ce que vous voulez en faire. Tout seul il renvoie juste un tableau avec le nom des clins d'oeil et leurs id respectifs. (ensuite par exemple on peut rajouter quelques lignes pour mettre à jour une base de données ...)
Pour ceux et celles qui utilisent des scripts mis à disposition par d'autres membres du forum, passez votre chemin ça va vous donner mal à la tête plutôt qu'autre chose :p | |
| | | BigPanda Kryptonite Nabz
Age : 42 Localisation : Bruxelles Nabaztag : RyoOhki (V1), Meroko (V2), Iori (V3) Nbr de messages : 7127 Carottes : 13341
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Lun 26 Fév 2007 - 13:01 | |
| Oooooooh, c'est vrai qu'elle est bonne cette idée tiens dés que je peux rebrancher RyoOhki, j'regarderai pour l'intégrer ,à mon site Merciiiiiiiiiiiiiiiiii _____________________________ Compagnie de reconstitution historique (essentiellement médiévale) en belgique : Tartes et Bastons ASBL (Suis nouveau sur MN donc plein de mangas encore à ajouter et mes DVDs à mettre aussi ) | |
| | | quichedood Nabz Junior
Localisation : Val d'oise (95) Nbr de messages : 99 Carottes : 6889
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Lun 26 Fév 2007 - 13:15 | |
| Au plaisir Bon là ça sépare pas les catégories mais en rajoutant 1 ou 2 lignes au bon endroit ça devrait le faire | |
| | | rebolon Lapin nain
Localisation : Lyon Nbr de messages : 32 Carottes : 6520
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Ven 22 Juin 2007 - 15:46 | |
| Bon je me suis inspiré de ton code et voilà ce que j'en ai fait. Perso, je préfère la programation objet et la manipulation d'objet DOM. Après je laisse libre court à votre imagination pour l'utiliser correctement - Code:
-
class violetClinDoeil { public $aRubrique ; public $aLang ; public $sGetLangParamLabel ; public $sGetIdParamLabel ; public $sVioletActionURI ; public $sVioletUriRubrique ; public $sVioletUriSsRubrique ; function __construct( $iLang=null, $iRub=null ) { $this->sGetLangParamLabel = 'langClin' ; $this->sGetIdParamLabel = 'idClin' ; $this->sVioletActionUri = __VIOLET_URI_ACTION__ ; $this->sVioletUriRubrique = 'myMessagesClin' ; $this->sVioletUriSsRubrique = $this->sVioletUriRubrique.__VIOLET_URI_SS_RUBRIQUE_LABEL__ ; $this->sVioletUriExt = '.do' ; try { $this->getLang() ; if( count( $this->aRubrique ) == 0 ) $this->getItem( $iLang, $iRub ) ; } catch( Exception $oE ) { echo $oE->getMessage() ; } }
/* * récupère la liste des langues */ private function getLang() { $sURI_rubrique = $this->sVioletActionUri.$this->sVioletUriRubrique.$this->sVioletUriExt ; $dom = new DOMDocument(); $dom->loadHTMLFile( $sURI_rubrique ); $oDomXpath = new DOMXPath($dom); $sMask = "//div/ul[@class='langSelect']/li" ; // on va parcourir les données html qui nous intéresse : les cellules du tableau ayant pour class: 'choixListItem' et qui est contenu dans une div qu ia pour class 'listItemContener' $oEntries = $oDomXpath->query( $sMask ) ; foreach( $oEntries as $oEntry ) { $oA = $oEntry->getElementsByTagName( 'a' ) ; for( $i=0; $i<$oA->length ; $i++ ) { $sTextToFind = 'langClin=' ; $aRegExp = array(); preg_match( '('.$sTextToFind.'[0-9]*)', $oA->item($i)->getAttribute( 'onclick' ), $aRegExp ); $iLangId = trim( strtr( $aRegExp[0], array($sTextToFind=>'') ) ) ; $sLangName = utf8_decode(trim($oA->item($i)->nodeValue) ) ; $aLang[$iLangId] = array( 'id'=>$iLangId , 'name'=>utf8_decode($sLangName) ); } } $this->aLang = $aLang ; } /* * vérification de la cohérence de la langue */ private function checkLang( $iLang ) { // recherche si la langue existe $bLangFound = false ; foreach( $this->aLang as $aLang ) { if( !isset( $aFirstLang ) ) $aFirstLang = $aLang ; if( $aLang['id'] == $iLang ) $bLangFound = true ; if( $bLangFound ) break ; } // si pas de lang fournit ou si la langue n'existe pas on prend la première trouvée if( is_null($iLang) || !$bLangFound ) return $aFirstLang ; else return $aLang ; } /* * vérification de la cohérence du rubrique ID */ private function checkRubrique( $iLang, $iRub ) { $bRubFound = false ; foreach( $this->aRubrique[$iLang]['rub'] as $aCurRub ) { if( !isset( $iFirstRub ) ) $iFirstRub = $aCurRub['id'] ; if( $aCurRub['id'] == $iRub ) $bRubFound = true ; if( $bRubFound ) break ; } // si pas de rubrique fournit ou si la rubrique n'existe pas on prend la première trouvée if( is_null($iRub) || !$bRubFound ) return $iFirstRub ; else return $iRub ; } // récupère la liste des rubriques des clins d'oeil disponibles chez Violet // On ne récupère pas toute la liste des rubriques par langue car il y a trop de langue et du coup la requête est trop longue // return array( langID => array( array( id=>int, name=>string) ) ) ; /* * liste des rubriques (thèmes) disponibles pour une langue donnée */ private function getRubrique( $iLang = null ) { if( count($this->aLang) < 1 ) throw new Exception ( __ERR_NO_LANG_RETREIVED__ ) ; // récupération de la langue à utiliser après vérification $aLang = $this->checkLang( $iLang ) ; $sURI_rubrique = $this->sVioletActionUri.$this->sVioletUriRubrique.$this->sVioletUriExt.'?'.$this->sGetLangParamLabel.'='.$aLang['id'];
if( !is_array($this->aRubrique) || !array_key_exists($aLang['id'], $this->aRubrique ) ) { $aRubrique['lang'] = $aLang ; $dom = new DOMDocument(); $dom->loadHTMLFile( $sURI_rubrique ); $oDiv = $dom->getElementsByTagName('div'); for( $i=0; $i<$oDiv->length ; $i++) { $sClassName = 'specialBlock' ; if( $oDiv->item($i)->hasAttribute('class') && $oDiv->item($i)->getAttribute('class') == $sClassName ) { $oUl = $oDiv->item($i)->getElementsByTagName('ul'); if( $oUl->length == 1 ) { $oLi = $oUl->item(0)->getElementsByTagName('li'); for( $j=0; $j<$oLi->length ; $j++) { if( $oLi->item($j)->hasChildNodes () ) { $sGetParam = 'idClin' ; $sAttToFind = 'href' ; $aUriQuery=array() ; parse_str( parse_url($oLi->item($j)->firstChild->getAttribute( $sAttToFind ), PHP_URL_QUERY ), $aUriQuery ) ; $iRubId = $aUriQuery[$sGetParam] ; $sRubName = utf8_decode( strtr($oLi->item($j)->firstChild->nodeValue, array(chr(10)=>'') ) ) ; if( !is_null($iRubId) ) // enlève le shuffle $aRubrique['rub'][$iRubId] = array('id' =>$iRubId , 'name' =>$sRubName ) ; } } } } } $this->aRubrique[$aLang['id']] = $aRubrique ; } return $aLang ;
} /* * getItem : liste des objets d'une section (et langue) donnée que l'on peut envoyer à quelqu'un */ private function getItem( $iLang=null, $iRub=null ) { $aLang = $this->getRubrique( $iLang ) ; $iRub = $this->checkRubrique( $aLang['id'], $iRub ) ; $aCurRub = & $this->aRubrique[$aLang['id']]['rub'][$iRub] ; if( !array_key_exists('item', $aCurRub ) ) { $sCurrURI = $this->sVioletActionUri.$this->sVioletUriSsRubrique.$this->sVioletUriExt.'?'.$this->sGetLangParamLabel.'='.$aLang['id'].'&'.$this->sGetIdParamLabel.'='.$aCurRub['id'] ; //on peut rajouter height et width pour avoir un affichage différent
$dom = new DOMDocument(); $dom->loadHTMLFile( $sCurrURI ); $sDivClassName = 'listItemContener' ; // la div qui nous intéresse a pour attribut class dont la valeur est spécifiée ici $sTableClassName = 'choixListItem' ; // le tableau qui nous intéresse a pour attribut class dont la valeur est spécifiée ici $oDomXpath = new DOMXPath($dom); $sMask = "//div[@class='".$sDivClassName."']/table[@class='".$sTableClassName."']/tr" ; // on va parcourir les données html qui nous intéresse : les cellules du tableau ayant pour class: 'choixListItem' et qui est contenu dans une div qu ia pour class 'listItemContener' $oEntries = $oDomXpath->query( $sMask ) ; foreach( $oEntries as $oEntry ) { $sAttIdToFind = 'title' ; $oA = $oEntry->getElementsByTagName( 'a' ) ; for( $i=0; $i<$oA->length ; $i++ ) { if( $oA->item($i)->getAttribute( 'class' ) == 'name' ) { $sGetParam = 'id' ; $aItemIdMask = array(' = '=>'=') ; $aUriQuery=array() ; parse_str( strtr($oA->item($i)->getAttribute( $sAttIdToFind ), $aItemIdMask ), $aUriQuery ) ; $iRubId = $aUriQuery[$sGetParam] ; $sRubName = utf8_decode(trim($oA->item($i)->nodeValue) ) ; $aCurRub['item'][$iRubId] = array('id' =>$iRubId , 'name' =>$sRubName ) ; } } } } } // Retourne la dernière rubrique récupérée public function getAllItem( $iLang = null ) { return $this->aRubrique ; } }
pour utiliser ajouter le code suivant : - Code:
-
// Retire les warnings / notices mais pas les fatals ini_set('error_reporting', E_ERROR ) ; // Définit les paramètres par défaut $iLang = null ; $iRub = null ; // Génère l'arbre des données à utiliser $oClinDoeil = new violetClinDoeil($iLang, $iRub) ;
// Trace de l'objet généré echo '<pre>'; print_r( $oClinDoeil ); die;
A vous d'ajouter les méthodes qui vous permettront de travailler sur l'objet retourné afin d'afficher une liste de langue, la liste des rubriques, la liste des sons à envoyer à vos NabazTag Faites en bon usage | |
| | | nabazland Karotzeur taquin
Age : 57 Localisation : Rouen - France Nabaztag : Caulfield (v2.1) Nbr de messages : 9783 Carottes : 13344
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Ven 22 Juin 2007 - 16:00 | |
| Oh ben merci... Faudrait que je mette à jour mes interfaces... ! _____________________________
| |
| | | rebolon Lapin nain
Localisation : Lyon Nbr de messages : 32 Carottes : 6520
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Ven 22 Juin 2007 - 16:32 | |
| Bon j'ai pas pu éditer mon précédent post à temps, alors voilà un cht'i correctif : à savoir l'ajout des getRubriqueUri et getItemUri pour éviter de faire de erreurs bêtes dans la saisie des Uri. j'avais oublié de mettre la constante pour accéder à Violet et enfin, j'ai aussi mis une classe abstraite pour que vous puissiez développer les autres classes (bibliothèque et NabShare par exemple). Pour les faignants, j'ai aussi les autres classes, donc contactez moi pour que je vous les envoies. - Code:
-
define( '__VIOLET_URI_ACTION__', 'http://my.nabaztag.com/vl/action/' ) ; define( '__VIOLET_URI_SS_RUBRIQUE_LABEL__', 'Choice' ) ;
abstract class violetAPI { public $aRubrique ; public $aLang ; protected $sGetLangParamLabel ; protected $sGetIdParamLabel ; protected $sVioletActionURI ; protected $sVioletUriRubrique ; protected $sVioletUriSsRubrique ; abstract protected function getRubriqueUri() ; abstract protected function getSubRubriqueUri() ; abstract protected function getLang() ; abstract protected function checkLang( $iLangID ) ; abstract protected function checkRubrique( $iLangID, $iRubID ) ; abstract protected function getRubrique( $iLangID = null ) ; abstract protected function getItem( $iLangID = null, $iRubID = null ) ; abstract public function getAllItem( $iLangID = null ) ; }
class violetClinDoeil extends violetAPI { function __construct( $iLang=null, $iRub=null ) { $this->sGetLangParamLabel = 'langClin' ; $this->sGetIdParamLabel = 'idClin' ; $this->sVioletActionUri = __VIOLET_URI_ACTION__ ; $this->sVioletUriRubrique = 'myMessagesClin' ; $this->sVioletUriSsRubrique = $this->sVioletUriRubrique.__VIOLET_URI_SS_RUBRIQUE_LABEL__ ; $this->sVioletUriExt = '.do' ; //Récupère les langues $this->getLang() ; // Traitement des données récupérées try { $this->getLang() ; if( count( $this->aRubrique ) == 0 ) $this->getItem( $iLang, $iRub ) ; } catch( Exception $oE ) { echo $oE->getMessage() ; } } /* * génère l'uri d'accès à violet : rubrique */ protected function getRubriqueUri() { return $this->sVioletActionUri.$this->sVioletUriRubrique.$this->sVioletUriExt ; } /* * génère l'uri d'accès à violet : ss rubrique */ protected function getSubRubriqueUri() { return $this->sVioletActionUri.$this->sVioletUriSsRubrique.$this->sVioletUriExt ; }
/* * récupère la liste des langues, sans recharger la page une nouvelle ( on se sert de sVioletFirstPageContent ) */ protected function getLang() { $sURI_rubrique = $this->getRubriqueUri() ; $dom = new DOMDocument(); $dom->loadHTMLFile( $sURI_rubrique ); $oDomXpath = new DOMXPath($dom); $sMask = "//div/ul[@class='langSelect']/li" ; // on va parcourir les données html qui nous intéresse : les cellules du tableau ayant pour class: 'choixListItem' et qui est contenu dans une div qu ia pour class 'listItemContener' $oEntries = $oDomXpath->query( $sMask ) ; foreach( $oEntries as $oEntry ) { $oA = $oEntry->getElementsByTagName( 'a' ) ; for( $i=0; $i<$oA->length ; $i++ ) { $sTextToFind = 'langClin=' ; $aRegExp = array(); preg_match( '('.$sTextToFind.'[0-9]*)', $oA->item($i)->getAttribute( 'onclick' ), $aRegExp ); $iLangId = trim( strtr( $aRegExp[0], array($sTextToFind=>'') ) ) ; $sLangName = utf8_decode(trim($oA->item($i)->nodeValue) ) ; $aLang[$iLangId] = array( 'id'=>$iLangId , 'name'=>utf8_decode($sLangName) ); } } $this->aLang = $aLang ; } /* * vérification de la cohérence de la langue */ protected function checkLang( $iLang ) { // recherche si la langue existe $bLangFound = false ; foreach( $this->aLang as $aLang ) { if( !isset( $aFirstLang ) ) $aFirstLang = $aLang ; if( $aLang['id'] == $iLang ) $bLangFound = true ; if( $bLangFound ) break ; } // si pas de lang fournit ou si la langue n'existe pas on prend la première trouvée if( is_null($iLang) || !$bLangFound ) return $aFirstLang ; else return $aLang ; } /* * vérification de la cohérence du rubrique ID */ protected function checkRubrique( $iLang, $iRub ) { $bRubFound = false ; foreach( $this->aRubrique[$iLang]['rub'] as $aCurRub ) { if( !isset( $iFirstRub ) ) $iFirstRub = $aCurRub['id'] ; if( $aCurRub['id'] == $iRub ) $bRubFound = true ; if( $bRubFound ) break ; } // si pas de rubrique fournit ou si la rubrique n'existe pas on prend la première trouvée if( is_null($iRub) || !$bRubFound ) return $iFirstRub ; else return $iRub ; } // récupère la liste des rubriques des clins d'oeil disponibles chez Violet // On ne récupère pas toute la liste des rubriques par langue car il y a trop de langue et du coup la requête est trop longue // return array( langID => array( array( id=>int, name=>string) ) ) ; /* * liste des rubriques (thèmes) disponibles pour une langue donnée */ protected function getRubrique( $iLang = null ) { if( count($this->aLang) < 1 ) throw new Exception ( __ERR_NO_LANG_RETREIVED__ ) ; // récupération de la langue à utiliser après vérification $aLang = $this->checkLang( $iLang ) ; if( !is_array($this->aRubrique) || !array_key_exists($aLang['id'], $this->aRubrique ) ) { $sURI_rubrique = $this->getRubriqueUri().'?'.$this->sGetLangParamLabel.'='.$aLang['id']; $aRubrique['lang'] = $aLang ; $dom = new DOMDocument(); $dom->loadHTMLFile( $sURI_rubrique ); $oDiv = $dom->getElementsByTagName('div'); for( $i=0; $i<$oDiv->length ; $i++) { $sClassName = 'specialBlock' ; if( $oDiv->item($i)->hasAttribute('class') && $oDiv->item($i)->getAttribute('class') == $sClassName ) { $oUl = $oDiv->item($i)->getElementsByTagName('ul'); if( $oUl->length == 1 ) { $oLi = $oUl->item(0)->getElementsByTagName('li'); for( $j=0; $j<$oLi->length ; $j++) { if( $oLi->item($j)->hasChildNodes () ) { $sGetParam = 'idClin' ; $sAttToFind = 'href' ; $aUriQuery=array() ; parse_str( parse_url($oLi->item($j)->firstChild->getAttribute( $sAttToFind ), PHP_URL_QUERY ), $aUriQuery ) ; $iRubId = $aUriQuery[$sGetParam] ; $sRubName = utf8_decode( strtr($oLi->item($j)->firstChild->nodeValue, array(chr(10)=>'') ) ) ; if( !is_null($iRubId) ) // enlève le shuffle $aRubrique['rub'][$iRubId] = array('id' =>$iRubId , 'name' =>$sRubName ) ; } } } } } $this->aRubrique[$aLang['id']] = $aRubrique ; } return $aLang ;
} /* * getItem : liste des objets d'une section (et langue) donnée que l'on peut envoyer à quelqu'un */ protected function getItem( $iLang=null, $iRub=null ) { $aLang = $this->getRubrique( $iLang ) ; $iRub = $this->checkRubrique( $aLang['id'], $iRub ) ; $aCurRub = & $this->aRubrique[$aLang['id']]['rub'][$iRub] ; if( !array_key_exists('item', $aCurRub ) ) { $sCurrURI = $this->getSubRubriqueUri().'?'.$this->sGetLangParamLabel.'='.$aLang['id'].'&'.$this->sGetIdParamLabel.'='.$aCurRub['id'] ; //on peut rajouter height et width pour avoir un affichage différent
$dom = new DOMDocument(); $dom->loadHTMLFile( $sCurrURI ); $sDivClassName = 'listItemContener' ; // la div qui nous intéresse a pour attribut class dont la valeur est spécifiée ici $sTableClassName = 'choixListItem' ; // le tableau qui nous intéresse a pour attribut class dont la valeur est spécifiée ici $oDomXpath = new DOMXPath($dom); $sMask = "//div[@class='".$sDivClassName."']/table[@class='".$sTableClassName."']/tr" ; // on va parcourir les données html qui nous intéresse : les cellules du tableau ayant pour class: 'choixListItem' et qui est contenu dans une div qu ia pour class 'listItemContener' $oEntries = $oDomXpath->query( $sMask ) ; foreach( $oEntries as $oEntry ) { $sAttIdToFind = 'title' ; $oA = $oEntry->getElementsByTagName( 'a' ) ; for( $i=0; $i<$oA->length ; $i++ ) { if( $oA->item($i)->getAttribute( 'class' ) == 'name' ) { $sGetParam = 'id' ; $aItemIdMask = array(' = '=>'=') ; $aUriQuery=array() ; parse_str( strtr($oA->item($i)->getAttribute( $sAttIdToFind ), $aItemIdMask ), $aUriQuery ) ; $iRubId = $aUriQuery[$sGetParam] ; $sRubName = utf8_decode(trim($oA->item($i)->nodeValue) ) ; $aCurRub['item'][$iRubId] = array('id' =>$iRubId , 'name' =>$sRubName ) ; } } } } } // Retourne la dernière rubrique récupérée public function getAllItem( $iLang = null ) { return $this->aRubrique ; } }
| |
| | | nabazland Karotzeur taquin
Age : 57 Localisation : Rouen - France Nabaztag : Caulfield (v2.1) Nbr de messages : 9783 Carottes : 13344
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Ven 22 Juin 2007 - 18:43 | |
| Ben merci à tous les deux... Interface NabzMessenger à jour ! _____________________________
| |
| | | com Bronze Nabz
Age : 36 Localisation : lyon Nabaztag : rabcom (V2) Nbr de messages : 205 Carottes : 6543
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Lun 2 Juil 2007 - 21:46 | |
| perso je préfère utiliser les expressions régulières ce qui donne qqchose comme ceci : - Code:
-
error_reporting(E_ALL);
$array_lang = array(1, 2, 3, 4, 5, 6); $i=0;
foreach($array_lang as $id_lang) { $idm_file_violet_1 = 'http://my.nabaztag.com/vl/action/myMessagesClin.do?langClin='.$id_lang; $icat = 0; if($handlecat = fopen($idm_file_violet_1, 'r')) { while(!feof($handlecat)) { $bufcat = fgets($handlecat); if(ereg('&idClin=([0-9]{2,})" class="item">([^</]*)</a>', $bufcat, $regscat)) { $tableaucat[$icat]['id'] = $regscat[1]; $tableaucat[$icat++]['cat'] = $regscat[2]; } } } fclose($handlecat); for($boucle = 0; $boucle != $icat; $boucle++) { $idm_file_violet_2 = 'http://my.nabaztag.com/vl/action/myMessagesClinChoice.do?langClin='.$id_lang.'&idClin='.$tableaucat[$boucle]['id']; if ($handle = fopen($idm_file_violet_2, 'r')) { while (!feof($handle)) { $buf = fgets($handle); $tableau_final[$i]['cat'] = $tableaucat[$boucle]['cat']; if(ereg("selectItem\('(.+)','([0-9]+)'\)", $buf, $regs)) { $tableau_final[$i]['name'] = $regs[1]; $tableau_final[$i]['id'] = $regs[2]; } } fclose($handle); } } }
echo "<table>";
$final = 0; while(isset($tableau_final[$final])) { echo "<tr><td>".$tableau_final[$final]["cat"]."</td><td>".$tableau_final[$final]["id"]."</td><td>".$tableau_final[$final]["name"]."</td></tr>"; $final = $final + 1; }
echo "</table>";
Voilà pour votre bonne utilisation, j'arrive un peu tard mais en fait j'en ai marre de tout me faire à la main alors ca sera pour les prochaines fois (ca et une macro excel et le tour est joué !) | |
| | | rebolon Lapin nain
Localisation : Lyon Nbr de messages : 32 Carottes : 6520
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Jeu 5 Juil 2007 - 11:13 | |
| après c'est une question de gout, mais c'est purement des questions de développeurs moi j'aime bien les regExp, mais j'ai trouvé DOM tellement pratique que je l'ai préféré dans cas. ByeBye | |
| | | NaBoByZ Nabazteur Courtois
Localisation : Btx Nabaztag : NaBoByZ Nbr de messages : 4349 Carottes : 6637
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Jeu 5 Juil 2007 - 11:41 | |
| Pourquoi je suis largué en regardant toute ces lignes ? ah oui je sais je suis un Réseau pas un Dev | |
| | | BigPanda Kryptonite Nabz
Age : 42 Localisation : Bruxelles Nabaztag : RyoOhki (V1), Meroko (V2), Iori (V3) Nbr de messages : 7127 Carottes : 13341
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Mer 31 Oct 2007 - 13:29 | |
| Salut, j'ai depuis un certain temps un script basé sur ce principe qui tourne sur mon serveur... J'en ai récemment refait un pour updater les midis et un pour le nabshare... Mon soucis avec le nabshare est que je ne trouve pas de paramètre à mettre pour indiquer la langue dans laquelle je les veux :
Pour les clins d'oeil, j'ai ça :
Avec XXX = 1 pour français, 2 pour anglais et YYY = id de la catégorie :
- Liste des catégories : http://my.nabaztag.com/vl/action/myMessagesClin.do?langClin=XXX
- Liste des ids de la catégorie YYY: http://my.nabaztag.com/vl/action/myMessagesClinChoice.do?langClin=XXX&idClin=YYY
Pour les midis :
- Liste des catégories : http://my.nabaztag.com/vl/action/myMessagesBiblio.do?langBiblio=XXX
- Liste des ids de la catégorie YYY: http://my.nabaztag.com/vl/action/myMessagesBiblioChoice.do?langBiblio=XXX&idBiblio=YYY
Pour le nabshare, tout ce que j'ai trouvé, c'est ça :
- Liste des catégories : http://my.nabaztag.com/vl/action/myMessagesNabshare.do
- Liste des ids de la catégorie YYY: http://my.nabaztag.com/vl/action/myMessagesNabshareChoice.do?idCateg=YYY
Mon soucis est que quand j'appelles ces url depuis le browser sur ma machine, j'ai tout en français... Si je les appelles depuis un script php (sur ma machine ou un autre serveur), j'ai tout en anglais (ce sont pas les mêmes catégories, ni les mêmes clins d'oeil --> c'est intéressant d'avoir les différentes langues...)
Visiblement l'info de la langue, pour le nabshare uniquement, est tirée du cookie... Est-ce que quelqu'un aurait trouvé un paramètre à passer pour pouvoir quand même spécifier, via URL, la langue dans laquelle on veut le nabshare ? :-/ _____________________________ Compagnie de reconstitution historique (essentiellement médiévale) en belgique : Tartes et Bastons ASBL (Suis nouveau sur MN donc plein de mangas encore à ajouter et mes DVDs à mettre aussi ) | |
| | | BigPanda Kryptonite Nabz
Age : 42 Localisation : Bruxelles Nabaztag : RyoOhki (V1), Meroko (V2), Iori (V3) Nbr de messages : 7127 Carottes : 13341
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Jeu 8 Nov 2007 - 12:42 | |
| Personne n'a d'idée ? _____________________________ Compagnie de reconstitution historique (essentiellement médiévale) en belgique : Tartes et Bastons ASBL (Suis nouveau sur MN donc plein de mangas encore à ajouter et mes DVDs à mettre aussi ) | |
| | | BigPanda Kryptonite Nabz
Age : 42 Localisation : Bruxelles Nabaztag : RyoOhki (V1), Meroko (V2), Iori (V3) Nbr de messages : 7127 Carottes : 13341
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Mar 13 Nov 2007 - 13:41 | |
| TOujours personne ? :npleure: _____________________________ Compagnie de reconstitution historique (essentiellement médiévale) en belgique : Tartes et Bastons ASBL (Suis nouveau sur MN donc plein de mangas encore à ajouter et mes DVDs à mettre aussi ) | |
| | | rebolon Lapin nain
Localisation : Lyon Nbr de messages : 32 Carottes : 6520
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Lun 3 Déc 2007 - 14:14 | |
| En fait c'est tout bête : Violet se sert des headers HTTP pour identifier la langue à utiliser lors de l'envoi de la réponse. Il faut donc que tu modifies l'en-tête HTTP de ta requête pour y mettre la langue que tu veux.
Si tu veux plus de détail, contacte moi directement. | |
| | | BigPanda Kryptonite Nabz
Age : 42 Localisation : Bruxelles Nabaztag : RyoOhki (V1), Meroko (V2), Iori (V3) Nbr de messages : 7127 Carottes : 13341
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Lun 3 Déc 2007 - 14:52 | |
| Haaaaaaaaaaaaaaa, enfin une réponse, j'y croyais plus J'essaie d'essayer ça ce soir Merci merci _____________________________ Compagnie de reconstitution historique (essentiellement médiévale) en belgique : Tartes et Bastons ASBL (Suis nouveau sur MN donc plein de mangas encore à ajouter et mes DVDs à mettre aussi ) | |
| | | rebolon Lapin nain
Localisation : Lyon Nbr de messages : 32 Carottes : 6520
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Lun 3 Déc 2007 - 15:20 | |
| j'espère que ça résoudra ton problème
tu peux essayer sur mon site : ça marche http://brichard.org/mynabzapi/
tu peux te logger avec guest/guest ou bien créer un compte et une fois que tu as l'interface, tu verras qu'en choisissant une langue et bien tu aura la liste correspondante dans la biblitothèque, les clins d'oeils, les nabshare... et là, c'est vraiment sympa.
[EDIT] Oups je metais trompé dans lelien, je viens de le corriger [/EDIT] | |
| | | BigPanda Kryptonite Nabz
Age : 42 Localisation : Bruxelles Nabaztag : RyoOhki (V1), Meroko (V2), Iori (V3) Nbr de messages : 7127 Carottes : 13341
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Jeu 6 Déc 2007 - 11:03 | |
| Salut, Je voulais te dire un tout tout grand merci J'ai enfin pu essayer ça hier soir et ça marche nickel Merci merciiiiiiiii _____________________________ Compagnie de reconstitution historique (essentiellement médiévale) en belgique : Tartes et Bastons ASBL (Suis nouveau sur MN donc plein de mangas encore à ajouter et mes DVDs à mettre aussi ) | |
| | | rebolon Lapin nain
Localisation : Lyon Nbr de messages : 32 Carottes : 6520
| Sujet: Re: Script PHP de mise à jour des clins d'oeil Jeu 6 Déc 2007 - 18:11 | |
| de rien c'est toujours bon de pouvoir trouver un peu d'aide ! | |
| | | Contenu sponsorisé
| Sujet: Re: Script PHP de mise à jour des clins d'oeil | |
| |
| | | | Script PHP de mise à jour des clins d'oeil | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |