[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REXkalender: Unterseite "Vergangene Events" -? - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Rumi
Beiträge: 73
Registriert: 20. Aug 2010, 01:35

REXkalender: Unterseite "Vergangene Events" -?

14. Sep 2010, 00:05

Hallo

ich bin Anfänger sowohl bei cms wie auch bei php, und hab mich nun trotzdem dran gewagt den REXKalender nach meinen Bedürfnissen umzubauen. Das ist mir sogar ziemlich gut gelungen, und ich hab viel gelernt dabei ;-)

Was ich nicht schaffe ist dass nur zukünftige Events angezeigt werden, während vergangene Events in einer separaten Seite (neueste zuoberst) angezeigt werden. Ich hab nicht mal rausgefunden wo in a423_kalender ich eine if-Schlaufe einbauen muss damit vergangene Events nicht angezeigt werden.

Also, was ich erreichen möchte: Hauptseite zeigt nur zukünftige Events an, zuunterst auf der Hauptseite hats einen Link zur "Vergangene Events"-Seite. Events werden automatisch dorthin verfrachtet wenn sie vorbei sind.

Nach meinem Verständnis brauche ich dazu einen switch mit den cases "list", "details" und "past", dazu im case "list" eine if-Schlaufe die nur zukünftige Events durchlässt, und im case "past" eine if-Schlaufe die nur vergangene Events durchlässt. Ist das richtig?

Was ich bis jetzt geschafft habe ist eine zutreffende Anzeige "Dieser Event ist vergangen" (als grobe Angabe darüber wie viel ich verstehe).

Für jede Hilfe bin ich sehr dankbar!
Zuletzt geändert von Rumi am 14. Sep 2010, 20:57, insgesamt 2-mal geändert.

Rumi
Beiträge: 73
Registriert: 20. Aug 2010, 01:35

Zur Zeit sieht a423_kalender so aus:

14. Sep 2010, 09:02

<?php
/* Konzertkalender von Rumi S. Hatt, http://www.rumishatt.ch
* Basierend auf dem
* REXkalender by GN2-Netwerk.
* File SVN Version: $Id: index.inc.php 21 2009-11-19 13:56:33Z ssh-68390 $
* http://www.gn2-netwerk.de/
*/

class a423_kalender {
var $categories = array();
var $showInList = array();
var $locale = 'de_de';
var $charset = 'UTF-8';
var $dateformat = '%d.%m.%Y';
var $article_id = '';

function a423_kalender() {
}


function setCategories($categories) {
if ($categories!="") {
if (!is_array($categories)) {
$categories = explode(',',$categories);
}

$this->categories = $categories;
} else {
$this->categories=$array;
}


}

function setArticleId($id) {
$id = intVal($id);
if ($id===0) {
$id='';
}
$this->article_id='';
}

function showInList($string) {
$this->showInList=explode(',',$string);
}

function setLanguages($langs) {
$this->languages = $langs;
$langid = rex_request('clang','int');
if (array_key_exists($langid,$this->languages)) {
$this->language = $this->languages[$langid];
} else {
$this->language = '';
}
}


function show() {
global $REX;
$I18N_A423 = new i18n($this->language, $REX['INCLUDE_PATH'].'/addons/konzertkalender/lang/');

ob_start();
setlocale(LC_TIME, $this->locale);

//check sent variables
$sel_month = rex_request('rexkal_month');
$sel_year = rex_request('rexkal_year');

$sel_month=intVal($sel_month);
if ($sel_month<10) {
$sel_month = '0'.$sel_month;
}

if ($sel_month>0 && $sel_year=="all") {
$sel_year=date('Y');
}
$sel_year=intVal($sel_year);


$sel_cat=rex_request('rexkal_cat','int');
$sel_id=rex_request('rexkal_id','int');


$sel_from = strip_tags(rex_request('rexkal_from','string'));
$sel_to = strip_tags(rex_request('rexkal_to','string'));

//generate a months array for the current locale
$monthsArray = array();
$monthsArray['all']=$I18N_A423->msg('front_all');
for($i=1;$i<=12;$i++) {
$month=$i;
if ($i<10) {$month='0'.$month;}
$timestamp = strtotime(date('Y').'-'.$month.'-01 10:00:00');
if ($this->charset == "UTF-8") {
$monthsArray[$i]=utf8_encode(strftime("%B",$timestamp));
} else {
$monthsArray[$i]=utf8_decode(strftime("%B",$timestamp));
}
}
$drop_months = new rex_select;
$drop_months->setId('rexkal-month');
$drop_months->setName('rexkal_month');
$drop_months->addOptions($monthsArray);
$drop_months->setSize(1);
$drop_months->setSelected($sel_month);

//generate a years array
$yearsArray = array();
$yearsArray['all']=$I18N_A423->msg('front_all');
for ($i=date('Y');$i<=2032;$i++) {
$yearsArray[$i]=$i;
}
$drop_years = new rex_select;
$drop_years->setId('rexkal-year');
$drop_years->setName('rexkal_year');
$drop_years->setSize(1);
$drop_years->addOptions($yearsArray);
$drop_years->setSelected($sel_year);


//generate catlist
$drop_cats = new rex_select;
$drop_cats->setId('rexkal-cat');
$drop_cats->setName('rexkal_cat');
$drop_cats->setSize(1);
$drop_cats->addOption($I18N_A423->msg('front_all'),'all');
$drop_cats->addSqlOptions('SELECT categoryName as label,catId as id FROM '.$REX['TABLE_PREFIX'].'423_categories order by categoryName asc');
$drop_cats->setSelected(rex_request('rexkal_cat'));


$events = new rex_sql;
$sql = 'SELECT
e.eventId,
e.eventName,
e.pictures,
e.shortdesc,
e.longdesc,
e.dateStart,
UNIX_TIMESTAMP(e.dateStart) as dateStartFormatted,
e.timeStart,
UNIX_TIMESTAMP(e.timeStart) as timeStartFormatted,
c.catId,
c.categoryName

FROM
'.$REX['TABLE_PREFIX'].'423_events as e,
'.$REX['TABLE_PREFIX'].'423_categories as c

WHERE
e.rCategory = c.catId
';

if (count($this->categories)>0) {
$selected_cats = implode(',',$this->categories);
} else {
$selected_cats = "";
}
if ($selected_cats!="") {
$sql.='
&&
catId IN ('.$selected_cats.')
';
}

if ($sel_year>0) {
$sql.= '
&&
dateStart LIKE "'.$sel_year.'-%%-%%"
';
}

if ($sel_month>0 && $sel_year>0) {
$sql.= '
&&
dateStart LIKE "%%-'.$sel_month.'-%%"
';
}

if ($sel_cat>0) {
$sql.= '
&&
e.rCategory = '.$sel_cat.'
';
}


if ($sel_id>0) {
$sql.= '
&&
e.eventId = '.$sel_id.'
';
}


//date ranges
if ($sel_from!="" && $sel_to!="") {
$sql.= '
&&
dateStart >= "'.$sel_from.'-01"
&&
dateEnd <= "'.$sel_to.'-31"';
}


$sql.= '
ORDER BY
e.dateStart ASC
';

$events->setQuery($sql);

$view = rex_request('mode');




//------------------------------------------------------------------------
// output
ob_start();
echo '<form action="'.rex_getUrl($this->article_id).'" method="get">'."\n";

echo '</form>'."\n";
$rexkalform = ob_get_contents();
ob_end_clean();

switch($view) {

//EINZELAUSGABE

case "details":

if ($events->getRows()>0) {

$dateStart = strtotime($events->getValue('dateStart'));
$timeStart = strtotime($events->getValue('timeStart'));

echo '<br><h3 class="rexkal-cat">';
echo ' '.$events->getValue('categoryName').'</h3><br>';

echo '<div class="rexkal-details">';

echo '<div class="rexkal-date">';
echo '<p><b>'.utf8_decode(strftime('%A',$dateStart)).', ';
echo date('d. m. Y',$dateStart).'</b> ';
echo date('H:i',$timeStart).' Uhr';

echo '</p></div>';
echo '<div class="rexkal-ort">';
echo '<p>'.$events->getValue('eventName').'</p><br></div>';

$tex = new Textile;
$desc = $events->getValue('longdesc');

if ($desc!="") {
echo '<div class="rexkal-longdesc">';

if ($events->getValue('pictures')!="") {

$picture = $events->getValue('pictures');
if (file_exists($REX['HTDOCS_PATH'].'/files/'.$picture)) {
echo '<p class="rexkal-picture"><img src="index.php?rex_resize=265w__'.$picture.'" alt="" /></p>';
}
}
echo $tex->TextileThis($desc);
echo '</div>';
}

$tex = new Textile;
$desc = $events->getValue('shortdesc');

if ($desc!="") {
echo '<br><div class="rexkal-shortdesc"><p class="label">'.$I18N_A423->msg('front_heading_shortDesc').':</p>';
echo ''.$tex->TextileThis($desc).'</div>';
}

}

echo '</div>';

$params = $_GET;
$params['mode']='list';
unset($params['rexkal_id']);
$url = rex_getUrl($this->article_id,rex_request('clang'),$params);
echo '<br><br><p class="rexkal-backlink"><a class="rexkal-backlink" href="'.$url.'">'.$I18N_A423->msg('front_backlink').'</a></p>';

break;


//LISTENAUSGABE

case "list":

default:

if ($events->getRows()>0) {
$previousMonth = '';
echo '<br><br>';

for ($i=0;$i<$events->getRows();$i++) {

$currentDate = $events->getValue('dateStart').' 10:00:00';
$currentMonth = date('m',strtotime($currentDate));
$nowMonth = date("m");

if ($i>0 && $currentMonth!=$previousMonth) {
echo '<br><br><br></div>';
}

if ($currentMonth!=$previousMonth) {
echo '<div>';
echo ' <div class="cal-list-month">';
if ($this->charset == "UTF-8") {
echo (strftime('%B',strtotime($currentDate)));
} else {
echo utf8_decode(strftime('%B',strtotime($currentDate)));
}
echo ' '.date('Y',strtotime($currentDate));
echo '<br><br>';
echo '</div>'."\n";
}

echo ' <div class ="cal-list">'."\n";

$dateStart = strtotime($events->getValue('dateStart'));
$timeStart = strtotime($events->getValue('timeStart'));

echo '<br><span class="rexkal-date">';
echo ''.utf8_decode(strftime('%a',$dateStart)).', ';
echo date('d.m.Y',$dateStart).'</span> ';
echo '<span class="listtime">'.date('H:i',$timeStart).' Uhr'.'</span>';

echo '<br><br>'.$events->getValue('categoryName');


$desc = $events->getValue('longdesc');
$shortdesc = $events->getValue('shortdesc');
if ($desc!="" || $shortdesc!="") {
$params['mode']='details';
$params['rexkal_id']=$events->getValue('eventId');
unset($params['article_id']);
$url = rex_getUrl($this->article_id,rex_request('clang'),$params);
echo '<div class="details"><a class="nounderline" href="'.$url.'">'.'Details'.'</a></div>';
}

echo '<div class="rexkal-ort">';
echo '<br>'.$events->getValue('eventName').'<br><br></div>';


if ($currentMonth<=$nowMonth) {
echo 'Dieser Event ist bereits vergangen<br><br>';
}

foreach ($this->showInList as $k=>$v)
{
}

$events->next();
echo ' </div><br>'."\n";

if ($i==$events->getRows()-1) {
echo '</div>';
}

$previousMonth = $currentMonth;

}
} else {
echo '<br><br><br><p class="rexkal-warning">'.$I18N_A423->msg('front_noEvents').'</p>';
}
}
}
}


?>
Zuletzt geändert von Rumi am 14. Sep 2010, 09:19, insgesamt 2-mal geändert.

Rumi
Beiträge: 73
Registriert: 20. Aug 2010, 01:35

Und hier wie es zur Zeit aussieht:

14. Sep 2010, 09:06

http://www.summselbrumm.ch/rumi/index.php?article_id=32

(Alle Inhalte sind erfunden!)

Zuunterst in der Listen-Ansicht sollte dann eben immer ein Link sein zu "Vergangene Konzerte", auch wenn derzeit keine Konzerte geplant sind.

Rumi
Beiträge: 73
Registriert: 20. Aug 2010, 01:35

14. Sep 2010, 22:34

Oder gibt es die Möglichkeit dass zwei verschiedene Seiten auf dieselbe Datenbank zugreifen? Das würde die Sache natürlich sehr vereinfachen.

Falls das möglich ist, wie realisiere ich das?

Rumi
Beiträge: 73
Registriert: 20. Aug 2010, 01:35

18. Sep 2010, 23:20

Hat jemand einen Rat für mich? Auch ein fruchtbarer Teil-Hinweis kann schon viel helfen.

Herzlichen Dank!

Rumi
Beiträge: 73
Registriert: 20. Aug 2010, 01:35

25. Sep 2010, 10:51

Bin nach wie vor froh um jede Hilfe!

Zurück zu „Allgemeines [R4]“