[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
event_cal Monatsausgabe - 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/
Eruadan
Beiträge: 55
Registriert: 17. Jun 2010, 14:05

event_cal Monatsausgabe

29. Jun 2010, 09:53

Hallo allemal,

Ich benutze folgendes angepasstes Modul um den event_cal auszugeben:

Code: Alles auswählen

<?php

class rex_cal
{

	var $curYear;
	var $curMonth;		//Aktueller Monat als Zahl
	var $monthDays;		//Anzahl der Tage des aktuellen Monats 
	var $firstDay;		//erster Tag des aktuellen Monats
	var $values = array();			//Array mit dem ID-Wert des Events

	function rex_cal($givenMonth = '', $givenYear = '')
	{
				
		//Wenn kein Jahr angegeben wird, dann nehme ich den das aktuelle
		if($givenYear == '')
			$this->curYear = date('Y', time());
		else
			$this->curYear = $givenYear;
		
		//Wenn kein Monat angegeben wird, dann nehme ich den aktuellen Monat
		if($givenMonth == '')
			$this->curMonth = date('n', time());
		else
			$this->curMonth = $givenMonth;
		
		$this->monthDays = date('t', mktime(0, 0, 0, $this->curMonth, 1, $this->curYear));
		$this->firstDay = date('w', mktime(0, 0, 0, $this->curMonth, 1, $this->curYear));
		
		
		//wir r?cken das Array um so viele Stellen weiter, bis es mit dem startenden Wochentag ?bereinstimmt
		for($pushDay = 0; $pushDay<$this->firstDay; $pushDay++)
		{
			array_push($this->values, NULL);
		}
		
		//wir bef?llen das Array standard-m?§ig mit Zahlen
		for($day = 1; $day<=$this->monthDays; $day++)
		{
			array_push($this->values, '<span class="day">'.$day.'</span>');
		}	
		
		if($this->curMonth == 13)
		{
			$this->curMonth = 1;
			$this->curYear++;
		}
		
		if($this->curMonth == 0)
		{
			$this->curMonth = 12;
			$this->curYear--;
		}	
	
	}
	
	//F?gt einen Wert in ein Array
	function setValue($tag, $value)
	{
		$this->values[$tag+$this->firstDay-1] = $this->values[$tag+$this->firstDay-1].$value;
	}
	
	//F?gt einen Link in ein Array
	function setLink($tag, $befor, $after)
	{
		$this->values[$tag+$this->firstDay-1] = $befor.$this->values[$tag+$this->firstDay-1].$after;
	}
	
	function setrepeatValue($tag, $value)
	{
		
	}
	
	function nextMonth()
	{
		$this->curMonth = $this->curMonth+1;
		
		if($this->curMonth == 13)
		{
			$this->curMonth = 1;
			$this->curYear++;
		}	
	}
	
	function lastMonth()
	{
		$this->curMonth = $this->curMonth-1;
		
		if($this->curMonth == 0)
		{
			$this->curMonth = 12;
			$this->curYear--;
		}	
	}
	
	function nextYear()
	{
		$this->curYear = $this->curYear+1;
	}
	
	function lastYear()
	{
		$this->curYear = $this->curYear-1;
	}
	
	//liefert den aktuellen Monat als Namen zur?ck
	function getMonth($month = array('J&auml;nner', 'Februar', 'M&auml;rz', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'))
	{
		return $month[$this->curMonth-1];
	}
	
	function getMonthAsNumber()
	{
		return $this->curMonth;
	}

	function getKalender($header = array('Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag'))
	{
		
			
		$output = '<table class="kalendar">
			<tr>
		';
		
		foreach($header as $element)
			$output .= '<th>'.$element.'</th>'
			;
		
		$output .= '</tr>'
		;
		
		for($row = 1; $row<=5; $row++)
		{
			$output .= '<tr>
			';
			for($col= 1; $col<=7; $col++)
			{
				if($this->values[$col+(($row-1)*7)] == "")
					$class='class="none"';
				else
					$class = "";
					
				$output .= '<td '.$class.'>'.$this->values[$col+(($row-1)*7)].'</td>
				';
			}
			$output .= '</tr>
			';
		}
		
		$output .= '</table>
		';
		
		
		return $output;	
	}


}


//Wenn es noch keine eventID gibt -> wenn kein Termin angeklickt wurde
if(!isset($_REQUEST['eventid']))
{
	
	if(!isset($_REQUEST['month']))
		$makeCal = new rex_cal();
	else
		$makeCal = new rex_cal($_REQUEST['month']);
	

	$getAll = new rex_sql;
	$getAll->setQuery("SELECT * FROM rex_120_events WHERE SUBSTRING(DATE, 5,2)='".sprintf("%02d", $makeCal->getMonthAsNumber())."'");
		
	
	for($u=0; $u<$getAll->getRows(); $u++)
	{
		if($getAll->getValue('DATE') != '')
		{
			$makeCal->setValue(substr($getAll->getValue('DATE'), 6, 2), '<a href="index.php?article_id=23&eventid='.$getAll->getValue('ID').'" title="'.$getAll->getValue('EVENT').'">'.substr($getAll->getValue('EVENT'), 0, 15).'</a>');
		}
		$getAll->next();
	}
	
	echo "<h2>Veranstaltungen im ".$makeCal->getMonth().":</h2>";
	echo $makeCal->getKalender();
	
	echo '<p class="navigation cal">
					<span class="last">
						<a href="index.php?article_id=23&month='.($makeCal->getMonthAsNumber()-1).'">
							vorherigen Monat anzeigen
						</a>
						<em>.</em>
					</span>
					
					<span class="next">
						<a href="index.php?article_id=23&month='.($makeCal->getMonthAsNumber()+1).'">
							n&auml;chsten Monat anzeigen
						</a>
					</span>
				</p>';
}


//andernfalls...
else
{
	$getAll = new rex_sql;
	$getAll->setQuery("SELECT * FROM rex_120_events WHERE ID='".$_REQUEST['eventid']."'");
	
	if($getAll->getRows() > 0)
	{
		echo '<h2>Veranstaltung</h2>';
	
		echo '<p class="eventdate">'.substr($getAll->getValue('DATE'), 6, 2).'.'.substr($getAll->getValue('DATE'), 4, 2).'.'.substr($getAll->getValue('DATE'), 0, 4).'</p>';
		echo '<p class="eventtext">
			'.$getAll->getValue('EVENT').'
		</p>';
	}
	else
	{
		echo '<p class="warning">Dieses Event existiert nicht!</p>';
	}
	
	echo '<p class="back"><a href="index.php?article_id=23">Zur&uuml;ck</a></p>';
}

?>
Ich bekomme folgende Fehleranzeige:

Code: Alles auswählen

Notice: Undefined offset: 33 in /var/www/vhosts/ucae.lu/httpdocs/redaxo/include/classes/class.rex_article.inc.php(671) : eval()'d code on line 302 Notice: Undefined offset: 33 in /var/www/vhosts/ucae.lu/httpdocs/redaxo/include/classes/class.rex_article.inc.php(671) : eval()'d code on line 307
Ich benutze dieses Modul da es das einzige ist, was ich gefunden habe, was auch eine Monatsansicht im Kalenderformat anbietet. Als Listenausgabe würde ich ja eher den REXkalender benutzen, der funktioniert ja auch tadellos, aber leider entspricht das nicht meinen Erwartungen. Eine Alternative ist auch willkommen, aber die Monatsansicht müsste schon sein.

Weiß da jemand Rat?

Danke schonmal im voraus!

Eru

Benutzeravatar
Cheffchen
Beiträge: 1809
Registriert: 3. Mär 2009, 13:51
Wohnort: Berlin
Kontaktdaten: Website

29. Jun 2010, 11:49

Hallo,
mal ne frage wie hast das Modul genannt?

Der code selber funzt wenn man gerne Infos versteckt :O).

Cheffchen

Eruadan
Beiträge: 55
Registriert: 17. Jun 2010, 14:05

29. Jun 2010, 14:04

Hallo Cheffchen,

ich hatte deine Meinung bezüglich des Kalenders bereits in einem Threat gelesen ;) Ich kann das auch verstehen, nur in diesem Falle ist es nicht meine eigene Entscheidung, daher muss ich mich beugen.


Das Modul heißt bei mir "14 - event_cal". Hat das denn irgendeine Bedeutung?

Eru

Eruadan
Beiträge: 55
Registriert: 17. Jun 2010, 14:05

29. Jun 2010, 14:26

Das interessante daran ist, das diese Fehlermeldung nicht bei allen Monaten erscheint. Sondern nur bei bestimmten, unabhängig ob Einträge im Kalender sind oder nicht...

Aber es erscheint nur bei diesem Modul.

Benutzeravatar
Cheffchen
Beiträge: 1809
Registriert: 3. Mär 2009, 13:51
Wohnort: Berlin
Kontaktdaten: Website

29. Jun 2010, 14:56

Hallo, mit dem Namen wahr so eine Idee.

Ich habe deins genommen und nur die Seiten ID als variable gemacht, immer das 6 mal ändern nervt :O).

Einige Monate vor und zurück alles iO ausser das Januar falsch geschrieben ist :O).

Was sind die bestimmten Monate, mit Sonderzeichen? gerade/ungerade?

Cheffchen

Eruadan
Beiträge: 55
Registriert: 17. Jun 2010, 14:05

29. Jun 2010, 15:20

Januar, Mai, Juli, Oktober sind in Ordnung. Die anderen haben 1 bis mehrere von den Meldungen obwohl aktuell nur im Juni & Juli Einträge eingetragen sind.

Ich kann da keine Struktur drin erkennen.

PS.: Vielleicht Konflikt mit REXKalender?

Benutzeravatar
Cheffchen
Beiträge: 1809
Registriert: 3. Mär 2009, 13:51
Wohnort: Berlin
Kontaktdaten: Website

29. Jun 2010, 16:39

Hallo,

REXKalender hab ich auch mal aktiviert, kein fehler.
REXKalender arbeitet mit rex_from und event_cal halt nicht, deswegen können die sich nicht stören.

Ich bin raus.

cu Cheffchen

Zurück zu „Allgemeines [R4]“