Code

Il existe pas 50 façons d'obtenir EXACTEMENT ce qu'on veut :
- sortir son chéquier. Ce choix implique à terme quelques limitations et ne garantit pas toujours une satisfaction totale.
- le faire soi même. Du temps, de l'énergie, l'enrichissement intrinsèque à l'apprentissage et le plaisir d'obtenir un résultat "sur mesure" au final.
Categorie privée à l'origine (mon bazar perso), finalement je la partage en me disant que c'est dans des fourre-tout comme celui-ci que j'ai parfois trouvé la réponse à mes problèmes de code.
Si vous lisez ce texte, vous êtes probablement aussi lecteur de l'incontournable manuel PHP


Lister ICI les choses à faire et mettre en COMmentaire les choses faites pour bénéficier de la datation du changelog
diter Code aucun 10
  1.  ne pas oublier de créer le répertoire /sessions à la racine du site
  2. ne pas oublier d'ajouter la ligne php 1 au début du .htaccess
Réelle restriction de Free sur ses pages persos, compliquée par le fait que leurs serveurs tournent avec PHP5.14 (version beta), ce qui empèche d'utiliser les fonctions les plus récentes de PHP, comme memory_get_allowed_usage
Petit pense-bête au gré de mes tests.
  • class.plx.show.php à partir de ligne 681 et 719 : remplacement du paragraphe par un span pour condenser l'affichage, remplacement texte par '.L_ARTCHAPO.'
  • lang/fr/core.php : suppression du #title
penser à effacer son fichier wamp/logs/apache_error.txt de tps en temps pour éviter, comme moi, de se trouver avec un fichier de 2Go
Petit topo sur cette fonction magique tant elle est pratique.
Initialement dévellopée pour WordPress, habilement adaptée pour Pluxml par Jérome EVRARD,  je l'ai juste augmentée de quelques fonctions selon mes besoins propres et ceux du plugin ixePaf
C'est comme en cuisine, c'est affiché au menu pour qu'on s'y retrouve mais personne ne goûte tant que c'est pas prêt !
Mémo : Noter que l'URL des images des catégories doivent être amputées du root pour être cliquables.
Petit topo sur cet animal en perpétuelle croissance, nourri aux heures de boulot et auquel je dois d'avoir réalisé la première classe PHP de ma vie.
Fonction publiques (hooks) de la classe ixePaf  :
  • $plxShow->callHook('ixePaf::ixePaForm', $form afficher un formulaire si le droit de lecture est accordé au demandeur
    • return
      • $temp['urlMainStatique'] = url par défaut du portail des pages du plugin. Option dont le principal intérêt est de faciliter la maintenance du site, en gardant ensemble tous les formulaires spécifiques à 1 site ou 1 activité, le dossier par défaut étant celui du plugin (paramétrable). Permet également de bénéficier des fonctions et plugins liés aux pages statiques.
      • $temp['titre']= titre complet du formulaire. Egalement celui de son lien si vous utilisez le menu automatique version 3
      • $temp['urlPdf'] = les pdf doivent s'afficher sans <head>   
      • $temp['root'] = url du formulaire (mère si include), nettoyé des GET sauf $form, redirection des reset par exemple
      • $temp['profil'] = true/false, informe des droits d'écriture ($readonly des inputs)
  • $query = $plxShow->callHook('ixePaf::getData',$x);   demander le contenu d'une table 
    1. $x['maintable'] ou $x['table' ]= (string) 'nom de la table'  seul parametre obligatoire 
    2. $x['default'] = (string) 'syntaxe Xpath'   affichage SI aucun filtre. Exemples parmi les nombreuses possibilités :
      • $x['default']='[column/parameter[contains(text(),"'.date('Y').'-")]]'; affiche tous les enregistrements de l'année en cours 
      • $x['default']='[position()<=50]';  très rapide pour afficher les 50 premiers enregistrements, mais ignorera $x[order]
      • $x['inputsearch']=date('Y')."-"; toutes les alternatives existent pour définir un affichage par défaut, celle-ci est 0.4s moins rapide que $x['defaut'] sur 6000 lignes
    3. $obj = XfileManager::openXfile($this->urlDatas.$x['table']);  ouvre la table et renvoie son contenu dans un objet
    4. $x['champs'] = (string) 'champ1, champ2, etc.'  réserver la suite du traitement et ne retourner en résultat QUE ces champs
    5. $x['filtres'] = (string)   rechercher UNE valeur dans SON champ 
      • filtrage avec syntaxe URL friendly :   champ1 = value1 & champ2 = value2 & champ3 = isNotNull & etc.
      • filtrage depuis le script avec options supplémentaires :  >=, <=, !=, contains
      • Note : il est possible de demander valeur1 = isNull si cette condition existe dans le contenu de votre table ou par le traitement de la variable POST de vos formulaires.  Afin d'optimiser le volume du fichier XML, ainsi que le temps global de traitement, ixePaf n'écrit naturellement pas les champs vides 
      • filtrage automatique depuis fonction  :  $x['filtres'] =  'auto'; version 3
        • appel à la fonction Xrequest($maintable)
        • collecte des éléments $_REQUEST correspondants aux champs
        • rempli et exécute $x['filtres'] et $x['inputsearch'] automatiquement, sans aucune autre intervention de votre part.
    6. $x['inputsearch'] = (string) 'mot ou phrase'  rechercher TOUTES ces valeurs dans TOUS les champs de la table 
    7. $x['id'] = (numeric)
    8. $a_xml = XarrayManager::obj2array($obj);  change l'objet en tableau 
    9. $x['order'] = " champ1|D and champ2|A "  ordonne le tableau 
    10. $x['pagination'] = numérique, 'none' ou pagination définie par défaut  garde la partie souhaitée du tableau
    11. retourne le tableau de résultat
      1. toutes les ['valeurs numériques'] sont les IDs des enregistrements
      2. ['Xpage'] contient les paramètres de navigation version 3
        1. pagination contient l'affichage HTML des boutons de pagination
        2. nbresult donne le nombre de résultats conformes à la requête
        3. sizeof contient le nombre d'enregistrements parcourus pour obtenir ce résultat
        4. self, associé à l'id d'une ligne de résultat par exemple, vous permettra d'accéder à un enregistrement sans perdre l'affichage de votre navigation paginée et/ou filtrée
        5. La solution d'agréger ces variables au tableau de résultat permet d'éviter :
          • le recours aux variables de session (utilisation mémoire + gestion) sans perdre le confort de la persistance des filtres croisées
          • la création d'un hook supplémentaire avec sa ligne de code d'appel dédiée
          • une différence de synchronicité lorsque les formulaires sont inclus
          • une fois ces variqbles récupérées, il convient d'extraire cette portion du tableau des résultats, si vous souhaitez boucler dessus, avec la syntaxe unset();
  •  setData($x)  # modifier son contenu
    • $xml = XfileManager::openXfile($this->urlDatas.$x['maintable']); ouvre le fichier
    • $xml = XarrayManager::obj2array($xml); transforme en array
    • $index = XarrayManager::lastIndex($xml); cherche dernier index si création
    • traitement des variables $_POST
    •  
  • delData($x) -> return array();
© Domaine de Belleroche 2004 - 2019