Seite 14 von 16

Verfasst: 06.05.2007 08:55
von BB-BF-BM
@Stanley: die Alphabetische Sortierung und die Auslagerung des Cronjobs habe ich in meine ToDo aufgenommen. Zu den Templates: Solche Anpassungen sollte meiner Meinung nach wirklich jeder für sich selbst durchführen.

@NoLeader: Der erste Fehler war ein Denkfehler meinerseits. Er wird erst in Version 0.5.0 verbessert werden.
Der andere Änderungsvorschlag wird ebenfalls in Version 0.5.0 enthalten sein.

Ich werde mich jetzt zunächst der Entwicklung von 0.5.0 widmen, was einige Zeit in Anspruch nimmt.

Verfasst: 06.05.2007 13:05
von StanleyG
NoLeader hat geschrieben:Hallo, ich bins noachmal :)

Bug: Die "Nächste Termine" werden nicht nach aufsteigender Datumsreihenfolge sortiert.
Ja, sie werden jetzt in der Reihenfolge ausgegeben, wie sie in der Datenbank erfasst sind (d.h. unsortiert).
Aber BB-BF-BM hat schon für die nächste Version eine Sortierung angekündigt. Wir sollten also etwas Geduld haben.
Kannst du mir ausserdem noch einen Tipp geben, wie ich die Kategorien in den "Nachsten Teminen" anzeigen kann?
Wo hast Du die Box Nächste Termine? Auf der Kalenderseite oder auf einer Portalseite?
Ich habe die Box Nächste Termine auf die Portalseite gesetzt, dazu gibt es hier im Thread irgendwo vom Autor einen Download.
Den habe ich dann um die Anzeige der Kategorien erweitert, d.h. bei mir sieht es so aus: Kategorie: <a>Terminbezeichnung, Datum</a>
(d.h. Terminbezeichnung mit Datum sind als Link zum Termin im Kalender ausgelegt).
Stanley

Verfasst: 06.05.2007 14:30
von buegelfalte
Moin,

also bei mir geht nach dem Update auf 0.4.0 der Kalender überhaupt nicht mehr :(
Hab schon den ganzen Thread durch und die kleineren Bugfixes nachgeschoben, die hier gepostet wurden (wäre nicht schlecht, wenn die in dem Archiv, was man sich runterlädt, direkt drin wären !), aber es hilft nicht.

Mit Klick auf Kalender passiert einfach NICHTS, das Skript lädt sich n Wolf, aber das wars dann auch ...

B.

Verfasst: 06.05.2007 17:01
von NoLeader
Hallo StanleyG,

Ja ich habe die Nächsten Termine auf der Portalseite, wie du beobachten kannst war das der Vorschlag meinerseits,

BB-BF-BM, hat mir dann geholfen die portal.php zu modifizieren,


doch wie muss man diese portal.php modifizieren, so dass die Variable "Kategorie" in die .tpl zu gebrauchen ist...?

Ich danke für die Erklärung.

@BB-BF-BM: Mach weiter so, der Mod ist einfach "Zauberhaft" ;-)

Verfasst: 06.05.2007 17:20
von Surfer90
BB-BF-BM hat geschrieben:
EDIT
@Surfer90:
Verlinke mal die overall_header.tpl!
Ich habe den Verdacht, dass die Eventlist ebenfalls den Template-Block "event" nutzt (auch wenn ich mir nicht vorstellen kann, wofür).
overall_header.txt

Die Eventlist habe ich vor deinem Kalendar eingefügt (da kannte ich den noch noch net)....also auf die könnte ich verzichten

PS: Es tut mir schon fast leid, dass ich dir ständig fragen stelle, wenn ich so sehe, wie viele hier fragen haben -> NOchma danke für den SupporT

Verfasst: 06.05.2007 17:26
von StanleyG
Hallo NoLeader,

also ich beziehe mich jetzt auf die von BB-BF-BM hier in diesem Thread bereitgestellte Portal.php.

Suche nach:

Code: Alles auswählen

$no_events = 1;
while( list($date, $event) = each($events) )
{
   while( list($id, $data) = each($event) )
   {
      $template->assign_block_vars('cal_next_events', array(
         'date'   =>   $date,
         'name'   =>   htmlspecialchars($data['name']),
         'url'   =>   append_sid('calendar.'.$phpEx.'?event='.$data['id'].params('&', 'm', 'y', 'show_events')),
         'desc'   =>   nl2br(htmlspecialchars($data['desc']))
      ));
      $no_events = 0;
   }
}
ersetze mit:

Code: Alles auswählen

$no_events = 1;
while( list($date, $event) = each($events) )
{
   while( list($id, $data) = each($event) )
   {
		$message = $data['desc'];
		$message = make_clickable($message);
		$message = str_replace("\n", "\n<br />\n", $message);
		$_cats = $data['cats'];
		$cats = '';
		while( list(, $cat) = each($_cats) )
		{
			if( isset($CATS[$cat]) && $CATS[$cat]['read'] )
			{
				if( $cats !== '' )
				{
					$cats .= ', ';
				}
				$cats .= $CATS[$cat]['name'];
			}
		}

		$template->assign_block_vars('cal_next_events', array(
        'date'   =>   $date,
        'name'   =>   htmlspecialchars($data['name']),
        'url'   =>   append_sid('calendar.'.$phpEx.'?event='.$data['id'].params('&', 'm', 'y', 'show_events')),
        'desc'   =>   $message,
		'cats' => $cats
      ));
      $no_events = 0;
   }
}
und setze in der portal_body.tpl an der Stelle, wo Du die Kategorie haben willst,

Code: Alles auswählen

{cal_next_events.cats}
ein.

Bei dieser Gelegenheit wird die Terminbeschreibung noch zusätzlich bearbeitet, indem Links klickable gemacht werden und die \n-Zeilensprünge zu <br> umgewandelt werden.


Stanley

Verfasst: 08.05.2007 20:59
von NoLeader
Hi StanleyG, danke vielmals hat wunderbar geklappt! :wink:

Ich sollte auch mal anfangen php zu lernen, aber hab leider keine Zeit :grin:

Verfasst: 09.05.2007 20:16
von StanleyG
Hallo BB-BF-BM,

ich habe noch eine Inkosistenz im MOD entdeckt, die beseitigt werden müsste.
Es geht um die Vergabe der Rechte fürs Hinzufügen neuer Termine.
Die Haupteinstellung ist in der Config-Tabelle gespeichert und wird dann als CAL_AUTH_ADD definiert.
In der Kategorienverwaltung kann ich aber einstellen, wer welche Terminkategorien hinzufügen kann.
Konkretes Beispiel:
ich habe 2 Benutzergruppen.
Die eine soll das Leserecht haben, die andere auch das Schreibrecht.
Es sind beides Benutzergruppen, die zweite ist keine Mods-Gruppe.
Daher muss ich in der Kalendereinstellung bestimmen, dass Registrierte den Kalender lesen und neue Termine erfassen können.
In der Kategorienverwaltung lege ich die Kategorie(n) an und lege fest, dass die zweite Gruppe diese Kategorie von Terminen hinzufügen kann.
Die erste Gruppe bekommt keine Kategorie zugewiesen.

Wenn die erste Gruppe auf Kalender klickt, bekommt sie auch den Link "Termin hinzufügen" angezeigt, obwohl sie eigentlich keine Termine erfassen kann, weil sie keine Terminkategorie vergeben darf.
Die erste Gruppe kann also auch das Terminerfassungsfenster öffnen und versuchen, einen Termin zu erfassen. Dieser wird nicht angenommen, weil keine Kategorie vergeben ist.
Das führt zu Irritationen.

Deshalb dürfte sich die Tatsache, ob jemand den Link "Termin hinzufügen" sieht und ob bei ihm die Tage verlinkt sind, nicht nur danach richten, ob sein CAL_AUTH_ADD wahr ist, sondern ob es überhaupt eine Kategorie gibt, die er dem Termin zuordnen kann.

Ich habe das jetzt so gelöst, dass ich eine weitere Konstante CAT_AUTH_ADD eingeführt habe, die auf wahr gesetzt wird, wenn beim Auslesen der Arrays für $CATS irgendwo bei $CATS[??][edit] eine 1 gefunden wird.

Code: Alles auswählen

while( $row = $db->sql_fetchrow($result) )
{
	$CATS[$row['cat_id']] = array(
		'id'	=>	$row['cat_id'],
		'name'	=>	$row['cat_name'],
		'read'	=>	get_auth($row['read_user_level'], $row['read_user_ids'], $row['read_group_ids'], $row['read_black_uids']),
		'edit'	=>	get_auth($row['edit_user_level'], $row['edit_user_ids'], $row['edit_group_ids'], $row['edit_black_uids'])
	);
//********** Anpassung ***************
	if ($CATS[$row['cat_id']]['edit'] == 1) {$editcat = true;}
//********** Anpassung ***************
}

//********** Anpassung ***************
if ($editcat )
{
	define('CAT_AUTH_ADD', 1);
}
else
{
	define('CAT_AUTH_ADD', 0);
}
//********** Anpassung ***************
Und dann habe ich den If-Ausdruck an den entsprechenden Stellen erweitert:
Anstelle von

Code: Alles auswählen

	if( CAL_AUTH_ADD )
zu

Code: Alles auswählen

	if( CAL_AUTH_ADD && CAT_AUTH_ADD )
Vielleicht kannst Du das schon mal einbauen, damit die Rechtevergabe in sich schlüssig wird.

Und noch eine Sache:
In den Templates sollten die Optionsfelder, z.B.

Code: Alles auswählen

<select name="cats[]" multiple="multiple" size="3">
auf wenigstens 5 Zeilen gesetzt werden, weil sonst die Scrollleisten nicht sichtbar sind:

Code: Alles auswählen

<select name="cats[]" multiple="multiple" size="5">
Danke
Stanley

Verfasst: 11.05.2007 12:48
von buegelfalte
buegelfalte hat geschrieben:also bei mir geht nach dem Update auf 0.4.0 der Kalender überhaupt nicht mehr :(
Gibts es dazu einen Status ? Wie gesagt: nach dem Update ist der Kalender komplett im Eimer ! :(

Verfasst: 11.05.2007 16:06
von BB-BF-BM
Das einzige, was ich dir raten könnte, ist: Kalender ausbauen und neu einbauen. Jedoch würde ich warten, bis Version 0.5.0 draußen ist.

Das einzige, was vielleicht helfen könnte, ist, wenn du die Datenbankstruktur der betreffenden Tabellen (z.B mit phpMyAdmin) ansiehst und hier nennst. Die wahrscheinlichsten Fehler treten dort auf, da die PHP-Dateien an sich funktionieren (sollten)...