Ejemplo n.º 1
0
 private function onReply(Module_Comments $mod_c, GWF_News $news, GWF_Comments $comments)
 {
     $ipp = 10;
     $nItems = $comments->getVar('cmts_count');
     $nPages = GWF_PageMenu::getPagecount($ipp, $nItems);
     $page = Common::clamp(Common::getGetInt('cpage'), 1, $nPages);
     $href = GWF_WEB_ROOT . 'news-comments-' . $news->getID() . '-' . $news->displayTitle() . '-page-' . $page . '.html';
     $me = $mod_c->getMethod('Reply');
     $me instanceof Comments_Reply;
     return $me->onReply($href);
 }
Ejemplo n.º 2
0
 private function getItems(GWF_Language $lang)
 {
     $back = array();
     $items = GWF_News::getNews($this->module->cfgFeedItemcount(), 0, 1, "news_date DESC", false);
     $langid = $lang->getID();
     foreach ($items as $item) {
         $item instanceof GWF_News;
         $t = $item->getTranslationB($langid);
         $back[] = array('title' => $t['newst_title'], 'descr' => GWF_Message::display($t['newst_message'], true, false, false), 'guid' => Common::getAbsoluteURL($item->hrefShow($lang), false), 'link' => Common::getAbsoluteURL($item->hrefShow($lang), false), 'date' => $item->displayDate(), 'pub_date' => $item->rssDate());
     }
     return $back;
 }
Ejemplo n.º 3
0
 public function execute()
 {
     if (false === ($news = GWF_News::getByID(Common::getGetString('newsid', '0')))) {
         return $this->module->error('err_news');
     }
     #		$oldhidden = $news->isHidden();
     $newhidden = Common::getGetString('hidden') === '1';
     if (false === $news->saveOption(GWF_News::HIDDEN, $newhidden)) {
         return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__));
     }
     return $this->module->message('msg_hidden_' . ($newhidden ? 1 : 0));
 }
Ejemplo n.º 4
0
 public static function newNews($date, $catid, $userid, $langid, $title, $message, $fake = false, $options = 0)
 {
     $news = new GWF_News(array('news_date' => $date, 'news_catid' => $catid, 'news_userid' => $userid, 'news_readby' => ':', 'news_options' => $options));
     if ($fake === false) {
         if (false === $news->insert()) {
             return false;
         }
     } else {
         $news->setVar('news_id', '0');
     }
     $transdata = array('newst_langid' => $langid, 'newst_newsid' => $news->getID(), 'newst_title' => $title, 'newst_message' => $message, 'newst_options' => '0', 'newst_threadid' => '0');
     if ($fake === false) {
         $trans = new GWF_NewsTranslation($transdata);
         if (false === $trans->insert()) {
             return false;
         }
     } else {
         // 			$news->setVar('news_trans', array($langid=>$transdata));
         $news->setVar('news_userid', GWF_User::getByID($userid));
         $news->translations = array($transdata);
     }
     return $news;
 }
Ejemplo n.º 5
0
 public function templateShow()
 {
     if (false === ($news = GWF_News::getNewsQuick($this->module->getNewsPerPage(), $this->catid, $this->page, GWF_Language::getCurrentID()))) {
         return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__));
     }
     $date = count($news) > 0 ? $news[0]['news_date'] : GWF_Settings::getSetting('gwf_site_birthday') . '090000';
     $date = GWF_Time::displayDate($date);
     GWF_Website::setPageTitle($this->module->lang('pt_news', array($date)));
     GWF_Website::setMetaTags($this->module->lang('mt_news', array($date)));
     GWF_Website::setMetaDescr($this->module->lang('md_news', array($this->page, $this->nPages)));
     //		$mod_forum = GWF_Module::getModule('Forum', true);
     $tVars = array('news' => $news, 'titles' => GWF_News::getTitlesQuick($this->catid, GWF_Language::getCurrentID()), 'cats' => GWF_News::getCategories(), 'catid' => $this->catid, 'cat' => GWF_HTML::display($this->catTitle), 'page_menu' => $this->getPageMenu(), 'page' => $this->page, 'can_sign' => $this->module->canSignNewsletter(GWF_Session::getUser()), 'href_sign_news' => $this->module->hrefSignNewsletter(), 'may_add' => GWF_User::isAdminS() || GWF_User::isStaffS(), 'href_add' => $this->module->hrefAddNews());
     return $this->module->templatePHP('show.php', $tVars);
 }
Ejemplo n.º 6
0
 private function templateOverview()
 {
     $tVars = array('news' => GWF_News::getNews($this->module->getNewsPerAdminPage(), 0, $this->page, $this->orderby, true), 'orderby' => $this->by, 'orderdir' => $this->dir, 'orderurl' => GWF_WEB_ROOT . 'news/admin/page/1/by/%BY%/%DIR%', 'page_menu' => $this->getPageMenu());
     return $this->module->templatePHP('admin.php', $tVars);
 }
Ejemplo n.º 7
0
 public function newsToForum(GWF_News $news, $visible = true)
 {
     if (false === ($poster = $news->getUser())) {
         return GWF_HTML::error('News_Edit', 'News_Edit::newsToForum(): Nobody as Poster');
     }
     // Get News root.
     if (false === ($news_root = $this->getNewsForumRoot())) {
         return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__));
     }
     $root_id = $news_root->getID();
     $lang_roots = array();
     foreach ($news->getTranslations() as $t) {
         if (false === ($lang = GWF_Language::getByID($t['newst_langid']))) {
             return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__));
         }
         if (false === ($lang_board = $this->getNewsForumLangCached($lang, $root_id))) {
             return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__));
         }
         $iso = $lang->getISO();
         $tid = (int) $t['newst_threadid'];
         $lang_roots[$iso] = $lang_board;
         $bid = $lang_board->getID();
         $thread = GWF_ForumThread::getByID($tid);
         $title = $t['newst_title'];
         $message = $t['newst_message'];
         $gid = 0;
         $options = GWF_ForumThread::GUEST_VIEW;
         $options |= $visible ? 0 : GWF_ForumThread::INVISIBLE;
         if (!$visible) {
             if ($thread !== false) {
                 $thread->setVisible($visible);
             }
         } else {
             if ($thread === false) {
                 if (false === ($thread = GWF_ForumThread::newThread($poster, $title, $message, $options, $bid, $gid))) {
                     return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__));
                 }
             } else {
                 if (false === ($post = $thread->getFirstPost())) {
                     return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__));
                 }
                 if (false === $post->saveVar('post_message', $message)) {
                     return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__));
                 }
             }
             $thread->setVisible($visible);
         }
         $tid = $thread === false ? 0 : $thread->getID();
         $langid = $lang->getID();
         $newsid = $news->getID();
         // Save threadid
         if (false === GDO::table('GWF_NewsTranslation')->update("newst_threadid={$tid}", "newst_langid={$langid} AND newst_newsid={$newsid}")) {
             return GWF_HTML::err('ERR_DATABASE', array(__FILE__, __LINE__));
         }
     }
     // Set Boards Visible
     $news_root->setVisible($visible);
     foreach ($lang_roots as $iso => $board) {
         $board->setVisible($visible);
     }
     return '';
 }
Ejemplo n.º 8
0
 public function showAccountLinkNews()
 {
     //		$db = gdo_db();
     //		$users = GWF_TABLE_PREFIX.'user';
     ////		$history = GWF_TABLE_PREFIX.'wc_user_history';
     //		$regat = GWF_TABLE_PREFIX.'wc_regat';
     //		$sites = GWF_TABLE_PREFIX.'wc_site';
     ////		$time = GWF_Time::getTimeWeekStart();
     //		$today = GWF_Time::getDate(GWF_Date::LEN_DAY);
     //		$query =
     //			"SELECT user_name, site_name, regat_solved ".
     //			"FROM $regat ".
     //			"LEFT JOIN $users ON user_id=regat_uid ".
     //			"LEFT JOIN $sites ON site_id=regat_sid ".
     //			"WHERE regat_linkdate='$today' AND regat_solved>0";
     //		if (false === ($result = $db->queryAll($query))) {
     //			return '';
     //		}
     $result = $this->getFirstLinkNews();
     if (count($result) === 0) {
         return '';
     }
     $msg = '';
     foreach ($result as $row) {
         $un = $row['fili_username'];
         $sn = $row['fili_sitename'];
         //			$site_link = sprintf('[url=%s]%s[/url]', GWF_WEB_ROOT, urlencode($sn), GWF_HTML::display($sn));
         $site_link = sprintf('[b]%s[/b]', $sn);
         $perc = sprintf('%.02f', $row['fili_percent']);
         $profile_link = sprintf('[url=/profile/%s]%s[/url]', $un, $un);
         $msg .= $this->lang('newsrow_link', array($profile_link, $site_link, $perc)) . PHP_EOL;
         //			$msg .= sprintf('%s', $this->lang('newsrow_link', sprintf('<a href="%sprofile/%s">%s</a>', GWF_WEB_ROOT, urlencode($un), GWF_HTML::display($row['fili_username'])), , )).PHP_EOL;
     }
     $title = $this->lang('newsrow_linkt');
     $wechalluser = $this->cfgWeChallUser();
     $english = GWF_Language::getEnglish();
     $news = GWF_News::newNews(GWF_Time::getDate(GWF_Date::LEN_SECOND), 0, $wechalluser->getID(), $english->getID(), $title, $msg, true);
     return Module_News::displayItem($news);
 }
Ejemplo n.º 9
0
 private function onPreview()
 {
     $form = $this->getForm();
     if (false !== ($errors = $form->validate($this->module))) {
         return $errors . $this->templateAdd();
     }
     $news = GWF_News::preview(GWF_Time::getDate(GWF_Date::LEN_SECOND), $form->getVar('catid'), GWF_Session::getUserID(), $form->getVar('langid'), $form->getVar('title'), $form->getVar('message'));
     $preview = Module_News::displayPreview($news);
     //		if ($form->getVar('newsletter') !== false) {
     $preview = $this->previewNewsletter($news) . $preview;
     //		}
     return $preview . $this->templateAdd();
 }
Ejemplo n.º 10
0
 private static function sendNewsletter(Module_News $module, GWF_News $item)
 {
     $ft = $item->getFirstTranslation();
     $ts = $item->getTranslations();
     $first_id = (int) $ft['newst_langid'];
     $newsid = $item->getID();
     $sender_mail = $module->cfgSender();
     $micros = $module->cfgSleepMillis() * 1000;
     //		$newsletter = GDO::table('GWF_Newsletter');
     $db = gdo_db();
     $nlt = GWF_TABLE_PREFIX . 'newsletter';
     $query = "SELECT * FROM {$nlt}";
     if (false === ($result = $db->queryRead($query))) {
         return;
     }
     //		self::log('Sender email is: '.$sender_mail);
     //		$recs = $newsletter->selectAll();
     //		$recs = $newsletter->queryAll();
     while (false !== ($row = $db->fetchAssoc($result))) {
         //		foreach ($recs as $rec)
         //		{
         //			$rec instanceof GWF_Newsletter;
         $rec = new GWF_Newsletter($row);
         if ($rec->hasBeenMailed($newsid)) {
             continue;
         }
         $langid = $rec->getVar('nl_langid');
         $uselid = $first_id;
         foreach ($ts as $tlid => $t) {
             if ($langid === $tlid) {
                 $uselid = $tlid;
                 break;
             }
         }
         $iso = GWF_Language::getISOByID($uselid);
         $receive_mail = $rec->getVar('nl_email');
         self::notice("Sending EMail to {$receive_mail} ({$iso})");
         $title = GWF_HTML::display($ts[$uselid]['newst_title']);
         $message = GWF_Message::display($ts[$uselid]['newst_message'], true, false, false);
         $username = GWF_HTML::display($rec->getUsername());
         $unsign = $unsign = $rec->getUnsignAnchor();
         $body = $module->langISO($iso, 'newsletter_wrap', array($username, $unsign, $title, $message));
         $mail = new GWF_Mail();
         $mail->setSender($sender_mail);
         $mail->setReceiver($receive_mail);
         $mail->setSubject($module->langISO($iso, 'newsletter_title'));
         $mail->setBody($body);
         //			if (GWF_DEBUG_EMAIL) {
         //				$success = true;
         //			}
         //			else
         //			{
         if (false !== ($user = $rec->getUser())) {
             $success = $mail->sendToUser($user);
         }
         //			}
         //			else if ($rec->isHTML()) {
         //				$success = $mail->sendAsHTML();
         //			} else {
         //				$success = $mail->sendAsText();
         //			}
         if (!$success) {
             self::error("Can not send email to {$receive_mail}.");
             return;
         } else {
             $rec->setBeenMailed($newsid);
         }
         usleep($micros);
         //			return;
     }
     $db->free($result);
     $item->saveOption(GWF_News::MAILED, true);
 }
Ejemplo n.º 11
0
 public static function displayBox($amount = true, $catid = 0, $orderby = 'date', $orderdir = 'DESC')
 {
     if (false === ($module = self::getNewsModule())) {
         return GWF_HTML::err('ERR_MODULE_MISSING', array('NEWS'));
     }
     # Amount
     if (is_bool($amount)) {
         $amount = $module->getNewsPerBox();
     } else {
         $amount = Common::clamp($amount, 1);
     }
     # Display Template
     return self::displayBoxB(GWF_News::getNews($amount, $catid, 1, $orderby, $orderdir));
 }