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