Esempio n. 1
0
 /**
  * Zeigt die Einträge an
  *
  * @param int $max_entries_pp Anzahl Einträge pro Seite
  */
 private function _view($max_entries_pp)
 {
     //Daten definiere und initialisieren
     $this->_tplfile = 'news.tpl';
     $news_array = array();
     //Seite herausfinden
     if (isset($this->_gpc['GET']['page']) && is_numeric($this->_gpc['GET']['page']) && $this->_gpc['GET']['page'] > 0) {
         $page = $this->_gpc['GET']['page'];
     } else {
         $page = 1;
     }
     //Daten holen
     $news_array = $this->_msbox->getEntries($max_entries_pp, $page, 'DESC', 'ASC', $this->_timeformat);
     $this->_mysql->query('SELECT COUNT(*) as many FROM `news` WHERE `news_ref_ID` = \'0\'');
     $entries = $this->_mysql->fetcharray('num');
     $pagesnav_array = Page::get_static_pagesnav_array($entries[0], $max_entries_pp, $this->_gpc['GET']);
     $this->_smarty->assign('entrys', $entries[0]);
     foreach ($news_array as $key => $value) {
         //Nur news-Daten ohne $news_array['many'] abchecken
         $news_array[$key]['news_content'] = $this->_smilie->show_smilie(nl2br(htmlentities($value['news_content'])), $this->_mysql);
         foreach ($value['comments'] as $ckey => $cvalue) {
             $news_array[$key]['comments'][$ckey]['news_content'] = $this->_smilie->show_smilie(nl2br(htmlentities($cvalue['news_content'])), $this->_mysql);
         }
     }
     $this->_smarty->assign('newsarray', $news_array);
     $this->_smarty->assign('pages', $pagesnav_array);
 }
 /**
  * Zeigt die Einträge an
  *
  * @param int $max_entries_pp Anzahl Einträge pro Seite
  */
 private function _view($max_entries_pp)
 {
     $this->_tplfile = 'gbook.tpl';
     $gbook_array = array();
     if (isset($this->_gpc['GET']['page']) && is_numeric($this->_gpc['GET']['page']) && $this->_gpc['GET']['page'] > 0) {
         $page = $this->_gpc['GET']['page'];
     } else {
         $page = 1;
     }
     $gbook_array = $this->_msbox->getEntries($max_entries_pp, $page, 'DESC', 'ASC', $this->_timeformat);
     $this->_mysql->query('SELECT COUNT(*) as many FROM `gbook` WHERE `gbook_ref_ID` = \'0\'');
     $entries = $this->_mysql->fetcharray('num');
     $this->_mysql->query('SELECT COUNT(*) as many FROM `gbook` WHERE `gbook_ref_ID` != \'0\'');
     $comments = $this->_mysql->fetcharray('num');
     $pagesnav_array = Page::get_static_pagesnav_array($entries[0], $max_entries_pp, $this->_gpc['GET']);
     //Inhalt parsen (Smilies) und an Smarty-Array übergeben
     foreach ($gbook_array as $key => $value) {
         $gbook_array[$key] = array('ID' => $value['gbook_ID'], 'title' => htmlentities($value['gbook_title']), 'content' => $this->_smilie->show_smilie(htmlentities($value['gbook_content']), $this->_mysql), 'name' => htmlentities($value['gbook_name']), 'time' => $value['gbook_time'], 'email' => htmlentities($value['gbook_email']), 'hp' => htmlentities($value['gbook_hp']), 'number_of_comments' => $value['number_of_comments']);
         $count = 0;
         //Kommentare durchackern
         foreach ($value['comments'] as $ckey => $cvalue) {
             $gbook_array[$key]['comments'][$ckey] = array('ID' => $cvalue['gbook_ID'], 'title' => htmlentities($cvalue['gbook_title']), 'content' => $this->_smilie->show_smilie(htmlentities($cvalue['gbook_content']), $this->_mysql), 'name' => htmlentities($cvalue['gbook_name']), 'time' => $cvalue['gbook_time'], 'email' => htmlentities($cvalue['gbook_email']), 'hp' => htmlentities($cvalue['gbook_hp']));
             $count++;
         }
     }
     $this->_smarty->assign('gbook', $gbook_array);
     $this->_smarty->assign('pages', $pagesnav_array);
     $this->_smarty->assign('entries', $entries[0]);
     $this->_smarty->assign('comments', $comments[0]);
 }
 /**
  * Liefert der Path der Kategorien aus von der angegebenen Kategorie bis zur Hauptseite.
  * Das zurückgelieferte Array sieht etwa folgendermassen aus:
  * array(0 => Hauptseite, 1 => Kategorie 1, 2 => Kategorie 1.1, 3 => ...)
  *
  * @param int $cat_ID KategorieID der untersten Kategorie
  * @param bool[optional] $inc_catID Gibt an, ob die Kategorie mit ID = $cat_ID auch in der Wurzel vorkommen soll
  * @param bool[optional] $inc_hs Gibt an, ob der Eintrag 'Hauptseite' auch in der Wurzel vorkommen soll
  * @return array $root_array Path der Kategorien.
  */
 private function _getRoot($cat_ID, $inc_catID = false, $inc_hs = true)
 {
     /* Wurzel auslesen */
     $tmp_arr = array();
     if ($inc_catID == false) {
         $this->_mysql->query("SELECT `ref_ID` FROM `gallery_categories` WHERE `ID` = '{$cat_ID}' LIMIT 1");
         $data = $this->_mysql->fetcharray('assoc');
         $tmp_ID = $data['ref_ID'];
     } else {
         $tmp_ID = $cat_ID;
     }
     for ($i = 0; $tmp_ID != 0; $i++) {
         $this->_mysql->query("SELECT `ID`,`ref_ID`,`name` FROM `gallery_categories` WHERE `ID` = '{$tmp_ID}' LIMIT 1");
         $tmp_arr[$i] = $this->_mysql->fetcharray('assoc');
         $tmp_ID = $tmp_arr[$i]['ref_ID'];
     }
     if ($inc_hs == true) {
         /*Hauptseite noch einfügen*/
         $this->_smarty->config_load('textes.de.conf', 'Gallery');
         $gallery_textes = $this->_smarty->get_config_vars();
         $tmp_arr[++$i] = array('ID' => '0', 'name' => $gallery_textes['mainsite']);
         return array_reverse($tmp_arr);
     } else {
         return null;
     }
 }
 /**
  * Sendet das Formular zum Eintragen der Nachricht. Je nach Parameter werden Standartwerte oder POST-Daten an
  * das Formular weitergegeben.
  *
  * @param boolean $first_form
  * @param string $error
  */
 private function _send_entryform($first_form = true, $error = null)
 {
     $this->_tpl_file = "mailform.tpl";
     /* Daten ermitteln */
     if ($first_form == false) {
         /* Daten aus Post-Array */
         $data = array('entry_id' => $this->_gpc['POST']['entry_id'], 'entry_title' => $this->_gpc['POST']['title'], 'entry_content' => $this->_gpc['POST']['content'], 'entry_name' => $this->_gpc['POST']['name'], 'entry_email' => $this->_gpc['POST']['email'], 'sessioncode' => $this->_sessioncode);
     } else {
         /* Standard-Einträge */
         $mail_vars = $this->_configvars['Mail'];
         $data = array('entry_id' => $this->_gpc['GET']['entry_id'], 'entry_title' => $mail_vars['entry_title'], 'entry_content' => $mail_vars['entry_content'], 'entry_name' => $mail_vars['entry_name'], 'entry_email' => $mail_vars['entry_email'], 'sessioncode' => $this->_sessioncode);
     }
     /* Error-Einträge */
     if (isset($error)) {
         $data['dump_errors'] = true;
         $data['error_title'] = $this->_configvars['Form_Error']['error_in_form'];
         $data['error_contents'] = $error;
     }
     $hash = $this->_captcha->get_pic(4);
     $data['captcha_img'] = $hash;
     $this->_mysql->query("SELECT `{$this->mail_tbl['column_name']}` FROM `{$this->mail_tbl['table']}` WHERE `{$this->mail_tbl['column_ID']}` = '{$data['entry_id']}' LIMIT 1");
     $member_array = $this->_mysql->fetcharray();
     $data['reciver_name'] = $member_array[$this->mail_tbl['column_name']];
     $this->_smarty->assign($data);
 }
 /**
  * Zeigt die Einträge an
  *
  * @param int $max_entries_pp Anzahl Einträge pro Seite
  */
 private function _view($max_entries_pp)
 {
     //Datei definieren und initalisieren
     $this->_tplfile = 'news.tpl';
     $news_array = array();
     //Seite herausfinden
     if (isset($this->_gpc['GET']['page']) && is_numeric($this->_gpc['GET']['page']) && $this->_gpc['GET']['page'] > 0) {
         $page = $this->_gpc['GET']['page'];
     } else {
         $page = 1;
     }
     //Daten hollen
     $news_array = $this->_msbox->getEntries($max_entries_pp, $page, 'DESC', 'ASC', $this->_timeformat);
     $this->_mysql->query('SELECT COUNT(*) as many FROM `news` WHERE `news_ref_ID` = \'0\'');
     $entries = $this->_mysql->fetcharray('num');
     $pagesnav_array = Page::get_static_pagesnav_array($entries[0], $max_entries_pp, $this->_gpc['GET']);
     //Inhalt parsen (Smilies) und an Smarty-Array übergeben
     foreach ($news_array as $key => $value) {
         $news_array[$key] = array('ID' => $value['news_ID'], 'title' => htmlentities($value['news_title']), 'content' => $this->_smilie->show_smilie(nl2br(htmlentities($value['news_content'])), $this->_mysql), 'name' => htmlentities($value['news_name']), 'time' => $value['news_time'], 'email' => htmlentities($value['news_email']), 'hp' => htmlentities($value['news_hp']), 'number_of_comments' => $value['number_of_comments']);
         $count = 0;
         //Kommentare durchackern
         foreach ($value['comments'] as $ckey => $cvalue) {
             $news_array[$key]['comments'][$ckey] = array('ID' => $cvalue['news_ID'], 'title' => htmlentities($cvalue['news_title']), 'content' => $this->_smilie->show_smilie(nl2br(htmlentities($cvalue['news_content'])), $this->_mysql), 'name' => htmlentities($cvalue['news_name']), 'time' => $cvalue['news_time'], 'email' => htmlentities($cvalue['news_email']), 'hp' => htmlentities($cvalue['news_hp']));
             $count++;
         }
     }
     $this->_smarty->assign('news', $news_array);
     $this->_smarty->assign('pages', $pagesnav_array);
     $this->_smarty->assign('entries', $entries[0]);
 }
 /**
  * Gibt die Navigation in Form eines Arrays zurück
  *
  * @return array Navigation
  */
 private function _getMenues()
 {
     static $nav_arr = null;
     /* Navigation nur Aufrufen, falls dies noch nicht getan wurde */
     if (!is_array($nav_arr)) {
         $nav_arr = array();
         $topid_arr = array();
         $page = new Page($this->_smarty, $this->_mysql);
         $this->_mysql->query("SELECT `menu_topid`, COUNT(*) as 'count' FROM `menu` GROUP BY `menu_topid`");
         $i = 0;
         while (($data = $this->_mysql->fetcharray('assoc')) !== false) {
             $topid_arr[$i] = (int) $data['menu_topid'];
             $i++;
         }
         $page->let_build_menu_array($topid_arr, $nav_arr, false, true);
     }
     return $nav_arr;
 }
 /**
  * Zeigt die einzelnen Contents an.
  *
  * @param int $number Anzahl Einträge pro Seite
  */
 private function _view($number = 20)
 {
     $this->_tplfile = 'module.tpl';
     if ($this->_isformsend()) {
         $this->_updmods();
     }
     $this->_mysql->query("SELECT COUNT(*) as 'count' FROM `modules`");
     $count = $this->_mysql->fetcharray('assoc');
     $count = $count['count'];
     $page = Page::get_current_page($this->_gpc['GET']);
     $pages_nav = Page::get_static_pagesnav_array($count, $number, $this->_gpc['GET']);
     $start = ($page - 1) * $number;
     $this->_mysql->query("SELECT `modules_ID`, `modules_name`, `modules_file`, `modules_template_support`, `modules_mail_support`, `modules_status` FROM `modules` LIMIT {$start}, {$number}");
     $this->_mysql->saverecords('assoc');
     $modules_data = $this->_mysql->get_records();
     $this->_smarty->assign('modules', $modules_data);
     $this->_smarty->assign('pages', $pages_nav);
     $this->_smarty->assign('info', $this->_getinfo(true));
 }
Esempio n. 8
0
 /**
  * Ueberprueft ob sich jemand einloggt 
  *
  * @param array $post_array $_POST-Daten
  * @return boolean Antwort, ob sich jemand einloggt.
  * @uses Mysql Für die Verbindung zur Mysql-DB
  * @uses Smarty Als Template-System
  */
 public function check4login(&$post_array)
 {
     //Login-Formular gesendet?
     if (isset($post_array['login']) && $post_array['login'] == "Anmelden") {
         $login_data = $this->_getlogindata($post_array);
         if (is_array($login_data)) {
             //Benutzername und Passwort ueberpruefen
             $this->_mysql->query("SELECT `user_ID` FROM `admin_users` WHERE `user_name` = '{$login_data['name']}' LIMIT 1");
             if (($data = $this->_mysql->fetcharray('assoc')) === false) {
                 $this->_smarty->assign('login_error', $this->_textes['failname']);
                 $this->_smarty->display('login.tpl');
             } else {
                 $this->_mysql->query("SELECT `user_ID` FROM  `admin_users` WHERE `user_name` = '{$login_data['name']}' AND `user_pw` = '{$login_data['password_encrypted']}' LIMIT 1");
                 $data = $this->_mysql->fetcharray();
                 if (is_numeric($data[0])) {
                     $this->_user_id = $data[0];
                     $this->_session->create_session($data[0]);
                     //Sektion der Sprachdatei weitergeben für die Texte im Template
                     $this->_smarty->assign('section', 'Login');
                     $this->_smarty->assign('forward_link', "?" . $this->_session->get_sessionstring());
                     $this->_smarty->display('forward.tpl');
                     $this->_smarty->display('forward.tpl');
                 } elseif ($data == false) {
                     $this->_smarty->assign('login_error', $this->_textes['failpw']);
                     $this->_smarty->display('login.tpl');
                 } else {
                     /* Query zwar richtig, aber user_ID ungültig */
                     $this->_smarty->assign('login_error', $this->_textes['userinvalid']);
                     $this->_smarty->display('login.tpl');
                 }
             }
             return true;
         } else {
             $this->_smarty->assign('login_error', $this->_textes['noentry']);
             $this->_smarty->display('login.tpl');
             return true;
         }
     } else {
         return false;
     }
 }
Esempio n. 9
0
 /**
  * Prüft auf spezielle Aktionen durch
  *
  */
 private function _check_spec_action()
 {
     $modulname = '';
     if ($this->_is_admin == true) {
         $menu_tbl = 'admin_menu';
         $mod_tbl = 'admin_modules';
     } else {
         $menu_tbl = 'menu';
         $mod_tbl = 'modules';
     }
     if (key_exists('mail', $this->_gpc['GET'])) {
         $modulname = 'mailmodule';
     } elseif (key_exists('image', $this->_gpc['GET'])) {
         $modulname = 'image_send';
     }
     if ($modulname != '') {
         $query = "SELECT `{$menu_tbl}`.`menu_ID` FROM `{$menu_tbl}`,`{$mod_tbl}` " . "WHERE `{$mod_tbl}`.`modules_name` = '{$modulname}' AND `{$mod_tbl}`.`modules_ID` = `{$menu_tbl}`.`menu_page` " . "AND `{$menu_tbl}`.`menu_pagetyp` = 'mod' LIMIT 1";
         $this->_mysql->query($query);
         $data = $this->_mysql->fetcharray('num');
         $this->_smarty_array['local_link'] = $this->_nav_id = (int) $data[0];
     }
 }
 /**
  * Initialisiert den Thumb
  *
  */
 private function _initThumb($thumb)
 {
     //Eintrag zur ID vorhanden?
     $this->_mysql->query("SELECT `filename` FROM `bilder` WHERE `bilder_ID` = '{$thumb}' LIMIT 1");
     $mysql_data = $this->_mysql->fetcharray();
     //Ueberpruefung, ob ein Eintrag vorhanden ist
     if (empty($mysql_data)) {
         //Fehlerbild ausgeben, weil kein Eintrag vorhanden ist
         $this->_initErrImg(100, 80, $this->_img_textes['no_id']);
         return;
     }
     //Existiert kein Thumb, wird eins erstellt
     if (!is_file(THUMB_DIR . $mysql_data['filename'])) {
         $orgImg = new Image(IMAGE_DIR_ORIGN . $mysql_data['filename']);
         $bild_data = $orgImg->send_infos();
         $newSize = $this->_calcSize($bild_data['width'], $bild_data['height'], THUMB_MAXWIDTH, THUMB_MAXHEIGHT);
         $orgImg->copy($newSize['width'], $newSize['height'], THUMB_DIR . $mysql_data['filename'], "jpeg");
         unset($orgImg);
     }
     //Bild ausgeben
     $this->_img = new Image(THUMB_DIR . $mysql_data['filename']);
     $this->_img->send_image();
 }
Esempio n. 11
0
 /**
  * Erstellt via RegEx die Smilies im Text und gibt sie retour.
  * 
  * Grober Ablauf (zur Nachkontrolle):
  * 1. Auslesen der Smilies aus der Tabelle
  * 2. Ueberpruefen ob das Smilie ueberhaupt noch existiert (is_file), wenn nicht, auslassen
  * 3. RegEx der Texte
  * 4. Rueckgabe des Textes. 
  *
  * @param string $text Der zu parsende Text
  * @param Mysql $mysql_link Verbindung zur DB
  * @return string
  * @uses Mysql
  */
 public function show_smilie($text, $mysql_link)
 {
     $query = "SELECT * FROM smilies ORDER BY smilies_sign";
     $mysql_link->query($query);
     $return_text = $text;
     while ($smilies_data = $mysql_link->fetcharray()) {
         if (is_file($this->dir_smilies . $smilies_data["smilies_file"])) {
             $return_text = str_replace($smilies_data["smilies_sign"], '<img src="' . $this->dir_smilies . $smilies_data["smilies_file"] . '" alt="' . $smilies_data["smilies_file"] . '"></img>', $return_text);
         }
     }
     return $return_text;
 }
 /**
  * Gibt die Navigation in Form eines Arrays zurück
  *
  * @param int $start Start
  * @param int $number Anzahl
  * @param boolean $unit_topid untergeordnete Menus eines Topid-Menus (topid = 0) nicht trennen
  * @return array Navigation
  */
 private function _getMenues($start = null, $number = null, $unit_topid = true)
 {
     static $nav_arr = null;
     static $count_nav = null;
     /* Navigation nur Aufrufen, falls dies noch nicht getan wurde */
     if (!is_array($nav_arr)) {
         $nav_arr = array();
         $topid_arr = array();
         $page = new Page($this->_smarty, $this->_mysql);
         $this->_mysql->query("SELECT `menu_topid`, COUNT(*) as 'count' FROM `menu` GROUP BY `menu_topid`");
         $i = 0;
         while (($data = $this->_mysql->fetcharray('assoc')) !== false) {
             $topid_arr[$i] = (int) $data['menu_topid'];
             $i++;
         }
         $page->let_build_menu_array($topid_arr, $nav_arr, false, true, true, array('menu_position', 'menu_pagetyp', 'menu_display'));
         $count_nav['all'] = count($nav_arr);
         $count_nav['top'] = array();
         $i = 0;
         $count_nav['top'][0] = 0;
         foreach ($nav_arr as $value) {
             if ($value['menu_topid'] == 0) {
                 //$i = $value['menu_ID'];
                 $i++;
                 $count_nav['top'][$i] = 1;
             } else {
                 $count_nav['top'][$i]++;
             }
         }
     }
     /* Hier wird nun der Bereich ausgewertet, welcher Teil des Menus zurückgegeben werden soll */
     if (isset($start)) {
         /* ist $unit_tropid true, wird eine topid = 0 und die darunterliegenden Menupunkte NICHT
          * getrennt, auch wenn die Anzahl der Menupunkte grösser ist als $number
          * Hat z.B. news (topid = 0) 10 darunterliegende Menupunkte, aber $number ist 7, wird news nicht
          * aufgeteilt, sondern als Einheit bewahrt. */
         if ($unit_topid == true) {
             $start = (int) $start;
             $count_start = 0;
             /*$i ist das Startelement von $nav_arr*/
             /* Die Anzahl Menupunkte für ein Topid (topid-menupunkt und darunterliegende)
              * sind in $count_nav['top'] aufgelistet. In dieser Schleife werden nun die
              * Anzahl Menupunkte zusammengezählt (speichern in $count_start), bis $start
              * erreicht wird. Ist $count_start nun grösser als $start, spielt das insofern
              * keine Rolle, weil die Topids zusammengehalten werden. */
             for ($i = 0; $count_start < $start && $i < count($count_nav['top']); $i++) {
                 $count_start += $count_nav['top'][$i];
             }
             if (isset($number)) {
                 $number = (int) $number;
                 $count_number = 0;
                 /* Selbes Vorgehen wie bei der vorherigen For-Schleife */
                 for ($j = $i; $count_number < $count_start + $number && $j < count($count_nav['top']); $j++) {
                     $count_number += $count_nav['top'][$j];
                 }
                 return array_slice($nav_arr, $count_start, $count_number);
             } else {
                 return array_slice($nav_arr, $count_start);
             }
         } else {
             /* Topids werde nicht zusammengehalten => einfaches Aufsplitten der Menues */
             if (isset($number)) {
                 return array_slice($nav_arr, $start, $number);
             } else {
                 return array_slice($nav_arr, $start);
             }
         }
     }
     /* Ohne Angabe von $start wird die gesammte Navigation zurückgegeben */
     return $nav_arr;
 }