+++ /dev/null
-<?php
-/**
- * See the enclosed file COPYING for license information (LGPL). If you
- * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
- *
- * @package Horde_Rdo
- */
-
-/**
- * The Horde_Form_Helper:: class provides autogeneration extension to
- * Horde_Form used for generating create and update data with various
- * backends.
- *
- * @author Duck <duck@obala.net>
- * @since Horde 4.0
- * @package Horde_Rdo
- */
-class Horde_Rdo_Form_Helper extends Horde_Form
-{
- /**
- * The primary key(s) of the resource.
- *
- * @var string
- */
- protected $_primaryKey;
-
- /**
- * Rdo_Mapper object that we display.
- *
- * @var Horde_Rdo_Mapper $mapper
- */
- protected $_mapper;
-
- /**
- * Extends Horde_Form for general purposes and prepare initial form.
- */
- public function __construct($vars, $title = '', $name = null, $params = null)
- {
- parent::__construct($vars, $title, $name);
-
- if (is_array($params)) {
- $this->_mapper = $params['mapper'];
- unset($params['mapper']);
- } else {
- $this->_mapper = $params;
- $params = array();
- }
-
- if ($vars->exists('action')) {
- $this->addHidden('', 'action', 'text', true);
- }
- if ($vars->exists('table')) {
- $this->addHidden('', 'table', 'text', true);
- }
- if ($vars->exists('what2process')) {
- $this->addHidden('', 'what2process', 'text', true);
- }
-
- /* Determinate action */
- if ($vars->get('submitbutton') == _("Advanced search")) {
- $vars->set('action', 'search_active');
- $this->_submitted = false;
- } elseif ($vars->get('submitbutton') == _("Basic search")) {
- $vars->set('action', 'search');
- $this->_submitted = false;
- } elseif (isset($params['action'])) {
- $vars->set('action', $params['action']);
- }
-
- $i = 0;
- $this->_getPrimaryKey();
- $allFields = $this->_getFields($vars->get('action'));
-
- /* Determine what to display */
- if ($vars->get('action') == 'search_active') {
- if ($vars->get('fields')) {
- $fields = explode('|', $vars->get('fields'));
- } else {
- $fields = $this->_primaryKey;
- }
- if ($vars->get('horde_helper_add')) {
- $fields[] = $vars->get('horde_helper_add');
- $vars->set('horde_helper_add', null);
- }
- } else {
- $fields = $allFields;
- }
-
- /* Loop to add fields */
- foreach ($fields as $key) {
- if ($key == 'created' || $key == 'updated') {
- continue;
- }
-
- $params = $this->_formMeta($vars->get('action'), $key);
- if (is_object($params)) {
- return $params;
- }
-
- $this->_currentSection = $params['section'];
-
- switch ($vars->get('action')) {
- case 'create':
- if ($params['readonly']) {
- continue 2;
- }
- break;
-
- case 'update':
- if (in_array($key, $this->_primaryKey)) {
- $this->addHidden('', $key, $params['type'], true);
- $params['readonly'] = true;
- }
- break;
-
- case 'search':
- case 'search_active':
- $key .= '_' . $i++;
- $params['readonly'] = false;
- $params['required'] = false;
- if (!$params['hidden']) {
- $this->_addCase($params['humanName'], $key);
- }
- break;
- }
-
- if ($params['hidden']) {
- $this->addHidden('', $key, $params['type'], $params['required']);
- continue;
- }
-
- $v = $this->addVariable($params['humanName'], $key, $params['type'],
- $params['required'], $params['readonly'],
- $params['description'], $params['params']);
-
- if (!empty($params['help'])) {
- $v->setHelp($params['help']);
- }
- if (!empty($params['default'])) {
- $v->setDefault($params['default']);
- }
- }
-
- switch ($vars->get('action')) {
- case 'search':
- $this->_submit = array(_("Search"), _("Advanced search"));
- break;
-
- case 'search_active':
- require_once 'Horde/Array.php';
- $params = array(Horde_Array::valuesToKeys($allFields), true);
- $this->addVariable(_("Add"), 'horde_helper_add', 'enum', false, false, null, $params);
- $this->_submit = array(_("Search"), _("Add"), _("Basic search"));
- $this->addHidden('', 'fields', 'text', true);
- $vars->set('fields', implode('|', $fields));
- break;
-
- case 'create':
- $this->_submit = _("Create");
- break;
-
- case 'update':
- $this->_submit = _("Update");
- $this->_reset = _("Reset");
- }
- }
-
- /**
- * Add a comparison operator selection
- */
- protected function _addCase($humanName, $key)
- {
- $this->addVariable($humanName, 'cases_' . $key, 'enum', false, false, 'cases',
- array(array('=' => '=', '>' => '>', '<' => '<',
- '>=' => '>=', '<=' => '<=', '<>' => '<>',
- 'LIKE' => 'LIKE', 'NOT LIKE' => 'NOT LIKE',
- 'IS' => 'IS', 'IS NOT' => 'IS NOT')));
- }
-
- /**
- * Map from columns to Horde_Form types and attributes:
- * Create values like Horde_Form::addVariable parameters
- * - humanName
- * - type
- * - required
- * - readonly
- * - description
- * - params
- */
- protected function _formMeta($action, $column, $key = false)
- {
- static $map;
-
- if ($map === null) {
- $map = $this->formMetaData($action);
- if ($map instanceof PEAR_Error) {
- return $map;
- }
- if (isset($map['__sections']) && $this->_vars->action != 'search_active') {
- foreach ($map['__sections'] as $section => $value) {
- $this->setSection($section, $value['desc'], $value['image'], $value['expanded']);
- }
- unset($map['__sections']);
- }
-
- foreach ($this->_getFields($action) as $id) {
- if (!isset($map[$id])) {
- $map[$id] = array();
- }
- if (!isset($map[$id]['hidden'])) {
- $map[$id]['hidden'] = false;
- }
- if (!isset($map[$id]['humanName'])) {
- $map[$id]['humanName'] = $id;
- }
- if (!isset($map[$id]['section'])) {
- $map[$id]['section'] = '__base';
- }
- if (!isset($map[$id]['readonly'])) {
- $map[$id]['readonly'] = false;
- }
- if (!isset($map[$id]['params'])) {
- $map[$id]['params'] = array();
- }
- if (!isset($map[$id]['description'])) {
- $map[$id]['description'] = '';
- }
- if (!isset($map[$id]['required'])) {
- $map[$id]['required'] = in_array($id, $this->_primaryKey);
- }
- if ($action == 'update' && in_array($id, $this->_primaryKey)) {
- $map[$id]['readonly'] = true;
- }
-
- if (!isset($map[$id]['type'])) {
- $map[$id]['type'] = 'text';
- } else {
-
- /* trim aditonal parameters like decimal(10,2)*/
- if (strpos($map[$id]['type'], '(')) {
- $map[$id]['type'] = substr($map[$id]['type'], 0, strpos($map[$id]['type'], '('));
- }
-
- switch ($map[$id]['type']) {
- case 'date':
- $map[$id]['type'] = 'monthdayyear';
- $map[$id]['params'] = array('', '', true, '%Y-%m-%d');
- break;
-
- case 'number':
- case 'decimal':
- case 'real':
- $map[$id]['type'] = 'number';
- break;
-
- case 'text':
- $map[$id]['type'] = 'longtext';
- break;
-
- default:
- if (!class_exists('Horde_Form_Type_' . $map[$id]['type'], false)) {
- $map[$id]['type'] = 'text';
- }
- break;
- }
- }
- }
- }
-
-
- if ($key) {
- return $map[$column][$key];
- } else {
- return $map[$column];
- }
- }
-
- /**
- * Return the form values of primary keys.
- */
- public function getSelected()
- {
- static $selected;
-
- if ($selected !== null) {
- return $selected;
- }
-
- foreach ($this->_primaryKey as $key) {
- if ($this->_vars->$key) {
- $params[$key] = $this->_vars->$key;
- }
- }
-
- $selected = $this->_mapper->findOne($params);
-
- if ($selected === null) {
- return PEAR::raiseError(_("Does not exists"));
- }
-
- return $selected;
- }
-
- /**
- * Get the renderer for this form, either a custom renderer or the
- * standard one.
- *
- * @param array $params A hash of renderer-specific parameters.
- *
- * @return object Horde_Form_Renderer The form renderer.
- */
- function getRenderer($params = array())
- {
- if ($this->_vars->action == 'search' || $this->_vars->action == 'search_active') {
- require_once dirname(__FILE__) . '/Form_Renderer_Helper.php';
- $renderer = new Horde_Form_Renderer_Form_Helper($params);
- } else {
- $renderer = new Horde_Form_Renderer($params);
- }
-
- return $renderer;
- }
-
- /**
- * Fetch the field values of the submitted form.
- *
- * @param Variables $vars The Variables object.
- * @param array $info Array to be filled with the submitted field
- * values.
- */
- function getInfo($vars, &$info)
- {
- if (!$this->isSubmitted()) {
- $info = array();
- return;
- }
-
- parent::getInfo($vars, $info);
-
- /* Add test cases and filter not existing filters */
- if ($this->_vars->action == 'search' || $this->_vars->action == 'search_active') {
- $fields = $this->_getFields('search');
- foreach ($info as $key => $value) {
- $name = substr($key, 0, strrpos($key, '_'));
- if (empty($value) || !in_array($name, $fields)) {
- if (substr($key, 0, 6) != 'cases_') {
- unset($info[$key],
- $info['cases_' . $key]);
- }
- continue;
- }
- switch ($info['cases_' . $key]) {
- case 'IS':
- case 'IS NOT':
- if (!defined($value)) {
- unset($info[$key],
- $info['cases_' . $key]);
- continue 2;
- }
- $value = constant($value);
- break;
-
- case 'LIKE':
- case 'NOT LIKE':
- if (strpos($value, '%') === false) {
- $value = "%$value%";
- }
- break;
- }
-
- $info[$key] = array('field' => $name,
- 'test' => $info['cases_' . $key],
- 'value' => $value);
- unset($info['cases_' . $key]);
- }
- }
- }
-
- /**
- * Return the form meta data
- */
- public function formMetaData($action)
- {
- if (method_exists($this->_mapper, 'formMeta')) {
- return $this->_mapper->formMeta($action);
- } else {
- return $this->_mapper->fields;
- }
- }
-
- /**
- * Array of field name.
- */
- protected function _getFields($action)
- {
- static $fields;
-
- if ($fields !== null) {
- return $fields;
- }
-
- if (method_exists($this->_mapper, 'formFields')) {
- $fields = $this->_mapper->formFields($action);
- } else {
- $fields = $this->_mapper->fields;
- }
-
- return $fields;
- }
-
- /**
- * Get primary key.
- */
- protected function _getPrimaryKey()
- {
- if ($this->_primaryKey === null) {
- if (method_exists($this->_mapper, 'getPrimaryKey')) {
- $this->_primaryKey = $this->_mapper->getPrimaryKey();
- } else {
- $this->_primaryKey = $this->_mapper->tableDefinition->getPrimaryKey()->columns;
- }
- }
- }
-
- /**
- * Delect selected record.
- */
- public function delete()
- {
- try {
- $this->getSelected()->delete();
- } catch (Exception $e) {
- return PEAR::raiseError($e->getMessage());
- }
- }
-
- /**
- * Create a new record.
- */
- public function create($params)
- {
- foreach ($params as $key => $value) {
- $meta = $this->_formMeta('update', $key);
- if ($meta['type'] == 'set') {
- $params[$key] = implode('|', $value);
- }
- }
-
- try {
- $this->_mapper->create($params);
- } catch (Exception $e) {
- return PEAR::raiseError($e->getMessage());
- }
- }
-
- /**
- * Update selected record.
- */
- public function update($params)
- {
- foreach ($params as $key => $value) {
- $meta = $this->_formMeta('update', $key);
- if ($meta['type'] == 'set' && is_array($value)) {
- $params[$key] = implode('|', $value);
- }
- }
-
- $selected = $this->getSelected();
- foreach ($params as $key => $value) {
- $selected->$key = $value;
- }
-
- try {
- $selected->save();
- } catch (Exception $e) {
- return PEAR::raiseError($e->getMessage());
- }
- }
-
-}
+++ /dev/null
-<?php
-/**
- * Renderer for the advanced search
- */
-class Horde_Form_Renderer_Form_Helper extends Horde_Form_Renderer
-{
- function _renderVarInputBegin($form, $var, $vars)
- {
- if ($var->description != 'cases' && $var->varName != 'horde_helper_add') {
- return;
- }
-
- parent::_renderVarInputBegin($form, $var, $vars);
- }
-
- function _renderVarInputEnd($form, $var, $vars)
- {
- if ($var->description == 'cases' && $var->varName != 'horde_helper_add') {
- echo ' ';
- return;
- }
-
- parent::_renderVarInputEnd($form, $var, $vars);
- }
-
-}
+++ /dev/null
-<?php
-/**
- * @package Horde_Rdo
- */
-
-/**
- * @package Horde_Rdo
- */
-class Horde_Rdo_Lens extends Horde_Lens implements IteratorAggregate
-{
- /**
- * Implement the IteratorAggregate pattern. When a single Rdo
- * object is iterated over, we return an iterator that loops over
- * each property of the object.
- *
- * @return ArrayIterator The Iterator instance.
- */
- public function getIterator()
- {
- return new Horde_Rdo_Iterator($this);
- }
-
-}
+++ /dev/null
-<?php
-/**
- * The Horde_Rdo_Table_Helper class provides an Rdo extension to Horde_Template
- * used to generate browsing lists for different backends.
- *
- * See the enclosed file COPYING for license information (LGPL). If you
- * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
- *
- * @author Duck <duck@obala.net>
- * @since Horde 4.0
- * @package Horde_Rdo
- */
-class Horde_Rdo_Table_Helper extends Horde_Template
-{
- /**
- * Parameters for this Template instance.
- *
- * @var array
- */
- protected $_params = array();
-
- /**
- * Mapper object that we display.
- *
- * @var Horde_Rdo_Mapper $object
- */
- protected $_mapper;
-
- /**
- * Constructor
- *
- * @param Horde_Rdo_Mapper $object Mapper instance.
- * @param array $params Template defaults.
- */
- public function __construct($params = array(), $object)
- {
- $this->_mapper = $object;
-
- $params['name'] = $object->table;
- $params['id'] = $object->table;
-
- $defaults = array(
- 'delete' => true,
- 'update' => true,
- 'columns' => null,
- 'name' => '',
- 'id' => '',
- 'page' => 0,
- 'url' => Horde::selfUrl(),
- 'img_dir' => $GLOBALS['registry']->getImageDir('horde'),
- 'sort' => array(),
- 'filter' => array(),
- );
-
- $this->_params = array_merge($defaults, $params);
-
- parent::__construct();
- $this->setOption('gettext', true);
- }
-
- /**
- * Get Rdo members.
- */
- public function getRows()
- {
- $query = $this->_prepareQuery();
- if (!empty($this->_params['perpage'])) {
- $limit = $this->_params['perpage'];
- $offset = $this->_params['page'] * $this->_params['perpage'];
- $query->limit($limit, $offset);
- }
-
- $rows = new Horde_Rdo_List($query);
-
- if (!empty($this->_params['decorator'])) {
- $decorator = $this->_params['decorator'];
- // $rows = new Horde_Lens_Iterator($rows, new $decorator());
- }
-
- return $rows;
- }
-
- /**
- * Count Rdo members.
- *
- * @param array $filter filter/search rows
- */
- public function count()
- {
- return $this->_mapper->count($this->_prepareQuery());
- }
-
- /**
- * Prepares Rdo query.
- */
- private function _prepareQuery()
- {
- $query = new Horde_Rdo_Query($this->_mapper);
-
- if (!empty($this->_params['filter'])) {
- foreach ($this->_params['filter'] as $key => $val) {
- if (is_array($val)) {
- $query->addTest($val['field'], $val['test'], $val['value']);
- } else {
- $query->addTest($key, '=', $val);
- }
- }
- }
-
- if (!empty($this->_params['sort'])) {
- if (!is_array($this->_params['sort'])) {
- $this->_params['sort'] = array($this->_params['sort']);
- }
- foreach ($this->_params['sort'] as $sort) {
- if (is_array($sort)) {
- $query->sortBy($sort[0], $sort[1]);
- } else {
- $query->sortBy($sort);
- }
- }
- }
-
- return $query;
- }
-
- /**
- * Return field information.
- */
- protected function _getFields()
- {
- if ($this->_params['columns']) {
- return $this->_params['columns'];
- } elseif (!empty($this->_params['relationships'])) {
- $fields = $this->_mapper->fields;
- foreach ($this->_mapper->relationships as $r) {
- $mapper_name = $r['mapper'];
- $mapper = new $mapper_name();
- $fields = array_merge($fields, $mapper->fields);
- }
- return $fields;
- } else {
- return $this->_mapper->fields;
- }
- }
-
- /**
- * Return field names.
- */
- protected function _listFields()
- {
- $meta = array();
- if (method_exists($this->_mapper, 'formMeta')) {
- $meta = $this->_mapper->formMeta('table');
- if ($meta instanceof PEAR_Error) {
- return $meta;
- }
- }
-
- $columns = array();
-
- $keys = $this->_getFields();
- foreach ($keys as $key) {
- if (isset($meta[$key]['humanName'])) {
- $columns[$key] = $meta[$key]['humanName'];
- } elseif ($key == 'created') {
- $columns[$key] = 'Created';
- } elseif ($key == 'updated') {
- $columns[$key] = 'Updated';
- } else {
- $columns[$key] = $key;
- }
- }
-
- return $columns;
- }
-
- /**
- * Get primary key.
- */
- protected function _getPrimaryKey()
- {
- if (method_exists($this->_mapper, 'getPrimaryKey')) {
- $keys = $this->_mapper->getPrimaryKey();
- } else {
- $keys = $this->_mapper->tableDefinition->getPrimaryKey()->columns;
- }
-
- if (empty($keys)) {
- $keys = $this->fields;
- }
-
- return $keys;
- }
-
- /**
- * Fetch template.
- *
- * @param string $template Template path.
- */
- public function fetch($template = null)
- {
- if ($template === null) {
- $template = $this->_getTemplateFile();
- }
-
- if ($template) {
- return parent::fetch($template);
- }
-
- return parent::parse($this->getTemplate());
- }
-
- public function __toString()
- {
- return $this->fetch();
- }
-
- /**
- * Fill up table data.
- */
- public function fill()
- {
- $this->set('rows', $this->getRows());
-
- if (empty($this->_scalars['img_dir'])) {
- $this->set('img_dir', $this->_params['img_dir']);
- }
-
- if (empty($this->_scalars['url'])) {
- $this->set('url', $this->_params['url']);
- }
- }
-
- /**
- * Get template path if it exists.
- *
- * @return string Template filename.
- */
- protected function _getTemplateFile()
- {
- $filename = $GLOBALS['registry']->get('templates') . DIRECTORY_SEPARATOR . $this->_params['name'] . '.html';
- if (file_exists($filename)) {
- return $filename;
- }
-
- $filename = $GLOBALS['registry']->get('templates', 'horde') . DIRECTORY_SEPARATOR . $this->_params['name'] . '.html';
- if (file_exists($filename)) {
- return $filename;
- }
-
- return false;
- }
-
- /**
- * Create template content.
- *
- * @return string $content
- */
- public function getTemplate()
- {
- $url = '<tag:url />';
- $columns = $this->_listFields();
-
- $keys = array();
- $primaryKeys = $this->_getPrimaryKey();
- foreach ($primaryKeys as $key) {
- $keys[] = $key . '=<tag:rows.' . $key . ' />';
- }
- $keys = implode('&', $keys);
-
- $content = '<table id="' . $this->_params['id'] . '" class="striped sortable" style="width: 100%;">' . "\n" .
- '<thead>' . "\n" . '<tr>' . "\n";
- if ($this->_params['update'] || $this->_params['delete']) {
- $content .= '<th class="nosort"><gettext>Actions</gettext></th>' . "\n";
- }
- foreach ($columns as $key => $name) {
- if (in_array($key, $this->_params['sort'])) {
- $content .= '<th class="sortdown">' . htmlspecialchars($name) . '</th>' . "\n";
- } else {
- $content .= '<th>' . htmlspecialchars($name) . '</th>' . "\n";
- }
- }
- $content .= '</tr>' . "\n" . '</thead>' . "\n" . '<tbody>' .
- '<loop:rows><tr>' . "\n";
-
- /* Actions. */
- if ($this->_params['update'] || $this->_params['delete']) {
- $content .= '<td class="nowrap">' . "\n";
- if ($this->_params['update']) {
- $content .= '<a class="update" href="' . Horde_Util::addParameter($url, 'action', 'update') . '&' . $keys . '">' .
- '<img src="<tag:img_dir />/edit.png" alt="<gettext>Edit</gettext>" title="<gettext>Edit</gettext>" /></a> ' . "\n";
- }
- if ($this->_params['delete']) {
- $content .= '<a class="delete" href="' . Horde_Util::addParameter($url, 'action', 'delete') . '&' . $keys . '">' .
- '<img src="<tag:img_dir />/delete.png" alt="<gettext>Delete</gettext>" title="<gettext>Delete</gettext>" /></a> ' . "\n";
- }
- $content .= '</td>' . "\n";
- }
-
- foreach ($columns as $key => $name) {
- $content .= '<td><tag:rows.' . $key . ' /></td>';
- }
-
- return $content . '</tr>' . "\n" . '</loop:rows>' . "\n" . '</tbody></table>';
- }
-
-}
+++ /dev/null
-<?php
-/**
- * @package Horde_Rdo
- */
-class Horde_Rdo_Table_Helper_Lens extends Horde_Lens
-{
- /**
- */
- private $date_format = '%x';
-
- /**
- */
- private $time_format = 'G:i';
-
- /**
- */
- public function __construct()
- {
- $this->date_format = $GLOBALS['prefs']->getValue('date_format');
- $this->time_format = $GLOBALS['prefs']->getValue('twentyFour') ? 'G:i' : 'g:ia';
- }
-
- /**
- */
- public function decorate($target)
- {
- if (!is_object($target)) {
- $target = (object)$target;
- }
-
- return parent::decorate($target);
- }
-
- /**
- */
- public function __get($key)
- {
- $value = parent::__get($key);
-
- if ($key == 'updated' || $key == 'created') {
- return strftime($this->date_format, $value) . ' ' . date($this->time_format , $value);
- }
-
- return htmlspecialchars($value);
- }
-
-}
<dir name="lib">
<dir name="Horde">
<dir name="Rdo">
- <dir name="Form">
- <dir name="Renderer">
- <file name="Helper.php" role="php" />
- </dir> <!-- /lib/Horde/Rdo/Form/Renderer -->
- <file name="Helper.php" role="php" />
- </dir> <!-- /lib/Horde/Rdo/Form -->
<dir name="Query">
<file name="Literal.php" role="php" />
</dir> <!-- /lib/Horde/Rdo/Query -->
- <dir name="Table">
- <dir name="Helper">
- <file name="Lens.php" role="php" />
- </dir> <!-- /lib/Horde/Rdo/Table/Helper -->
- <file name="Helper.php" role="php" />
- </dir> <!-- /lib/Horde/Rdo/Table -->
<file name="Base.php" role="php" />
<file name="Iterator.php" role="php" />
- <file name="Lens.php" role="php" />
<file name="List.php" role="php" />
<file name="Mapper.php" role="php" />
<file name="Query.php" role="php" />
</dependencies>
<phprelease>
<filelist>
- <install name="lib/Horde/Rdo/Form/Renderer/Helper.php" as="Horde/Rdo/Form/Renderer/Helper.php" />
- <install name="lib/Horde/Rdo/Form/Helper.php" as="Horde/Rdo/Form/Helper.php" />
<install name="lib/Horde/Rdo/Query/Literal.php" as="Horde/Rdo/Query/Literal.php" />
- <install name="lib/Horde/Rdo/Table/Helper/Lens.php" as="Horde/Rdo/Table/Helper/Lens.php" />
- <install name="lib/Horde/Rdo/Table/Helper.php" as="Horde/Rdo/Table/Helper.php" />
<install name="lib/Horde/Rdo/Base.php" as="Horde/Rdo/Base.php" />
<install name="lib/Horde/Rdo/Iterator.php" as="Horde/Rdo/Iterator.php" />
- <install name="lib/Horde/Rdo/Lens.php" as="Horde/Rdo/Lens.php" />
<install name="lib/Horde/Rdo/List.php" as="Horde/Rdo/List.php" />
<install name="lib/Horde/Rdo/Mapper.php" as="Horde/Rdo/Mapper.php" />
<install name="lib/Horde/Rdo/Query.php" as="Horde/Rdo/Query.php" />
+++ /dev/null
-<?php
-/**
- * Rdo backend tester
- *
- * Copyright 2006-2007 Duck <duck@obala.net>
- *
- * See the enclosed file COPYING for license information (LGPL). If you
- * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
- *
- * @author Duck <duck@obala.net>
- * @package Horde_Rdo
- */
-
-@define('HORDE_BASE', dirname(__FILE__) . '/../../');
-require_once HORDE_BASE . '/lib/base.php';
-
-if (!Horde_Auth::isAdmin()) {
- die('Permission denied');
-}
-
-require_once 'Horde/Autoloader.php';
-require_once dirname(__FILE__) . '/Form.php';
-require_once dirname(__FILE__) . '/Table.php';
-
-$what2process = Horde_Util::getFormData('what2process', 'Rdo');
-$table = Horde_Util::getFormData('table', 'horde_user');
-$self_url = Horde_Util::addParameter(Horde::selfUrl(false), array('table' => $table, 'what2process' => $what2process), null, false);
-
-if ($what2process == 'Rdo') {
-
- /**
- */
- class Test extends Horde_Rdo_Base {
- }
-
- /**
- */
- class TestMapper extends Horde_Rdo_Mapper {
-
- /**
- * TestMapper constructor. Sets table name.
- */
- public function __construct($table)
- {
- $this->_table = $table;
- }
-
- public function getAdapter()
- {
- return Horde_Rdo_Adapter::factory('pdo', $GLOBALS['conf']['sql']);
- }
-
- }
-
- $mapper = new TestMapper($table);
-} else {
- /**
- */
- $mapper = $table;
-}
-
-$action = Horde_Util::getFormData('action');
-
-$filter = Horde_Util::getFormData('filter', array());
-$title = sprintf('%s: %s', $action, $table);
-
-$vars = Horde_Variables::getDefaultVariables();
-$form = Horde_Form_Helper::factory($what2process, $vars, $title, null, $mapper);
-
-switch ($action) {
-case 'delete':
- $form->delete();
- $notification->push(_("Deleted"), 'horde.success');
- header('Location: ' . $self_url);
- exit;
-
-case 'create':
- if (!$form->validate()) {
- break;
- }
- $form->getInfo($vars, $info);
- unset($info['action']);
- $form->create($info);
- $notification->push(_("Created"), 'horde.success');
- header('Location: ' . $self_url);
- exit;
-
-case 'update':
- $test = $form->getSelected();
- if (!$form->isSubmitted()) {
- foreach ($test as $key => $value) {
- $vars->set($key, $value);
- }
- } elseif ($form->validate()) {
- $form->getInfo($vars, $info);
- unset($info['action']);
- $form->update($info);
- $notification->push(_("Updated"), 'horde.success');
- header('Location: ' . $self_url);
- exit;
- }
- break;
-
-case 'search':
-case 'search_active':
- $form->getInfo($vars, $filter);
- $self_url = Horde_Util::addParameter($self_url, 'action', 'search');
- break;
-}
-
-Horde::addScriptFile('stripe.js', 'horde', true);
-require HORDE_TEMPLATES . '/common-header.inc';
-
-echo "<h1>$what2process</h1>";
-
-if (!in_array($action, array('create', 'update'))) {
- $template = Horde_Table_Helper::factory($what2process,
- array('filter' => $filter,
- 'url' => $self_url),
- $mapper);
- $template->fill();
- echo $template->fetch();
-}
-
-if (in_array($action, array('create', 'update', 'search', 'search_active'))) {
- $form->renderActive(null, null, $self_url, 'post');
-}
-
-require HORDE_TEMPLATES . '/common-footer.inc';
+++ /dev/null
-<?php
-/**
- * Select testing backend and testing table
- *
- * Copyright 2006-2007 Duck <duck@obala.net>
- *
- * See the enclosed file COPYING for license information (LGPL). If you
- * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
- *
- * @author Duck <duck@obala.net>
- * @package Horde_Rdo
- */
-
-@define('HORDE_BASE', dirname(__FILE__) . '/../../');
-require_once HORDE_BASE . '/lib/base.php';
-
-if (!Horde_Auth::isAdmin()) {
- die('Permission denied');
-}
-
-require_once 'Horde/Form.php';
-require_once 'Horde/Form/Renderer.php';
-require_once 'Horde/Array.php';
-
-$vars = Horde_Variables::getDefaultVariables();
-
-$dbh = DB::connect($conf['sql']);
-$tables = $dbh->getListOf('tables');
-$tables = Horde_Array::valuesToKeys($tables);
-
-$actions = array('create' => _("Create"),
- 'search' => _("Search"),
- 'search_active' => _("Search Active"));
-
-$form = new Horde_Form($vars, _("Select table"), 'select_table');
-$form->addVariable(_("Table"), 'table', 'enum', true, false, false, array($tables));
-$form->addVariable(_("Action"), 'action', 'enum', true, false, false, array($actions));
-$form->addVariable(_("Process type"), 'what2process', 'enum', true, false, false, array(array('Rdo' => 'Rdo',
- 'DB' => 'DB')));
-
-require HORDE_TEMPLATES . '/common-header.inc';
-
-$form->renderActive(null, null, 'crud.php', 'post');
-
-require HORDE_TEMPLATES . '/common-footer.inc';