Skip to content

Commit e4a8645

Browse files
committed
added default values for form elements
1 parent dd57785 commit e4a8645

29 files changed

Lines changed: 552 additions & 340 deletions

admin/fields.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,8 @@
110110
break;
111111
case 'new':
112112
$GLOBALS['xoTheme']->addStylesheet('modules/tdmcreate/assets/css/admin/style.css');
113+
$GLOBALS['xoTheme']->addScript('browse.php?Frameworks/jquery/plugins/jquery.ui.js');
114+
$GLOBALS['xoTheme']->addScript('modules/tdmcreate/assets/js/functions.js');
113115
$GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('fields.php'));
114116
$adminObject->addItemButton(_AM_TDMCREATE_TABLES_LIST, 'tables.php', 'list');
115117
$adminObject->addItemButton(_AM_TDMCREATE_FIELDS_LIST, 'fields.php', 'list');
@@ -182,6 +184,8 @@
182184
break;
183185
case 'edit':
184186
$GLOBALS['xoTheme']->addStylesheet('modules/tdmcreate/assets/css/admin/style.css');
187+
$GLOBALS['xoTheme']->addScript('browse.php?Frameworks/jquery/plugins/jquery.ui.js');
188+
$GLOBALS['xoTheme']->addScript('modules/tdmcreate/assets/js/functions.js');
185189
$GLOBALS['xoopsTpl']->assign('navigation', $adminObject->displayNavigation('fields.php'));
186190
$adminObject->addItemButton(_AM_TDMCREATE_ADD_TABLE, 'tables.php?op=new', 'add');
187191
$adminObject->addItemButton(_AM_TDMCREATE_TABLES_LIST, 'tables.php', 'list');

assets/js/functions.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,14 @@ function tdmcreate_setStatus(data, img, file) {
9595
}
9696
});
9797
}
98+
99+
function presetField(typeId) {
100+
101+
eleSelected = xoopsGetElementById('field_element[' + typeId + ']');
102+
vselected = eleSelected.value;
103+
defaultType = xoopsGetElementById('fe_defaulttype[' + vselected + ']').value;
104+
defaultValue = xoopsGetElementById('fe_defaultvalue[' + vselected + ']').value;
105+
eleType = xoopsGetElementById('field_type[' + typeId + ']').value = defaultType;
106+
eleValue = xoopsGetElementById('field_value[' + typeId + ']').value = defaultValue;
107+
108+
}

class/FieldElements.php

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ public function __construct()
4242
$this->initVar('fieldelement_name', XOBJ_DTYPE_TXTBOX);
4343
$this->initVar('fieldelement_value', XOBJ_DTYPE_TXTBOX);
4444
$this->initVar('fieldelement_sort', XOBJ_DTYPE_INT);
45+
$this->initVar('fieldelement_deftype', XOBJ_DTYPE_TXTBOX);
46+
$this->initVar('fieldelement_defvalue', XOBJ_DTYPE_INT);
4547
}
4648

4749
/**
@@ -83,12 +85,14 @@ public function getValuesFieldElements($keys = null, $format = null, $maxDepth =
8385
{
8486
$ret = $this->getValues($keys, $format, $maxDepth);
8587
// Values
86-
$ret['id'] = $this->getVar('fieldelement_id');
87-
$ret['mid'] = $this->getVar('fieldelement_mid');
88-
$ret['tid'] = $this->getVar('fieldelement_tid');
89-
$ret['name'] = $this->getVar('fieldelement_name');
90-
$ret['value'] = $this->getVar('fieldelement_value');
91-
$ret['sort'] = $this->getVar('fieldelement_sort');
88+
$ret['id'] = $this->getVar('fieldelement_id');
89+
$ret['mid'] = $this->getVar('fieldelement_mid');
90+
$ret['tid'] = $this->getVar('fieldelement_tid');
91+
$ret['name'] = $this->getVar('fieldelement_name');
92+
$ret['value'] = $this->getVar('fieldelement_value');
93+
$ret['sort'] = $this->getVar('fieldelement_sort');
94+
$ret['deftype'] = $this->getVar('fieldelement_deftype');
95+
$ret['defvalue'] = $this->getVar('fieldelement_defvalue');
9296

9397
return $ret;
9498
}

class/Fields.php

Lines changed: 46 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -115,10 +115,11 @@ private function getHeaderForm($action = false, $prefix)
115115
$form->addElement(new Tdmcreate\Html\FormLabel(str_replace('%s', $prefix, _AM_TDMCREATE_FIELD_RECOMMENDED)));
116116
$form->addElement(new Tdmcreate\Html\FormLabel('<table cellspacing="1" class="outer width100">'));
117117
$form->addElement(new Tdmcreate\Html\FormLabel('<thead class="center">'));
118-
$form->addElement(new Tdmcreate\Html\FormLabel('<tr class="head"><th colspan="9">' . $title . '</th></tr>'));
118+
$form->addElement(new Tdmcreate\Html\FormLabel('<tr class="head"><th colspan="10">' . $title . '</th></tr>'));
119119
$form->addElement(new Tdmcreate\Html\FormLabel('<tr class="head width5">'));
120120
$form->addElement(new Tdmcreate\Html\FormLabel('<td>' . _AM_TDMCREATE_FIELD_ID . '</td>'));
121121
$form->addElement(new Tdmcreate\Html\FormLabel('<td>' . _AM_TDMCREATE_FIELD_NAME . '</td>'));
122+
$form->addElement(new Tdmcreate\Html\FormLabel('<td>' . _AM_TDMCREATE_FIELD_ELEMENT . '</td>'));
122123
$form->addElement(new Tdmcreate\Html\FormLabel('<td>' . _AM_TDMCREATE_FIELD_TYPE . '</td>'));
123124
$form->addElement(new Tdmcreate\Html\FormLabel('<td>' . _AM_TDMCREATE_FIELD_VALUE . '</th>'));
124125
$form->addElement(new Tdmcreate\Html\FormLabel('<td>' . _AM_TDMCREATE_FIELD_ATTRIBUTE . '</th>'));
@@ -178,6 +179,11 @@ public function getFormNew($fieldMid = null, $fieldTid = null, $fieldNumb = null
178179
private function getFormNewLine($form, $class, $i, $fieldMid, $fieldTid, $fName, $tableAutoincrement)
179180
{
180181
$helper = Tdmcreate\Helper::getInstance();
182+
$fieldElements = $helper->getHandler('Fieldelements')->getAll();
183+
foreach ($fieldElements as $fe) {
184+
$form->addElement(new \XoopsFormHidden('fe_defaulttype[' . $fe->getVar('fieldelement_id') . ']', $fe->getVar('fieldelement_deftype')));
185+
$form->addElement(new \XoopsFormHidden('fe_defaultvalue[' . $fe->getVar('fieldelement_id') . ']', $fe->getVar('fieldelement_defvalue')));
186+
}
181187
$form->addElement(new \XoopsFormHidden('field_id[' . $i . ']', 0));
182188
$form->addElement(new \XoopsFormHidden('field_mid', $fieldMid));
183189
$form->addElement(new \XoopsFormHidden('field_tid', $fieldTid));
@@ -189,6 +195,23 @@ private function getFormNewLine($form, $class, $i, $fieldMid, $fieldTid, $fName,
189195
$thisFieldName = (!empty($fName) ? ((1 == $i) ? $fName . '_id' : $fName . '_') : '');
190196
$fieldName = new \XoopsFormText(_AM_TDMCREATE_FIELD_NAME, 'field_name[' . $i . ']', 15, 255, $thisFieldName);
191197
$form->addElement(new Tdmcreate\Html\FormLabel('<td class="center">' . $fieldName->render() . '</td>'));
198+
// Field Element
199+
if ((1 == $i) && (1 == $tableAutoincrement)) {
200+
$form->addElement(new Tdmcreate\Html\FormLabel('<td>&nbsp;</td>'));
201+
} else {
202+
// Field Elements
203+
$crElement = new \CriteriaCompo();
204+
$crElement->add(new \Criteria('fieldelement_tid', 0));
205+
$crTable = new \CriteriaCompo();
206+
$crTable->add(new \Criteria('fieldelement_mid', $fieldMid));
207+
$fieldElementsSelect = new \XoopsFormSelect(_AM_TDMCREATE_FIELD_ELEMENT_NAME, 'field_element[' . $i . ']');
208+
$fieldElementsSelect->addOptionArray($helper->getHandler('Fieldelements')->getFieldElementsList($crElement));
209+
$fieldElementsSelect->addOptionArray($helper->getHandler('Fieldelements')->getList($crTable));
210+
$fieldElementsSelect->setExtra(" onchange='presetField(". $i . ")' ");
211+
unset($crElement, $crTable);
212+
$form->addElement(new Tdmcreate\Html\FormLabel('<td class="center">' . $fieldElementsSelect->render() . '</td>'));
213+
unset($fieldElementsSelect);
214+
}
192215
// Field Type
193216
$value = (1 == $i) && (1 == $tableAutoincrement) ? '2' : '';
194217
$fieldTypeSelect = new \XoopsFormSelect(_AM_TDMCREATE_FIELD_TYPE, 'field_type[' . $i . ']', $value);
@@ -222,16 +245,6 @@ private function getFormNewLine($form, $class, $i, $fieldMid, $fieldTid, $fName,
222245
} else {
223246
// Box header row
224247
$parametersTray = new \XoopsFormElementTray('', '<br>');
225-
// Field Elements
226-
$crElement = new \CriteriaCompo();
227-
$crElement->add(new \Criteria('fieldelement_tid', 0));
228-
$crTable = new \CriteriaCompo();
229-
$crTable->add(new \Criteria('fieldelement_mid', $fieldMid));
230-
$fieldElementsSelect = new \XoopsFormSelect(_AM_TDMCREATE_FIELD_ELEMENT_NAME, 'field_element[' . $i . ']');
231-
$fieldElementsSelect->addOptionArray($helper->getHandler('Fieldelements')->getFieldElementsList($crElement));
232-
$fieldElementsSelect->addOptionArray($helper->getHandler('Fieldelements')->getList($crTable));
233-
unset($crElement, $crTable);
234-
$parametersTray->addElement($fieldElementsSelect);
235248

236249
$field_parent = 0;
237250
$checkFieldParent = new \XoopsFormCheckBox(' ', 'field_parent[' . $i . ']', $field_parent);
@@ -327,6 +340,11 @@ public function getFormEdit($fieldMid = null, $fieldTid = null, $action = false)
327340
$cr->setSort('field_order');
328341
$fields = $helper->getHandler('Fields')->getObjects($cr);
329342
unset($cr);
343+
$fieldElements = $helper->getHandler('Fieldelements')->getAll();
344+
foreach ($fieldElements as $fe) {
345+
$form->addElement(new \XoopsFormHidden('fe_defaulttype[' . $fe->getVar('fieldelement_id') . ']', $fe->getVar('fieldelement_deftype')));
346+
$form->addElement(new \XoopsFormHidden('fe_defaultvalue[' . $fe->getVar('fieldelement_id') . ']', $fe->getVar('fieldelement_defvalue')));
347+
}
330348
$id = 1;
331349
foreach ($fields as $field) {
332350
$class = ('even' === $class) ? 'odd' : 'even';
@@ -344,6 +362,23 @@ public function getFormEdit($fieldMid = null, $fieldTid = null, $action = false)
344362
// Field Name
345363
$fieldName = new \XoopsFormText(_AM_TDMCREATE_FIELD_NAME, 'field_name[' . $id . ']', 15, 255, $field->getVar('field_name'));
346364
$form->addElement(new Tdmcreate\Html\FormLabel('<td class="center">' . $fieldName->render() . '</td>'));
365+
// Field Element
366+
if ((1 == $id) && (1 == $tableAutoincrement)) {
367+
$form->addElement(new Tdmcreate\Html\FormLabel('<td>&nbsp;</td>'));
368+
} else {
369+
// Field Elements
370+
$crElement = new \CriteriaCompo();
371+
$crElement->add(new \Criteria('fieldelement_tid', 0));
372+
$crTable = new \CriteriaCompo();
373+
$crTable->add(new \Criteria('fieldelement_mid', $fieldMid));
374+
$fieldElementsSelect = new \XoopsFormSelect(_AM_TDMCREATE_FIELD_ELEMENT_NAME, 'field_element[' . $id . ']', $field->getVar('field_element'));
375+
$fieldElementsSelect->addOptionArray($helper->getHandler('Fieldelements')->getFieldElementsList($crElement));
376+
$fieldElementsSelect->addOptionArray($helper->getHandler('Fieldelements')->getList($crTable));
377+
$fieldElementsSelect->setExtra(" onchange='presetField(". $id . ")' ");
378+
unset($crElement, $crTable);
379+
$form->addElement(new Tdmcreate\Html\FormLabel('<td class="center">' . $fieldElementsSelect->render() . '</td>'));
380+
unset($fieldElementsSelect);
381+
}
347382
// Field Type
348383
$fieldTypeSelect = new \XoopsFormSelect(_AM_TDMCREATE_FIELD_TYPE, 'field_type[' . $id . ']', $field->getVar('field_type'));
349384
$fieldTypeSelect->addOptionArray($helper->getHandler('Fieldtype')->getList());
@@ -372,17 +407,6 @@ public function getFormEdit($fieldMid = null, $fieldTid = null, $action = false)
372407
} else {
373408
// Box header row
374409
$parametersTray = new \XoopsFormElementTray('', '<br>');
375-
// Field Elements
376-
$crElement = new \CriteriaCompo();
377-
$crElement->add(new \Criteria('fieldelement_tid', 0));
378-
$crTable = new \CriteriaCompo();
379-
$crTable->add(new \Criteria('fieldelement_mid', $fieldMid));
380-
$fieldElementsSelect = new \XoopsFormSelect(_AM_TDMCREATE_FIELD_ELEMENT_NAME, 'field_element[' . $id . ']', $field->getVar('field_element'));
381-
//$fieldElementsSelect->addOptionArray($helper->getHandler('Fieldelements')->getList($crElement));
382-
$fieldElementsSelect->addOptionArray($helper->getHandler('Fieldelements')->getFieldElementsList($crElement));
383-
$fieldElementsSelect->addOptionArray($helper->getHandler('Fieldelements')->getList($crTable));
384-
unset($crElement, $crTable);
385-
$parametersTray->addElement($fieldElementsSelect);
386410

387411
$checkFieldParent = new \XoopsFormCheckBox(' ', 'field_parent[' . $id . ']', $field->getVar('field_parent'));
388412
$checkFieldParent->addOption(1, _AM_TDMCREATE_FIELD_PARENT);

class/Files/CreateXoopsCode.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1188,7 +1188,7 @@ public function getXcSaveElements($moduleDirname, $tableName, $tableSoleName, $f
11881188
$ret .= $this->getXcSetVarTextDateSelect($tableName, $tableSoleName, $fieldName, $t);
11891189
break;
11901190
case 17:
1191-
$ret .= $axCodeSaveElements->getAxcSetVarPassword($tableName, $fieldName, $fieldName, $t);
1191+
$ret .= $axCodeSaveElements->getAxcSetVarPassword($tableName, $fieldName, $t);
11921192
$countUploader++;
11931193
break;
11941194
case 21:

class/Files/admin/AdminPages.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ private function getAdminPagesSave($moduleDirname, $tableName, $tableSoleName, $
282282
$ret .= $xc->getXcSetVarTextDateSelect($tableName, $tableSoleName, $fieldName, $t);
283283
break;
284284
case 17:
285-
$ret .= $axc->getAxcSetVarPassword($tableName, $fieldName, $fieldName, $t);
285+
$ret .= $axc->getAxcSetVarPassword($tableName, $fieldName, $t);
286286
break;
287287
case 21:
288288
$ret .= $xc->getXcSetVarDateTime($tableName, $tableSoleName, $fieldName, $t);

class/Files/admin/AdminXoopsCode.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -330,14 +330,18 @@ private function getAxcSetVarImageFile($dirname, $tableName, $fieldName, $format
330330
* @public function getAxcSetVarPassword
331331
* @param $tableName
332332
* @param $fieldName
333-
* @param $fieldType
334333
* @param string $t
335334
* @return string
336335
*/
337-
public function getAxcSetVarPassword($tableName, $fieldName, $fieldType, $t = '')
336+
public function getAxcSetVarPassword($tableName, $fieldName, $t = '')
338337
{
339338
$xc = Tdmcreate\Files\CreateXoopsCode::getInstance();
340-
$ret = $xc->getXcSetVarObj($tableName, $fieldName, "password_hash(Request::getString('{$fieldName}', ''), PASSWORD_DEFAULT)", $t);
339+
$pc = Tdmcreate\Files\CreatePhpCode::getInstance();
340+
$cf = Tdmcreate\Files\CreateFile::getInstance();
341+
$ccFieldId = $cf->getCamelCase($fieldName, false, true);
342+
$ret = $xc->getXcEqualsOperator("\${$ccFieldId}", "Request::getString('{$fieldName}', '')", '',$t);
343+
$contIf = $xc->getXcSetVarObj($tableName, $fieldName, "password_hash(\${$ccFieldId}, PASSWORD_DEFAULT)", $t . "\t");
344+
$ret .= $pc->getPhpCodeConditions("''", ' !== ', "\${$ccFieldId}",$contIf, false, $t);
341345

342346
return $ret;
343347
}

docs/changelog.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
- renamed functions for better sorting (goffy)
2525
- added new field elements SelectStatus, SelectCombo, Password, SelectCountry and SelectLang (goffy)
2626
- rebuilt include/search.inc.php (goffy)
27+
- added default values for form elements (goffy)
2728

2829
<h5>3.01 Alpha 2 [WORK IN PROGRESS - NOT RELEASED]</h5> Dev: XOOPS 2.5.11, PHP 7.4.2
2930
<hr>

include/update.php

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,5 +362,43 @@ function tdmcreate_check_db($module)
362362
}
363363
}
364364

365+
// update table 'tdmcreate_fieldelements'
366+
$table = $GLOBALS['xoopsDB']->prefix('tdmcreate_fieldelements');
367+
$field = 'fieldelement_deftype';
368+
$check = $GLOBALS['xoopsDB']->queryF('SHOW COLUMNS FROM `' . $table . "` LIKE '" . $field . "'");
369+
$numRows = $GLOBALS['xoopsDB']->getRowsNum($check);
370+
if (!$numRows) {
371+
$sql = "ALTER TABLE `$table` ADD `$field` INT(10) NOT NULL DEFAULT '0' AFTER `fieldelement_sort`;";
372+
if (!$result = $GLOBALS['xoopsDB']->queryF($sql)) {
373+
xoops_error($GLOBALS['xoopsDB']->error() . '<br>' . $sql);
374+
$module->setErrors("Error when adding '$field' to table '$table'.");
375+
$ret = false;
376+
}
377+
}
378+
379+
// update table 'tdmcreate_fieldelements'
380+
$table = $GLOBALS['xoopsDB']->prefix('tdmcreate_fieldelements');
381+
$field = 'fieldelement_defvalue';
382+
$check = $GLOBALS['xoopsDB']->queryF('SHOW COLUMNS FROM `' . $table . "` LIKE '" . $field . "'");
383+
$numRows = $GLOBALS['xoopsDB']->getRowsNum($check);
384+
if (!$numRows) {
385+
$sql = "ALTER TABLE `$table` ADD `$field` int(10) NULL DEFAULT '0' AFTER `fieldelement_deftype`;";
386+
if (!$result = $GLOBALS['xoopsDB']->queryF($sql)) {
387+
xoops_error($GLOBALS['xoopsDB']->error() . '<br>' . $sql);
388+
$module->setErrors("Error when adding '$field' to table '$table'.");
389+
$ret = false;
390+
}
391+
}
392+
393+
// set default values for form elements
394+
$result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('tdmcreate_fieldelements') . " SET `fieldelement_deftype` = 14, `fieldelement_defvalue` = '255' WHERE `xc_tdmcreate_fieldelements`.`fieldelement_id` in(2, 10, 11, 12, 13, 14, 17)");
395+
$result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('tdmcreate_fieldelements') . " SET `fieldelement_deftype` = 15, `fieldelement_defvalue` = '0' WHERE `xc_tdmcreate_fieldelements`.`fieldelement_id` in (3, 4)");
396+
$result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('tdmcreate_fieldelements') . " SET `fieldelement_deftype` = 2, `fieldelement_defvalue` = '10' WHERE `xc_tdmcreate_fieldelements`.`fieldelement_id` in(5, 7, 8, 15, 20, 21, 22)");
397+
$result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('tdmcreate_fieldelements') . " SET `fieldelement_deftype` = 2, `fieldelement_defvalue` = '1' WHERE `xc_tdmcreate_fieldelements`.`fieldelement_id` in(6, 16)");
398+
$result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('tdmcreate_fieldelements') . " SET `fieldelement_deftype` = 14, `fieldelement_defvalue` = '7' WHERE `xc_tdmcreate_fieldelements`.`fieldelement_id` in(9)");
399+
$result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('tdmcreate_fieldelements') . " SET `fieldelement_deftype` = 14, `fieldelement_defvalue` = '3' WHERE `xc_tdmcreate_fieldelements`.`fieldelement_id` in(18)");
400+
$result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('tdmcreate_fieldelements') . " SET `fieldelement_deftype` = 14, `fieldelement_defvalue` = '100' WHERE `xc_tdmcreate_fieldelements`.`fieldelement_id` in(19)");
401+
$result = $xoopsDB->query('UPDATE ' . $xoopsDB->prefix('tdmcreate_fieldelements') . " SET `fieldelement_deftype` = 2, `fieldelement_defvalue` = '10' WHERE `xc_tdmcreate_fieldelements`.`fieldelement_mid` > 0");
402+
365403
return $ret;
366404
}

language/english/admin.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@
270270
// Fields Parameters
271271
define('_AM_TDMCREATE_FIELD_PARAMETERS', 'Parameters');
272272
define('_AM_TDMCREATE_FIELD_ELEMENTS', 'Options Elements');
273+
define('_AM_TDMCREATE_FIELD_ELEMENT', 'Form Element');
273274
define('_AM_TDMCREATE_FIELD_ELEMENT_NAME', 'Form: Element');
274275
define('_AM_TDMCREATE_FIELD_ADMIN', 'Admin: In Files');
275276
define('_AM_TDMCREATE_FIELD_USER', 'User: In Files');

0 commit comments

Comments
 (0)