Example #1
0
 * MetaForm Addon
 * @author markus[dot]staab[at]redaxo[dot]de Markus Staab
 *
 * @package redaxo4
 * @version $Id: index.inc.php,v 1.5 2008/03/26 18:54:34 kills Exp $
 */
// Parameter
$Basedir = dirname(__FILE__);
$page = rex_request('page', 'string');
$subpage = rex_request('subpage', 'string');
$func = rex_request('func', 'string');
// Include Header and Navigation
require $REX['INCLUDE_PATH'] . '/layout/top.php';
// Build Subnavigation
$subpages = array(array('', 'Artikel'), array('categories', 'Kategorien'), array('media', 'Medien'));
rex_title('Metainformationen erweitern', $subpages);
// Include Current Page
switch ($subpage) {
    case 'media':
        $prefix = 'med_';
        break;
    case 'categories':
        $prefix = 'cat_';
        break;
    default:
        $prefix = 'art_';
}
$metaTable = a62_meta_table($prefix);
require $Basedir . '/field.inc.php';
// Include Footer
require $REX['INCLUDE_PATH'] . '/layout/bottom.php';
function a62_delete_field($fieldIdOrName)
{
    global $REX, $I18N;
    // Löschen anhand der FieldId
    if (is_int($fieldIdOrName)) {
        $fieldQry = 'SELECT * FROM ' . $REX['TABLE_PREFIX'] . '62_params WHERE field_id=' . $fieldIdOrName . ' LIMIT 2';
        $invalidField = $I18N->msg('minfo_field_error_invalid_fieldid');
    } else {
        if (is_string($fieldIdOrName)) {
            $fieldQry = 'SELECT * FROM ' . $REX['TABLE_PREFIX'] . '62_params WHERE name="' . addslashes($fieldIdOrName) . '" LIMIT 2';
            $invalidField = $I18N->msg('minfo_field_error_invalid_name');
        } else {
            trigger_error('MetaInfos: Unexpected type for $fieldIdOrName!', E_USER_ERROR);
        }
    }
    // Feld existiert?
    $sql = rex_sql::factory();
    $fieldInfos = $sql->getArray($fieldQry);
    if ($sql->getRows() != 1) {
        return $invalidField;
    }
    $name = $fieldInfos[0]['name'];
    $field_id = $fieldInfos[0]['field_id'];
    $prefix = a62_meta_prefix($name);
    $metaTable = a62_meta_table($prefix);
    // Spalte existiert?
    $sql->setQuery('SELECT * FROM ' . $metaTable . ' LIMIT 1');
    if (!in_array($name, $sql->getFieldnames())) {
        return $I18N->msg('minfo_field_error_invalid_name');
    }
    $sql->setTable($REX['TABLE_PREFIX'] . '62_params');
    $sql->setWhere('field_id=' . $field_id);
    if (!$sql->delete()) {
        return $sql->getError();
    }
    $tableManager = new rex_a62_tableManager($metaTable);
    return $tableManager->deleteColumn($name);
}