/lib/sources/dynamicformfieldvalues.class.php
PHP | 458 lines | 360 code | 84 blank | 14 comment | 33 complexity | 8333edbbcd511ada34ea7e44a1ba8a22 MD5 | raw file
- <?php
- /***************************************************************************
- * dynamicformfieldvalues.class.php
- *
- * Jul 05, 07:00:00 2009
- * Copyright 2009 Istvan Petres (aka P.I.Julius)
- * me@pijulius.com
- * For licensing, see LICENSE or http://jcore.net/license
- *
- * DEPRECATED!
- * As of ver. 0.7 (Nov 11, 2010) this file isn't used anymore
- * as the values are now handled internally by dynamicFormFields
- *
- ****************************************************************************/
- class _dynamicFormFieldValues {
- var $adminPath = 'admin/content/dynamicforms/dynamicformfields/dynamicformfieldvalues';
- // ************************************************ Admin Part
- function setupAdminForm(&$form) {
- $form->add(
- 'FieldID',
- 'FieldID',
- FORM_INPUT_TYPE_HIDDEN,
- true,
- admin::getPathID());
- $form->setValueType(FORM_VALUE_TYPE_INT);
- $form->add(
- __('Value'),
- 'Value',
- FORM_INPUT_TYPE_TEXTAREA,
- true);
- $form->setStyle('width: 300px; height: 35px;');
- $form->add(
- __('Selected'),
- 'Selected',
- FORM_INPUT_TYPE_CHECKBOX,
- false,
- '1');
- $form->setValueType(FORM_VALUE_TYPE_BOOL);
- $form->add(
- __('Additional Options'),
- null,
- FORM_OPEN_FRAME_CONTAINER);
- $form->add(
- __('Alternative Title'),
- 'ValueTitle',
- FORM_INPUT_TYPE_TEXT);
- $form->setStyle('width: 300px;');
- $form->add(
- __('Order'),
- 'OrderID',
- FORM_INPUT_TYPE_TEXT);
- $form->setStyle('width: 50px;');
- $form->setValueType(FORM_VALUE_TYPE_INT);
- $form->add(
- null,
- null,
- FORM_CLOSE_FRAME_CONTAINER);
- }
- function verifyAdmin(&$form) {
- $reorder = null;
- $orders = null;
- $delete = null;
- $edit = null;
- $id = null;
- if (isset($_POST['reordersubmit']))
- $reorder = (string)$_POST['reordersubmit'];
- if (isset($_POST['orders']))
- $orders = (array)$_POST['orders'];
- if (isset($_GET['delete']))
- $delete = (int)$_GET['delete'];
- if (isset($_GET['edit']))
- $edit = (int)$_GET['edit'];
- if (isset($_GET['id']))
- $id = (int)$_GET['id'];
- if ($reorder) {
- if (!security::checkToken())
- return false;
- foreach((array)$orders as $id => $ovalue) {
- sql::run(
- " UPDATE `{dynamicformfieldvalues}` " .
- " SET `OrderID` = '".(int)$ovalue."'" .
- " WHERE `ID` = '".(int)$id."'");
- }
- tooltip::display(
- __("Field values have been successfully re-ordered."),
- TOOLTIP_SUCCESS);
- return true;
- }
- if ($delete) {
- if (!$this->delete($id))
- return false;
- tooltip::display(
- __("Field value has been successfully deleted."),
- TOOLTIP_SUCCESS);
- return true;
- }
- if (!$form->verify())
- return false;
- if ($edit) {
- if (!$this->edit($id, $form->getPostArray()))
- return false;
- tooltip::display(
- __("Field value has been successfully updated."),
- TOOLTIP_SUCCESS);
- return true;
- }
- if (!$this->add($form->getPostArray()))
- return false;
- tooltip::display(
- __("Field value has been successfully created."),
- TOOLTIP_SUCCESS);
- $form->reset();
- return true;
- }
- function displayAdminListHeader() {
- echo
- "<th><span class='nowrap'>".
- __("Order")."</span></th>" .
- "<th><span class='nowrap'>".
- __("Value")."</span></th>" .
- "<th><span class='nowrap'>".
- __("Alternative Title")."</span></th>" .
- "<th><span class='nowrap'>".
- __("Selected")."</span></th>";
- }
- function displayAdminListHeaderOptions() {
- }
- function displayAdminListHeaderFunctions() {
- echo
- "<th><span class='nowrap'>".
- __("Edit")."</span></th>" .
- "<th><span class='nowrap'>".
- __("Delete")."</span></th>";
- }
- function displayAdminListItem(&$row) {
- echo
- "<td>" .
- "<input type='text' name='orders[".$row['ID']."]' " .
- "value='".$row['OrderID']."' " .
- "class='order-id-entry' tabindex='1' />" .
- "</td>" .
- "<td class='auto-width'>" .
- "<b>" .
- $row['Value'] .
- "</b>" .
- "</td>" .
- "<td style='white-space: nowrap;'>" .
- $row['ValueTitle'] .
- "</td>" .
- "<td align='center'>" .
- ($row['Selected']?
- 'Yes':
- '') .
- "</td>";
- }
- function displayAdminListItemOptions(&$row) {
- }
- function displayAdminListItemFunctions(&$row) {
- echo
- "<td align='center'>" .
- "<a class='admin-link edit' " .
- "title='".htmlchars(__("Edit"), ENT_QUOTES)."' " .
- "href='".url::uri('id, edit, delete') .
- "&id=".$row['ID']."&edit=1'>" .
- "</a>" .
- "</td>" .
- "<td align='center'>" .
- "<a class='admin-link delete confirm-link' " .
- "title='".htmlchars(__("Delete"), ENT_QUOTES)."' " .
- "href='".url::uri('id, edit, delete') .
- "&id=".$row['ID']."&delete=1'>" .
- "</a>" .
- "</td>";
- }
- function displayAdminListFunctions() {
- echo
- "<input type='submit' name='reordersubmit' value='".
- htmlchars(__("Reorder"), ENT_QUOTES)."' class='button' /> " .
- "<input type='reset' name='reset' value='" .
- htmlchars(__("Reset"), ENT_QUOTES)."' class='button' />";
- }
- function displayAdminList(&$rows) {
- echo
- "<form action='".url::uri('id, edit, delete')."' method='post'>" .
- "<input type='hidden' name='_SecurityToken' value='".security::genToken()."' />";
- echo "<table cellpadding='0' cellspacing='0' class='list'>" .
- "<thead>" .
- "<tr>";
- $this->displayAdminListHeader();
- $this->displayAdminListHeaderOptions();
- if ($this->userPermissionType & USER_PERMISSION_TYPE_WRITE)
- $this->displayAdminListHeaderFunctions();
- echo
- "</tr>" .
- "</thead>" .
- "<tbody>";
- $i = 0;
- while($row = sql::fetch($rows)) {
- echo
- "<tr".($i%2?" class='pair'":NULL).">";
- $this->displayAdminListItem($row);
- $this->displayAdminListItemOptions($row);
- if ($this->userPermissionType & USER_PERMISSION_TYPE_WRITE)
- $this->displayAdminListItemFunctions($row);
- echo
- "</tr>";
- $i++;
- }
- echo
- "</tbody>" .
- "</table>" .
- "<br />";
- if ($this->userPermissionType & USER_PERMISSION_TYPE_WRITE) {
- $this->displayAdminListFunctions();
- echo
- "<div class='clear-both'></div>" .
- "<br />";
- }
- echo
- "</form>";
- }
- function displayAdminForm(&$form) {
- $form->display();
- }
- function displayAdminTitle($ownertitle = null) {
- admin::displayTitle(
- __('Field Values'),
- $ownertitle);
- }
- function displayAdminDescription() {
- }
- function displayAdmin() {
- $owner = sql::fetch(sql::run(
- " SELECT * FROM `{dynamicformfields}`" .
- " WHERE `ID` = '".admin::getPathID()."'"));
- $delete = null;
- $edit = null;
- $id = null;
- if (isset($_GET['delete']))
- $delete = (int)$_GET['delete'];
- if (isset($_GET['edit']))
- $edit = (int)$_GET['edit'];
- if (isset($_GET['id']))
- $id = (int)$_GET['id'];
- $this->displayAdminTitle($owner['Title']);
- $this->displayAdminDescription();
- echo
- "<div class='admin-content'>";
- $form = new form(
- ($edit?
- __("Edit Field Value"):
- __("New Field Value")),
- 'neweditfieldvalue');
- if (!$edit)
- $form->action = url::uri('id, delete, limit');
- $this->setupAdminForm($form);
- $form->addSubmitButtons();
- if ($edit) {
- $form->add(
- __('Cancel'),
- 'cancel',
- FORM_INPUT_TYPE_BUTTON);
- $form->addAttributes("onclick=\"window.location='".
- str_replace('&', '&', url::uri('id, edit, delete'))."'\"");
- }
- $verifyok = false;
- if ($this->userPermissionType & USER_PERMISSION_TYPE_WRITE)
- $verifyok = $this->verifyAdmin($form);
- $rows = sql::run(
- " SELECT * FROM `{dynamicformfieldvalues}`" .
- " WHERE `FieldID` = '".admin::getPathID()."'" .
- " ORDER BY `OrderID`, `ValueTitle`, `Value`");
- if (sql::rows($rows))
- $this->displayAdminList($rows);
- else
- tooltip::display(
- __("No field values found."),
- TOOLTIP_NOTIFICATION);
- if ($this->userPermissionType & USER_PERMISSION_TYPE_WRITE) {
- if ($edit && ($verifyok || !$form->submitted())) {
- $selected = sql::fetch(sql::run(
- " SELECT * FROM `{dynamicformfieldvalues}`" .
- " WHERE `ID` = '".$id."'"));
- $form->setValues($selected);
- }
- $this->displayAdminForm($form);
- }
- unset($form);
- echo
- "</div>"; //admin-content
- }
- function add($values) {
- if (!is_array($values))
- return false;
- if ($values['OrderID'] == '') {
- $row = sql::fetch(sql::run(
- " SELECT `OrderID` FROM `{dynamicformfieldvalues}` " .
- " WHERE `FieldID` = '".(int)$values['FieldID']."'" .
- " ORDER BY `OrderID` DESC"));
- $values['OrderID'] = (int)$row['OrderID']+1;
- } else {
- sql::run(
- " UPDATE `{dynamicformfieldvalues}` SET " .
- " `OrderID` = `OrderID` + 1" .
- " WHERE `FieldID` = '".(int)$values['FieldID']."'" .
- " AND `OrderID` >= '".(int)$values['OrderID']."'");
- }
- $newid = sql::run(
- " INSERT INTO `{dynamicformfieldvalues}` SET ".
- " `FieldID` = '".
- (int)$values['FieldID']."'," .
- " `Value` = '".
- sql::escape($values['Value'])."'," .
- " `ValueTitle` = '".
- sql::escape($values['ValueTitle'])."'," .
- " `Selected` = '".
- ($values['Selected']?
- '1':
- '0').
- "'," .
- " `OrderID` = '".
- (int)$values['OrderID']."'");
- if (!$newid) {
- tooltip::display(
- sprintf(__("Field value couldn't be added! Error: %s"),
- sql::error()),
- TOOLTIP_ERROR);
- return false;
- }
- return $newid;
- }
- function edit($id, $values) {
- if (!$id)
- return false;
- if (!is_array($values))
- return false;
- sql::run(
- " UPDATE `{dynamicformfieldvalues}` SET ".
- " `Value` = '".
- sql::escape($values['Value'])."'," .
- " `ValueTitle` = '".
- sql::escape($values['ValueTitle'])."'," .
- " `Selected` = '".
- ($values['Selected']?
- '1':
- '0').
- "'," .
- " `OrderID` = '".
- (int)$values['OrderID']."'" .
- " WHERE `ID` = '".(int)$id."'");
- if (sql::affected() == -1) {
- tooltip::display(
- sprintf(__("Field value couldn't be updated! Error: %s"),
- sql::error()),
- TOOLTIP_ERROR);
- return false;
- }
- return true;
- }
- function delete($id) {
- if (!$id)
- return false;
- sql::run(
- " DELETE FROM `{dynamicformfieldvalues}` " .
- " WHERE `ID` = '".$id."'");
- return true;
- }
- }
- ?>