|
From: <luc...@us...> - 2013-12-22 14:34:41
|
Revision: 12244
http://sourceforge.net/p/xoops/svn/12244
Author: luciorota
Date: 2013-12-22 14:34:38 +0000 (Sun, 22 Dec 2013)
Log Message:
-----------
added WfdownloadsFormElementChoose object, useful in comparison forms
Added Paths:
-----------
XoopsModules/wfdownloads/trunk/wfdownloads/class/formelementchoose.php
Added: XoopsModules/wfdownloads/trunk/wfdownloads/class/formelementchoose.php
===================================================================
--- XoopsModules/wfdownloads/trunk/wfdownloads/class/formelementchoose.php (rev 0)
+++ XoopsModules/wfdownloads/trunk/wfdownloads/class/formelementchoose.php 2013-12-22 14:34:38 UTC (rev 12244)
@@ -0,0 +1,155 @@
+<?php
+/*
+ You may not change or alter any portion of this comment or credits
+ of supporting developers from this source code or any supporting source code
+ which is considered copyrighted (c) material of the original comment or credit authors.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+/**
+ * WfdownloadsFormElementChoose Class
+ *
+ * @copyright The XOOPS Project http://sourceforge.net/projects/xoops/
+ * @license http://www.fsf.org/copyleft/gpl.html GNU public license
+ * @author lucio <luc...@gm...>
+ * @package Wfdownloads
+ * @since 3.23
+ * @version $Id:$
+ */
+
+defined('XOOPS_ROOT_PATH') or die('Restricted access');
+
+xoops_load('XoopsFormElementTray');
+xoops_load('XoopsFormButton');
+xoops_load('XoopsFormLabel');
+
+/**
+ * Form element that ...
+ */
+class WfdownloadsFormElementChoose extends XoopsFormElementTray
+{
+ /**
+ * XoopsFormDateTime::XoopsFormDateTime()
+ *
+ * @param formelement $formElement
+ * @param mixed $arg $value: 2 or more chooseable values or $arg array('value'=>$value, 'name'=>$label)
+ */
+ function __construct($formElement)
+ {
+ $formElementName = $formElement->getName();
+ $formElementCaption = $formElement->getCaption();
+ $formElementDescription = $formElement->getDescription();
+ // $i start from 1 because func_get_arg(0) is $formElement
+ for ($i = 1; $i <= (func_num_args() - 1); $i++) {
+ $arg = func_get_arg($i);
+ if (is_array($arg)) {
+ if(count($arg) == 0) {
+ // empty array
+ // NOP
+ } elseif (count($arg) == 1) {
+ // one dimension array
+ reset($arg);
+ $value = key($arg);
+ $name = $arg[0];
+ } else {
+ // two or more dimensions array
+ $value = isset($arg['value']) ? $arg['value'] : $arg[0];
+ $name = isset($arg['name']) ? $arg['name'] : $arg[1];
+ }
+ } else {
+ $value = $arg;
+ $name = $arg;
+ }
+ unset($arg);
+ switch (get_class($formElement)) {
+ case 'XoopsFormSelect' :
+ if ($formElement->isMultiple()) {
+// IN PROGRESS XoopsFormSelect with $multiple argument true
+ } else {
+ $tray = new XoopsFormElementTray ('', ' ', '');
+ $button = new XoopsFormButton('', "{$formElementName}_button_{$i}", constant("_BUTTON_{$i}"), 'button');
+ $onclick = "onclick='javascript:document.getElementById(\"{$formElementName}\").value = \"{$value}\";'";
+ $button->setExtra($onclick);
+ $tray->addElement($button);
+ $tray->addElement(new XoopsFormLabel ('', $name, "{$formElementName}_name_{$i}"));
+ }
+ $this->addElement($tray);
+ unset($tray);
+ unset($button);
+ unset($onclick);
+ break;
+ case 'XoopsFormSelectUser' :
+// IN PROGRESS XoopsFormSelectUser with $multiple argument true
+ $tray = new XoopsFormElementTray ('', ' ', '');
+ $button = new XoopsFormButton('', "{$formElementName}_button_{$i}", constant("_BUTTON_{$i}"), 'button');
+ $onclick = "onclick='javascript:document.getElementById(\"{$formElementName}\").value = \"{$value}\";'";
+ $button->setExtra($onclick);
+ $tray->addElement($button);
+ $tray->addElement(new XoopsFormLabel ('', $name, "{$formElementName}_name_{$i}"));
+ $this->addElement($tray);
+ unset($tray);
+ unset($button);
+ unset($onclick);
+ break;
+ case 'XoopsFormDateTime' :
+ $value = intval($value);
+ $value = ($value > 0) ? $value : time();
+ $datetime = getDate($value);
+ if (is_string($value)) {
+ $date = $value;
+ $value = time();
+ } else {
+ $date = date(_SHORTDATESTRING, $value);
+ }
+ $time = $datetime['hours'] * 3600 + 600 * ceil($datetime['minutes'] / 10);
+ $tray = new XoopsFormElementTray ('', ' ', '');
+ $button = new XoopsFormButton('', "{$formElementName}_button_{$i}", constant("_BUTTON_{$i}"), 'button');
+ $onclick = "onclick='javascript:";
+ $onclick.= "document.getElementById(\"{$formElementName}[date]\").value = \"{$date}\";";
+ $onclick.= "document.getElementById(\"{$formElementName}[time]\").value = \"{$time}\";";
+ $onclick.= "'";
+ $button->setExtra($onclick);
+ $tray->addElement($button);
+ $tray->addElement(new XoopsFormLabel ('', $name, "{$formElementName}_name_{$i}"));
+ $this->addElement($tray);
+ unset($tray);
+ unset($button);
+ unset($onclick);
+ break;
+ case 'XoopsFormText' :
+ case 'XoopsFormTextArea' :
+ default :
+ $tray = new XoopsFormElementTray ('', ' ', '');
+ $button = new XoopsFormButton('', "{$formElementName}_button_{$i}", constant("_BUTTON_{$i}"), 'button');
+ $onclick = "onclick='javascript:document.getElementById(\"{$formElementName}\").value = \"{$value}\";'";
+ $button->setExtra($onclick);
+ $tray->addElement($button);
+ $tray->addElement(new XoopsFormLabel ('', $name, "{$formElementName}_name_{$i}"));
+ $this->addElement($tray);
+ unset($tray);
+ unset($button);
+ unset($onclick);
+ break;
+ }
+ }
+ // set XoopsFormElementTray arguments
+ $this->_delimeter = "<br />";
+ $this->setCaption($formElementCaption);
+ $this->setDescription($formElementDescription);
+ $formElement->setCaption('');
+ $formElement->setDescription('');
+ $this->addElement($formElement);
+ }
+
+ /**
+ * Render custom javascript get content code
+ *
+ * @seealso XoopsForm::renderGetContentJS
+ */
+ function renderGetContentJS()
+ {
+ $formElement->renderGetContentJS();
+ }
+}
|