/**
  * 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&amp;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&amp;id=' . $id . '">' . $I18N->msg('edit') . '</a></td>
     <td><a href="' . self::getBaseUrl($clang) . 'delete&amp;id=' . $id . '" onclick="return confirm(\'' . $I18N->msg('asd_news_really_delete') . '\');">' . $I18N->msg('delete') . '</a></td>
     <td><a href="' . self::getBaseUrl($clang) . 'status&amp;id=' . $id . '" class="rex-online">' . $I18N->msg('status_online') . '</a></td>';
 }
示例#2
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();
 }
示例#4
0
 /**
  * @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() . '&amp;func=edit&amp;id=' . $sql->getValue('id') . '">
         ' . $sql->getValue('title') . '
     </a>
 </li>';
         }
         $message .= '</ul>';
         $params['subject'][] = $message;
     }
     return $params['subject'];
 }
示例#5
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);
示例#6
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`
        ');
    }
}
示例#7
0
<?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'));
示例#8
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()] = 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();
示例#9
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;
 }
示例#10
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;
}