示例#1
0
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();
 }
示例#3
0
 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, ''));
 }
示例#5
0
 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'];
 }
示例#6
0
 /**
  * @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&amp;page=' . rex_asd_news_config::getName() . '&amp;subpage=news&amp;clang=' . $clang . '&amp;func=';
 }
示例#8
0
$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`
        ');
    }
}
示例#9
0
    $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)));
        }
    }
}
示例#10
0
    $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();
}
示例#11
0
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');
示例#12
0
  `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;
    }
}
示例#13
0
 /**
  * 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;
 }
示例#14
0
文件: news.php 项目: Sysix/asd_news

        });

    });

    </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);
示例#15
0
 /**
  * @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();
     }
 }
示例#16
0
 /**
  * @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);
 }
示例#17
0
                                               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');
?>
"/>