PEAR_PackageFileManager_Frontend_Web
[ class tree: PEAR_PackageFileManager_Frontend_Web ] [ index: PEAR_PackageFileManager_Frontend_Web ] [ all elements ]

Source for file pfmfe_generator.php

Documentation is available at pfmfe_generator.php

  1. <?php
  2. /**
  3.  * PEAR_PackageFileManager_Fontend_Web generator
  4.  *
  5.  * @version   $Id: pfmfe_generator.php,v 1.4 2006/05/25 16:01:18 farell Exp $
  6.  * @author    Laurent Laville <pear@laurent-laville.org>
  7.  * @link      http://pear.php.net/package/PEAR_PackageFileManager_Frontend_Web
  8.  * @ignore
  9.  */
  10.  
  11. require_once 'PEAR/PackageFileManager/Frontend.php';
  12.  
  13.  
  14. if (count($_SESSION== 0{
  15.  
  16.     require_once 'HTML/QuickForm.php';
  17.  
  18.     function _validate_pfmfegen($values)
  19.     {
  20.         $errors = array();
  21.  
  22.         if (empty($values['packagedir'])) {
  23.             $errors['packagedir''Package file name or directory is required';
  24.         elseif (!file_exists($values['packagedir'])) {
  25.             $errors['packagedir''Package file name or directory does not exists';
  26.         }
  27.         return empty($errors)? true: $errors;
  28.     }
  29.  
  30.     $pfmfegen =new HTML_QuickForm('pfmfe');
  31.     $pfmfegen->removeAttribute('name')// XHTML compliant
  32.  
  33.     $pfmfegen->addElement('header''pfmfegen''PEAR_PackageFileManager_Frontend :: Generator');
  34.     $homepage 'http://pear.laurent-laville.org/PEAR_PackageFileManager/';
  35.     $pfmfegen->addElement('link''PFMWebsite''Home page :'$homepage$homepage);
  36.  
  37.     // --- Choose an external config file -------------------------------------
  38.     $configFile =$pfmfegen->addElement('text''config''Config file:');
  39.     $configFile->setSize(50);
  40.  
  41.     // --- Choose a language --------------------------------------------------
  42.     $langcodes = array(
  43.         "XML" => "XML",
  44.         "phpArray" => "Php Array",
  45.         "ini" => "INI",
  46.         "iniCommented" => "INI with comments",
  47.     );
  48.     $language =$pfmfegen->addElement('select''language''Choose a language:');
  49.     $language->load($langcodes);
  50.  
  51.     // --- Choose a package file or directory ---------------------------------
  52.     $packageFile =$pfmfegen->addElement('text''packagedir''Package files directory:');
  53.     $packageFile->setSize(50);
  54.  
  55.  
  56.     // --- Options ------------------------------------------------------------
  57.     //*
  58.     $baseinstalldir =$pfmfegen->addElement('text''baseinstalldir''Base install directory :');
  59.     $baseinstalldir->setSize(50);
  60.  
  61.     //*
  62.     $exportcompatiblev1 =$pfmfegen->addElement('checkbox''exportcompatiblev1');
  63.     $exportcompatiblev1->setLabel('package.xml 1.0 :');
  64.     $exportcompatiblev1->setText('export compatible');
  65.  
  66.     //*
  67.     $changelogoldtonew =$pfmfegen->addElement('checkbox''changelogoldtonew');
  68.     $changelogoldtonew->setLabel('ChangeLog :');
  69.     $changelogoldtonew->setText('list from oldest entry to newest');
  70.  
  71.     //*
  72.     $simpleoutput =$pfmfegen->addElement('checkbox''simpleoutput');
  73.     $simpleoutput->setLabel('Human readable :');
  74.     $simpleoutput->setText('');
  75.  
  76.     //*
  77.     $outputdirectory =$pfmfegen->addElement('text''outputdirectory''Generated package.xml directory :');
  78.     $outputdirectory->setSize(50);
  79.  
  80.     //*
  81.     $plugins = array(
  82.         "file" => "File",
  83.         "cvs" => "Cvs",
  84.         "svn" => "Svn",
  85.         "perforce" => "Perforce"
  86.     );
  87.     $filelistgenerator =$pfmfegen->addElement('select''filelistgenerator''Choose a plugin:');
  88.     $filelistgenerator->load($plugins);
  89.  
  90.     //*
  91.     $dump =$pfmfegen->addElement('checkbox''actiondump');
  92.     $dump->setLabel('Debugging/Dump facility :');
  93.     $dump->setText('yes / no');
  94.  
  95.     // --- Save the preferences to file ---------------------------------------
  96.     $tofile =$pfmfegen->addElement('text''tofile''Save the preferences to file:');
  97.     $tofile->setSize(50);
  98.  
  99.     $filetype =$pfmfegen->addElement('select''filetype''Choose a language:');
  100.     $filetype->load($langcodes);
  101.  
  102.     // default values
  103.     $pfmfegen->setDefaults(array(
  104.         'language'           => 'XML',
  105.         'packagedir'         => dirname(__FILE__),
  106.         'exportcompatiblev1' => true,
  107.         'changelogoldtonew'  => false,
  108.         'simpleoutput'       => true
  109.         ));
  110.  
  111.     // form filters
  112.     $pfmfegen->applyFilter('__ALL__''trim');
  113.  
  114.     // form rules
  115.     $pfmfegen->addFormRule('_validate_pfmfegen');
  116.  
  117.     // --- Configuration complete ---------------------------------------------
  118.     $buttons[=$pfmfegen->createElement('submit''send''Generate');
  119.     $buttons[=$pfmfegen->createElement('reset''reset''Reset');
  120.     $pfmfegen->addGroup($buttons'buttons''''&nbsp;'false);
  121.  
  122.     // ========================================================================
  123.     $valid $pfmfegen->validate();
  124.     if (!$valid{
  125.         $pfmfegen->display();
  126.  
  127.     else {
  128.         $safe $pfmfegen->exportValues();
  129.         $_SESSION['pfmfegen'$safe;
  130.     }
  131. }
  132.  
  133. if (count($_SESSION)) {
  134.  
  135.     $safe $_SESSION['pfmfegen'];
  136.     $pkgDir $safe['packagedir'];
  137.  
  138.     $web =PEAR_PackageFileManager_Frontend::singleton('Web'$pkgDir);
  139.  
  140.     if (empty($safe['config'])) {
  141.         $web->setOption('baseinstalldir'$safe['baseinstalldir']);
  142.         $web->setOption('exportcompatiblev1'(bool) $safe['exportcompatiblev1']);
  143.         $web->setOption('changelogoldtonew'(bool) $safe['changelogoldtonew']);
  144.         $web->setOption('simpleoutput'(bool) $safe['simpleoutput']);
  145.         $web->setOption('outputdirectory',
  146.             empty($safe['outputdirectory']? false: $safe['outputdirectory']);
  147.         $web->setOption('filelistgenerator'$safe['filelistgenerator']);
  148.     else {
  149.         $config = array($safe['config']$safe['language']);
  150.         $web->loadPreferences($config);
  151.     }
  152.  
  153.     if (!empty($safe['tofile'])) {
  154.         $web->savePreferences($safe['tofile']$safe['filetype']);
  155.     }
  156.  
  157.     if (isset($safe['actiondump'])) {
  158.         $web->addActions(array('dump' => 'ActionDump'));
  159.     }
  160.  
  161.     if ($web->hasErrors('error')) {
  162.         $errors $web->getErrors();
  163.         echo '<pre>';
  164.         var_dump($errors);
  165.         echo '</pre>';
  166.         die('exit on Error');
  167.     }
  168.     $web->run();
  169. }
  170. ?>

Documentation generated on Mon, 11 Mar 2019 14:43:10 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.