Methodes pour la classe: ".get_class($obj)."

\n"; $methods=get_class_methods(get_class($obj)); foreach ( $methods as $meth ) { echo "

$meth()

\n"; } } ?> array('content'), 'atts' => array('content' => array( 'content' => 'text'))); $dtd['IDREF']= array('elts' => array('content'), 'atts' => array('content' => array( 'Id' => 'auth'))); $dtd['Prepare']= array('elts' => array('untgz','untar','patch'), 'atts' => array('untgz' => array( 'FileId' => 'text', 'Offset' => 'text' ), 'untar' => array( 'FileId' => 'text', 'Offset' => 'text' ), 'patch' => array( 'FileId' => 'text', 'Offset' => 'text', 'Depth' => 'text', 'Compression' =>'select')), 'dflt' => array('untgz' => array( 'Offset' => '.'), 'untar' => array( 'Offset' => '.'), 'patch' => array( 'Offset' => '.', 'Depth' => '1', 'Compression' => 'none')), 'vals' => array('Compression' => array('gz','bz2','Z','none'))); $dtd['EMail']=&$dtd['ANY']; $dtd['Organization']=&$dtd['ANY']; $dtd['Street']=&$dtd['ANY']; $dtd['PostCode']=&$dtd['ANY']; $dtd['City']=&$dtd['ANY']; $dtd['State']=&$dtd['ANY']; $dtd['Country']=&$dtd['ANY']; $dtd['BPDependencies']= array('elts' => array('BuildDep','BuildConflict','BuildWithDep'), 'atts' => array('BuildDep' => array( 'name' => 'text'), 'BuildConflict'=> array( 'name' => 'text'), 'BuildWithDep' => array())); $dtd['Target']= array('elts' => array('content'), 'atts' => array('content' => array( 'content' => 'select')), 'vals' => array('content' => array( 'none', 'any' ))); $dtd['Building']= array('elts' => array('tex','latex','dtxtodvi','mktexlsr','move','link','make','cd'), 'atts' => array('tex' => array( 'file' => 'text', 'format' => 'text' ), 'latex' => array( 'file' => 'text' ), 'dtxtodvi' => array( 'file' => 'text', 'idx' => 'check', 'glo' => 'check', 'bib' => 'check', 'pre-runs' => 'select', 'post-runs' => 'select' ), 'mktexlsr' => array( 'mandatory' => 'check' ), 'move' => array( 'from' => 'text', 'to' => 'text' ), 'link' => array( 'from' => 'text', 'to' => 'text', 'sym' => 'check' ), 'make' => array( 'target' => 'text' ), 'cd' => array( 'to' => 'text' )), 'vals' => array('pre-runs' => array( 1,2,3,4,5,6,7,8,9 ), 'post-runs' => array( 0,1,2,3,4,5,6,7,8,9 )), 'dflt' => array('tex' => array( 'format' => 'plain'), 'dtxtodvi' => array( 'idx' => 'off', 'glo' => 'off', 'bib' => 'off', 'pre-runs' => '2', 'post-runs' => '1'), 'mktexlsr' => array( 'mandatory' => 'off'), 'link' => array( 'sym' => 'off'))); $dtd['Installation']= array('elts' => array('content' ), 'atts' => array('content' => array( 'bindir' => 'dir', 'libdir' => 'dir', 'incdir' => 'dir', 'mandir' => 'dir', 'docdir' => 'dir', 'infodir' => 'dir', 'stydir' => 'dir', 'texdir' => 'dir', 'bstdir' => 'dir', 'bibdir' => 'dir', 'fmtdir' => 'dir', 'mfdir' => 'dir', 'tfmdir' => 'dir', 'pfbdir' => 'dir', 'ttfdir' => 'dir', 'psdir' => 'dir', 'mapdir' => 'dir', 'istdir' => 'dir' )), 'dflt' => array('content' => array( 'bindir' => '.', 'libdir' => '.', 'incdir' => '.', 'mandir' => '.', 'docdir' => '.', 'infodir' => '.', 'stydir' => '.', 'texdir' => '.', 'bstdir' => '.', 'bibdir' => '.', 'fmtdir' => '.', 'mfdir' => '.', 'tfmdir' => '.', 'pfbdir' => '.', 'ttfdir' => '.', 'psdir' => '.', 'mapdir' => '.', 'istdir' => '.' ))); $dtd['WhileBuild']=array( 'elts' => array('mkdir','docfile','infofile','binfile','libfile','incfile','manfile', 'bstfile','bibfile','styfile','texfile','tfmfile','mffile','pfbfile', 'ttffile','psfile','mapfile','istfile','cd','link','mktexlsr','format'), 'atts' => array('mkdir'=> array( 'content' => 'text' ), 'docfile'=> array( 'content' => 'text' ), 'infofile'=> array( 'content' => 'text' ), 'binfile'=> array( 'content' => 'text', 'toname' => 'text', 'strip' => 'check' ), 'libfile'=> array( 'content' => 'text' ), 'incfile'=> array( 'content' => 'text' ), 'manfile'=> array( 'content' => 'text' ), 'bstfile'=> array( 'content' => 'text' ), 'bibfile'=> array( 'content' => 'text' ), 'styfile'=> array( 'content' => 'text' ), 'texfile'=> array( 'content' => 'text' ), 'tfmfile'=> array( 'content' => 'text' ), 'mffile'=> array( 'content' => 'text' ), 'pfbfile'=> array( 'content' => 'text' ), 'ttffile'=> array( 'content' => 'text' ), 'psfile'=> array( 'content' => 'text' ), 'mapfile'=> array( 'content' => 'text' ), 'istfile'=> array( 'content' => 'text' ), 'cd'=> array( 'to' => 'text' ), 'link'=> array( 'from' => 'text', 'to' => 'text', 'sym' => 'check' ), 'mktexlsr'=> array( 'mandatory' => 'check' ), 'format'=> array( 'from' => 'text', 'to' => 'text', 'run' => 'text' ))); $dtd['OnTarget']=array( 'elts'=>array( 'mkdir', 'docfile', 'infofile', 'binfile', 'libfile', 'incfile', 'manfile', 'bstfile', 'bibfile', 'styfile', 'texfile', 'tfmfile', 'mffile', 'pfbfile', 'ttffile', 'psfile', 'mapfile', 'istfile', 'to', 'cd', 'link', 'mktexlsr', 'latex', 'dtxtodvi', 'proc', 'fmt', 'procfmt', 'formats', 'format', 'extract', 'remove' ), 'atts'=>array( 'mkdir'=> array( 'content' => 'text' ), 'docfile'=> array( 'content' => 'text' ), 'infofile'=> array( 'content' => 'text' ), 'binfile'=> array( 'content' => 'text', 'toname' => 'text', 'strip' => 'check'), 'libfile'=> array( 'content' => 'text' ), 'incfile'=> array( 'content' => 'text' ), 'manfile'=> array( 'content' => 'text', 'toname' => ''), 'bstfile'=> array( 'content' => 'text' ), 'bibfile'=> array( 'content' => 'text' ), 'styfile'=> array( 'content' => 'text' ), 'texfile'=> array( 'content' => 'text' ), 'tfmfile'=> array( 'content' => 'text' ), 'mffile'=> array( 'content' => 'text' ), 'pfbfile'=> array( 'content' => 'text' ), 'ttffile'=> array( 'content' => 'text' ), 'psfile'=> array( 'content' => 'text' ), 'mapfile'=> array( 'content' => 'text' ), 'istfile'=> array( 'content' => 'text' ), 'to'=> array( 'dir' => 'text', 'mode' => 'text'), 'cd'=>& $dtd['Building']['atts']['cd'], 'link'=>& $dtd['Building']['atts']['link'], 'mktexlsr'=> array( 'mandatory' => 'check' ), 'latex'=>& $dtd['Building']['atts']['latex'], 'dtxtodvi'=>& $dtd['Building']['atts']['dtxtodvi'], 'proc'=> array( 'name' => 'text', 'ininame' => 'text', 'virname' => 'text' ), 'fmt'=> array( 'name' => 'text', 'file' => 'text', 'add' => 'text' ), 'procfmt'=> array( 'fmt' => 'text', 'proc' => 'text', 'toname' => 'text', 'tofile' => 'text', 'outfile' => 'text' ), 'formats'=> array( ), 'format'=> array( 'from' => 'text', 'to' => 'text', 'run' => 'text'), 'extract'=> array(), 'remove'=> array()), 'dflt'=>array( 'mktexlsr'=> array( 'mandatory' => 'yes'), 'binfile' => array( 'toname' => '', 'strip' => 'yes' ), 'manfile' => array( 'toname' => ''))); $dtd['ShortDescription']=array( 'elts'=>array( 'content'), 'atts'=>array( 'content' => array( 'lang' => 'select', 'translator' => 'auth', 'content' => 'text' )), 'vals'=>array( 'lang' =>&$dtd['languages'] ), 'dflt'=>array( 'content' => array( 'translator' => ''))); $dtd['LongDescription']=array( 'elts'=>array( 'content'), 'atts'=>array( 'content' => array( 'lang' => 'select', 'translator' => 'auth', 'content' => 'textarea' )), 'vals'=>array( 'lang' =>&$dtd['languages'] ), 'dflt'=>array( 'content' => array( 'translator' => ''))); $dtd['AuthorId']=&$dtd['IDREF']; $dtd['PackagerId']=&$dtd['IDREF']; $dtd['Location']['elts']=array('content'); $dtd['Location']['atts']['content']=array( 'kind' => 'select', 'content' => 'auth' ); $dtd['Location']['vals']['kind']=array('ctan','rpm','bsd'); $dtd['FileList']['elts']=array('file','docfile','cfgfile','dir'); $dtd['FileList']['atts']['file']=array( 'content' => 'text' ); $dtd['FileList']['atts']['docfile']=array( 'content' => 'text' ); $dtd['FileList']['atts']['cfgfile']=array( 'content' => 'text' ); $dtd['FileList']['atts']['dir']=array( 'content' => 'text' ); $dtd['Dependencies']=array( 'elts'=>array( 'Dep','Conflict','Suggest'), 'atts'=>array( 'Dep' => array( 'name' => 'auth', 'level' => 'select'), 'Conflict' => array( 'name' => 'auth' ), 'Suggest' => array( 'name' => 'auth' )), 'vals'=>array( 'level' => array(0,1,2,3,4,5,6,7,8,9,10)), 'dflt'=>array( 'Dep' => array( 'level' => 10 ))); $dtd['Provides']['elts'] = array('Provided'); $dtd['Provides']['atts']['Provided']=array( 'name' => 'auth' ); $dtd['SourceFile']['elts'] = array('content'); $dtd['SourceFile']['atts']['content']=array( 'FileId' => 'text', 'content' => 'text' ); $dtd['LicenseId']=&$dtd['IDREF']; $dtd['Version']=&$dtd['ANY']; $dtd['Release']=&$dtd['ANY']; $dtd['Id']=&$dtd['ANY']; $dtd['Name']=&$dtd['ANY']; ?> 'index0', 'tit' => '1', 'title' => 'Building: ', 'bool' => 'showbuild', 'tete' => array ( 'Num' ), 'pied' => array (8, 'Add building', 'Remove last building' ), 'tab' => 'building', 'fresh' => array('dtxtodvi','','on','on','off','2','1')); $tedb['BPDependencies'] = array ( 'txt' => 'index0', 'title' => 'Building dependencies: ', 'bool' => 'showbdep', 'tete' => array( 'Num', 'Kind', 'Dependency(*)' ), 'pied' => array(3, 'Add BP Dep', 'Remove last BP Dep', '(*) Apply for BuildDep and BuildConflict' ), 'tab' => 'bpdep', 'fresh' => array('BuildDep','fdn-fmt-latex')); $tedb['Prepare'] = array ( 'txt' => 'index0', 'title' => 'Prepare: ', 'bool' => 'showprep', 'tete' => array ('Num','Action','File Id','Offset','Depth(*)','Compression(*)'), 'pied' => array (6, 'Add prepare', 'Remove last prepare', '(*) Apply for patch only'), 'tab' => 'prepare', 'fresh' => array('untgz','','','','gz')); $tedb['SourceFile'] = array ( 'txt' => 'index0', 'title' => 'Source(s): ', 'bool' => 'showsrcs', 'tete' => array('Num','File Id','File Name'), 'pied' => array(3, 'Add file', 'Remove last file'), 'tab' => 'sources', 'fresh' => array('','','')); $tedb['AuthorId'] = array ( 'txt' => 'index1', 'title' => 'Author(s): ', 'bool' => 'showpackaut[index0]', 'tete' => array('Num', 'Id', ' '), 'pied' => array(3, 'Add author index0', 'Remove last author index0' ), 'tab' => 'package[index0][id][authors]', 'fresh' => array('','bayart')); $tedb['ShortDescription']=array( 'txt' => 'index1', 'title' => 'Description(s): ', 'bool' => 'showpackdesc[index0]', 'tete' => array('Num', 'Lang', 'Translator(*)', ' ', 'Desc'), 'legende' => array(5, 'Add short index0', 'Remove last short index0', '(*) If translated'), 'tab' => 'package[index0][id][shortdesc]', 'fresh' => array('','en','nobody','')); $tedb['LongDescription']=array( 'txt' => 'index1', 'bool' => 'showpackdesc[index0]', 'pied' => array(5, 'Add long index0', 'Remove last long index0'), 'tab' => 'package[index0][id][longdesc]', 'fresh' => array('','en','nobody','')); $tedb['Location'] = array ( 'txt' => 'index1', 'title' => 'Locations: ', 'bool' => 'showpackloc[index0]', 'tete' => array('Num', 'Kind', ' ', 'Location'), 'pied' => array(4, 'Add loc index0', 'Remove last loc index0'), 'tab' => 'package[index0][location]', 'fresh' => array('','ctan','macros/latex/contrib/supported/')); $tedb['Installation']=array('txt' => '', 'tit' => '1', 'title' => 'Installation directories: ', 'bool' => 'showpackdir[index0]', 'tete' => array ( 'Name', 'Directory' ), 'pied' => array ( 2 ), 'tab' => 'package[index0][Installation]'); $tedb['WhileBuild']=array( 'txt' => 'index1', 'title' => 'While build install: ', 'bool' => 'showpackwh[index0]', 'tete' => array('Num','Action'), 'pied' => array(5, 'Add a while index0', 'Remove last while index0'), 'tab' => 'package[index0][WhileBuild]', 'fresh' => array('mkdir','')); $tedb['OnTarget']=array( 'txt' => 'index1', 'title' => 'On target install: ', 'bool' => 'showpacktg[index0]', 'tete' => array('Num','Action'), 'pied' => array(5, 'Add a on-target index0', 'Remove last on-target index0'), 'tab' => 'package[index0][OnTarget]', 'fresh' => array('mkdir','')); $tedb['BAuthorId']=array( 'txt' => 'index0', 'dtd' => 'AuthorId', 'title' => 'Auteur(s): ', 'bool' => 'showaut', 'tete' => array('Num','Id',' '), 'legende' => array(3, 'Add author', 'Remove last author'), 'tab' => 'bundleid[authors]', 'fresh' => array('','bayart')); $tedb['PackagerId']=array( 'txt' => 'index0', 'bool' => 'showaut', 'pied' => array(3, 'Add packager', 'Remove last packager'), 'tab' => 'bundleid[packagers]', 'fresh' => array('','bayart')); $tedb['FileList']=array( 'txt' => 'index1', 'bool' => 'showpackfi[index0]', 'tete' => array('Num', 'Kind', 'Name'), 'title' => 'Files: ', 'pied' => array(3, 'Add a file index0','Remove last file index0'), 'tab' => 'package[index0][files]', 'fresh' => array('file','')); $tedb['Dependencies']=array('txt' => 'index1', 'bool' => 'showpackdep[index0]', 'tete' => array('Num', 'Kind', 'Name', ' ', 'Level'), 'title' => 'Dependencies: ', 'pied' => array(5, 'Add a dep index0','Remove last dep index0'), 'tab' => 'package[index0][deps]', 'fresh' => array('Dep','fdn-fmt-latex','10')); $tedb['Provides']=array( 'txt' => 'index1', 'bool' => 'showpackpro[index0]', 'tete' => array('Num', 'Name', ' '), 'title' => 'Provides: ', 'pied' => array(3, 'Add a prov index0','Remove last prov index0'), 'tab' => 'package[index0][provs]', 'fresh' => array('','fdn-vir-tex')); $tedb['bid']=array( 'bool' => 'showbid', 'vals' => array ( 'Target', 'Version', 'Release', 'LicenseId' ), 'LicenseIdtxt' => 'License', 'tab' => 'bundleid', 'txt' => 'index0', 'tete' => array (), 'pied' => array (), 'title' => 'Identification: ' ); $tedb['pid']=array( 'bool' => 'showpackid[index0]', 'vals' => array ( 'Target', 'Version', 'Release', 'LicenseId' ), 'LicenseIdtxt' => 'License', 'tab' => 'package[index0][id][pid]', 'txt' => 'index1', 'tete' => array(), 'pied' => array(), 'title' => 'Identification: ' ); $toedit['authoredit']=''; $teda=&$toedit['authoredit']; $teda['aid']=array( 'bool' => 'showautid', 'vals' => array('Id','Name'), 'tab' => 'author', 'txt' => 'index0', 'tete' => array(), 'pied' => array(), 'title' => 'Editions d\'un auteur: '); $teda['EMail']=array( 'bool' => 'showmail', 'txt' => 'index0', 'tete' => array('Num','Address'), 'title' => 'EMail address(es): ', 'pied' => array(2, 'Add EMail', 'Remove last EMail'), 'tab' => 'author[EMail]', 'fresh' => array('','@tug.org')); #ICI Comment gerer plusieurs Street? En faire une serie? Comment? $teda['Address']=array( 'bool' => 'showaddrs[index0]', 'txt' => 'index1', 'tete' => array(), 'pied' => array(), 'vals' => array('Organization', 'Street', 'PostCode', 'City', 'State', 'Country'), 'title' => 'Address: ', 'tab' => 'author[Address][index0]'); $toedit['licenseedit']=''; $tedl=&$toedit['licenseedit']; $tedl['LShortDescription']=array( 'txt' => 'index0', 'title' => 'Description(s): ', 'dtd' => 'ShortDescription', 'bool' => 'showlicdesc', 'tete' => array('Num', 'Lang', 'Translator(*)', ' ', 'Desc'), 'legende' => array(5, 'Add short', 'Remove last short', '(*) If translated'), 'tab' => 'license[shortdesc]', 'fresh' => array('','en','nobody','')); $tedl['LLongDescription']=array( 'txt' => 'index0', 'bool' => 'showlicdesc', 'dtd' => 'LongDescription', 'pied' => array(5, 'Add long', 'Remove last long'), 'tab' => 'license[longdesc]', 'fresh' => array('','en','nobody','')); ?> array('',''), 'Street' => array('',''), 'PostCode' => array('',''), 'City' => array('',''), 'State' => array('',''), 'Country' => array('','')); $fresh_pack=array( 'name' => 'fdn-lcs-', 'id' => array( 'pid' => array( 'Target' => array('','none'), 'Version' => array('',''), 'Release' => array('',''), 'LicenseId' => array('','lppl')), 'authors' => array ( $toedit['bundle']['AuthorId']['fresh'] ), 'shortdesc' => array ( $toedit['bundle']['ShortDescription']['fresh'] ), 'longdesc' => array ( $toedit['bundle']['LongDescription']['fresh'] ) ), 'location' => array( $toedit['bundle']['Location']['fresh'] ), 'Installation' =>array( array ( '','bin/', 'lib/', 'include/', 'man/', 'share/texmf/doc/', 'info/', 'share/texmf/tex/latex/', 'share/texmf/tex/', 'share/texmf/bibtex/bst/', 'share/texmf/bibtex/bib/', 'share/texmf/web2c/', 'share/texmf/fonts/source/', 'share/texmf/fonts/tfm/', 'share/texmf/fonts/pfb/', 'share/texmf/fonts/ttf/', 'share/texmf/dvips/', 'share/texmf/fonts/', 'share/texmf/makeindex/' )), 'WhileBuild' => array ( $toedit['bundle']['WhileBuild']['fresh'] ), 'OnTarget' => array ( $toedit['bundle']['OnTarget']['fresh'] ), 'files' => array ( $toedit['bundle']['FileList']['fresh'] ), 'deps' => array ( $toedit['bundle']['Dependencies']['fresh'] ), 'provs' => array () ); $showpacks=array( 'showpack', 'showpackid', 'showpackaut', 'showpackdesc', 'showpackloc', 'showpackdir', 'showpackwh', 'showpacktg', 'showpackfi', 'showpackdep', 'showpackpro'); function ajoute_un_package () { global $package, $fresh_pack, $showpacks; $package[]=$fresh_pack; foreach ( $showpacks as $bool ) $GLOBALS[$bool][]=0; } function ajoute_une_address () { global $author, $fresh_addr, $showaddrs; $author['Address'][]=$fresh_addr; $showaddrs[]=0; } ?> array('','1.0'), 'Release' => array('','1'), 'LicenseId' => array($toedit['bundle']['BAuthorId']['fresh']), 'packagers' => array($toedit['bundle']['PackagerId']['fresh']), 'license' => '' ); $GLOBALS['sources'] =array($toedit['bundle']['SourceFile']['fresh']); $GLOBALS['Prepare'] =array($toedit['bundle']['Prepare']['fresh']); $GLOBALS['Building'] =array($toedit['bundle']['Building']['fresh']); $GLOBALS['BPDependencies'] =array($toedit['bundle']['BPDependencies']['fresh']); $GLOBALS['author'] =array( 'Name' => '', 'Id' => '', 'EMail' => array($toedit['authoredit']['EMail']['fresh'])); $GLOBALS['license'] =array( 'Id' => '', 'shortdesc' => array($toedit['licenseedit']['LShortDescription']['fresh']), 'longdesc' => array($toedit['licenseedit']['LLongDescription']['fresh'])); ajoute_un_package(); ajoute_une_address(); } ?> $text\n"; affiche_champs_text ( $name, $value, "" ); echo "\n"; } else affiche_champs_hidden ( $name, $value); } function affiche_champs_check ( $variable, $value, $title ) { echo ""; echo "$title\n"; } function affiche_champs_select ( $variable, $value, $values, $label ) { echo "$label\n"; } function affiche_champs_text ( $variable, $value, $label ) { if ( $label!="" ) echo "$label"; else echo ""; echo "\n"; } function affiche_champs_auth ( $variable, $value, $label) { echo "$label"; $newname = preg_replace ( array("/\[/","/\]/"), array("-","_"), $variable ); echo "\n"; echo "\n"; } function affiche_champs_textarea ( $variable, $value, $label ) { echo "$label\n"; } function affiche_champs_dir ( $variable, $value, $text ) { echo "$text\n\n"; } function affiche_champs_hidden ( $variable, $value ) { echo "\n"; } function affiche_from_dtd ( $condition, $store, $prefix, $name, $texte, $titre ) { global $dtd; if ( ! $prefix ) echo "

Le prefix n'est pas mis...

\n"; if ( $condition && $texte!="" ) echo "$texte\n"; $i=0; $act=""; if ( count($dtd[$name]['elts']) > 1 ) { $act = $store[$i]; $variable="{$prefix}[$i]"; if ( $condition ) affiche_champs_select ( $variable, $act , $dtd[$name]['elts'], "" ); else affiche_champs_hidden ( $variable, $act ); } else { $act=$dtd[$name]['elts'][0]; } foreach ( $dtd[$name]['atts'][$act] as $attr => $type ) { $i++; $variable="{$prefix}[$i]"; $value=$store[$i]; if ( $condition ) { $label=""; if ( $titre ) $label=$attr; switch ($type): case "select": affiche_champs_select ( $variable, $value, $dtd[$name]['vals'][$attr], $label ); break; case "text": affiche_champs_text( $variable, $value, $label ); break; case "auth": affiche_champs_auth( $variable, $value, $label ); break; case "check": affiche_champs_check( $variable, $value, $label ); break; case "textarea": affiche_champs_textarea( $variable, $value, $label ); break; case "dir": affiche_champs_dir( $variable, $value, $label ); break; endswitch; } else affiche_champs_hidden($variable,$value); } if ( $condition && $texte ) echo "\n"; } ?> $idx ) { $search[]="/index".$id."/"; $vars[]=$idx; } return preg_replace ( $search, $vars, $text); } function the_subst ( &$text, $key, $idxs ) { $text=do_subst($text,$idxs); } function affiche_serie ( $condition, $edit ) { global $toedit; $form=$GLOBALS['runningform']; $ted=&$toedit[$form][$edit]; $idxs=array(); if (func_num_args()>2) $idxs=func_get_arg(2); $dtd=$edit; if (IsSet($ted['dtd'])) $dtd=$ted['dtd']; $tab=do_subst($ted['tab'],$idxs); $bool=do_subst($ted['bool'],$idxs); $boolval=get_value($bool); $ebool="e".$bool; $eboolval=get_value($ebool); if ( IsSet($ted['pied']) ) $pied=$ted['pied']; else $pied=$ted['legende']; $tit=0; if ( IsSet($ted['tit']) ) $tit=$ted['tit']; array_walk($pied,'the_subst',$idxs); if ( IsSet($ted['title']) ) if ( $condition ) affiche_titre( $form, $ted["title"], $bool ); else affiche_champs_hidden( $bool, $boolval ); if ( $eboolval && IsSet($ted["tete"]) ) tete_tableau_inclus ($ted["tete"]); $arr=get_value($tab); if ( is_array($arr) ) { foreach ( $arr as $index => $val ) { $idxs[]=$index; $txt=do_subst($ted['txt'],$idxs); array_pop($idxs); if ( IsSet($ted['vals'])) { $dtd=$index; if ( ! in_array ( $index, $ted['vals'] ) ) continue; } affiche_from_dtd( $eboolval, $val, $tab."[$index]", $dtd, $txt, $tit); } } if ( $eboolval ) if ( IsSet($ted['pied']) ) pied_tableau_inclus ($pied); else legende_tableau_inclus ($pied); } ?> $auth ) { if ( ! in_array($auth, $GLOBALS["xml"]["authors"]) ) { print "

Auteur numéro $index ($auth) inconnu

\n"; } } } ?> new_child($name,$content); if ( IsSet($atts) ) { foreach ( $atts as $key => $val ) { $new->set_attribute($key,$val); } } $element->new_textchild(NULL,"\n"); return $new; } function add_new_line( &$element ) { $element->new_textchild(NULL,"\n"); } function xml_from_dtd( &$element, $store, $name ) { global $dtd; $content=""; $attrs=array(); $i=0; if ( count($dtd[$name]['elts']) > 1 ) { $elt = $store[$i]; $act = $elt; } else { $act=$dtd[$name]['elts'][0]; $elt=$name; } foreach ( $dtd[$name]['atts'][$act] as $attr => $type ) { $i++; if ( $attr == "content" ) { if ( $type == "textarea" ) $content="\n".$store[$i]."\n"; else $content=$store[$i]; } else if ($store[$i]) $attrs[$attr]=$store[$i]; } if ( func_num_args() > 3 ) { $protected=func_get_arg(3); $matches=array(); $elm = add_elt( $element, $elt, "", $attrs ); while ( preg_match ( "/^([^<]*)<($protected)\/>(.*)$/", $content, $matches ) ) { $elm->new_textchild(NULL,$matches[1]); $elm->new_child($matches[2],""); $content=$matches[3]; } $elm->new_textchild(NULL,$content); } else $elm = add_elt( $element, $elt, $content, $attrs ); return $elm; } function xml_from_version( &$element, $store, $name ) { return xml_from_dtd( $element, $store, $name, "bver|brel" ); } function xml_from_release( &$element, $store, $name ) { return xml_from_dtd( $element, $store, $name, "bver|brel" ); } function xml_from_file( &$element, $store, $name ) { return xml_from_dtd( $element, $store, $name, "docdir|infodir|bindir|libdir|incdir|mandir|bstdir|bibdir|stydir|texdir|tfmdir|mfdir|pfbdir|ttfdir|psdir|mapdir|istdir" ); } function display_xml() { global $formtoshow; $mydoc = new_xmldoc('1.0'); if ( $formtoshow == "bundle" ) { $root = $mydoc->add_root("BPackage"); $root->set_attribute("Name",$GLOBALS['bundlename']); $root->new_textchild(NULL,"\n"); $bid=add_elt($root,"BPIdentification","\n",NULL); xml_from_dtd($bid,$GLOBALS['bundleid']['Version'],"Version"); xml_from_dtd($bid,$GLOBALS['bundleid']['Release'],"Release"); foreach ( $GLOBALS['bundleid']['authors'] as $id => $val ) xml_from_dtd($bid,$val,"AuthorId"); foreach ( $GLOBALS['bundleid']['packagers'] as $id => $val ) add_elt($bid,"PackagerId","",array("Id"=>$val[1])); xml_from_dtd($bid,$GLOBALS['bundleid']['LicenseId'],"LicenseId"); $src=add_elt($root,"SourceBundle","\n",NULL); foreach ( $GLOBALS['sources'] as $id => $val ) xml_from_dtd($src,$val,'SourceFile'); $prep=add_elt($src,"Prepare","\n",NULL); foreach ( $GLOBALS['prepare'] as $id => $val ) xml_from_dtd($prep,$val,'Prepare'); $bld=add_elt($root,"Building","\n",NULL); foreach ( $GLOBALS['building'] as $id => $val ) xml_from_dtd($bld,$val,'Building'); $bdep=add_elt($root,"BPDependencies","\n",NULL); foreach ( $GLOBALS['bpdep'] as $id => $val ) xml_from_dtd($bdep,$val,'BPDependencies'); foreach ( $GLOBALS['package'] as $package ) { $pak=add_elt($root,"Package","\n",array("Name"=>$package['name'],"Target"=>$package['id']['pid']['Target'][1])); $pid=add_elt($pak,"Identification","\n",NULL); xml_from_version($pid,$package['id']['pid']['Version'],"Version"); xml_from_release($pid,$package['id']['pid']['Release'],"Release"); foreach ( $package['id']['shortdesc'] as $id => $val) xml_from_dtd($pid,$val,'ShortDescription'); foreach ( $package['id']['longdesc'] as $id => $val ) xml_from_dtd($pid,$val,'LongDescription'); xml_from_dtd($pid,$package['id']['pid']['LicenseId'],"LicenseId"); foreach ( $package['id']['authors'] as $id => $val ) xml_from_dtd($pid,$val,'AuthorId'); add_new_line($pak); foreach ( $package['location'] as $id => $val ) xml_from_dtd($pak,$val,'Location'); add_new_line($pak); $attrs=&$package['Installation']; $pin=add_elt($pak,"Installation","\n",NULL); foreach ( $attrs as $id => $val ) $pin->set_attribute($id,$val); add_new_line($pin); $pwh=add_elt($pin,"WhileBuild","\n",NULL); foreach ( $package['WhileBuild'] as $id => $val ) xml_from_file($pwh,$val,'WhileBuild'); $pta=add_elt($pin,"OnTarget","\n",NULL); foreach ( $package['OnTarget'] as $id => $val ) xml_from_file($pta,$val,'OnTarget'); add_new_line($pak); $pfi=add_elt($pak,"FileList","\n",NULL); foreach ( $package['files'] as $id => $val ) xml_from_file($pfi,$val,'FileList'); add_new_line($pak); add_elt($pak,"Methods","",NULL); add_new_line($pak); $pde=add_elt($pak,"Dependencies","\n",NULL); foreach ( $package['deps'] as $id => $val ) xml_from_dtd($pde,$val,"Dependencies"); add_new_line($pak); if ( IsSet ($package['provs'][0]) ) { $ppo=add_elt($pak,"Provides","\n",NULL); foreach ( $package['provs'] as $id => $val ) xml_from_dtd($ppo,$val,"Provides"); add_new_line($pak); } } } else if ( $formtoshow == 'authoredit' ) { $root = $mydoc->add_root('Author'); $root->set_attribute('Id',$GLOBALS['author']['Id']); add_new_line($root); $root->new_child('Name',$GLOBALS['author']['Name']); add_new_line($root); foreach ( $GLOBALS['author']['EMail'] as $id => $val ) xml_from_dtd($root,$val,'EMail'); foreach ( $GLOBALS['author']['Address'] as $id => $val ) { $ad=add_elt($root,'Address',"\n",NULL); foreach ( $val as $idx=>$field ) xml_from_dtd($ad,$field,$idx); } } else if ( $formtoshow == 'licenseedit' ) { global $license; $root = $mydoc->add_root('License'); $root->set_attribute('Id',$license['Id']); add_new_line($root); foreach ( $license[shortdesc] as $id => $val ) xml_from_dtd($root,$val,'ShortDescription'); foreach ( $license[longdesc] as $id => $val ) xml_from_dtd($root,$val,'LongDescription'); } $mydoctxt=$mydoc->dumpmem(); print_r($mydoc); print_r($root); #$mydoctxt=htmlspecialchars($mydoctxt, ENT_QUOTES); echo "
\n".$mydoctxt."\n
\n"; } ?> attributes(); $hatts=array(); if (is_array($oatts)) foreach ( $oatts as $oatt ) { $hatts[$oatt->name]=$oatt->children[0]->content; } $hatts['content']=$element->content; return $hatts; } function analyse_serie($elt) { global $toedit,$formtoshow,$dtd; $toed=&$toedit[$formtoshow]; $name=$elt->name; if (func_num_args()>1) $name=func_get_arg(1); if (!IsSet($toed[$name])) { echo "

Serie ".$name." inconnue.

\n"; return; } $ted=&$toed[$name]; $idxs=array(); if (func_num_args()>2) $idxs=func_get_arg(2); $ldtd=$name; if (IsSet($ted['dtd'])) $ldtd=$ted['dtd']; $tab=do_subst($ted['tab'],$idxs); $arr=&get_value($tab); $childs=$elt->children(); # echo "Avant:\n"; # print_r($arr); echo "\n"; foreach ( $childs as $child ) { switch ($child->name): case "text": case "comment": $child->unlink(); #discard break; default: echo " \n"; if (IsSet($ted['vals'])) { echo " "; # C'est une liste de valeurs et pas une vraie serie if ( in_array($child->name,$ted['vals'])) { echo "\n"; $arr[$child->name]=analyse_from_dtd($child); $child->unlink(); } else echo "\n"; } else { echo " "; # C'est une vraie serie if (count($dtd[$ldtd]['elts'])>1) { echo ""; # Pour les series multi-elements, si on a l'element de tete, qui # porte le nom de la DTD, c'est qu'il faut rejouer. if ( $child->name == $ldtd ) { echo ""; analyse_serie($child,$ldtd,$idxs); affiche_pertes($child); $child->unlink(); } else { echo "\n"; # On a bien affaire a un element DANS la serie if ( in_array($child->name,$dtd[$ldtd]['elts']) ) { $arr[]=analyse_from_dtd($child,$ldtd); $child->unlink(); } else if ( $child->name=="comment" || $child->name=="text" ) { $child->unlink(); } } } else { echo ""; if ( $child->name == $ldtd ) { # echo ""; # analyse_serie($child,$ldtd); # } else if (in_array($child->name,$dtd[$ldtd]['elts'])) { echo "\n"; $arr[]=analyse_from_dtd($child,$ldtd); $child->unlink(); } else echo "\n"; } } break; endswitch; } if (IsSet($ted['vals'])) { # Une liste de valeursdoit etre complete, y compris si des valeurs # manquent dans le document XML: # Il faut re-ordonner la serie, elle peut se retrouver en vrac apres # la completion. $tmp=$arr; $arr=array(); foreach ( $ted['vals'] as $key ) if (IsSet($tmp[$key])) $arr[$key]=$tmp[$key]; else $arr[$key]=''; } # echo "Apres:\n"; # print_r($arr); } function affiche_pertes($elt){ $cchilds=$elt->children(); if (is_array($cchilds)) foreach ( $cchilds as $cchild ) { echo "

Il reste ca:

\n"; print_r($cchild); } } function analyse_from_dtd($elt) { global $dtd; $name=$elt->name; if (func_num_args()>1) $name=func_get_arg(1); if (!IsSet($dtd[$name]) ) { echo "

Element ".$name." inconnu.

\n"; return; } $ret=array(); if ( count($dtd[$name]['elts']) > 1 ) { # J'ai affaire a une serie simple $act=$elt->name; $ret[]=$act; } else { # J'ai affaire a un element isole $ret[]=''; $act=$dtd[$name]['elts'][0]; } $attrs=get_attributes($elt); echo " \n"; foreach ( $dtd[$name]['atts'][$act] as $attr => $type ) { if ( IsSet($attrs[$attr]) ) { #ICI Si l'element est content et autre chose que textarea, chopper les espaces. if ( $attr == 'content' ) { $val=preg_replace('/\\s*(.*)\\s*/','\\1',$attrs[$attr]); } else $val=$attrs[$attr]; $ret[]=$val; unset($attrs[$attr]); } else { if (IsSet($dtd[$name]['dflt'][$act][$attr])) $ret[]=$dtd[$name]['dflt'][$act][$attr]; else { echo "

Attention, valeur par défaut de l'attribut $attr de l'élément $act.

\n"; $ret[]=''; } } } if ( (! in_array('content',$dtd[$name]['atts'][$act]) ) && IsSet($attrs['content']) ) unset($attrs['content']); foreach ( $attrs as $attr => $val ) echo "

I've discarded the attribute $attr of element ".$elt->name." which value was $val.

\n"; return $ret; } function analyse_fichier() { global $formtoshow, $fichier; #echo "

Je vais faire ".$formtoshow."

"; #echo "

Le fichier est ".$fichier."

"; ob_start(); readfile("../xml/head.xml-p"); readfile("../xml/macros/syntax.xml"); readfile("../xml/switch.xml-p"); readfile($fichier); readfile("../xml/foot.xml-p"); $doc=ob_get_contents(); ob_end_clean(); switch ($formtoshow): case "authoredit": analyse_auteur("\n".$doc); break; case "licenseedit": analyse_license("\n".$doc); break; case "bundle": analyse_bundle($doc); break; endswitch; } function analyse_bundle($doc) { global $bundlename,$sources,$prepare,$building,$bundleid,$bpdep,$package; $protected="bver|brel|docdir"; $doc=preg_replace("/&/",'&',$doc); $doc=preg_replace("/<($protected)\/>/","<\\1/>",$doc); $xdoc=xmldoc($doc); $root=$xdoc->root(); $root=$root->children(); $root=$root[1]; $atts=$root->attributes(); $childs=$root->children(); if ( $root->name != 'BPackage' ) echo "

J'ai trouve un pas-bundle: ".$root->name."

\n"; foreach ( $atts as $attr ) switch ($attr->name): case "Name": $bundlename=$attr->children[0]->content; break; default: echo "

Je ne gere pas l'attribut ".$attr->name." du BPackage

\n"; break; endswitch; # Apurer les sources, les auteurs, les packagers, les prepare $building=array(); $prepare=array(); $sources=array(); $bpdep=array(); $package=array(); $bundleid['authors']=array(); $bundleid['packagers']=array(); foreach ( $childs as $child ) switch ($child->name): case "BPIdentification": analyse_serie($child,'bid'); analyse_serie($child,'BAuthorId'); analyse_serie($child,'PackagerId'); affiche_pertes($child); break; case 'SourceBundle': analyse_serie($child,'SourceFile'); analyse_serie($child,'Prepare'); affiche_pertes($child); break; case 'Building': analyse_serie($child,'Building'); affiche_pertes($child); break; case 'BPDependencies': analyse_serie($child,'BPDependencies'); affiche_pertes($child); break; case 'Package': $index=count($package); $package[$index]=array( 'id' => array( 'authors' => array(), 'shortdesc' => array(), 'longdesc' => array()), 'Installation' => array(), 'WhileBuild' => array(), 'OnTarget' => array(), 'files' => array(), 'deps' => array(), 'provs' => array()); foreach ( $child->attributes() as $pattr ) switch ($pattr->name): case 'Name': $package[$index]['name']=$pattr->children[0]->content; break; case 'Target': $package[$index]['id']['pid']['Target'][1]=$pattr->children[0]->content; break; case 'text': case 'comment': # Discard break; default: echo "

Je ne gere pas l'attribut ".$pattr->name." d'un package.

\n"; break; endswitch; foreach ( $child->children() as $pchild ) switch ($pchild->name): case 'Identification': analyse_serie($pchild,'AuthorId',array($index)); analyse_serie($pchild,'ShortDescription',array($index)); analyse_serie($pchild,'LongDescription',array($index)); analyse_serie($pchild,'pid',array($index)); // $package[$index]['id']['pid']['Target'][1]=$pattr->children[1]->content; affiche_pertes($pchild); break; case 'Installation': $package[$index]['Installation'][0]=analyse_from_dtd($pchild); analyse_serie($pchild,'WhileBuild',array($index)); analyse_serie($pchild,'OnTarget',array($index)); affiche_pertes($pchild); break; case 'Location': case 'FileList': case 'Dependencies': case 'Provides': analyse_serie($pchild,$pchild->name,array($index)); affiche_pertes($pchild); break; case 'text': case 'comment': case 'Methods': # Discard break; default: echo "

Je ne gere pas l'élément ".$pchild->name." d'un package.

\n"; break; endswitch; break; case "comment": case "text": #discard; break; default: echo "

Attention, je ne gere pas l'element ".$child->name."

\n"; endswitch; } function analyse_license($doc) { global $license; $license['shortdesc']=array(); $license['longdesc']=array(); $xdoc=xmldoc($doc); $root=$xdoc->root(); $atts=$root->attributes(); $childs=$root->children(); if ( $root->name != 'License' ) echo "

J'ai trouve une pas-license: ".$root->name."

\n"; foreach ( $atts as $attr ) if ($attr->name == 'Id') $license['Id']=$attr->children[0]->content; else echo "

Attention, je ne gere pas l'attribut ".$attr->name."

\n"; foreach ( $childs as $child ) switch ($child->name): case "LongDescription": $license['longdesc'][]=analyse_from_dtd($child); break; case "ShortDescription": $license['shortdesc'][]=analyse_from_dtd($child); break; case "text": case "comment": #discard break; default: echo "

Attention, je ne gere pas le champs ".$child->name."

\n"; break; endswitch; } function analyse_auteur($doc) { global $author; #echo "J'analyse un auteur à partir de $doc\n"; $author['EMail']=array(); $author['Address']=array(); $xdoc=xmldoc($doc); $root=$xdoc->root(); $atts=$root->attributes(); $childs=$root->children(); if ( $root->name != "Author" ) { echo "

J'ai trouve un pas-auteur: ".$root->name."

\n"; } foreach ( $atts as $attr ) { if ($attr->name == 'Id') { $author['Id']=array('',$attr->children[0]->content); #echo "

Je gère l'attribut ".$attr->name." qui vaut ".$attr->children[0]->content."

\n"; } else { echo "

Attention, je ne gere pas l'attribut ".$attr."

\n"; } } foreach ( $childs as $child ) { switch ($child->name): case "Name": $author['Name']=array('',$child->content); break; case "EMail": $author['EMail'][]=array('',$child->content); analyse_from_dtd($child); break; case 'Address': analyse_serie($child,'Address',array(count($author['Address']))); affiche_pertes($child); break; case "text": case "comment": # discard break; default: echo "

Attention, je ne gere pas le champs ".$child->name."

\n"; break; endswitch; } } ?> $tedf ) { foreach ( $tedf as $ted ) { if ( IsSet($ted['fresh']) ) { if ( IsSet($ted['pied']) ) $pied=$ted['pied']; else $pied=$ted['legende']; if ( $pied[1] != "" ) { $motif="/^".do_subst($pied[1],array("([0-9]+)","([0-9]+)","([0-9]+)"))."$/"; if ( preg_match ( $motif, $bouton, $matches ) ) { array_shift($matches); $tab=do_subst($ted['tab'],$matches); $arr=&get_value($tab); $arr[]=$ted['fresh']; } } if ( $pied[2] != "" ) { $motif="/^".do_subst($pied[2],array("([0-9]+)","([0-9]+)","([0-9]+)"))."$/"; if ( preg_match ( $motif, $bouton, $matches ) ) { array_shift($matches); $tab=do_subst($ted['tab'],$matches); array_pop(get_value($tab)); } } } } } endswitch; } else { if ( ! IsSet ( $bundlename ) ) init_vars(); else { foreach ( $HTTP_POST_VARS as $key => $val ) { if ( preg_match ( "/^choose_(.*)_x$/", $key, $matches ) ) { $choosing=$matches[1]; $returnform=$formtoshow; if ( preg_match( "/(author|desc|packager)/", $key ) ) $formtoshow="author"; else if ( preg_match ( "/license/", $key ) ) $formtoshow="license"; else if ( preg_match ( "/location/", $key ) ) $formtoshow="location"; else if ( preg_match ( "/deps/", $key ) ) $formtoshow="packages"; else if ( preg_match ( "/provs/", $key ) ) $formtoshow="virtuals"; $choosing = preg_replace ( array("/-/","/_/"), array("[","]"), $choosing ); } } } } ?> Show it\n"; echo "\n"; } function affiche_titre ( $form, $title, $condition ) { global $formtoshow; if ( func_num_args() > 3 ) $text=func_get_arg(3); else $text=""; if ( $formtoshow == $form ) { echo "$title\n"; if ( $text != "" ) echo "\n"; if ( $condition != "" ) aff_check($condition, get_value($condition)); echo "\n"; } else { if ( $condition != "" ) affiche_champs_hidden($condition,get_value($condition)); if ( $text != "" ) affiche_champs_hidden($text,get_value($text)); } } function tete_tableau_inclus ( $elts ) { echo " \n\n"; echo "\n"; echo ""; foreach ( $elts as $val ) { echo ""; } echo "\n"; } function legende_tableau_inclus ( $args ) { if ( IsSet($args[3]) ) echo "\n"; echo "\n"; } function pied_tableau_inclus ( $args ) { legende_tableau_inclus($args); echo "
$val
".$args[3]."
\n"; if ( IsSet($args[1]) ) echo "\n"; echo " \n"; if ( IsSet($args[2]) ) echo "\n"; echo "
\n\n"; } ?> \n\n"; ob_start(); readfile("../xml/misc/locations.xml"); $doc.=ob_get_contents(); ob_end_clean(); $doc.="\n"; $locdoc=xmldoc($doc); $root=$locdoc->root(); $childs=$root->children(); foreach ( $childs as $child ) { if ( $child->name == "Locations" ) { $ret[$child->get_attribute("kind")][]=$child->get_attribute("value"); } } return $ret; } ?> \n"; ob_start(); readfile("../xml/misc/virtuals.xml"); $doc.=ob_get_contents(); ob_end_clean(); $locdoc=xmldoc($doc); $root=$locdoc->root(); $childs=$root->children(); foreach ( $childs as $child ) { if ( $child->name == "vir" ) { $ret[]=$child->get_attribute("Name"); } } return $ret; } ?> root(); $childs=$root->children(); foreach ( $childs as $child ) if ( $child->name == "BPackage" ) { $cchilds=$child->children(); foreach ( $cchilds as $cchild ) if ( $cchild->name == "Package" ) $tmp=$cchild->get_attribute("Name"); $ret[$tmp]=$tmp; # $ret[]=$cchild->get_attribute("Name"); } return $ret; } ?>

Le formulaire a afficher:

> $val ) foreach ( $showpacks as $name ) if ( !IsSet($GLOBALS[$name][$index]) ) { echo "$name"."[$index] me manque\n"; $GLOBALS[$name][$index]=0; } foreach ( $showpack as $index => $val ) foreach ( $showpacks as $name ) $GLOBALS['e'.$name][$index] = $GLOBALS[$name][$index] && $formtoshow == "bundle" && $GLOBALS['showpack'][$index]; $eshowautid = $showautid =($formtoshow == "authoredit"); $eshowmail = $showmail && $formtoshow == "authoredit"; foreach ( $author['Address'] as $index => $val ) if ( ! IsSet ( $showaddrs[$index] ) ) $showaddrs[$index]=0; foreach ( $showaddrs as $index => $val ) $eshowaddrs[$index] = $showaddrs[$index] && $formtoshow == "authoredit"; $eshowlicdesc = $showlicdesc && $formtoshow == "licenseedit"; ?> \n"; } ?> \n"; affiche_champs_hidden("todo","authoredit"); } ?> \n"; affiche_champs_hidden("todo","licenseedit"); } ?> \n"; affiche_champs_hidden("todo","bundle"); } ?> $pack ) { affiche_titre("bundle", "Package $index: ", "showpack[$index]", "package[$index][name]"); if ( $eshowpack[$index] ) tete_tableau_inclus ( array() ); affiche_serie($showpack[$index],'pid',array($index)); affiche_serie($showpack[$index],'AuthorId',array($index)); affiche_serie($showpack[$index],'ShortDescription',array($index)); affiche_serie($showpack[$index],'LongDescription',array($index)); affiche_serie($showpack[$index],'Location',array($index)); affiche_serie($showpack[$index],'Installation',array($index)); affiche_serie($showpack[$index],'WhileBuild',array($index)); affiche_serie($showpack[$index],'OnTarget',array($index)); affiche_serie($showpack[$index],'FileList',array($index)); affiche_serie($showpack[$index],'Dependencies',array($index)); affiche_serie($showpack[$index],'Provides',array($index)); if ( $eshowpack[$index] ) pied_tableau_inclus ( array(3, "Add Package", "Remove last Package") ); } ?> $addr ) affiche_serie(1,'Address',array($index)); if ( $formtoshow == "authoredit" ) legende_tableau_inclus(array(3,"Add Address", "Remove last Address")); ?> \n"; } ?> \n"; } ?> $list ) { affiche_titre("location","Kind: $kind",""); echo "\n"; } } ?> \n"; } ?> \n"; } ?>
\n"; foreach ( $choices as $do => $name ) { echo " \n"; echo "\n"; } echo "
$name
\n"; foreach ( $knownauthors as $name ) { echo " \n"; $i++; if ( $i % 5 == 0 ) echo "\n"; } echo "
$name
\n"; foreach ( $knownlicenses as $name ) { echo " \n"; $i++; if ( $i % 5 == 0 ) echo "\n"; } echo "
$name
\n"; foreach ( $list as $name ) { echo " \n"; $i++; if ( $i % 2 == 0 ) echo "\n"; } echo "
$name
\n"; foreach ( $knownpacks as $id => $name ) { echo " \n"; $i++; if ( $i % 4 == 0 ) echo "\n"; } echo "
$name
\n"; foreach ( $knownvirtuals as $id => $name ) { echo " \n"; $i++; if ( $i % 4 == 0 ) echo "\n"; } echo "
$name

This form is not yet implemented