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(); }
public function __construct($tableName, $fieldset, $whereCondition, $method = 'post', $debug = false) { parent::rex_form($tableName, $fieldset, $whereCondition, $method, $debug); if (OOAddon::isAvailable('metainfo')) { require_once rex_path::addon('metainfo', 'extensions/extension_art_metainfo.inc.php'); $sqlCols = rex_asd_news_config::getConfig('sql'); $this->sqlFields = _rex_a62_metainfo_sqlfields('asd_', 'AND (`p`.`restrictions` = "" OR p.`restrictions` LIKE "%|' . $this->getValue($sqlCols['category']) . '|%") '); } }
/** * added the metafields * @return string */ public static function addFields() { global $REX; $class = ''; if (OOAddon::isAvailable('tinymce')) { $class = 'tinyMCEEditor'; } elseif (OOAddon::isAvailable('ckeditor')) { $class = 'ckeditor'; } return self::checkErrorMessage(a62_add_field('translate:content_category', 'asd_category', 2, '', 3, '', 'SELECT `name`, `id` FROM ' . rex_asd_news_config::getTableCategory()), a62_add_field('translate:asd_news_picture', 'asd_picture', 3, '', 6, ''), a62_add_field('translate:asd_news_text', 'asd_text', 4, 'class=' . $class, 2, '')); }
public static function addNewstoSitemap($params) { $mainArticle = rex_asd_news_config::getConfig('article'); $mainArticle = new rex_article($mainArticle); foreach (rex_asd_news::getByWhere(array('clang' => null)) as $news) { /** @var rex_asd_news $news */ $fragment = array('loc' => $news->getUrl(), 'lastmod' => $news->getPublishDate()->format('c'), 'changefreq' => self::calc_article_changefreq($news->getPublishDate()->getTimestamp()), 'priority' => self::calc_article_priority($mainArticle->getValue('id'), $mainArticle->getValue('clang'), $mainArticle->getValue('path') . '|' . $news->getValue('id'))); $params['subject'][rex_asd_news_config::getName()][] = $fragment; } return $params['subject']; }
/** * @param $addons,... */ public static function setSeoAddon($addons) { $addons = func_get_args(); foreach ($addons as $addon) { if (OOAddon::isAvailable($addon)) { self::$seoAddon = $addon; // Kompatibilität erhalten rex_asd_news::$SEO_ADDON = self::$seoAddon; } } self::$seoSettings = self::setSeoSettings(); if (self::$seoAddon) { self::$urlControlPlugin = OOPlugin::isAvailable(self::$seoAddon, 'url_control'); } // Kompatibilität erhalten rex_asd_news::$SEO_URL_CONTROL = self::$urlControlPlugin; }
/** * return the redaxo url for the list * @param $clang * @return string */ private static function getBaseUrl($clang) { return 'index.php?list=232cc606fc1a5fb5cf5badfc8e360ae0&page=' . rex_asd_news_config::getName() . '&subpage=news&clang=' . $clang . '&func='; }
$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` '); } }
$func = rex_request('func'); if ($page == rex_asd_news_config::getName()) { require_once rex_path::addon(rex_asd_news_config::getName(), 'classes/rex_asd_news_ajaxHandler.php'); rex_register_extension('PAGE_HEADER', 'asd_news_setjQueryTags'); // Ajax Publish if ($func == 'publish') { $id = rex_post('id', 'int'); $clang = rex_post('clang', 'int'); try { $time = new DateTime(rex_post('time')); } catch (Exception $e) { $time = new DateTime(); } echo rex_asd_news_ajaxHandler::publishNews($id, $clang, $time); exit; } } // add / remove News if lang added or removed rex_register_extension('CLANG_ADDED', 'asd_news_addClang'); rex_register_extension('CLANG_DELETED', 'asd_news_deleteClang'); // check if image in use rex_register_extension('OOMEDIA_IS_IN_USE', 'rex_asd_news_utils::isImageInUse'); // autoload Plugins $plugins = OOPlugin::getAvailablePlugins(rex_asd_news_config::getName()); foreach ($plugins as $name) { if (file_exists(rex_path::plugin(rex_asd_news_config::getName(), $name, 'pages' . DIRECTORY_SEPARATOR . $name))) { $I18N->appendFile(rex_path::plugin(rex_asd_news_config::getName(), $name, 'lang' . DIRECTORY_SEPARATOR)); array_push($REX['ADDON'][rex_asd_news_config::getName()]['SUBPAGES'], array($name, $I18N->msg(rex_asd_news_config::getName() . '_' . $name))); } } }
$list->addTableColumnGroup(array(40, '*', 80)); $list->setColumnLabel('field_id', $I18N->msg('minfo_field_label_id')); $list->setColumnLayout('field_id', array('<th class="rex-small">###VALUE###</th>', '<td class="rex-small">###VALUE###</td>')); $list->setColumnLabel('name', $I18N->msg('minfo_field_label_name')); $list->setColumnParams('name', array('func' => 'edit', 'field_id' => '###field_id###')); $list->addColumn('delete', $I18N->msg('delete'), -1, array('<th>' . $I18N->msg('minfo_field_label_function') . '</th>', '<td>###VALUE###</td>')); $list->setColumnParams('delete', array('func' => 'delete', 'field_id' => '###field_id###')); $list->addLinkAttribute('delete', 'onclick', "return confirm('" . $I18N->msg('delete') . " ?');"); $list->setNoRowsMessage($I18N->msg('minfo_metainfos_not_found')); $list->show(); } elseif ($func == 'edit' || $func == 'add') { echo '<script src="../' . $REX['MEDIA_ADDON_DIR'] . '/metainfo/metainfo.js" type="text/javascript"></script>'; $form = new rex_asd_a62_tableExpander($prefix, $metaTable, $REX['TABLE_PREFIX'] . '62_params', $I18N->msg('minfo_field_fieldset'), 'field_id=' . $field_id); /** @var rex_form_control_element $controlElement */ if (($controlElement = $form->getControlElement()) !== null) { if ($controlElement->saved() || $controlElement->applied()) { $fieldset = str_replace('_save', '', $controlElement->saveElement->attributes['name']); $formPosts = rex_post($fieldset); $sqlColumn = $formPosts['asd_news_sql_column']; $name = 'asd_' . $formPosts['name']; if ($sqlColumn) { rex_asd_news_config::$config['sql'][$sqlColumn] = $name; rex_asd_news_config::saveConfig(); } } } if ($func == 'edit') { $form->addParam('field_id', $field_id); } $form->show(); }
require rex_path::src('layout' . DIRECTORY_SEPARATOR . 'top.php'); rex_title($I18N->msg('asd_news'), $REX['ADDON']['pages'][rex_asd_news_config::getName()]); $page = rex_request('page', 'string'); $subpage = rex_request('subpage', 'string'); $func = rex_request('func', 'string'); if (!$subpage) { $subpage = 'news'; } $BaseDir = rex_asd_news_config::getBaseUrl(); $baseDirFunc = rex_asd_news_config::getBaseUrl($func); if (!rex_asd_news_config::getConfig('article')) { echo rex_warning($I18N->msg('asd_news_no_article_selected')); } switch ($subpage) { case 'news': case 'rubric': case 'faq': $path = rex_path::addon(rex_asd_news_config::getName(), 'pages' . DIRECTORY_SEPARATOR . $subpage . '.php'); break; case 'settings': case 'metainfo': if ($REX['USER']->hasPerm(rex_asd_news_config::getName() . '[' . $subpage . ']') || $REX['USER']->isAdmin()) { $path = rex_path::addon(rex_asd_news_config::getName(), 'pages' . DIRECTORY_SEPARATOR . $subpage . '.php'); } break; default: $path = rex_path::plugin(rex_asd_news_config::getName(), $subpage, 'pages' . DIRECTORY_SEPARATOR . $subpage . '.php'); break; } require $path; require rex_path::src('layout' . DIRECTORY_SEPARATOR . 'bottom.php');
`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(); if ($sql->hasError()) { $msg = 'MySQL-Error: ' . $sql->getErrno() . '<br />'; $msg .= $sql->getError(); $REX['ADDON']['install'][rex_asd_news_config::getName()] = 0; $REX['ADDON']['installmsg'][rex_asd_news_config::getName()] .= $msg; } if (!OOAddon::isAvailable('metainfo')) { $REX['ADDON']['install'][rex_asd_news_config::getName()] = 0; $REX['ADDON']['installmsg'][rex_asd_news_config::getName()] .= 'Metainfo Addon nicht installiert'; } else { 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::addFields()) { $REX['ADDON']['install'][rex_asd_news_config::getName()] = 0; $REX['ADDON']['installmsg'][rex_asd_news_config::getName()] .= $error; } }
/** * 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; }
}); }); </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);
/** * @return string */ public function getButtons() { if ($this->getPageCount() <= 1) { return ''; } switch (rex_asd_news_config::getConfig('pagination')) { case 'site-number': return $this->getPagination(); case 'pager': default: return $this->getPager(); } }
/** * @param string $file * @return string */ public static function getModulCode($file) { $file = rex_path::addon(rex_asd_news_config::getName(), 'modules/' . $file); return file_get_contents($file); }
value="<?php echo rex_asd_news_config::getConfig('pagination-css-id'); ?> "> </p> </div> <div class="rex-form-row"> <p class="rex-form-text"> <label><?php echo $I18N->msg('asd_news_pager'); ?> </label> <input class="rex-form-text" type="text" name="pager-css-id" value="<?php echo rex_asd_news_config::getConfig('pager-css-id'); ?> "> </p> </div> </div> </div> <div class="rex-form-row"> <p class="rex-form-submit rex-form-submit-2"> <input class="rex-form-submit" type="submit" id="sendit" name="sendit" value="<?php echo $I18N->msg('submit'); ?> "/>