Seite 10 von 130

Verfasst: 27.09.2007 14:12
von silke1977
Du, ich hab das alte Forum ja noch online. Ich richte da mal eben nen User ein, dann kannste dir das mal ansehen okay ?

Verfasst: 27.09.2007 15:16
von BB-BF-BM
Versuch einmal folgendes:
Füge in der Datei calendar/functions.php am Ende folgende Funktion ein:

Code: Alles auswählen

function get_private_birthdays_as_events()
{
	$events = array();
	$forum_ids = '0';
	
	$sql = 'SELECT post_id, post_subject, post_text, bbcode_uid, bbcode_bitfield, enable_bbcode, enable_smilies, enable_magic_url
		FROM ' . POSTS_TABLE . '
		WHERE forum_id IN ('.$forum_ids.')';
	$result = $GLOBALS['db']->sql_query($sql);
	while ($row = $GLOBALS['db']->sql_fetchrow($result))
	{
		$bday = explode('.', substr($row['post_text'], -10));
		$bday = array((int)$bday[0], (int)$bday[1], (int)$bday[2]);
		$cond = array(
			'start'	=>	(string) gmmktime(0, 0, 0, $bday[1], $bday[0], $bday[2]),
			'end'	=>	'',
			'week_of_month'	=>	'',
			'week_of_month_begin'	=>	'',
			'week_of_year'	=>	'',
			'week_of_year_begin'	=>	'',
			'w'	=>	'',
			'd'	=>	(string) $bday[0],
			'm'	=>	(string) $bday[1],
			'Y'	=>	'',
			'anti'	=>	0,
			'priority'	=>	1
		);
		
		$flags = ($row['enable_bbcode'] ? 1 : 0) + ($row['enable_smilies'] ? 2 : 0) + ($row['enable_magic_url'] ? 4 : 0);
		$desc_edit = decode_message($row['post_text']);
		$events[] = array(
			'event_url'		=>	append_sid("{$GLOBALS['phpbb_root_path']}viewtopic.{$GLOBALS['phpEx']}", 'p='.$row['post_id']),
			'event_name'	=>	sprintf($GLOBALS['user']->lang['_BIRTHDAY_OF'], $row['post_subject']),
			'event_desc_edit'	=>	$desc_edit,
			'event_desc_clean'	=>	generate_text_for_display($row['post_text'], $row['bbcode_uid'], $row['bbcode_bitfield'], $flags),
			'author'		=>	ANONYMOUS,
			'cat_id'		=>	CAL_BIRTHDAY_CAT,
			'conditions'	=>	array($cond),
		);
	}
	
	$GLOBALS['db']->sql_freeresult($result);
	return $events;
}
Bei

Code: Alles auswählen

$forum_ids = '0';
musst du statt der 0 die IDs der Foren eintragen, durch Kommas getrennt.
In deinem alten Forum müsste da dann stehen:

Code: Alles auswählen

$forum_ids = '11,12,13,14,15,16,17,18,19,20,21,22';

Dann musst du noch in der gleichen Datei

Code: Alles auswählen

function collect_events($refresh = false)
{
	static $events = array();
	if ($events && !$refresh)
	{
		return $events;
	}
	else
	{
		$events = array();
		$events = array_merge($events, get_events_from_db());
		$events = array_merge($events, get_birthdays_as_events());
		return $events;
	}
}
mit

Code: Alles auswählen

function collect_events($refresh = false)
{
	static $events = array();
	if ($events && !$refresh)
	{
		return $events;
	}
	else
	{
		$events = array();
		$events = array_merge($events, get_events_from_db());
		$events = array_merge($events, get_birthdays_as_events());
		$events = array_merge($events, get_private_birthdays_as_events());
		return $events;
	}
}
ersetzen.

Ich hoffe, das funktioniert!

Verfasst: 27.09.2007 15:36
von silke1977
Na du bist ja klasse, das werde ich gleich mal probieren und bescheid geben :-)

Verfasst: 27.09.2007 16:03
von silke1977
So, hab die Änderungen jetzt gemacht (originale functions natürlich gespeichert :wink: ) und es kommt folgende Fehlermeldung:

Code: Alles auswählen

SQL ERROR [ mysql5 ]

Unknown column 'bbcode_options' in 'field list' [1054]

SQL

SELECT post_id, post_subject, post_text, bbcode_uid, bbcode_bitfield, bbcode_options, enable_bbcode, enable_smilies, enable_magic_url FROM phpbb3_posts WHERE forum_id IN (11,12,13,14,15,16,17,18,19,20,21,22)

BACKTRACE


FILE: includes/db/mysql.php
LINE: 158
CALL: dbal_mysql->sql_error()

FILE: calendar/functions.php
LINE: 1526
CALL: dbal_mysql->sql_query()

FILE: calendar/functions.php
LINE: 82
CALL: get_private_birthdays_as_events()

FILE: calendar.php
LINE: 151
CALL: collect_events()
[/code]

Verfasst: 27.09.2007 16:09
von BB-BF-BM
tausche im hinzugefügten Code

Code: Alles auswählen

	$sql = 'SELECT post_id, post_subject, post_text, bbcode_uid, bbcode_bitfield, bbcode_options, enable_bbcode, enable_smilies, enable_magic_url
		FROM ' . POSTS_TABLE . '
		WHERE forum_id IN ('.$forum_ids.')';
gegen folgenden aus:

Code: Alles auswählen

	$sql = 'SELECT post_id, post_subject, post_text, bbcode_uid, bbcode_bitfield, enable_bbcode, enable_smilies, enable_magic_url
		FROM ' . POSTS_TABLE . '
		WHERE forum_id IN ('.$forum_ids.')';

Verfasst: 27.09.2007 16:36
von silke1977
jetzt kommt folgendes:

Code: Alles auswählen

Fatal error: Call to undefined function: sub_str() in /homepages/14/d200439175/htdocs/mamitas/phpBB3/calendar/functions.php on line 1529
Und hier die Zeilen 1523-1544 meiner geänderten funktions.php

Code: Alles auswählen

$sql = 'SELECT post_id, post_subject, post_text, bbcode_uid, bbcode_bitfield, enable_bbcode, enable_smilies, enable_magic_url 
      FROM ' . POSTS_TABLE . ' 
      WHERE forum_id IN ('.$forum_ids.')'; 
   $result = $GLOBALS['db']->sql_query($sql); 
   while ($row = $GLOBALS['db']->sql_fetchrow($result)) 
   { 
      $bday = explode('.', sub_str($row['post_text'], -10)); 
      $bday = array((int)$bday[0], (int)$bday[1], (int)$bday[2]); 
      $cond = array( 
         'start'   =>   (string) gmmktime(0, 0, 0, $bday[1], $bday[0], $bday[2]), 
         'end'   =>   '', 
         'week_of_month'   =>   '', 
         'week_of_month_begin'   =>   '', 
         'week_of_year'   =>   '', 
         'week_of_year_begin'   =>   '', 
         'w'   =>   '', 
         'd'   =>   (string) $bday[0], 
         'm'   =>   (string) $bday[1], 
         'Y'   =>   '', 
         'anti'   =>   0, 
         'priority'   =>   1 
      ); 

Verfasst: 27.09.2007 16:41
von BB-BF-BM
ok, ersetze

Code: Alles auswählen

$bday = explode('.', sub_str($row['post_text'], -10)); 
mit

Code: Alles auswählen

$bday = explode('.', substr($row['post_text'], -10)); 

Verfasst: 27.09.2007 18:40
von silke1977
Ich hab das jetzt geändert, es sind keinerlei Fehlermeldungen mehr da.
Allerdings aber zeigt er auch nichts aus Forum an. Am 20.10. müsste etwas stehen, was im Forum auch steht. Wie muss ich denn jetzt die Termine am besten eintragen ?

Mein anderes Problem ist, das ich schon vor Tagen Kategorien angelegt habe, 3 um genau zu sein. Leider nimmt er offensichtlich im Kalnder nur eine davon an. Was hab ich denn da falsch gemacht ? Im ACP aber werden mir alle drei angezeigt.

Verfasst: 27.09.2007 19:31
von BB-BF-BM
Hast du für alle Kategorien auch die entsprechenden Rechte vergeben?

Die Geburtstage werden in der Kategorie angezeigt, in der auch phpBB-interne Geburtstage angezeigt werden, sofern du dort eine Kategorie gewählt hast.

Wenn du das nicht möchtest, musst du CAL_BIRTHDAY_CAT mit der Kategorie-ID ersetzen.
BTW: Die Foren-IDs hast du überprüft?

Verfasst: 27.09.2007 19:51
von silke1977
Problem mit den ID's ist, das in meiner Datenbank keine namen stehen sondern nur was mit BOT und ne kb zahl.
ich bin dann einfach im ACP im Register Foren mit der Maus auf den Entprechenden Foren gefahren und dann stand unten in der Statusleiste im Link ne ID. Und es stimmte sogar mit dem ein, was du geschrieben hast, also hat er wohl die ID's aus dem alten Forum übernommen.

Welche Rechte in den kategorien ? Wie mach ich das denn ? Genau wie mit den Foren ?


Im Kalender hatte ich eingestellt, das er Foreninterne Birthdays in der Kategorie Geburtstage (von mir im ACP erstellt) ausgeben soll. Hatte auch geklappt.
Hatte es dann aber ausgestellt, weiß auch nicht warum. Muss ich mal nochmal aktivieren.