Seite 58 von 130

wie weit

Verfasst: 27.05.2008 21:11
von miliduch
wollte mal anfragen, wie weit du bist? 2wochen sind ja vorbei ... :oops:

Verfasst: 27.05.2008 21:44
von Tifker
Ich vermute, du hast da
Code:
include($phpbb_root_path . 'calendar/cronjob.' . $phpEx);
anstelle von
Code:
require($phpbb_root_path . 'calendar/common.' . $phpEx);
stehen gelassen...
Da hast du recht gehabt! :oops:

Verfasst: 28.05.2008 17:00
von hausmann
Guten Tag,

die Version 0.54 habe ich deinstalliert (einschl. Datenfelder) anschl. die Version 0.60 problemlos installiert.
Den Mod sehe ich im Adminbereich, kann ihn auch konfigurieren.
Sobald ich einen Eintrag im Kalender vornehme, kommt beim abspeichern folgende Fehlermeldung:

SQL ERROR [ mysqli ]

Field 'desc_text' doesn't have a default value [1364]

SQL

INSERT INTO phpbb3_cal_events (author) VALUES (3)

BACKTRACE


FILE: includes/db/mysqli.php
LINE: 143
CALL: dbal->sql_error()

FILE: calendar/common.php
LINE: 1806
CALL: dbal_mysqli->sql_query()

FILE: calendar/post_event.php
LINE: 98
CALL: cal_events::add_event()

FILE: calendar.php
LINE: 53
CALL: include('calendar/post_event.php')

Verfasst: 29.05.2008 07:17
von BB-BF-BM
Hallo!

@miliduch: ich habe mich verschätzt, insbesondere deshalb, weil es ja anscheinend auch Probleme bei der reinen Installation gibt. Einen Großteil dieser Probleme möchte ich euch beim Updaten ersparen (Probleme wird es vermutlich trotzdem geben).


@hausmann: der Fehler ist bereits bekannt, ich bin noch nicht dazu gekommen, ihn auch zu lokalisieren.

EDIT: Wusste ich doch: den Fehler gab es schon einmal (http://www.phpbb.de/viewtopic.php?p=952786#952786), allerdings einige Versionen früher. Wenigstens kenne ich dadurch die Lösung bereits.
Ich muss allerdings noch heraussuchen, welche Codestelle genau geändert werden muss.

Verfasst: 29.05.2008 16:41
von Tifker
Hallo,

nach wie vor klappt das mit den Cronjob nicht! Die einzige Meldung die ich von meinem Provider per Mail bekomme ist das der Cronjob den ich angelegt habe ausgeführt wurde! Jedoch keine Erinnerung für einem Termin per PN oder Mail! In den Kalendereinstellungen und beim Termin wäre die Erinnerungsfunktion aktiviert!

Meldung vom Provider:
Sehr geehrter Herr ,

der installierte Cronjob Ihres Paketes 123456789 'Domainserver' lieferte folgende Meldung(en) zurueck:

--
EntwurfInbox GesendetWichtig

Verfasst: 29.05.2008 20:40
von BB-BF-BM
Hallo

Zunächst die Änderungen wegen "Field '*' doesn't have a default value":

Datei: /calendar/common.php
  • (ca. Zeile 1538)

    Code: Alles auswählen

    		$sql = 'INSERT INTO ' . CALENDAR_USER_DATE_TABLE . '
    				(user_id,
    				event_id,
    				dmY)
    			VALUES
    				(' . $user->id . ',
    				' . $this->id . ",
    				'" . $this->day->get_dmY() . "')";
    		$GLOBALS['db']->sql_query($sql);
    ersetzen gegen:

    Code: Alles auswählen

    		$sql = 'INSERT INTO ' . CALENDAR_USER_DATE_TABLE . '
    				(user_id,
    				event_id,
    				dmY,
    				attendance_comment)
    			VALUES
    				(' . $user->id . ',
    				' . $this->id . ",
    				'" . $this->day->get_dmY() . "',
    				'')";
    		$GLOBALS['db']->sql_query($sql);
  • (ca. Zeile 1804)

    Code: Alles auswählen

    		$sql = 'INSERT INTO ' . CALENDAR_EVENTS_TABLE . '
    			(author)
    			VALUES
    			('.$user->id.')';
    		$GLOBALS['db']->sql_query($sql);
    ersetzen gegen:

    Code: Alles auswählen

    		$sql = 'INSERT INTO ' . CALENDAR_EVENTS_TABLE . '
    			(author,
    			desc_text)
    			VALUES
    			('.$user->id.",
    			'')";
    		$GLOBALS['db']->sql_query($sql);

@Tifker: in der Datei /calendar/cronjob.php den foreach-Block (nach

Code: Alles auswählen

include($phpbb_root_path.'calendar/inc.notify.'.$phpEx);
, vor

Code: Alles auswählen

return true;
ersetzen gegen:

Code: Alles auswählen

foreach (cal_users::$users as $_user)
{
	echo "<br />\n".$_user->name.": <br />\n";
	if (!$_user->notify_mode)
	{
		continue;
	}
	$day = cal_days::get_day_by_time($now + $_user->notify_days * 86400);
	echo $day->get_dmY()."<br />\n";
	if ($dates = $day->get_dates())
	{
		$date_num = 0;
		$_dates = $_dates_bbc = array();
		foreach ($dates as $date)
		{
			echo "+ ".$date->name."<br />\n";
			if (!$_user->is_invited_to_date($date))
			{
				continue;
			}
			if (!$_user->gets_notified_of_date($date))
			{
				continue;
			}
			echo "| - notify<br />\n";
			++$date_num;
			
			$_dates[] = '* "' . $date->name . '"'."\n"
						. '<' . $date->url->get_built(false, true) . '>';
			$_dates_bbc[] = '[*]"[url=' . $date->url->get_built(false, true) . ']' . $date->name . '[/url]"';
		}
		if (!$date_num)
		{
			continue;
		}
		$vars = array(
			'DATES'		=>	implode("\n\n", $_dates),
			'DATES_BBC'	=>	'[list]' . implode("\n", $_dates_bbc) . '[/list]',
			'NOTIFY_DAYS'	=>	$_user->notify_days,
			'NOTIFY_DAY'	=>	$day->get_format($_user->day_format)
		);
		cal_notify::add_msg($_user, 'notify', $vars, false);
		echo "notify user<br />\n";
	}
}
Nun sollte beim nächsten Aufruf eine Ausgabe erfolgen, anhand derer ich den Fehler leichter finden kann.

Wenn du willst, kannst du auch die Zeilen

Code: Alles auswählen

if (cal_config::$last_cronjob == $today_dmY)
{
	return false;
}

cal_config::set('last_cronjob', $today_dmY);
am Anfang der Datei auskommentieren:

Code: Alles auswählen

/*
if (cal_config::$last_cronjob == $today_dmY)
{
	return false;
}

cal_config::set('last_cronjob', $today_dmY);
*/
Dann kannst du den Cronjob beliebig oft hintereinander durch manuelles Aufrufen der Datei /cal_cronjob.php starten und die Ausgabe direkt im Browser sehen.

Verfasst: 29.05.2008 21:32
von hausmann
BB-BF-BM hat geschrieben:Zunächst die Änderungen wegen "Field '*' doesn't have a default value":
Danke Dir, jetzt kann ich Termine eingeben.

Wenn ich mich jedoch von einem Termin abmelde, kommt folgende Fehlermeldung:

SQL ERROR [ mysqli ]

Out of range value adjusted for column 'notify' at row 1 [1264]

Nach eine Frage: besteht die Möglichkeit, sich die Geburtstage anzusehen?

Verfasst: 30.05.2008 07:17
von BB-BF-BM
Hallo hausmann!

Code: Alles auswählen

 ALTER TABLE `phpbb3_cal_user_date_data` CHANGE `notify` `notify` TINYINT( 1 ) NOT NULL DEFAULT '0',
CHANGE `attendance_mode` `attendance_mode` TINYINT( 1 ) NOT NULL DEFAULT '0' 
Dieser SQL-Code dürfte auf die Schnelle das Problem beheben.


Geburtstage sollten eigentlich standardmäßig angezeigt werden. Sie werden mit dem Symbol [ externes Bild ] gekennzeichnet.

Verfasst: 30.05.2008 08:01
von hausmann
BB-BF-BM hat geschrieben: Hallo hausmann!


Geburtstage sollten eigentlich standardmäßig angezeigt werden. Sie werden mit dem Symbol [ externes Bild ] gekennzeichnet.
Das Symbol hat bei mir leider keine Wirkung.

Verfasst: 30.05.2008 08:04
von hausmann
BB-BF-BM hat geschrieben:Dieser SQL-Code dürfte auf die Schnelle das Problem beheben.
Danke Dir, es klappt.