yakamara / redaxo_xform

XForm für redaxo4
22 stars 21 forks source link

Datensatz kopieren #170

Open olien opened 11 years ago

olien commented 11 years ago

Ich fände es toll wenn es eine Möglichkeit für den Redakteur geben würde bestehende Datensätze zu kopieren. Dies würde ich benötigen um z.B. "einfach" wiederkehrende Termine erstellen zu können.

LG Oliver

hirbod commented 11 years ago

+1

darwin26 commented 10 years ago
function rr_extended_list($_params)
{
  global $REX, $I18N;

  if(rex_get('func') == 'duplicate' AND ($id = rex_get('data_id', 'int')))
  {

    $sql = rex_sql::factory();
    # $sql->debugsql = TRUE;
    $sql->setTable($_params['subject']->params['table_name']);
    $sql->setWhere('id='.$id);
    $sql->select('*');

    if($sql->getRows())
    {
         $fields = $sql->getFieldNames();
         $iSql = new rex_sql;
         # $iSql->debugsql = TRUE;
         $iSql->setTable($_params['subject']->params['table_name']);

         foreach ($fields as $field) {
             if ($field != 'id') {
                 $iSql->setValue($field, mysql_real_escape_string($sql->getValue($field)));
             }
         }

         $iSql->insert();
    }

    header('Location: '.str_replace('&', '&', $_params['subject']->getUrl()));
    exit;
  }

  $_params['subject']->removeColumn('duplicate');
  $_params['subject']->addColumn('duplicate', '', 50, array('<th class="duplicate">###VALUE###</th>','<td>###VALUE###</td>'));
  $_params['subject']->setColumnFormat('duplicate' ,'custom', create_function(
    '$params',
    '$list = $params["list"];
     return \'<a href="\'.$list->getUrl(array("func" => "duplicate")).\'&data_id=###id###">kopieren</a>\';'
  ));
}
rex_register_extension('XFORM_DATA_LIST', 'rr_extended_list');
hirbod commented 10 years ago

Vllt mal als PR?