generer_url_ecrire($infos['prefix'])); } } // version amelioree de la RegExp de cfg_formulaire. define( '_EXTRAIRE_SAISIES', '#<(select|textarea|input)[^>]*\sname=["\'](\w+)(\[\w*\])?["\'](?: class=["\']([^\'"]*)["\'])?( multiple=)?[^>]*?>#ims' ); // determiner la liste des noms des saisies d'un formulaire // (a refaire avec SAX) function formulaires_configurer_metas_recense($form, $opt = '') { if (!$opt) { $opt = PREG_SET_ORDER; } $f = file_get_contents($form); if ($f and preg_match_all(_EXTRAIRE_SAISIES, $f, $r, $opt)) { return $r; } else { return array(); } } // Repertoires potentiels des plugins, ce serait bien d'avoir ça ailleurs // ca n'est pas lie a cette balise // Attention a l'ordre: // si l'un des 3 est un sous-rep d'un autre, le mettre avant. define('_EXTRAIRE_PLUGIN', '@(' . _DIR_PLUGINS_AUTO . '|' . _DIR_PLUGINS . '|' . _DIR_PLUGINS_DIST . ')/?([^/]+)/@'); // Recuperer la version compilee de plugin.xml et normaliser // Si ce n'est pas un plugin, dire qu'il faut prendre la table std des meta. function formulaires_configurer_metas_infos($form) { $path = find_in_path($form . '.' . _EXTENSION_SQUELETTES, 'formulaires/'); if (!$path) { return ''; } // cas traite en amont normalement. if (!preg_match(_EXTRAIRE_PLUGIN, $path, $m)) { return array('path' => $path, 'meta' => 'meta'); } $plugin = $m[2]; $get_infos = charger_fonction('get_infos', 'plugins'); $infos = $get_infos($plugin, false, $m[1]); if (!is_array($infos)) { return _T('erreur_plugin_nom_manquant'); } if (isset($infos['erreur'])) { return $infos['erreur'][0]; } $prefix = $infos['prefix']; $infos['path'] = $path; if (!isset($infos['meta'])) { $infos['meta'] = ($prefix . '_metas'); } return $infos; }