Announcement per Email verschicken!

Hast du Vorschläge, was wir an Admidio noch verbessern könnten ? Hier kannst du uns deine Vorstellung an neuen Funktionen mitteilen.
Antworten
eslavator
Beiträge: 5
Registriert: 8. Okt 2008, 08:28

Announcement per Email verschicken!

Beitrag von eslavator »

Habe in meinem Script eine Aufruf in der Announcement.php eingebaut, der die $ann_id an das Mail.php übergiebt und dann das als Email anzeigt! Ist zwar noch nicht ganz fertig, aber es funktioniert!

Wäre für die nächste Version noch eine neue Funktion.

Code: Alles auswählen

<?php
/******************************************************************************
 * E-Mails verschicken
 *
 * Copyright    : (c) 2004 - 2008 The Admidio Team
 * Homepage     : http://www.admidio.org
 * Module-Owner : Elmar Meuthen
 * License      : GNU Public License 2 http://www.gnu.org/licenses/gpl-2.0.html
 *
 * Uebergaben:
 *
 * usr_id  - E-Mail an den entsprechenden Benutzer schreiben
 * rolle   - E-Mail an alle Mitglieder der Rolle schreiben
 * cat     - In Kombination mit dem Rollennamen muss auch der Kategoriename uebergeben werden
 * rol_id  - Statt einem Rollennamen/Kategorienamen kann auch eine RollenId uebergeben werden
 * subject - Betreff der E-Mail
 * body    - Inhalt der E-Mail
 * ann_id  - Announce ID  
 * kopie   - 1 (Default) Checkbox "Kopie an mich senden" ist gesetzt
 *         - 0 Checkbox "Kopie an mich senden" ist NICHT gesetzt
 *
 *****************************************************************************/

require("../../system/common.php");
require("../../system/bbcode.php");
require("../../system/announcement_class.php");

// Pruefungen, ob die Seite regulaer aufgerufen wurde
if ($g_preferences['enable_mail_module'] != 1)
{
    // es duerfen oder koennen keine Mails ueber den Server verschickt werden
    $g_message->show("module_disabled");
}


if ($g_valid_login && !isValidEmailAddress($g_current_user->getValue("E-Mail")))
{
    // der eingeloggte Benutzer hat in seinem Profil keine gueltige Mailadresse hinterlegt,
    // die als Absender genutzt werden kann...
    $g_message->addVariableContent("$g_root_path/adm_program/modules/profile/profile.php", 1, false);
    $g_message->show("profile_mail");
}


//Falls ein Rollenname uebergeben wurde muss auch der Kategoriename uebergeben werden und umgekehrt...
if ( (isset($_GET["rolle"]) && !isset($_GET["cat"])) || (!isset($_GET["rolle"]) && isset($_GET["cat"])) )
{
    $g_message->show("invalid");
}


if (isset($_GET["usr_id"]))
{
    // Falls eine Usr_id uebergeben wurde, muss geprueft werden ob der User ueberhaupt
    // auf diese zugreifen darf oder ob die UsrId ueberhaupt eine gueltige Mailadresse hat...
    if (!$g_valid_login)
    {
        //in ausgeloggtem Zustand duerfen nie direkt usr_ids uebergeben werden...
        $g_message->show("invalid");
    }

    if (is_numeric($_GET["usr_id"]) == false)
    {
        $g_message->show("invalid");
    }

    //usr_id wurde uebergeben, dann Kontaktdaten des Users aus der DB fischen
    $user = new User($g_db, $_GET['usr_id']);

    // darf auf die User-Id zugegriffen werden    
    if((  $g_current_user->editUsers() == false
       && isMember($user->getValue("usr_id")) == false)
    || strlen($user->getValue("usr_id")) == 0 )
    {
        $g_message->show("usrid_not_found");
    }

    // besitzt der User eine gueltige E-Mail-Adresse
    if (!isValidEmailAddress($user->getValue("E-Mail")))
    {
        $g_message->show("usrmail_not_found");
    }

    $userEmail = $user->getValue("E-Mail");
}
elseif (isset($_GET["rol_id"]))
{
    // Falls eine rol_id uebergeben wurde, muss geprueft werden ob der User ueberhaupt
    // auf diese zugreifen darf
    if (is_numeric($_GET["rol_id"]) == false)
    {
        $g_message->show("invalid");
    }

    if ($g_valid_login)
    {
        $sql    = "SELECT rol_mail_login, rol_name 
                     FROM ". TBL_ROLES. ", ". TBL_CATEGORIES. "
                    WHERE rol_id = ". $_GET['rol_id']. "
                      AND rol_cat_id = cat_id
                      AND cat_org_id = ". $g_current_organization->getValue("org_id");
    }
    else
    {
        $sql    = "SELECT rol_mail_logout, rol_name 
                     FROM ". TBL_ROLES. ", ". TBL_CATEGORIES. "
                    WHERE rol_id = ". $_GET['rol_id']. "
                      AND rol_cat_id = cat_id
                      AND cat_org_id = ". $g_current_organization->getValue("org_id");
    }
    $result = $g_db->query($sql);
    $row = $g_db->fetch_array($result);

    if ($row[0] != 1)
    {
        $g_message->show("invalid");
    }

    $rollenName = $row['rol_name'];
    $rollenID   = $_GET['rol_id'];
}

elseif (isset($_GET["ann_id"]))
{
  $sql = "SELECT * FROM ". TBL_ANNOUNCEMENTS. "
         WHERE ann_id =". $ann_id ." 
         LIMIT 1";         
  $result  = $g_db->query($sql);
  $row     = $g_db->fetch_array($result);
  $subject2 = $row['ann_headline'];
//   $subject = "Halo";
  $body2    = $row['ann_description'];
}

elseif (isset($_GET["rolle"]) && isset($_GET["cat"]))
{
    // Falls eine rolle und eine category uebergeben wurde, muss geprueft werden ob der User ueberhaupt
    // auf diese zugreifen darf
    $_GET["rolle"] = strStripTags($_GET["rolle"]);
    $_GET["cat"]   = strStripTags($_GET["cat"]);

    if ($g_valid_login)
    {
        $sql    = "SELECT rol_mail_login, rol_id
                    FROM ". TBL_ROLES. " ,". TBL_CATEGORIES. "
                   WHERE UPPER(rol_name) = UPPER('". $_GET['rolle']. "')
                   AND rol_cat_id        = cat_id
                   AND cat_org_id        = ". $g_current_organization->getValue("org_id"). "
                   AND UPPER(cat_name)   = UPPER('". $_GET['cat']. "')";
    }
    else
    {
        $sql    = "SELECT rol_mail_logout, rol_id
                    FROM ". TBL_ROLES. " ,". TBL_CATEGORIES. "
                   WHERE UPPER(rol_name) = UPPER('". $_GET['rolle']. "')
                   AND rol_cat_id        = cat_id
                   AND cat_org_id        = ". $g_current_organization->getValue("org_id"). "
                   AND UPPER(cat_name)   = UPPER('". $_GET['cat']. "')";
    }
    $result = $g_db->query($sql);
    $row = $g_db->fetch_array($result);

    if ($row[0] != 1)
    {
        $g_message->show("invalid");
    }

    $rollenName = $_GET['rolle'];
    $rollenID   = $row[1];
}

if (array_key_exists("subject", $_GET))
{
    $_GET["subject"] = strStripTags($_GET["subject"]);
}
else if (isset($subject2)) 
{
   $_GET["subject"] = strStripTags($subject2);
}
else
{
    $_GET["subject"] = "";
}

if (array_key_exists("body", $_GET))
{
    $_GET["body"] = strStripTags($_GET["body"]);
}
else if (isset($body2)) 
{
   $_GET["body"] = strStripTags($body2);
}
else
{
    $_GET["body"]  = "";
}

if (!array_key_exists("kopie", $_GET) || !is_numeric($_GET["kopie"]))
{
    $_GET["kopie"] = "1";
}

// Wenn die letzte URL in der Zuruecknavigation die des Scriptes mail_send.php ist,
// dann soll das Formular gefuellt werden mit den Werten aus der Session
if (strpos($_SESSION['navigation']->getUrl(),'mail_send.php') > 0 && isset($_SESSION['mail_request']))
{
    // Das Formular wurde also schon einmal ausgefüllt,
    // da der User hier wieder gelandet ist nach der Mailversand-Seite
    $form_values = strStripSlashesDeep($_SESSION['mail_request']);
    unset($_SESSION['mail_request']);

    $_SESSION['navigation']->deleteLastUrl();
}
else
{
    $form_values['name']         = "";
    $form_values['mailfrom']     = "";
    $form_values['subject']      = "";
    $form_values['body']         = "";
    $form_values['rol_id']       = "";
}



// Seiten fuer Zuruecknavigation merken
if(isset($_GET["usr_id"]) == false && isset($_GET["rol_id"]) == false)
{
    $_SESSION['navigation']->clear();
}
$_SESSION['navigation']->addUrl(CURRENT_URL);

// Html-Kopf ausgeben
if (strlen($_GET["subject"]) > 0)
{
    $g_layout['title'] = $_GET["subject"];
}
else
{
    $g_layout['title'] = "E-Mail verschicken";
}
if($g_preferences['enable_rss'] == 1)
{
    $g_layout['header'] =  "<link type=\"application/rss+xml\" rel=\"alternate\" title=\"". $g_current_organization->getValue("org_longname"). " - Ankuendigungen\"
    href=\"$g_root_path/adm_program/modules/announcements/rss_announcements.php\" />
    ";
};
require(THEME_SERVER_PATH. "/overall_header.php");
echo "
<form action=\"$g_root_path/adm_program/modules/mail/mail_send.php?";
    // usr_id wird mit GET uebergeben,
    // da keine E-Mail-Adresse von mail_send angenommen werden soll
    if (array_key_exists("usr_id", $_GET))
    {
        echo "usr_id=". $_GET['usr_id']. "&";
    }
    echo "\" method=\"post\" enctype=\"multipart/form-data\">

    <div class=\"formLayout\" id=\"write_mail_form\">
        <div class=\"formHead\">". $g_layout['title']. "</div>
        <div class=\"formBody\">
            <ul class=\"formFieldList\">
                <li>
                    <dl>
                        <dt><label for=\"rol_id\">an:</label></dt>
                        <dd>";
                            if (array_key_exists("usr_id", $_GET))
                            {
                                // usr_id wurde uebergeben, dann E-Mail direkt an den User schreiben
                                echo "<input type=\"text\" class=\"readonly\" readonly=\"readonly\" id=\"mailto\" name=\"mailto\" style=\"width: 350px;\" maxlength=\"50\" value=\"$userEmail\" />";
                            }
                            elseif ( array_key_exists("rol_id", $_GET) || (array_key_exists("rolle", $_GET) && array_key_exists("cat", $_GET)) )
                            {
                                // Rolle wurde uebergeben, dann E-Mails nur an diese Rolle schreiben
                                echo "
                                <select size=\"1\" id=\"rol_id\" name=\"rol_id\"><option value=\"$rollenID\" selected=\"selected\">$rollenName</option></select>";
                            }
                            else
                            {
                                // keine Uebergabe, dann alle Rollen entsprechend Login/Logout auflisten
                                echo "<select size=\"1\" id=\"rol_id\" name=\"rol_id\">";
                                if ($form_values['rol_id'] == "")
                                {
                                    echo "<option value=\"\" selected=\"selected\">- Bitte wählen -</option>";
                                }

                                if ($g_valid_login)
                                {
                                    // alle Rollen auflisten,
                                    // an die im eingeloggten Zustand Mails versendet werden duerfen
                                    $sql    = "SELECT rol_name, rol_id, cat_name 
                                               FROM ". TBL_ROLES. ", ". TBL_CATEGORIES. "
                                               WHERE rol_mail_login = 1
                                               AND rol_valid        = 1
                                               AND rol_cat_id       = cat_id
                                               AND cat_org_id       = ". $g_current_organization->getValue("org_id"). "
                                               ORDER BY cat_sequence, rol_name ";
                                }
                                else
                                {
                                    // alle Rollen auflisten,
                                    // an die im nicht eingeloggten Zustand Mails versendet werden duerfen
                                    $sql    = "SELECT rol_name, rol_id, cat_name 
                                               FROM ". TBL_ROLES. ", ". TBL_CATEGORIES. "
                                               WHERE rol_mail_logout = 1
                                               AND rol_valid         = 1
                                               AND rol_cat_id        = cat_id
                                               AND cat_org_id        = ". $g_current_organization->getValue("org_id"). "
                                               ORDER BY cat_sequence, rol_name ";
                                }
                                $result = $g_db->query($sql);
                                $act_category = "";

                                while ($row = $g_db->fetch_object($result))
                                {
                                    if($act_category != $row->cat_name)
                                    {
                                        if(strlen($act_category) > 0)
                                        {
                                            echo "</optgroup>";
                                        }
                                        echo "<optgroup label=\"$row->cat_name\">";
                                        $act_category = $row->cat_name;
                                    }
                                    echo "<option value=\"$row->rol_id\" ";
                                    if ($row->rol_id == $form_values['rol_id'])
                                    {
                                        echo "selected=\"selected\"";
                                    }
                                    echo ">$row->rol_name</option>";
                                }

                                echo "</optgroup>
                                </select>
                                <img class=\"iconHelpLink\" src=\"". THEME_PATH. "/icons/help.png\" alt=\"Hilfe\" title=\"\"                       onclick=\"window.open('$g_root_path/adm_program/system/msg_window.php?err_code=rolle_mail&window=true','Message','width=400,height=250,left=310,top=200,scrollbars=yes')\"  onmouseover=\"ajax_showTooltip(event,'$g_root_path/adm_program/system/msg_window.php?err_code=rolle_mail',this)\" onmouseout=\"ajax_hideTooltip()\"/>";
                            }
                            echo "<span class=\"mandatoryFieldMarker\" title=\"Pflichtfeld\">*</span>
                        </dd>
                    </dl>
                </li>
                <li>
                    <hr />
                </li>
                <li>
                    <dl>
                        <dt><label for=\"name\">Name:</label></dt>
                        <dd>";
                            if ($g_current_user->getValue("usr_id") > 0)
                            {
                               echo "<input type=\"text\" class=\"readonly\" id=\"name\" name=\"name\" readonly=\"readonly\" style=\"width: 200px;\" maxlength=\"50\" value=\"". $g_current_user->getValue("Vorname"). " ". $g_current_user->getValue("Nachname"). "\" />";
                            }
                            else
                            {
                               echo "<input type=\"text\" id=\"name\" name=\"name\" style=\"width: 200px;\" maxlength=\"50\" value=\"". $form_values['name']. "\" />";
                            }
                            echo "<span class=\"mandatoryFieldMarker\" title=\"Pflichtfeld\">*</span>
                        </dd>
                    </dl>
                </li>
                <li>
                    <dl>
                        <dt><label for=\"mailfrom\">E-Mail:</label></dt>
                        <dd>";
                            if ($g_current_user->getValue("usr_id") > 0)
                            {
                               echo "<input type=\"text\" class=\"readonly\" id=\"mailfrom\" name=\"mailfrom\" readonly=\"readonly\" style=\"width: 350px;\" maxlength=\"50\" value=\"". $g_current_user->getValue("E-Mail"). "\" />";
                            }
                            else
                            {
                               echo "<input type=\"text\" id=\"mailfrom\" name=\"mailfrom\" style=\"width: 350px;\" maxlength=\"50\" value=\"". $form_values['mailfrom']. "\" />";
                            }
                            echo "<span class=\"mandatoryFieldMarker\" title=\"Pflichtfeld\">*</span>
                        </dd>
                    </dl>
                </li>
                <li>
                    <hr />
                </li>
                <li>
                    <dl>
                        <dt><label for=\"subject\">Betreff:</label></dt>
                        <dd>";
                            if (strlen($_GET['subject']) > 0)
                            {
                               echo "<input type=\"text\" class=\"readonly\" readonly=\"readonly\" id=\"subject\" name=\"subject\" style=\"width: 350px;\" maxlength=\"50\" value=\"". $_GET['subject']. "\" />";
                            }
                            else
                            {
                               echo "<input type=\"text\" id=\"subject\" name=\"subject\" style=\"width: 350px;\" maxlength=\"50\" value=\"". $form_values['subject']. "\" />";
                            }
                            echo "<span class=\"mandatoryFieldMarker\" title=\"Pflichtfeld\">*</span>
                        </dd>
                    </dl>
                </li>
                <li>
                    <dl>
                        <dt><label for=\"body\">Nachricht:</label></dt>
                        <dd>";
                            if (strlen($form_values['body']) > 0)
                            {
                               echo "<textarea id=\"body\" name=\"body\" style=\"width: 350px;\" rows=\"10\" cols=\"45\">". $form_values['body']. "</textarea>";
                            }
                            else
                            {
                               echo "<textarea id=\"body\" name=\"body\" style=\"width: 350px;\" rows=\"10\" cols=\"45\">". $_GET['body']. "</textarea>";
                            }
                        echo "</dd>
                    </dl>
                </li>";

                // Nur eingeloggte User duerfen Attachments mit max 3MB anhaengen...
                if (($g_valid_login) && ($g_preferences['max_email_attachment_size'] > 0) && (ini_get('file_uploads') == '1'))
                {
                    // das Feld userfile wird in der Breite mit size und width gesetzt, da FF nur size benutzt und IE size zu breit macht :(
                    echo "
                    <li>
                        <dl>
                            <dt><label for=\"userfile\">Anhang:</label></dt>
                            <dd>
                                <input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"" . ($g_preferences['max_email_attachment_size'] * 1024) . "\" />
                                <input id=\"userfile\" name=\"userfile\" size=\"35\" style=\"width: 350px;\" type=\"file\" />
                            </dd>
                        </dl>
                    </li>";
                }

                echo "
                <li>
                    <dl>
                        <dt>&nbsp;</dt>
                        <dd>
                            <input type=\"checkbox\" id=\"kopie\" name=\"kopie\" value=\"1\" ";
                            if ($_GET['kopie'] == 1)
                            {
                                echo " checked=\"checked\" ";
                            }
                            echo " /> <label for=\"kopie\">Kopie der E-Mail an mich senden</label>
                        </dd>
                    </dl>
                </li>";

                // Nicht eingeloggte User bekommen jetzt noch das Captcha praesentiert,
                // falls es in den Orgaeinstellungen aktiviert wurde...
                if (!$g_valid_login && $g_preferences['enable_mail_captcha'] == 1)
                {
                    echo "
                    <li>
                        <dl>
                            <dt>&nbsp;</dt>
                            <dd>
                                <img src=\"$g_root_path/adm_program/system/captcha_class.php?id=". time(). "\" alt=\"Captcha\" />
                            </dd>
                        </dt>
                    </li>
                    <li>
                        <dl>
                            <dt><label for=\"captcha\">Best&auml;tigungscode:</label></dt>
                            <dd>
                                <input type=\"text\" id=\"captcha\" name=\"captcha\" style=\"width: 200px;\" maxlength=\"8\" value=\"\" />
                                <span class=\"mandatoryFieldMarker\" title=\"Pflichtfeld\">*</span>
                                <img class=\"iconHelpLink\" src=\"". THEME_PATH. "/icons/help.png\" alt=\"Hilfe\" title=\"\"                       onclick=\"window.open('$g_root_path/adm_program/system/msg_window.php?err_code=captcha_help&window=true','Message','width=400,height=300,left=310,top=200,scrollbars=yes')\" onmouseover=\"ajax_showTooltip(event,'$g_root_path/adm_program/system/msg_window.php?err_code=captcha_help',this)\" onmouseout=\"ajax_hideTooltip()\" />
                            </dd>
                        </dl>
                    </li>";
                }
            echo "</ul>
            
            <hr />

            <div class=\"formSubmit\">
                <button name=\"abschicken\" type=\"submit\" value=\"abschicken\"><img src=\"". THEME_PATH. "/icons/email.png\" alt=\"Abschicken\" />&nbsp;Abschicken</button>
            </div>
        </div>
    </div>
</form>";

if(isset($_GET['usr_id']) || isset($_GET['rol_id']))
{
    echo "
    <ul class=\"iconTextLinkList\">
        <li>
            <span class=\"iconTextLink\">
                <a href=\"$g_root_path/adm_program/system/back.php\"><img 
                src=\"". THEME_PATH. "/icons/back.png\" alt=\"Zurück\" /></a>
                <a href=\"$g_root_path/adm_program/system/back.php\">Zurück</a>
            </span>
        </li>
    </ul>";
}

// Focus auf das erste Eingabefeld setzen
if (!isset($_GET['usr_id'])
 && !isset($_GET['rol_id'])
 && !isset($_GET['rolle']) )
{
    $focus_field = "rol_id";
}
else if($g_current_user->getValue("usr_id") == 0)
{
    $focus_field = "name";
}
else
{
    $focus_field = "subject";
}

echo "<script type=\"text/javascript\"><!--
    document.getElementById('$focus_field').focus();
--></script>";

require(THEME_SERVER_PATH. "/overall_footer.php");

?>

Code: Alles auswählen

<?php
/******************************************************************************
 * Ankuendigungen auflisten
 *
 * Copyright    : (c) 2004 - 2008 The Admidio Team
 * Homepage     : http://www.admidio.org
 * Module-Owner : Markus Fassbender
 * License      : GNU Public License 2 http://www.gnu.org/licenses/gpl-2.0.html
 *
 * Uebergaben:
 *
 * start     - Angabe, ab welchem Datensatz Ankuendigungen angezeigt werden sollen
 * headline  - Ueberschrift, die ueber den Ankuendigungen steht
 *             (Default) Ankuendigungen
 * id        - Nur eine einzige Annkuendigung anzeigen lassen.
 * date      - Alle Ankuendigungen zu einem Datum werden aufgelistet
 *             Uebergabeformat: YYYYMMDD
 *
 *****************************************************************************/

require("../../system/common.php");
require("../../system/bbcode.php");
require("../../system/announcement_class.php");

// pruefen ob das Modul ueberhaupt aktiviert ist
if ($g_preferences['enable_announcements_module'] == 0)
{
    // das Modul ist deaktiviert
    $g_message->show("module_disabled");
}
elseif($g_preferences['enable_announcements_module'] == 2)
{
    // nur eingeloggte Benutzer duerfen auf das Modul zugreifen
    require("../../system/login_valid.php");
}

// lokale Variablen der Uebergabevariablen initialisieren
$req_start    = 0;
$req_headline = "Ankündigungen";
$req_id       = 0;
$sql_datum    = "";

// Uebergabevariablen pruefen

if(isset($_GET['start']))
{
    if(is_numeric($_GET['start']) == false)
    {
        $g_message->show("invalid");
    }
    $req_start = $_GET['start'];
}

if(isset($_GET['headline']))
{
    $req_headline = strStripTags($_GET["headline"]);
}

if(isset($_GET['id']))
{
    if(is_numeric($_GET['id']) == false)
    {
        $g_message->show("invalid");
    }
    $req_id = $_GET['id'];
}

if(array_key_exists("date", $_GET))
{
    if(is_numeric($_GET["date"]) == false)
    {
        $g_message->show("invalid");
    }
    else
    {
        $sql_datum = substr($_GET["date"],0,4). "-". substr($_GET["date"],4,2). "-". substr($_GET["date"],6,2);
    }
}

if($g_preferences['enable_bbcode'] == 1)
{
    // Klasse fuer BBCode
    $bbcode = new ubbParser();
}

unset($_SESSION['announcements_request']);
// Navigation faengt hier im Modul an
$_SESSION['navigation']->clear();
$_SESSION['navigation']->addUrl(CURRENT_URL);

// Html-Kopf ausgeben
$g_layout['title'] = $req_headline;
if($g_preferences['enable_rss'] == 1)
{
    $g_layout['header'] = "<link type=\"application/rss+xml\" rel=\"alternate\" title=\"". $g_current_organization->getValue("org_longname"). " - Ankuendigungen\"
    href=\"$g_root_path/adm_program/modules/announcements/rss_announcements.php\" />";
};

require(THEME_SERVER_PATH. "/overall_header.php");

// Html des Modules ausgeben
echo "<h1 class=\"moduleHeadline\">$req_headline</h1>";

// alle Gruppierungen finden, in denen die Orga entweder Mutter oder Tochter ist
$organizations = "";
$arr_ref_orgas = $g_current_organization->getReferenceOrganizations(true, true);

foreach($arr_ref_orgas as $key => $value)
{
	$organizations = $organizations. "'$value', ";
}
$organizations = $organizations. "'". $g_current_organization->getValue("org_shortname"). "'";

// falls eine id fuer ein bestimmtes Datum uebergeben worden ist...
if($req_id > 0)
{
    $conditions = " AND ann_id = $req_id ";
}
//...ansonsten alle fuer die Gruppierung passenden Termine aus der DB holen.
else
{
    // Ankuendigungen an einem Tag suchen
    if(strlen($sql_datum) > 0)
    {
        $conditions = " AND DATE_FORMAT(ann_timestamp, '%Y-%m-%d') = '$sql_datum' ";        
    }
    //...ansonsten alle fuer die Gruppierung passenden Ankuendigungen aus der DB holen.
    else
    {
        $conditions = "";
    }
}

$sql = "SELECT * FROM ". TBL_ANNOUNCEMENTS. "
         WHERE (  ann_org_shortname = '". $g_current_organization->getValue("org_shortname"). "'
               OR (   ann_global   = 1
                  AND ann_org_shortname IN ($organizations) ))
               $conditions 
         ORDER BY ann_timestamp DESC
         LIMIT $req_start, 10";
$announcements_result = $g_db->query($sql);

// Gucken wieviele Datensaetze die Abfrage ermittelt kann...
$sql = "SELECT COUNT(1) as count 
          FROM ". TBL_ANNOUNCEMENTS. "
         WHERE (  ann_org_shortname = '". $g_current_organization->getValue("org_shortname"). "'
               OR (   ann_global   = 1
                  AND ann_org_shortname IN ($organizations) ))
               $conditions ";
$result = $g_db->query($sql);
$row    = $g_db->fetch_array($result);
$num_announcements = $row['count'];

// Neue Ankuendigung anlegen
if($g_current_user->editAnnouncements())
{
    echo "
    <ul class=\"iconTextLinkList\">
        <li>
            <span class=\"iconTextLink\">
                <a href=\"$g_root_path/adm_program/modules/announcements/announcements_new.php?headline=$req_headline\"><img
                src=\"". THEME_PATH. "/icons/add.png\" alt=\"Neu anlegen\" /></a>
                <a href=\"$g_root_path/adm_program/modules/announcements/announcements_new.php?headline=$req_headline\">Anlegen</a>
            </span>
        </li>
    </ul>";        
}

if($num_announcements > 10)
{
    // Navigation mit Vor- und Zurueck-Buttons
    $base_url = "$g_root_path/adm_program/modules/announcements/announcements.php?headline=$req_headline";
    echo generatePagination($base_url, $num_announcements, 10, $req_start, TRUE);
}

if ($g_db->num_rows($announcements_result) == 0)
{
    // Keine Ankuendigungen gefunden
    if($req_id > 0)
    {
        echo "<p>Der angeforderte Eintrag exisitiert nicht (mehr) in der Datenbank.</p>";
    }
    else
    {
        echo "<p>Es sind keine Eintr&auml;ge vorhanden.</p>";
    }
}
else
{
    $announcement = new Announcement($g_db);

    // Ankuendigungen auflisten
    while($row = $g_db->fetch_array($announcements_result))
    {
        $announcement->clear();
        $announcement->setArray($row);
        echo "
        <div class=\"boxLayout\">
            <div class=\"boxHead\">
                <div class=\"boxHeadLeft\">
                    <img src=\"". THEME_PATH. "/icons/announcements.png\" alt=\"". $announcement->getValue("ann_headline"). "\" />".
                    $announcement->getValue("ann_headline"). "
                </div>
                <div class=\"boxHeadRight\">".
                    mysqldatetime("d.m.y", $announcement->getValue("ann_timestamp")). "&nbsp;";
                    
                    // aendern & loeschen duerfen nur User mit den gesetzten Rechten
                    if($g_current_user->editAnnouncements())
                    {
                        if($announcement->editRight() == true)
                        {
                            echo "
                            <a class=\"iconLink\" href=\"$g_root_path/adm_program/modules/announcements/announcements_new.php?ann_id=". $announcement->getValue("ann_id"). "&headline=$req_headline\"><img 
                                src=\"". THEME_PATH. "/icons/edit.png\" alt=\"Bearbeiten\" title=\"Bearbeiten\" /></a>";
                        }
                        
                        // Versenden darf ...                        
                        if($g_preferences['enable_mail_module'] = 1)
                        {
                          $mail_link = $g_root_path. "/adm_program/modules/mail/mail.php?usr_id=". $user_id;
                          echo "
                            <a class=\"iconLink\" href=\"$g_root_path/adm_program/modules/mail/mail.php?ann_id=". $announcement->getValue("ann_id") . "\"><img 
                                src=\"". THEME_PATH. "/icons/email.png\" alt=\"Versenden\" title=\"Versenden\" /></a>";                          
                        }
                       

                        // Loeschen darf man nur Ankuendigungen der eigenen Gliedgemeinschaft
                        if($announcement->getValue("ann_org_shortname") == $g_organization)
                        {
                            echo "
                            <a class=\"iconLink\" href=\"$g_root_path/adm_program/modules/announcements/announcements_function.php?mode=4&ann_id=". $announcement->getValue("ann_id"). "\"><img 
                                src=\"". THEME_PATH. "/icons/delete.png\" alt=\"Löschen\" title=\"Löschen\" /></a>";
                        }    
                    }
                    echo "</div>
            </div>

            <div class=\"boxBody\">";
                // wenn BBCode aktiviert ist, die Beschreibung noch parsen, ansonsten direkt ausgeben
                if($g_preferences['enable_bbcode'] == 1)
                {
                    echo $bbcode->parse($announcement->getValue("ann_description"));
                }
                else
                {
                    echo nl2br($announcement->getValue("ann_description"));
                }
            
                echo "
                <div class=\"editInformation\">";
                    $user_create = new User($g_db, $announcement->getValue("ann_usr_id"));
                    echo "Angelegt von ". $user_create->getValue("Vorname"). " ". $user_create->getValue("Nachname").
                    " am ". mysqldatetime("d.m.y h:i", $announcement->getValue("ann_timestamp"));

                    // Zuletzt geaendert nur anzeigen, wenn Aenderung nach 15 Minuten oder durch anderen Nutzer gemacht wurde
                    if($announcement->getValue("ann_usr_id_change") > 0
                    && (  strtotime($announcement->getValue("ann_last_change")) > (strtotime($announcement->getValue("ann_timestamp")) + 900)
                       || $announcement->getValue("ann_usr_id_change") != $announcement->getValue("ann_usr_id") ) )
                    {
                        $user_change = new User($g_db, $announcement->getValue("ann_usr_id_change"));
                        echo "<br />Zuletzt bearbeitet von ". $user_change->getValue("Vorname"). " ". $user_change->getValue("Nachname").
                        " am ". mysqldatetime("d.m.y h:i", $announcement->getValue("ann_last_change"));
                    }
                echo "</div>
            </div>
        </div>";
    }  // Ende While-Schleife
}

if($num_announcements > 10)
{
    // Navigation mit Vor- und Zurueck-Buttons
    // erst anzeigen, wenn mehr als 2 Eintraege (letzte Navigationsseite) vorhanden sind
    $base_url = "$g_root_path/adm_program/modules/announcements/announcements.php?headline=$req_headline";
    echo generatePagination($base_url, $num_announcements, 10, $req_start, TRUE);
}
        
require(THEME_SERVER_PATH. "/overall_footer.php");

?>
Antworten