<?php
/**
 * This file is part of
 * pragmaMx - Web Content Management System.
 * Copyright by pragmaMx Developer Team - http://www.pragmamx.org
 *
 * pragmaMx is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Revision: 1.10.2.2
 * Author: tora60
 * Date: 2008/01/23 12:02:06
 * modificated by reddragon
 */

defined('mxMainFileLoaded') or die('access denied');
include_once("includes/mxNewsFunctions.php");
/**
 * -----------------------------------------------------------------------------
 * Einstellungen fuer den Block
 */


//##############################################################################
//######   HINWEIS:                                                   ##########
//######   Wenn eine beliebige Zahl definiert wurde, und  alle Tags   ##########
//######   in den News enthalten sind, wird das Layout durch die      ##########
//######   Tabellen in den News beeinflusst                           ##########
//##############################################################################
// die ersten Teile des Artikeltextes anzeigen,
//		- "-1" fuer vollstaendigen Beitragsaufmacher,
//		- 0 fuer nein, oder
//		- eine beliebige Zahl, die die Menge der angezeigten Zeichen definiert
//		HTML-Tags, ausser <br> werden entfernt und nicht mitgerechnet
$showintro = "-1";
// Alle Tags ausser <br> & <img> entfernen 1 setzen
$showalltags = 0;


// Bilder im Text anzeigen, wenn $showintro angeschaltet ist
$showpics = true;


// Buttonleiste anzeigen
$showbuttons = 1;


// Veroeffentlichungsdatum anzeigen
$showdate = 1;


// Kategorie zusammen mit der Artikelueberschrift anzeigen
$showcattitle = 1;


//#################################################
//####  Funktion leider noch nicht gegeben  #######
//#################################################
// Thema anzeigen
$showtopic = 1;


// die groesse der Thema-Graphik
$showtopicsizze = "15%";


// Link zum gesammten Artikel
$readcomplete = 1;


// Anzahl der Spalten
$showcolumns = 2;


// Anzahl der angezeigten Artikel
// - eine beliebige Zahl, oder
// - die globale Variable $GLOBALS['storyhome']
$storynum = $GLOBALS['storyhome'];


// Links zu Suche etc. anzeigen
$showextendedlinks = 0

;
// Blockcache erlauben
$mxblockcache = true;


/**
 * ENDE Einstellungen fuer den Block
 * -----------------------------------------------------------------------------
 */

global $prefix, $bgcolor1, $bgcolor2, $bgcolor3, $anonymous, $tipath, $thename;

if ($GLOBALS["multilingual"] == 1) {
    if (ereg("german", $GLOBALS["currentlang"])) $thislang = "german";
    else $thislang = $GLOBALS["currentlang"];
    $querylang = "AND (alanguage LIKE '" . $thislang . "%' OR alanguage='')";
} else {
    $querylang = "";
}
$qry = "SELECT s.sid, cat.catid, aid, s.title, time, DATE_ADD(time, INTERVAL 2 DAY) AS expire, now() AS jetzt, hometext, bodytext, comments, s.counter, s.topic, informant, notes, acomm, cat.title AS title1
        FROM ${prefix}_stories AS s
        LEFT JOIN ${prefix}_stories_cat AS cat ON s.catid = cat.catid
        WHERE (ihome='0' OR s.catid='0') AND time <= now() $querylang
        ORDER BY s.time DESC, s.sid DESC
        limit 0,$storynum";

$result = sql_query($qry);
if (!$result) {
    return;
}

$count = 0;
$out = '';
$width = ceil(100 / $showcolumns);
while ($story = sql_fetch_assoc($result)) {
    // Textlaengen
    // $introcount = strlen(strip_tags($story['hometext']));
    // $fullcount = strlen(strip_tags($story['bodytext']));
    $totalcount = mxValueToString(strlen(strip_tags($story['hometext'])) + strlen(strip_tags($story['bodytext'])), 0);



//###################################################################################################
//####################################  Textabfrage  ################################################
//###################################################################################################

//###################################################################################################
//####################################  ABFRAGE 1  ##################################################
//###################################################################################################

    $introtext = '';
    if ($showintro == 0) {                            //Wenn Null
        $introtext = '';                               //dann nichts
        echo "<br>|&nbsp;&nbsp;showintro == 0&nbsp;&nbsp; Kein Text&nbsp;&nbsp;|";
        }
//###################################################################################################
//####################################  ABFRAGE 2  ##################################################
//###################################################################################################
    elseif ($showintro == -1){                        //wenn -1 dann
        $introtext = $story['hometext'];              //alles
        echo "<br>|&nbsp;&nbsp;showintro = -1&nbsp;&nbsp;volständiger Text&nbsp;&nbsp;|";
        //Wenn er Bilder Zeigen soll, dann
        if ($showpics) {
            echo "&nbsp;&nbsp;showpics&nbsp;=&nbsp;JA&nbsp;&nbsp;|";
// Alle Tags ausser <br> & <img> entfernen
            if ($showalltags ==1){
                echo "&nbsp;&nbsp;showalltags = 1&nbsp;&nbsp;alle entfernen&nbsp;&nbsp;|";
                $introtext = trim(strip_tags($story['hometext'], '<br><img>'));
                // <br> am Textbeginn entfernen
                $introtext = preg_replace('#^(?:<br\s*/*>\s*)*#is', '', $introtext);
                // array zuruecksetzen
                $replaces = array();
                $textlentemp = $showintro;
                // alle Imagetags suchen und zwischenspeichern
                if (preg_match_all('#<img[^>]*>#si', $introtext, $images)) {
                    foreach($images[0] as $i => $img){
                        // einen alternativen String zum Ersetzen erstellen
                        $alternate = md5($img);
                        // die gewuenschte Textlaenge um die Textlaenge des alternativen String erweitern
                        $textlentemp = $showintro + strlen($alternate);
                        // den gefundenen Imagetag in das array stellen
                        $replaces[$alternate] = $img;
                        // den gefundenen Imagetag aus dem Text entfernen und dafuer den alternativen String einsetzen
                        $introtext = trim(str_replace($img, $alternate, $introtext));
                        }
                    }
                // wenn imagetags gefunden wurden, die alternativen Textteile wieder
                // durch die im Array zwischengespeicherten Imagetags ersetzen
                if (count($replaces)) {
                    $introtext = str_replace(array_keys($replaces), array_values($replaces), $introtext);
                    }
                }
// Alle Tags ausser <br> & <img> entfernen  ENDE
            else{
                echo "&nbsp;&nbsp;showalltags = 0&nbsp;&nbsp;keine entfernen&nbsp;&nbsp;|";
                $introtext = $story['hometext'];
                }
            }
//################     Wenn er Bilder Zeigen soll, dann  ENDE

//################Wenn er Keine Bilder Zeigen soll, dann
        else{
            echo "&nbsp;&nbsp;showpics&nbsp;=&nbsp;NEIN&nbsp;&nbsp;|";
// Alle Tags ausser <br> & <img> entfernen
            if ($showalltags ==1){
                echo "&nbsp;&nbsp;showalltags = 1&nbsp;&nbsp;alle entfernen&nbsp;&nbsp;|";
                $introtext = trim(strip_tags($story['hometext'], '<br>'));
                // <br> am Textbeginn entfernen
                $introtext = preg_replace('#^(?:<br\s*/*>\s*)*#is', '', $introtext);
                // array zuruecksetzen
                $replaces = array();
                $textlentemp = $showintro;
                // alle Imagetags suchen und zwischenspeichern
                if (preg_match_all('#<img[^>]*>#si', $introtext, $images)) {
                    foreach($images[0] as $i => $img){
                        // einen alternativen String zum Ersetzen erstellen
                        $alternate = md5($img);
                        // die gewuenschte Textlaenge um die Textlaenge des alternativen String erweitern
                        $textlentemp = $showintro + strlen($alternate);
                        // den gefundenen Imagetag in das array stellen
                        $replaces[$alternate] = $img;
                        // den gefundenen Imagetag aus dem Text entfernen und dafuer den alternativen String einsetzen
                        $introtext = trim(str_replace($img, $alternate, $introtext));
                        }
                    }
                // wenn imagetags gefunden wurden, die alternativen Textteile wieder
                // durch die im Array zwischengespeicherten Imagetags ersetzen
                if (count($replaces)) {
                    $introtext = str_replace(array_keys($replaces), array_values($replaces), $introtext);
                    }
                }

// Keine Tags entfernen entfernen  ENDE
            else{
                echo "&nbsp;&nbsp;showalltags = 0&nbsp;&nbsp;keine entfernen&nbsp;&nbsp;|";
                $introtext = $story['hometext'];

                $imagedel = strpos($introtext, '<img');
                while($imagedel !== false) {
                    $introtext = substr($introtext, 0, $imagedel).substr($introtext, strpos($introtext, '>', $imagedel));
                    $imagedel = strpos($introtext, '<img');
                    }
                }
            }
//################Wenn er KEIN Bilder Zeigen soll, dann  ENDE
        }

//###################################################################################################
//####################################  ABFRAGE 3  ##################################################
//###################################################################################################

    else{                                                         //Anzahl der gewaehlten Zeichen..
        echo "<br>|&nbsp;&nbsp;showintro == bestimmte Anzahl&nbsp;&nbsp;|";
//################Wenn er Bilder Zeigen soll, dann
        if ($showpics) {
         echo "&nbsp;&nbsp;showpics&nbsp;=&nbsp;JA&nbsp;&nbsp;|";
            if ($showalltags ==1){
                echo "&nbsp;&nbsp;showalltags = 1&nbsp;&nbsp;alle entfernen&nbsp;&nbsp;|";
                // Alle Tags ausser <br> & <img> entfernen
                $introtext = trim(strip_tags($story['hometext'], '<br><img>'));
                // <br> am Textbeginn entfernen
                $introtext = preg_replace('#^(?:<br\s*/*>\s*)*#is', '', $introtext);
                // array zuruecksetzen
                $replaces = array();
                $textlentemp = $showintro;
                // alle Imagetags suchen und zwischenspeichern
                if (preg_match_all('#<img[^>]*>#si', $introtext, $images)) {
                    foreach($images[0] as $i => $img){
                        // einen alternativen String zum Ersetzen erstellen
                        $alternate = md5($img);
                        // die gewuenschte Textlaenge um die Textlaenge des alternativen String erweitern
                        $textlentemp = $showintro + strlen($alternate);
                        // den gefundenen Imagetag in das array stellen
                        $replaces[$alternate] = $img;
                        // den gefundenen Imagetag aus dem Text entfernen und dafuer den alternativen String einsetzen
                        $introtext = trim(str_replace($img, $alternate, $introtext));
                        }
                    }
                // Text auf die gewuenschte Laenge kuerzen
                $introtext = mxCutString($introtext, $textlentemp, "&nbsp;...", " ");
                // wenn imagetags gefunden wurden, die alternativen Textteile wieder
                // durch die im Array zwischengespeicherten Imagetags ersetzen
                if (count($replaces)) {
                    $introtext = str_replace(array_keys($replaces), array_values($replaces), $introtext);
                    }
                }
// Alle Tags ausser <br> & <img> entfernen  ENDE

//###################################################################################################
//###################################################################################################
//###########       Bei bestimmter Zeichenlaenge, und allen erlaubenten Tags      ###################
//###########       werden die Tabellen geoeffnet, jedoch nicht geschlossen.      ###################
//###################################################################################################
//###########                              Anfang                                 ###################
//###################################################################################################
//###################################################################################################

// Keine Tags entfernen Aber Bilder da!!

            else{
                echo "&nbsp;&nbsp;showalltags = 0&nbsp;&nbsp;keine entfernen&nbsp;&nbsp;|";
                $introtext = $story['hometext'];
                if (preg_match_all('#<img[^>]*>#si', $introtext, $images)) {
                    foreach($images[0] as $i => $img){
                        // einen alternativen String zum Ersetzen erstellen
                        $alternate = md5($img);
                        // die gewuenschte Textlaenge um die Textlaenge des alternativen String erweitern
                        $textlentemp = $showintro + strlen($alternate);
                        // den gefundenen Imagetag in das array stellen
                        $replaces[$alternate] = $img;
                        // den gefundenen Imagetag aus dem Text entfernen und dafuer den alternativen String einsetzen
                        $introtext = trim(str_replace($img, $alternate, $introtext));
                        }
                    }
                // Text auf die gewuenschte Laenge kuerzen
                $textlentemp = $showintro + strlen($alternate);
                $introtext = mxCutString($introtext, $textlentemp, "&nbsp;...", " ");
                }


                // wenn imagetags gefunden wurden, die alternativen Textteile wieder
                // durch die im Array zwischengespeicherten Imagetags ersetzen
                if (count($replaces)) {
                    $introtext = str_replace(array_keys($replaces), array_values($replaces), $introtext);
                    }

            }
// Keine Tags entfernen ENDE
//################           Wenn er Bilder Zeigen soll, dann  ENDE


//###################################################################################################
//###################################################################################################
//###########       Bei bestimmter Zeichenlaenge, und allen erlaubenten Tags      ###################
//###########       werden die Tabellen geoeffnet, jedoch nicht geschlossen.      ###################
//###################################################################################################
//###########                               Ende                                  ###################
//###################################################################################################
//###################################################################################################


//################           Wenn er Keine Bilder Zeigen soll, dann  ANFANG
        else{
            echo "&nbsp;&nbsp;showpics&nbsp;=&nbsp;NEIN&nbsp;&nbsp;|";
// Alle Tags ausser <br> & <img> entfernen
            if ($showalltags ==1){
                echo "&nbsp;&nbsp;showalltags = 1&nbsp;&nbsp;alle entfernen&nbsp;&nbsp;|";
                $introtext = trim(strip_tags($story['hometext'], '<br>'));
                // <br> am Textbeginn entfernen
                $introtext = preg_replace('#^(?:<br\s*/*>\s*)*#is', '', $introtext);
                // array zuruecksetzen
                $replaces = array();
                $textlentemp = $showintro;
                // alle Imagetags suchen und zwischenspeichern
                if (preg_match_all('#<img[^>]*>#si', $introtext, $images)) {
                    foreach($images[0] as $i => $img){
                        // einen alternativen String zum Ersetzen erstellen
                        $alternate = md5($img);
                        // die gewuenschte Textlaenge um die Textlaenge des alternativen String erweitern
                        $textlentemp = $showintro + strlen($alternate);
                        // den gefundenen Imagetag in das array stellen
                        $replaces[$alternate] = $img;
                        // den gefundenen Imagetag aus dem Text entfernen und dafuer den alternativen String einsetzen
                        $introtext = trim(str_replace($img, $alternate, $introtext));
                        }
                    }
                // Text auf die gewuenschte Laenge kuerzen
                $introtext = mxCutString($introtext, $textlentemp, "&nbsp;...", " ");
                // wenn imagetags gefunden wurden, die alternativen Textteile wieder
                // durch die im Array zwischengespeicherten Imagetags ersetzen
                if (count($replaces)) {
                    $introtext = str_replace(array_keys($replaces), array_values($replaces), $introtext);
                    }
                }
// Alle Tags ausser <br> & <img> entfernen  ENDE


//###################################################################################################
//###################################################################################################
//###########       Bei bestimmter Zeichenlaenge, und allen erlaubenten Tags      ###################
//###########       werden die Tabellen geoeffnet, jedoch nicht geschlossen.      ###################
//###################################################################################################
//###########                              Anfang                                 ###################
//###################################################################################################
//###################################################################################################
// Alle Tags anzeigen, jedoch ohne Bild
            else{
                echo "&nbsp;&nbsp;showalltags = 0&nbsp;&nbsp;keine entfernen&nbsp;&nbsp;|";
                $introtext = $story['hometext'];

                $imagedel = strpos($introtext, '<img');
                while($imagedel !== false) {
                    $introtext = substr($introtext, 0, $imagedel).substr($introtext, strpos($introtext, '>', $imagedel));
                    $imagedel = strpos($introtext, '<img');
                    }

                // einen alternativen String zum Ersetzen erstellen
                $alternate = '';
                // die gewuenschte Textlaenge um die Textlaenge des alternativen String erweitern
                $textlentemp = $showintro + strlen($alternate);
                // Text auf die gewuenschte Laenge kuerzen
                $introtext = mxCutString($introtext, $textlentemp, "&nbsp;...", " ");
                }
            }
//################Wenn er KEIN Bilder Zeigen soll, dann  ENDE

//###################################################################################################
//###################################################################################################
//###########       Bei bestimmter Zeichenlaenge, und allen erlaubenten Tags      ###################
//###########       werden die Tabellen geoeffnet, jedoch nicht geschlossen.      ###################
//###################################################################################################
//###########                               Ende                                  ###################
//###################################################################################################
//###################################################################################################


    if ($introtext) {
        $introtext = '<div class="content">' . $introtext . '</div>';
        }
    }

//###################################################################################################
//##########################   Bild noch zu bearbeiten   ############################################
//###################################################################################################

    //das Topicbild
    $topicpic = '';
    if ($showtopic == 1) {
    $topicpic ='<a href=modules.php?name=News&new_topic=' . $story['topic'] . '><img src="' . $tipath . 'news.gif"           alt=        "mist"                align="right" width="' . $showtopicsizze . '"></a>';
//#################################################################################################################################################################################################################
/**                                                                             <img src="' . $tipath . '' . $topicimage . '"alt="' . $story['topictext'] . '" align="right" width="' . $showtopicsizze . '">    */
//#################################################################################################################################################################################################################
    }

    // der mehr-Link
    $readall = '';
    if ($readcomplete == 1) {
        if($story['bodytext'] > "0") {
        $readall ='(<a href="modules.php?name=News&amp;file=article&amp;sid=' . $story['sid'] . '">' . _HREADMORE . '</a>)';
        }
        else {
        $readall ='&nbsp;';
        }
    }
    // das formatierte Datum
    $datetime = '';
    if ($showdate) {
        $datetime = '<td>' . mx_strftime(_SHORTDATESTRING, mxSqlDate2UnixTime($story['time'])) . '</td>';
    }
    // den Kategoriename mit anzeigen
    if ($showcattitle && $story['catid']) {
        $story_cat['CAT'] ='<td width="50%"><center><b>[<a href="modules.php?name=News&amp;file=categories&amp;op=newindex&catid=' . $story['catid'] . '">' . $story['title1'] . '</a>]</b></center></td>';
    }
    // die Buttons
    $buttons = array();
    if ($showbuttons) {
        $buttons[] = '<a href="modules.php?name=News&amp;file=print&amp;sid=' . $story['sid'] . '" rel="nofollow"><img src="images/menu/print.gif" width="12" height="13" border="0" alt="' . _BMXPRINTER . '"  title="' . _BMXPRINTER . '"  /></a>';
        if (mxModuleAllowed('Recommend_Us')) {
            $buttons[] = '<a href="modules.php?name=News&amp;file=friend&amp;sid=' . $story['sid'] . '" rel="nofollow"><img src="images/menu/friend.gif" width="12" height="13" border="0" alt="' . _BMXFRIEND . '" title="' . _BMXFRIEND . '"  /></a>';
        }
        $buttons[] = '<a href="modules.php?name=News&amp;file=article&amp;sid=' . $story['sid'] . '"><img src="images/menu/bytesmore.gif" border="0" width="12" height="13" alt="' . _BMXBYTESMORE . ' ' . $totalcount . '" title="' . _BMXBYTESMORE . ' ' . $totalcount . '"  /></a>';
        if ($GLOBALS['articlecomm']) {
            $buttons[] = '<a href="modules.php?name=News&amp;file=article&amp;sid=' . $story['sid'] . '#comments"><img src="images/menu/comments2.gif" width="12" height="13" border="0"  alt="' . _COMMENTS . ' ' . mxValueToString($story['comments'], 0) . '"  title="' . _COMMENTS . ' ' . mxValueToString($story['comments'], 0) . '" ></a>';
        }
        if (mxModuleAllowed('Userinfo')) {
            $buttons[] = '<a href="modules.php?name=Userinfo&amp;uname=' . urlencode($story['informant']) . '"><img src="images/menu/informant.gif" width="12" height="13" border="0" alt="' . $story['informant'] . '" title="' . _UNICKNAME . ': ' . $story['informant'] . '" ></a>';
        }
        $buttons[] = '<img src="images/menu/counter.gif" width="12" height="13" border="0" alt="' . mxValueToString($story['counter'], 0) . ' ' . _READS . '" title="' . mxValueToString($story['counter'], 0) . ' ' . _READS . '" >';
    }
    $colspan = count($buttons) + 2;
    // $buttons = '<table border="0" cellspacing="1" cellpadding="1" align="right"><tr><td>'.implode('</td><td>', $button).'</td></tr></table>';
    $buttons = '<td>' . implode('</td><td>', $buttons) . '</td>';

    // der Titel des Artikels
    $story['title'] = '<a href="modules.php?name=News&amp;file=article&amp;sid=' . $story['sid'] . '">' . $story['title'] . '</a>';

    // $image = ($story['jetzt'] > $story['expire']) ? 'sign' : 'new';
    // $out .= '<td colspan="'.$colspan.'"><img src="images/menu/' . $image . '.gif" align="middle" alt="" />&nbsp;'.$story['title'].'</td>';
    if ($count == 0) {
        $out .= '<tr valign="top">';
    }
    $out .= '
    <td width="' . $width . '%" valign="top" style="border: 1px solid ' . $bgcolor2 . ';">
        <table border="0" cellspacing="0" cellpadding="2" width="100%">';
    if ($datetime || $story_cat || $buttons) {
        $out .= '
            <tr valign="top" style="height: 10px;">
                ' . $datetime . $story_cat['CAT'] . $buttons . '
            </tr>
            ';
    }
    $out .= '
            <tr valign="top" style="height: 35px;">
                <td colspan="' . $colspan . '">' . $topicpic . '<p><b>' . $story['title'] . '</b></p>' . $introtext . '</td>
            </tr>
            <tr valign="top">
                <td colspan="' . $colspan . '"><div align="right">' . $readall . '</div></td>
            </tr>
        </table>
    </td>
    ';

    $count++;
    if ($count * $width == 100) {
        $out .= '</tr>';
        $count = 0;
    }
}

// falls nicht alle Tabellenspalten am Ende gefuellt sind, eine zus. anfuegen
if ($count && $out) {
    $out .= '<td colspan="' . ($showcolumns - $count) . '">&nbsp;</td>';
}
// die Links zu anderen Modulen
if ($showextendedlinks) {
    if (mxModuleAllowed('Stories_Archive')) {
        $links[] = '<a href="modules.php?name=Stories_Archive">' . _STORIEARCHIVE . '</a>';
    }
    if (mxModuleAllowed('Submit_News')) {
        $links[] = '<a href="modules.php?name=Submit_News">' . _SUBMITNEWS . '</a>';
    }
    if (mxModuleAllowed('Search')) {
        $links[] = '<a href="modules.php?name=Search">' . _SEARCH . '</a>';
    }
    if (isset($links)) {
        $out .= '<tr><td align="center" colspan="' . $showcolumns . '" style="border: 1px solid ' . $bgcolor2 . ';">';
        $out .= '[&nbsp;' . implode('&nbsp;|&nbsp;', $links) . '&nbsp;]';
        $out .= '</td></tr>';
    }
}
// content-tabelle, nur wenn ueberhaupt was zum anzeigen da ist...
if ($out) {
    $content = '<table width="100%" border="0" cellspacing="2" cellpadding="5">' . $out . '</table>';
}

?>