oc-server3/htdocs/newstopic.php
2012-08-16 21:04:13 +02:00

99 lines
3.0 KiB
PHP

<?php
/***************************************************************************
* For license information see doc/license.txt
*
* Unicode Reminder メモ
*
* Display some status information about the server and Opencaching
***************************************************************************/
require('./lib2/web.inc.php');
require_once($opt['rootpath'] . '../lib/htmlpurifier-4.2.0/library/HTMLPurifier.auto.php');
$tpl->name = 'newstopic';
$tpl->menuitem = MNU_START_NEWS_POST;
require($opt['rootpath'] . 'lib2/logic/captcha.inc.php');
require($opt['rootpath'] . 'lib2/mail.class.php');
$topicid = isset($_REQUEST['topic']) ? $_REQUEST['topic'] : 1;
$newstext = isset($_REQUEST['newstext']) ? $_REQUEST['newstext'] : '';
$newshtml = isset($_REQUEST['newshtml']) ? $_REQUEST['newshtml']+0 : 0;
$email = isset($_REQUEST['email']) ? $_REQUEST['email'] : '';
$captcha_id = isset($_REQUEST['captcha_id']) ? $_REQUEST['captcha_id'] : '';
$captcha = isset($_REQUEST['captcha']) ? $_REQUEST['captcha'] : '';
$emailok = false;
$tpl->assign('email_error', 0);
$tpl->assign('captcha_error', 0);
$tpl->assign('confirm', 0);
if (isset($_REQUEST['submit']))
{
$emailok = is_valid_email_address($email) ? true : false;
$captchaok = checkCaptcha($captcha_id, $captcha);
if ($emailok == true && $captchaok == true)
{
// filtern und ausgabe vorbereiten
$tpl->assign('confirm', 1);
if ($newshtml == 0)
$newstext = htmlspecialchars($newstext, ENT_COMPAT, 'UTF-8');
else
{
$purifier = new HTMLPurifier();
$newstext = $purifier->purify($newstext);
}
$sTopic = sql_value("SELECT `name` FROM `news_topics` WHERE `id`='&1'", '', $topicid);
$tpl->assign('newstopic', $sTopic);
$tpl->assign('newstext', $newstext);
// in DB schreiben
sql("INSERT INTO `news` (`content`, `topic`, `display`) VALUES ('&1', '&2', '&3')", $newstext, $topicid, 0);
$rs = sql("SELECT `email` FROM `user` WHERE `admin`\\&'&1'='&1'", ADMIN_USER);
while ($r = sql_fetch_assoc($rs))
{
// send confirmation
$mail = new mail();
$mail->name = 'newstopic';
$mail->to = $r['email'];
$mail->subject = $translate->t('A newsentry was created on opencaching', '', basename(__FILE__), __LINE__);
$mail->assign('email', $email);
$mail->assign('newstopic', $sTopic);
$mail->assign('newstext', $newstext);
$mail->send();
}
sql_free_result($rs);
// erfolg anzeigen
$tpl->display();
exit;
}
if ($emailok != true)
$tpl->assign('email_error', 1);
if ($captchaok != true)
$tpl->assign('captcha_error', 1);
}
$tpl->assign('newstext', $newstext);
$tpl->assign('newshtml', $newshtml);
$tpl->assign('email', $email);
$tpl->assign('topic', $topicid);
// topics erstellen
$rs = sql("SELECT `id`, `name` FROM `news_topics` ORDER BY `id` ASC");
$tpl->assign_rs('newsTopics', $rs);
sql_free_result($rs);
// captcha
$captcha = createCaptcha();
$tpl->assign('captcha_id', $captcha['id']);
$tpl->assign('captcha_filename', $captcha['filename']);
//make the template and send it out
$tpl->display();
?>