From: uw
Date: Sun May 20 19:21:23 2001
Added files:
php-lib/pages/form/xml/tests/form_calendar.php
php-lib/pages/form/xml/tests/form_calendar.xml
php-lib/php/form/elements/form_element_dateobject.inc
Modified files:
php-lib/php/form/form.inc
php-lib/php/form/form_xmlfactory.inc
php-lib/php/form/elements/form_element_calendar.inc
php-lib/php/form/elements/form_element_date.inc
php-lib/php/form/xml/form.xml
Log message:
- added calendar example
- created a new base object for calendar and date to share
some language dependend strigns
Index: php-lib/php/form/form.inc
diff -u php-lib/php/form/form.inc:1.33 php-lib/php/form/form.inc:1.34
--- php-lib/php/form/form.inc:1.33 Sun May 20 16:05:31 2001
+++ php-lib/php/form/form.inc Sun May 20 19:20:49 2001
@@ -28,7 +28,7 @@
* - tree (select box with options show as a tree)
*
* @author Ulf Wendel <[EMAIL PROTECTED]>
-* @version $Id: form.inc,v 1.33 2001/05/20 14:05:31 uw Exp $
+* @version $Id: form.inc,v 1.34 2001/05/20 17:20:49 uw Exp $
* @access public
* @package Form
*/
@@ -957,16 +957,26 @@
// name, els, val, gv
// putting it all together
- if ($complex)
- $js = sprintf('[%s],%s[%s],%s["%s"]',
+ if ($complex) {
+
+ // list of javascript custom validators
+ $vals = "";
+ foreach($validators as $k => $validator)
+ $vals .= sprintf('"%s", ', $validator);
+ $vals = substr($vals, 0, -2);
+
+ $js = sprintf('[%s],%s[%s],%s[%s]',
substr($js, 0, -2),
"\n",
substr($get_value, 0, -2),
"\n",
-
join('", ', $validators)
+
+ $vals
);
- else
+ } else {
+
$js = sprintf('[%s]', substr($js, 0, -2));
+
+ }
// ;-) compress the JS code....
# $base_code = $this->compressJS($base_code);
Index: php-lib/php/form/form_xmlfactory.inc
diff -u php-lib/php/form/form_xmlfactory.inc:1.9
php-lib/php/form/form_xmlfactory.inc:1.10
--- php-lib/php/form/form_xmlfactory.inc:1.9 Sun May 20 16:05:31 2001
+++ php-lib/php/form/form_xmlfactory.inc Sun May 20 19:20:50 2001
@@ -210,6 +210,7 @@
case "readonly":
case "preload":
case "checked":
+ case "weekdays":
$v = ("false" == $v) ? false : true;
break;
@@ -229,6 +230,10 @@
$v = (int)$v;
break;
+ default:
+ settype($v, "string");
+ break;
+
}
$tmp[$k] = $v;
@@ -254,12 +259,12 @@
case "text":
case "textarea":
case "textedit":
-
if (!$this->flag_defaults) {
+
// plain element
$this->attributes = $attrs;
$this->attributes["type"] = $name;
-
+
} else {
// global form defaults
@@ -488,7 +493,7 @@
case "textedit":
if (!$this->flag_defaults)
$this->form->addElement($this->attributes);
-
+
break;
case "additionalhtml":
@@ -497,9 +502,11 @@
case "defaults":
if ($this->flag_defaults) {
+
$this->form->setDefaults($this->defaults);
$this->defaults = array();
$this->flag_defaults = false;
+
}
break;
@@ -554,8 +561,8 @@
if ($data)
$this->attributes["src"] .= $data;
break;
-
- case "additionalhtml":
+
+ case "additionalhtml":
case "css":
case "day":
case "elements":
Index: php-lib/php/form/elements/form_element_calendar.inc
diff -u php-lib/php/form/elements/form_element_calendar.inc:1.3
php-lib/php/form/elements/form_element_calendar.inc:1.4
--- php-lib/php/form/elements/form_element_calendar.inc:1.3 Thu May 10 22:47:08
2001
+++ php-lib/php/form/elements/form_element_calendar.inc Sun May 20 19:20:51 2001
@@ -1,17 +1,16 @@
<?php
-require_once(FORM_INCLUDE_DIR . "/elements/form_element.inc");
+require_once(FORM_INCLUDE_DIR . "/elements/form_element_dateobject.inc");
+require_once(FORM_INCLUDE_DIR . "/elements/form_element_select.inc");
/**
* Creates a simple calender sheet to choose on day in the given month.
*
-* This element is not perfect at all, it's no more but a simple case study.
+* WARNING: This element is not perfect at all, it's no more but a simple case study.
* Maybe someone would like to add new features to it.
*
-* @author Ulf Wendel <[EMAIL PROTECTED]>
-* @version $Id: form_element_calendar.inc,v 1.3 2001/05/10 20:47:08 uw Exp $
-* @package Form
+* @version $Id: form_element_calendar.inc,v 1.4 2001/05/20 17:20:51 uw Exp $
*/
-class form_element_calendar extends form_element {
+class form_element_calendar extends form_element_dateobject {
var $optional_fields = array (
"day" => "integer",
@@ -23,7 +22,10 @@
"now" => "string",
"prev" => "string",
-
"next" => "string"
+
+ "next" => "string",
+
+ "language" => "string",
+ "weekdays" => "boolean"
);
/**
@@ -32,6 +34,7 @@
* @var integer -1 = date("d")
*/
var $day = -1;
+
/**
* Preselected month.
@@ -39,6 +42,7 @@
* @var integer -1 = date("m")
*/
var $month = -1;
+
/**
* Preselected year.
@@ -46,6 +50,7 @@
* @var integer -1 = date("Y")
*/
var $year = -1;
+
/**
* First year of the year select box.
@@ -53,6 +58,7 @@
* @var integer -1 = date("Y")
*/
var $minyear = -1;
+
/**
* Last year of the year select box.
@@ -60,6 +66,7 @@
* @var integer -1 = date("Y") + 2
*/
var $maxyear = -1;
+
/**
* Caption of the "select today" button.
@@ -67,6 +74,7 @@
* @var string
*/
var $now = "";
+
/**
* Caption of the "next month" button.
@@ -75,10 +83,31 @@
*/
var $prev = "";
+
/**
* Caption of the "prev month" button.
*/
var $next = "";
+
+
+ /**
+ * Show a header with weekdays?
+ *
+ * @var boolean
+ */
+ var $weekdays = true;
+
+
+ /**
+ * Weekday language.
+ *
+ * Only languages specified in form_element_date::options
+ * are allowed, per default 'de' (german) and 'en' (english).
+ *
+ * @var string
+ */
+ var $language = "en";
+
/**
* Initializes the date range.
@@ -152,10 +181,20 @@
$html["year"] = $this->generateSelect($this->name . "_year",
$this->minyear, $this->maxyear, $this->year);
// the days
- $html["calendar"] = '<table><tr>';
+ $html["calendar"] = '<table border><tr>';
+ // add a headerline with weekdays
+ if ($this->weekdays) {
+
+ $tmp = "";
+ foreach ($this->options[$this->language]["weekdays_short"] as $k => $v)
+ $tmp .= "<td>{$v}</td>";
+
+ $html["calendar"] .= $tmp . "</tr><tr>";
+ }
+
// week day offset - monday on the very left, sunday on the right
- $offset = date("w", mktime(0, 0, 0, $this->month, 1, $this->year));
+ $offset = date("w", mktime(0, 0, 0, $this->month, 0, $this->year));
for ($i = 0; $i < $offset; $i++)
$html["calendar"] = $html["calendar"] . "<td>" .
$this->generateDay($i, $i, false, false) . "</td>";
@@ -382,10 +421,10 @@
}
- $day = sprintf("%s],%s", substr($day, 0, -2), $this->CR_HTML);
+ $day = sprintf("%s],%s", substr($day, 0, -1 * (1 +
+strlen($this->CR_JS)) ), $this->CR_JS );
}
- $day = substr($day, 0, -2) . "]";
+ $day = substr($day, 0, -1 * (1 + strlen($this->CR_JS)) ) . "]";
$js .= sprintf('function form_calendar_change() {
var d = %s;
Index: php-lib/php/form/elements/form_element_date.inc
diff -u php-lib/php/form/elements/form_element_date.inc:1.5
php-lib/php/form/elements/form_element_date.inc:1.6
--- php-lib/php/form/elements/form_element_date.inc:1.5 Sun May 20 16:05:32 2001
+++ php-lib/php/form/elements/form_element_date.inc Sun May 20 19:20:51 2001
@@ -1,16 +1,14 @@
<?php
-require_once(FORM_INCLUDE_DIR . "/elements/form_element.inc");
+require_once(FORM_INCLUDE_DIR . "/elements/form_element_dateobject.inc");
/**
* Takes a date() format string and renders several select boxes to enter a date
and/or time
*
* Use this meta element to make sure that the user enters a valid date.
*
-* @author Ulf Wendel <[EMAIL PROTECTED]>
-* @version $Id: form_element_date.inc,v 1.5 2001/05/20 14:05:32 uw Exp $
-* @package Form
+* @version $Id: form_element_date.inc,v 1.6 2001/05/20 17:20:51 uw Exp $
*/
-class form_element_date extends form_element {
+class form_element_date extends form_element_dateobject {
var $required_fields = array (
"format" => "string"
@@ -106,42 +104,7 @@
* @var boolean
*/
var $now = "";
-
- /**
- * Word translation mapping.
- *
- * @var array
- */
- var $options = array (
-
"en" => array (
-
"weekdays_short" => array ("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" ),
-
-
"weekdays_long" => array( "Monday", "Tuesday", "Wednesday",
"Thursday",
-
"Friday", "Saturday", "Sunday"),
-
-
"months_short" => array ( "Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul",
-
"Aug", "Sep", "Oct", "Nov", "Dec" ),
-
-
"months_long" => array( "January", "February", "March",
"April", "May",
-
"June", "Juli", "August", "September", "October",
-
"November", "December" )
-
),
-
-
"de" => array (
-
"weekdays_short" => array ( "Mon", "Di", "Mi", "Do", "Fr", "Sa", "So"),
-
-
"weekdays_long" => array ( "Montag", "Dienstag", "Mittwoch", "Donnerstag",
-
"Freitag", "Samstag", "Sonntag"),
-
-
"months_short" => array ( "Jan", "Feb", "März", "April", "Mai", "Juni",
"Juli",
-
"Aug", "Sept", "Okt", "Nov", "Dez"),
-
-
"months_long" => array( "Januar", "Februar", "März", "April",
"Mai", "Juni",
-
"Juli", "August", "September", "Oktober",
"November",
-
"Dezember" )
-
-
)
-
);
+
/**
* Initializes $max_year_long and $max_year_short.
Index: php-lib/php/form/xml/form.xml
diff -u php-lib/php/form/xml/form.xml:1.5 php-lib/php/form/xml/form.xml:1.6
--- php-lib/php/form/xml/form.xml:1.5 Sat May 19 22:50:47 2001
+++ php-lib/php/form/xml/form.xml Sun May 20 19:20:52 2001
@@ -1,29 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE form SYSTEM "C:\www\apache\form\form.dtd">
-<form method="POST" action="test.php" target="self" name="form1" jsname="jsname">
-
- <javascript mode="weak">
- <errorprefix>There're errors in the form: \n\n</errorprefix>
- <errorpostfix>\n\nPlease correct the input.</errorpostfix>
+<form jsname="" method="POST" action="" target="" name="">
+ <additionalhtml/>
+
+ <javascript>
+ <mode>weak or strong</mode>
</javascript>
-
- <defaults>
- <text size="0" maxlength="0"/>
- <file size="0"/>
- <image border="0"/>
- <intros errormsg = "Don't select me">
- <intro value="0">intro</intro>
- </intros>
- <css class="css class" id="id">style</css>
- </defaults>
- <elements nameprefix="">
-
- <calendar name="calendar" elname="calendar" frozen="false" minyear="2000"
maxyear="2010" now="today" prev="<<" next=">>">
+ <elements>
+ <nameprefix>prefix_</nameprefix>
+ <calendar name="calendar" elname="calendar" frozen="false" minyear="" maxyear=""
+now="" prev="" next="">
<preselect>
- <day>1</day>
- <month>5</month>
- <year>2001</year>
+ <day></day>
+ <month></month>
+ <year></year>
</preselect>
<css class="css class" id="id">style</css>
<html>additional html</html>
@@ -36,37 +26,36 @@
<checkbox name="checkbox" elname="checkbox" frozen="false" checked="false">
value
<css class="css class" id="id">style</css>
- <html accesskey="A" tabindex="1">additional html</html>
+ <html accesskey="" tabindex="">additional html</html>
<validation>
<phpfunction></phpfunction>
<jsfunction></jsfunction>
</validation>
</checkbox>
- <combo name="combo" elname="combo" inputsize="1" readonly="false" sort="true"
frozen="false" add="true" size="1">
- 1
+ <combo name="combo" elname="combo" inputsize="1" readonly="false" sort=""
+frozen="false" add="true" size="1">
+ value
<options>
- <option value="1">1</option>
- <option value="2">2</option>
+ <option value=""/>
</options>
- <intros errormsg = "Don't select me">
- <intro value="0">intro</intro>
+ <intros errormsg = "error">
+ <intro value="">intro</intro>
</intros>
<validation>
- <length min="1" max="2">length_e</length>
+ <length min="0" max="-1">length_e</length>
<regexp reg="" icase="false">valid_e</regexp>
<phpfunction></phpfunction>
<jsfunction></jsfunction>
</validation>
<css class="css class" id="id">style</css>
- <html accesskey="O" tabindex="2">additional html</html>
+ <html accesskey="" tabindex="">additional html</html>
</combo>
<date name="date" elname="date" language="en" frozen="false" preload="false"
format="d.m.Y" now="jetzt" intro="" intro_e="">
value
<limits>
- <yearlong min="1990" max="2010"/>
- <yearshort min="90" max="99"/>
+ <yearlong min="1990" max="-1"/>
+ <yearshort min="90" max="-1"/>
</limits>
<html>additional html</html>
<css class="css class" id="id">style</css>
@@ -167,7 +156,7 @@
</validation>
</select>
- <submit name="submit" elname="submit" width="1" height="1" frozen="false"
accesskey="" tabindex="">
+ <submit name="submit" elname="submit" width="1" height="1" frozen="false">
value
<html accesskey="" tabindex="">additional html</html>
<css class="css class" id="id">style</css>
@@ -210,6 +199,6 @@
<jsfunction></jsfunction>
</validation>
</textedit>
- </elements>
+ </elements>
</form>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]