/** * publish a news by id & clang * if publish-lang == all => $clang is not needed, but must be set * @param $id * @param $clang * @param DateTime $time * @return string */ public static function publishNews($id, $clang, DateTime $time) { /** * @var array $REX * @var i18n $I18N */ global $REX, $I18N; $sql = new rex_sql(); $sql->setTable(rex_asd_news_config::getTable()); $sql->setWhere('`id` = ' . $id . ' AND `clang` = ' . $clang); if (rex_asd_news_config::getConfig('published-lang') == 'all') { $sql->setWhere('`id` = ' . $id); } $sql->setValue('publishedAt', $time->format('Y-m-d H:i')); $sql->setValue('publishedBy', $REX['USER']->getValue('user_id')); $sql->setValue('status', 1); $sql->update(); $sql->setQuery('SELECT * FROM `' . rex_asd_news_config::getTable() . '` WHERE `id` = ' . $id . ' AND `clang` = ' . $clang); return ' <td>' . $id . '</td> <td>' . $sql->getValue('title') . '</td> <td><span>' . $time->format('d.m.Y H:i') . '</span></td> <td><a href="' . self::getBaseUrl($clang) . 'unpublish&id=' . $id . '" class="rex-online" onclick="return confirm(\'' . $I18N->msg('asd_news_really_unpublish') . '\');">' . $I18N->msg('asd_news_published') . '</a></td> <td><a href="' . self::getBaseUrl($clang) . 'edit&id=' . $id . '">' . $I18N->msg('edit') . '</a></td> <td><a href="' . self::getBaseUrl($clang) . 'delete&id=' . $id . '" onclick="return confirm(\'' . $I18N->msg('asd_news_really_delete') . '\');">' . $I18N->msg('delete') . '</a></td> <td><a href="' . self::getBaseUrl($clang) . 'status&id=' . $id . '" class="rex-online">' . $I18N->msg('status_online') . '</a></td>'; }
function asd_news_addClang($params) { global $REX; $id = $params['id']; $name = $params['name']; $now = new DateTime(); $error = false; $sql = new rex_sql(); $sql->setQuery('SELECT * FROM `' . rex_asd_news_config::getTable() . '` WHERE `clang` = ' . $REX['START_CLANG_ID']); for ($i = 1; $i <= $sql->getRows(); $i++) { $save = new rex_sql(); $save->setTable(rex_asd_news_config::getTable()); $save->setValues($sql->getRow()); $save->setValue('clang', $id); $save->setValue('createdAt', $now->format('Y-m-d H:i:s')); $save->setValue('updatedAt', $now->format('Y-m-d H:i:s')); $save->setValue('publishedAt', '0000-00-00 00:00:00'); $save->setValue('createdBy', $REX['USER']->getValue('user_id')); $save->setValue('updatedBy', $REX['USER']->getValue('user_id')); $save->setValue('publishedBy', 0); $save->setValue('status', 0); unset($save->values['news_id']); if (!$save->insert()) { $error = $save->getError(); } } if ($error) { echo rex_warning('ASD News: Neuigkeiten in der Sprache "' . $name . '" konnten nicht angelegt werden<br />' . $error); } else { echo rex_info('ASD News: Neuigkeiten in der Sprache "' . $name . '" wurden angelegt'); } }
/** * check if entrys exists for the addon * @return bool */ public static function checkEntrys() { global $REX; $sql = new rex_sql(); $sql->setTable($REX['TABLE_PREFIX'] . 'url_control_generate'); $sql->setWhere('`table` = "' . rex_asd_news_config::getTable() . '"'); $sql->select('1'); return (bool) $sql->getRows(); }
/** * @param array $params * @return array */ public static function isImageInUse($params) { /** @var i18n $I18N */ global $I18N; $sql = new rex_sql(); $sqlCols = rex_asd_news_config::getConfig('sql'); $sql->setQuery('SELECT `id`, `title` FROM `' . rex_asd_news_config::getTable() . '` WHERE `' . $sqlCols['picture'] . '` = "' . $params['filename'] . '"'); if ($sql->getRows()) { $message = $I18N->msg('asd_news') . '<br /><ul>'; for ($i = 1; $i <= $sql->getRow(); $i++) { $message .= ' <li> <a href="index.php?page=' . rex_asd_news_config::getName() . '&func=edit&id=' . $sql->getValue('id') . '"> ' . $sql->getValue('title') . ' </a> </li>'; } $message .= '</ul>'; $params['subject'][] = $message; } return $params['subject']; }
}); }); </script>'; } if ($func == 'add' || $func == 'edit') { if (rex_asd_news_config::isControlPlugin()) { foreach (array('REX_FORM_SAVED', 'REX_FORM_DELETED') as $extension) { rex_register_extension($extension, 'url_generate::generatePathFile'); } } $title = $func == 'add' ? $I18N->msg('add') : $I18N->msg('edit'); $form = new rex_news_form(rex_asd_news_config::getTable(), ucfirst($title), 'id=' . $id . ' AND clang = ' . $clang); $form->divId = 'asd_news-addon-editmode'; $field = $form->addTextField('title'); $field->setLabel($I18N->msg('asd_news_title')); if (OOAddon::isAvailable('metainfo')) { $form->addRawField($form->getMetainfoExtension()); } $form->addHiddenField('clang', (int) $clang); $form->addHiddenField('updatedAt', $now->format('Y-m-d H:i:s')); $form->addHiddenField('updatedBy', $REX['USER']->getValue('user_id')); $form->addParam('clang', (int) $clang); $form->addParam('id', (int) $id); if ($func == 'add') { $id = rex_asd_news::getLastNewsId() + 1; } $form->addHiddenField('id', $id);
$metaCols = false; foreach ($rows as $row) { if ($row['name'] == 'category') { $metaCols = true; break; } } if (!OOAddon::isAvailable('metainfo')) { $REX['ADDON']['update'][rex_asd_news_config::getName()] = 0; $REX['ADDON']['updatemsg'][rex_asd_news_config::getName()] = 'Metainfo Addon nicht gefunden'; } if (OOAddon::isAvailable('metainfo') && $metaCols) { include_once __DIR__ . '/classes/metainfo/rex_asd_metainfo_install.php'; rex_asd_metainfo_install::setProperty(); if ($error = rex_asd_metainfo_install::addFields()) { $REX['ADDON']['update'][rex_asd_news_config::getName()] = 0; $REX['ADDON']['updatemsg'][rex_asd_news_config::getName()] .= $error; } else { // Einträge Übernehmen $sql->setQuery('UPDATE `' . rex_asd_news_config::getTable() . '` SET `asd_category` = `category`, `asd_picture` = `picture`, `asd_text` = `text`'); // Alte Felder löschen $sql->setQuery('ALTER TABLE `' . rex_asd_news_config::getTable() . '` DROP `category`, DROP `picture`, DROP `text` '); } }
<?php $prefix = 'asd_'; $metaTable = rex_asd_news_config::getTable(); /** * MetaForm Addon * @author markus[dot]staab[at]redaxo[dot]de Markus Staab * * @package redaxo4 * @version svn:$Id$ */ require_once rex_path::addon('metainfo', 'classes/class.rex_table_expander.inc.php'); require_once rex_path::addon(rex_asd_news_config::getName(), 'classes/metainfo/rex_asd_a62_tableExpander.php'); require_once rex_path::addon(rex_asd_news_config::getName(), 'classes/metainfo/rex_form_asd_restrictions_element.php'); //------------------------------> Parameter if (empty($prefix)) { trigger_error('Fehler: Prefix nicht definiert!', E_USER_ERROR); exit; } if (empty($metaTable)) { trigger_error('Fehler: metaTable nicht definiert!', E_USER_ERROR); exit; } $Basedir = dirname(__FILE__); $field_id = rex_request('field_id', 'int'); //------------------------------> Feld loeschen if ($func == 'delete') { $field_id = rex_request('field_id', 'int', 0); if ($field_id != 0) { if (a62_delete_field($field_id)) { echo rex_info($I18N->msg('minfo_field_successfull_deleted'));
<?php include_once rex_path::addon('asd_news', 'classes/rex_asd_news_config.php'); rex_asd_news_config::init('asd_news', 'asd_news', 'asd_news_category'); $REX['ADDON']['install'][rex_asd_news_config::getName()] = 1; $REX['ADDON']['installmsg'][rex_asd_news_config::getName()] = ''; /** @var rex_sql $sql */ $sql = rex_sql::factory(); $sql->setQuery(' CREATE TABLE IF NOT EXISTS `' . rex_asd_news_config::getTable() . '` ( `news_id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL, `clang` int(11) NOT NULL, `title` varchar(255) NOT NULL, `status` int(1) NOT NULL, `publishedAt` DATETIME NOT NULL, `publishedBy` int(11) NOT NULL, `createdAt` DATETIME NOT NULL, `createdBy` int(11) NOT NULL, `updatedAt` DATETIME NOT NULL, `updatedBy` int(11) NOT NULL, PRIMARY KEY (`news_id`), UNIQUE KEY (`id`, `clang`) );'); $sql->setQuery(' CREATE TABLE IF NOT EXISTS `' . rex_asd_news_config::getTableCategory() . '` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, PRIMARY KEY (`id`) );'); rex_asd_news_config::createDataConfigIfNotExists();
/** * return the newest News-Id * * @return int */ public static function getLastNewsId() { $sql = new rex_sql(); $sql->setQuery('SELECT `id` FROM `' . rex_asd_news_config::getTable() . '` ORDER BY id DESC LIMIT 0, 1'); if ($sql->getRows()) { return (int) $sql->getValue('id'); } return 0; }
<?php include_once rex_path::addon('asd_news', 'classes/rex_asd_news_config.php'); rex_asd_news_config::init('asd_news', 'asd_news', 'asd_news_category'); $REX['ADDON']['install'][rex_asd_news_config::getName()] = 0; $REX['ADDON']['installmsg'][rex_asd_news_config::getName()] = ''; include_once rex_path::addon(rex_asd_news_config::getName(), 'classes/metainfo/rex_asd_metainfo_install.php'); rex_asd_metainfo_install::setProperty(); if ($error = rex_asd_metainfo_install::delFields()) { $REX['ADDON']['installmsg'][rex_asd_news_config::getName()] .= $error; $REX['ADDON']['install'][rex_asd_news_config::getName()] = 1; } else { $sql = rex_sql::factory(); $sql->setQuery('DROP TABLE IF EXISTS `' . rex_asd_news_config::getTable() . '`'); $sql->setQuery('DROP TABLE IF EXISTS `' . rex_asd_news_config::getTableCategory() . '`'); } if ($sql->hasError()) { $msg = 'MySQL-Error: ' . $sql->getErrno() . '<br />'; $msg .= $sql->getError(); $REX['ADDON']['install'][rex_asd_news_config::getName()] = 1; $REX['ADDON']['installmsg'][rex_asd_news_config::getName()] .= $msg; }