Discussion:
svn: /pear/pearweb/trunk/public_html/ package-new.php
Daniel O'Connor
2011-03-27 07:20:26 UTC
Permalink
clockwerx Sun, 27 Mar 2011 07:20:26 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=309731

Log:
Swapped to HTML_QuickForm2, added HTML5 attributes, removed table layout (temporarily), defined interim HTML_QuickForm2_Elements_InputUrl

Changed paths:
U pear/pearweb/trunk/public_html/package-new.php

Modified: pear/pearweb/trunk/public_html/package-new.php
===================================================================
--- pear/pearweb/trunk/public_html/package-new.php 2011-03-27 07:18:07 UTC (rev 309730)
+++ pear/pearweb/trunk/public_html/package-new.php 2011-03-27 07:20:26 UTC (rev 309731)
@@ -18,8 +18,20 @@
$Id$
*/

-require_once 'HTML/QuickForm.php';
+require_once 'HTML/QuickForm2.php';
+require_once 'HTML/QuickForm2/Renderer.php';
+require_once 'HTML/QuickForm2/Element/Input.php';

+/** @todo Shift ! */
+if (!class_exists('HTML_QuickForm2_Element_InputUrl')) {
+ class HTML_QuickForm2_Element_InputUrl extends HTML_QuickForm2_Element_Input
+ {
+ protected $attributes = array('type' => 'url');
+ }
+
+ HTML_QuickForm2_Factory::registerElement('url', 'HTML_QuickForm2_Element_InputUrl');
+}
+
if (!defined('PEAR_COMMON_PACKAGE_NAME_PREG')) {
define('PEAR_COMMON_PACKAGE_NAME_PREG', '/^([A-Z][a-zA-Z0-9_]+|[a-z][a-z0-9_]+)\z/');
}
@@ -143,35 +155,13 @@
}
}

-$form = new HTML_QuickForm('package-new', 'post', 'package-new.php');
+$form = new HTML_QuickForm2('package-new', 'post', 'package-new.php');
$form->removeAttribute('name');

-$renderer =& $form->defaultRenderer();
-$renderer->setElementTemplate('
- <tr>
- <th class="form-label_left">
- <!-- BEGIN required --><span style="color: #ff0000">*</span><!-- END required -->
- {label}
- </th>
- <td class="form-input">
- <!-- BEGIN error --><span style="color: #ff0000">{error}</span><br /><!-- END error -->
- {element}
- </td>
- </tr>
-');
+$renderer = HTML_QuickForm2_Renderer::factory('default');

-$renderer->setFormTemplate('
-<form{attributes}>
- <div>
- {hidden}
- <table border="0" class="form-holder" cellspacing="1">
- {content}
- </table>
- </div>
-</form>');
-
// Set defaults for the form elements
- $form->setDefaults(array(
+ $form->addDataSource(new HTML_QuickForm2_DataSource_Array(array(
'name' => isset($_POST['name']) ? $_POST['name'] : '',
'license' => isset($_POST['license']) ? $_POST['license'] : '',
'category' => isset($_POST['category']) ? $_POST['category'] : '',
@@ -179,19 +169,17 @@
'desc' => isset($_POST['desc']) ? $_POST['desc'] : '',
'homepage' => isset($_POST['homepage']) ? $_POST['homepage'] : '',
'cvs_link' => isset($_POST['cvs_link']) ? $_POST['cvs_link'] : '',
- ));
+ )));

- $form->addElement('html', '<caption class="form-caption">Register Package</caption>');
- $form->addElement('text', 'name', 'Package Name', array('size' => 20));
- $form->addElement('text', 'license', 'License', array('size' => 20));
- $form->addElement('select', 'category', 'Category', $categories);
- $form->addElement('textarea', 'summary', 'Summary', array('cols' => 60));
- $form->addElement('textarea', 'desc', 'Full description', array('cols' => 60, 'rows' => 3));
- $form->addElement('text', 'homepage', 'Additional project homepage', array('size' => 40));
- $form->addElement('text', 'cvs_link', 'Version control web URL', array('size' => 40));
- $form->addElement('static', null, null, '<small>For example: http://svn.php.net/repository/pear/packages/XML_Parser/trunk</small>');
+ $form->addElement('text', 'name', array('size' => 20, 'required' => 'required'))->setLabel("Package Name");
+ $form->addElement('text', 'license', array('size' => 20, 'required' => 'required', 'placeholder' => 'BSD'))->setLabel("License");
+ $form->addElement('select', 'category', array('required' => 'required'))->setLabel("Category")->loadOptions($categories);
+ $form->addElement('textarea', 'summary', array('cols' => 60, 'required' => 'required'))->setLabel("Summary");
+ $form->addElement('textarea', 'desc', array('cols' => 60, 'rows' => 5, 'required' => 'required'))->setLabel("Full description");
+ $form->addElement('url', 'homepage', array('size' => 40, 'placeholder' => 'http://example.com'))->setLabel("Additional project homepage");
+ $form->addElement('url', 'cvs_link', array('size' => 40, 'placeholder' => 'http://svn.php.net/repository/pear/packages/XML_Parser/trunk/'))->setLabel("Version control web URL");
$form->addElement('submit', 'submit', 'Submit Request');
- $form->display();
+ print $form->render($renderer);

if ($jumpto) {
echo "\n<script type=\"text/javascript\">\n<!--\n";
Daniel O'Connor
2011-03-27 07:26:10 UTC
Permalink
clockwerx Sun, 27 Mar 2011 07:26:10 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=309732

Log:
Add pattern, add placeholder

Changed paths:
U pear/pearweb/trunk/public_html/package-new.php

Modified: pear/pearweb/trunk/public_html/package-new.php
===================================================================
--- pear/pearweb/trunk/public_html/package-new.php 2011-03-27 07:20:26 UTC (rev 309731)
+++ pear/pearweb/trunk/public_html/package-new.php 2011-03-27 07:26:10 UTC (rev 309732)
@@ -155,7 +155,7 @@
}
}

-$form = new HTML_QuickForm2('package-new', 'post', 'package-new.php');
+$form = new HTML_QuickForm2('package-new', 'post');
$form->removeAttribute('name');

$renderer = HTML_QuickForm2_Renderer::factory('default');
@@ -171,7 +171,7 @@
'cvs_link' => isset($_POST['cvs_link']) ? $_POST['cvs_link'] : '',
)));

- $form->addElement('text', 'name', array('size' => 20, 'required' => 'required'))->setLabel("Package Name");
+ $form->addElement('text', 'name', array('size' => 20, 'required' => 'required', 'placeholder' => 'XML_Parser', 'pattern' => PEAR_COMMON_PACKAGE_NAME_PREG))->setLabel("Package Name");
$form->addElement('text', 'license', array('size' => 20, 'required' => 'required', 'placeholder' => 'BSD'))->setLabel("License");
$form->addElement('select', 'category', array('required' => 'required'))->setLabel("Category")->loadOptions($categories);
$form->addElement('textarea', 'summary', array('cols' => 60, 'required' => 'required'))->setLabel("Summary");
Daniel O'Connor
2011-03-27 07:32:19 UTC
Permalink
clockwerx Sun, 27 Mar 2011 07:32:19 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=309733

Log:
Tweak to regexp

Changed paths:
U pear/pearweb/trunk/public_html/package-new.php

Modified: pear/pearweb/trunk/public_html/package-new.php
===================================================================
--- pear/pearweb/trunk/public_html/package-new.php 2011-03-27 07:26:10 UTC (rev 309732)
+++ pear/pearweb/trunk/public_html/package-new.php 2011-03-27 07:32:19 UTC (rev 309733)
@@ -33,7 +33,7 @@
}

if (!defined('PEAR_COMMON_PACKAGE_NAME_PREG')) {
- define('PEAR_COMMON_PACKAGE_NAME_PREG', '/^([A-Z][a-zA-Z0-9_]+|[a-z][a-z0-9_]+)\z/');
+ define('PEAR_COMMON_PACKAGE_NAME_PREG', '^([A-Z][a-zA-Z0-9_]+|[a-z][a-z0-9_]+)$');
}

auth_require('pear.dev');
@@ -66,7 +66,7 @@
}
}

- if (!preg_match(PEAR_COMMON_PACKAGE_NAME_PREG, $_POST['name'])) {
+ if (!preg_match('/' . PEAR_COMMON_PACKAGE_NAME_PREG . '/', $_POST['name'])) {
$errors[] = 'Invalid package name. PEAR package names must start'
. ' with a capital letter and contain only letters,'
. ' digits and underscores.';
Daniel O'Connor
2011-03-27 07:54:08 UTC
Permalink
clockwerx Sun, 27 Mar 2011 07:54:08 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=309735

Log:
Shorter placeholder, title, less of a lecture and more practical advise

Changed paths:
U pear/pearweb/trunk/public_html/package-new.php

Modified: pear/pearweb/trunk/public_html/package-new.php
===================================================================
--- pear/pearweb/trunk/public_html/package-new.php 2011-03-27 07:46:39 UTC (rev 309734)
+++ pear/pearweb/trunk/public_html/package-new.php 2011-03-27 07:54:08 UTC (rev 309735)
@@ -118,11 +118,8 @@
</p>

<p>
- Note that if you don't follow this simple rule and break
- established naming conventions, your package will be taken hostage.
- So please play nice, that way we can keep the bureaucracy at a minimum.
+Generally, a format of <em>Category_SpecificComponent</em> is a good way to go.
</p>
-
<?php
// get parent categories
$sql = 'SELECT id, name FROM categories WHERE parent IS NULL ORDER BY name';
@@ -177,8 +174,10 @@
$form->addElement('textarea', 'summary', array('cols' => 60, 'required' => 'required'))->setLabel("Summary");
$form->addElement('textarea', 'desc', array('cols' => 60, 'rows' => 5, 'required' => 'required'))->setLabel("Full description");
$form->addElement('url', 'homepage', array('size' => 40, 'placeholder' => 'http://example.com'))->setLabel("Additional project homepage");
- $form->addElement('url', 'cvs_link', array('size' => 40, 'placeholder' => 'http://svn.php.net/repository/pear/packages/XML_Parser/trunk/'))->setLabel("Version control web URL");
+ $form->addElement('url', 'cvs_link', array('size' => 40, 'placeholder' => 'http://example.com/svn/trunk/'))->setLabel("Version control web URL");
$form->addElement('submit', 'submit', 'Submit Request');
+
+ print '<h2>Register Package</h2>';
print $form->render($renderer);

if ($jumpto) {

Loading...