function input($objectName, $method, $object, $options = array()) { $attr = $object->getAttribute($method); switch ($attr->type) { case 'string': $str = text_field($objectName, $method, $object, $options); break; case 'text': $str = text_area($objectName, $method, $object, $options); break; case 'date': $str = date_select($objectName, $method, $object); break; case 'datetime': $str = date_time_select($objectName, $method, $object); break; case 'integer': $str = text_field($objectName, $method, $object, $options); break; case 'float': $str = text_field($objectName, $method, $object, $options); break; case 'boolean': $str = check_box($objectName, $method, $object, $options); break; default: $str = hidden_field($objectName, $method, $object); break; } return error_wrapping($str, isset($object->errors[$method])); }
public function testDateTimeSelect() { $article = new MockArticle(); $article->written_on = new SDateTime(2006, 3, 31, 1, 29, 35); $expect = <<<EOT <select name="article[written_on][year]"> <option value="2001">2001</option><option value="2002">2002</option> <option value="2003">2003</option><option value="2004">2004</option> <option value="2005">2005</option><option value="2006" selected="selected">2006</option> <option value="2007">2007</option><option value="2008">2008</option> <option value="2009">2009</option><option value="2010">2010</option> <option value="2011">2011</option> </select> <select name="article[written_on][month]"> <option value="1">January</option><option value="2">February</option> <option value="3" selected="selected">March</option><option value="4">April</option> <option value="5">May</option><option value="6">June</option> <option value="7">July</option><option value="8">August</option> <option value="9">September</option><option value="10">October</option> <option value="11">November</option><option value="12">December</option> </select> <select name="article[written_on][day]"> <option value="1">1</option><option value="2">2</option> <option value="3">3</option><option value="4">4</option> <option value="5">5</option><option value="6">6</option> <option value="7">7</option><option value="8">8</option> <option value="9">9</option><option value="10">10</option> <option value="11">11</option><option value="12">12</option> <option value="13">13</option><option value="14">14</option> <option value="15">15</option><option value="16">16</option> <option value="17">17</option><option value="18">18</option> <option value="19">19</option><option value="20">20</option> <option value="21">21</option><option value="22">22</option> <option value="23">23</option><option value="24">24</option> <option value="25">25</option><option value="26">26</option> <option value="27">27</option><option value="28">28</option> <option value="29">29</option><option value="30">30</option> <option value="31" selected="selected">31</option> </select> <select name="article[written_on][hour]"> <option value="00">00</option> <option value="01" selected="selected">01</option><option value="02">02</option> <option value="03">03</option><option value="04">04</option> <option value="05">05</option><option value="06">06</option> <option value="07">07</option><option value="08">08</option> <option value="09">09</option><option value="10">10</option> <option value="11">11</option><option value="12">12</option> <option value="13">13</option><option value="14">14</option> <option value="15">15</option><option value="16">16</option> <option value="17">17</option><option value="18">18</option> <option value="19">19</option><option value="20">20</option> <option value="21">21</option><option value="22">22</option> <option value="23">23</option> </select> <select name="article[written_on][min]"> <option value="00">00</option> <option value="01">01</option><option value="02">02</option><option value="03">03</option> <option value="04">04</option><option value="05">05</option><option value="06">06</option> <option value="07">07</option><option value="08">08</option><option value="09">09</option> <option value="10">10</option><option value="11">11</option><option value="12">12</option> <option value="13">13</option><option value="14">14</option><option value="15">15</option> <option value="16">16</option><option value="17">17</option><option value="18">18</option> <option value="19">19</option><option value="20">20</option><option value="21">21</option> <option value="22">22</option><option value="23">23</option><option value="24">24</option> <option value="25">25</option><option value="26">26</option><option value="27">27</option> <option value="28">28</option><option value="29" selected="selected">29</option><option value="30">30</option> <option value="31">31</option><option value="32">32</option><option value="33">33</option> <option value="34">34</option><option value="35">35</option><option value="36">36</option> <option value="37">37</option><option value="38">38</option><option value="39">39</option> <option value="40">40</option><option value="41">41</option><option value="42">42</option> <option value="43">43</option><option value="44">44</option><option value="45">45</option> <option value="46">46</option><option value="47">47</option><option value="48">48</option> <option value="49">49</option><option value="50">50</option><option value="51">51</option> <option value="52">52</option><option value="53">53</option><option value="54">54</option> <option value="55">55</option><option value="56">56</option><option value="57">57</option> <option value="58">58</option><option value="59">59</option> </select> <select name="article[written_on][sec]"> <option value="00">00</option> <option value="01">01</option><option value="02">02</option><option value="03">03</option> <option value="04">04</option><option value="05">05</option><option value="06">06</option> <option value="07">07</option><option value="08">08</option><option value="09">09</option> <option value="10">10</option><option value="11">11</option><option value="12">12</option> <option value="13">13</option><option value="14">14</option><option value="15">15</option> <option value="16">16</option><option value="17">17</option><option value="18">18</option> <option value="19">19</option><option value="20">20</option><option value="21">21</option> <option value="22">22</option><option value="23">23</option><option value="24">24</option> <option value="25">25</option><option value="26">26</option><option value="27">27</option> <option value="28">28</option><option value="29">29</option><option value="30">30</option> <option value="31">31</option><option value="32">32</option><option value="33">33</option> <option value="34">34</option><option value="35" selected="selected">35</option><option value="36">36</option> <option value="37">37</option><option value="38">38</option><option value="39">39</option> <option value="40">40</option><option value="41">41</option><option value="42">42</option> <option value="43">43</option><option value="44">44</option><option value="45">45</option> <option value="46">46</option><option value="47">47</option><option value="48">48</option> <option value="49">49</option><option value="50">50</option><option value="51">51</option> <option value="52">52</option><option value="53">53</option><option value="54">54</option> <option value="55">55</option><option value="56">56</option><option value="57">57</option> <option value="58">58</option><option value="59">59</option> </select> EOT; $this->assertDomEqual($expect, date_time_select('article', 'written_on', $article)); }
public function date_time_select($method, $options = array()) { return date_time_select($this->objectName, $method, $this->object, $options); }