WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 21.01.2016 22:59:27

pfreud01
Mitglied

[Erledigt] Addon proCalendar: Termin privat/öffentlich funktioniert nicht

Servus Gemeinde,

nutze auf einer WBCE 1.1.3 das Addon ProCalendar 1.3.6 und lasse die Terminliste über das Droplet ProCalendarEventlist ausgeben. Das funktioniert soweit ganz ordentlich (am Design muss ich noch feilen).

Nun hat ProCalendar ja die Möglichkeit, Termine privat zu setzen. Bei mir als Admin funktioniert das super, alle privaten Termine sind nur wenn eingeloggt sichtbar, aber bei allen anderen Gruppen haut das nicht hin, egal welche Berechtigung ich setze. Die Gruppe A darf natürlich die Terminseite (die auch auf privat gesetz ist) sehen, kriegt aber keinen privaten Termin zu Gesicht. Weder auf der eigentlichen Seite, auf der das Modul läuft, noch auf den Seiten, auf denen das Droplet die Terminliste ausgibt.

Was mache ich da falsch?

LG, pfreud01

Offline

#2 22.01.2016 08:01:18

hgs
Mitglied

Re: [Erledigt] Addon proCalendar: Termin privat/öffentlich funktioniert nicht

Bevor ich zu WB gewechselt bin, hatte ich eine html-Seite und als Kalender den VCalendar eingebunden.
http://ultraapps.com/app_downloads.php?app_id=19

Dort konnte man als Admin einstellen dass ALLE alles sehen und ändern können.

Damit konnten sich die USER mit ihrem persönlichen Account anmelden und öffentliche und "private" Termine eintragen.
Jeder angemeldete USER konnte auch alle "privaten" Termine der anderen USER sehen und !ändern!.

Das geht m.w. mit dem ProCalendar nicht.
Hier ist "privat" "PRIVAT"
Wenn MAX einen privaten Eintrag macht, kann LEON diesen nicht sehen. (Ausnahme ist der SUPERADMIN=id1)
Da ich den ProCalendar auch für die Raumbelegung für nicht öffentliche Termine nutze, bin ich am Anfang genau wie oben beschrieben auf die Nase gefallen.
Da LEON nicht gesehen hat, dass MAX den Raum schon belegt hatte kam es zu "Doppelbelegung"

Deshalb habe ich eine Gruppe "Mitarbeiter" eingerichtet, die nur auf den Kalender kommt.
Wenn sich ein "Mitarbeiter" anmeldet sieht er alle "privaten" und öffentlichen Termine, der normale Webbesucher sieht nur die öffentlichen Termien.

Wenn es eine Möglichkeit gibt wie im VCalendar, bin ich auch daran interessiert.


LG Harald
"Fange nie an, aufzuhören - höre nie auf, anzufangen." Marcus Tullius Cicero (106-43 v.Chr.)

Offline

#3 22.01.2016 21:19:33

pfreud01
Mitglied

Re: [Erledigt] Addon proCalendar: Termin privat/öffentlich funktioniert nicht

Heißt das, nur diejenigen sehen die privaten Termine, welche in der gleichen Gruppe sind, wie der Ersteller? Die könnten ja dann auch Termine eingeben, was ich nicht will. Möchte als Superadmin Termine eingeben, welche dann von bestimmten Gruppen nur gesehen werden dürfen bzw. die öffentlichen Termine von der ganzen Welt.

Offline

#4 23.01.2016 11:40:12

marmot
Mitglied

Re: [Erledigt] Addon proCalendar: Termin privat/öffentlich funktioniert nicht

pfreud01 schrieb:

Heißt das, nur diejenigen sehen die privaten Termine, welche in der gleichen Gruppe sind, wie der Ersteller? Die könnten ja dann auch Termine eingeben, was ich nicht will.

hgs hatte es eigentlich schön beschrieben: privat heißt persönlich, also wirklich nur der Ersteller des Termins und der Superadmin können den Termin sehen.
Da offenbar Bedarf vorhanden ist, habe ich den procal 1.3.8 um die Funktionalität erweitert, dass ein Termin auch für alle eingeloggten User oder aber nur für eine bestimmte Gruppe sichtbar sein kann. Viel Spaß beim testen.

Offline

#5 23.01.2016 12:08:31

florian
Administrator

Re: [Erledigt] Addon proCalendar: Termin privat/öffentlich funktioniert nicht

cool!


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#6 23.01.2016 22:37:21

pfreud01
Mitglied

Re: [Erledigt] Addon proCalendar: Termin privat/öffentlich funktioniert nicht

Vielen Dank, Marmot! Das funktioniert prima!

Jetzt steh ich nur noch mit meiner Eventlist auf dem Kriegsfuß. Ich habe Termine mit und ohne Beschreibung. Egal, was ich einstelle, die erste Beschreibung ist stärker von Datum und Terminname abgesetzt als alle weiteren Beschreibungen anderer Termine. Lösche ich beim in der Terminliste als erstes stehenden Termin mit Beschreibung im Editor die <p>-Tags, erscheint der große Zeilenabstand beim darauffolgenden Termin mit Beschreibung. Ich krieg die Ausgabe einfach nicht einheitlich gebacken.  mad

Hier mein Code des EventList-Droplets ab Zeile 66:

			   if ($datetime_start<> $datetime_end) {  
			      $mod_list .= ''.date($dateformat,$datetime_start).' - '.date($dateformat,$datetime_end) .':&nbsp; ';
			   } else {
			      $mod_list .= ''.date($dateformat,$datetime_start).':&nbsp;';
			   }	
			   $mod_list .= '<b>'.$row["name"].'</b>';
			   $mod_list .= '<br />'.$row["description"].'<br />';
			   $mod_list .= "";
			}
		}
	}
}
return $mod_list."";

Offline

#7 23.01.2016 23:21:46

marmot
Mitglied

Re: [Erledigt] Addon proCalendar: Termin privat/öffentlich funktioniert nicht

Ich denke es wäre am besten, wenn du mal dein Droplet hier hochlädst und vielleicht auch den Aufruf dazu postest. Es existieren so viele Versionen des Droplets und so viele Leute haben schon dran gebastelt, dass sonst die Wahrscheinlichkeit groß ist, dass wir aneinander vorbei reden.

Offline

#8 24.01.2016 11:38:03

pfreud01
Mitglied

Re: [Erledigt] Addon proCalendar: Termin privat/öffentlich funktioniert nicht

Jo, ist sicher klüger. Das ist der Aufruf:

[[ProCalendarEventlist?section_id=63&max=999&days=365&startnow=1]]

Und hier das komplette droplet:

//
// Shows an event list from procalendar >= 1.3
// usage: [[eventlist?section_id=<xx>&max=<xx>&kat=<xx>,<xx>&days=<xx>&year=<xx>&month=<xx>&startnow=1]]
// parameters:
// 	 section_id : Section id from procalendar module
// on default all events of the current month are shown but you can custumize by using options:
//   max (integer) 		: limits event list to max items (if no other limit is reached already)
//	 kat (integer) 		: only show defined kategories, kat ids can be found in prcalendar backend options
//											more than one kategorie can be used by seperating ids with commas (no spaces) 
//   days (integer) 	: limits event list to items for <days> (if no other limit is reached already)
// 	 year (integer) 	: year of start date
// 	 month (integer)	: month of start date
// 	 dateformat (string): fomat of date representation as described in http://www.php.net/manual/en/function.date.php#refsect1-function.date-parameters
// 	 startnow (0/1) 	: 0 or not set = show calendar month, 1 = start at current day
// 	 archive (integer): if set, elapsed events are shown for $days, backward form now
	
global $database;
require_once(WB_PATH."/modules/procalendar/functions.php");

$startnow = isset($startnow) ?  intval($startnow) : 0;
$max = isset($max) ? intval($max) : 10000;
$fixdays = isset($days);
$days = isset($days) ? intval($days) : 31;
$year = isset($year) ? intval ($year) : date('Y');
$month = isset($month) ? intval($month) : date('n');
$section_id = isset($section_id) ? intval($section_id) : 0 ;

// Set dateformat to suit your needs, add timeformat if needed
$dateformat = isset($dateformat) ? $dateformat : 'd.m.Y'; // Standard php date formats

// Fetch base page link
$page_id = 52;
$page_link ='http://domain.tld/wbce/pages/termine.php';

if ($section_id<>0) { 
  $sql = "SELECT link FROM ".TABLE_PREFIX."sections AS s, ".TABLE_PREFIX."pages AS p WHERE s.section_id = '".$section_id."' AND s.page_id = p.page_id";
  $page_link = WB_URL.PAGES_DIRECTORY.$database->get_one($sql).PAGE_EXTENSION;
}

// Set start- and end date for query
$datestart = $startnow ? date('Y-n-j') : "$year-$month-1";
$dateend = $startnow ? date('Y-n-j', strtotime("+".($days-1)." day")) : $fixdays ? date('Y-n-j', strtotime($datestart." + ".($days-1)." day")) : "$year-$month-".($days < cal_days_in_month(CAL_GREGORIAN, $month,$year) ? $days : cal_days_in_month(CAL_GREGORIAN, $month,$year));

if (isset($archive)) { 
  $dateend = date('Y-n-j');
  $datestart = date('Y-n-j', strtotime("-".($days-1)." day"));
} 

$mod_list = '';

// Fetch the items
if (!isset($actions) || empty($actions))
  $actions  = fillActionArray($datestart, $dateend, $section_id);

if (is_array($actions)){
	foreach($actions as $row){
		if ($max > 0) {
			if (!isset($kat) || (isset($kat) && in_array($row["acttype"], explode(',',$kat)))) {
			   $max--;
			   // Build url like : pages/kalendar.php?id=2&detail=1    
			   $page_url = $page_link.'?id='.$row['id'].'&amp;detail=1';
			   $ds = $row['date_start']." ".substr($row['time_start'],0,5);
			   $de = $row['date_end']." ".substr($row['time_end'],0,5);
			   $datetime_start = mktime(substr($ds,11,2),substr($ds,14,2),0,substr($ds,5,2),substr($ds,8,2),substr($ds,0,4));
			   $datetime_end = mktime(substr($de,11,2),substr($de,14,2),0,substr($de,5,2),substr($de,8,2),substr($de,0,4));
			   if ($datetime_start<> $datetime_end) {  
			      $mod_list .= ''.date($dateformat,$datetime_start).' - '.date($dateformat,$datetime_end) .':&nbsp; ';
			   } else {
			      $mod_list .= ''.date($dateformat,$datetime_start).':&nbsp;';
			   }	
			   $mod_list .= '<b>'.$row["name"].'</b>';
			   $mod_list .= '<br />'.$row["description"].'<br />';
			   $mod_list .= "";
			}
		}
	}
}
return $mod_list."";

Beitrag geändert von pfreud01 (28.01.2016 15:30:59)

Offline

#9 24.01.2016 13:49:28

florian
Administrator

Re: [Erledigt] Addon proCalendar: Termin privat/öffentlich funktioniert nicht

Ich nehme an, Du rufst das Droplet aus einer WYSIWYG-Section heraus auf. Der CKE hat die unschöne Angewohnheit, standardmäßig alles in <p></p> zu packen, wodurch dann der Dropletoutput mit einem <p> beginnt. Das Droplet gibt dann nach Datum und Titel den im Backend als WYSIWYG hinterlegten Termin-Beschreibungstext aus, der ebenfalls in <p>-Tags steht.

Abhilfe: Beim Droplet-Aufruf das Absatzformat von "Normal" auf "Normal (DIV)" ändern.

Ggf. in der template.css Zeile 71 noch zu

margin:0 

ändern.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#10 24.01.2016 15:14:27

hgs
Mitglied

Re: [Erledigt] Addon proCalendar: Termin privat/öffentlich funktioniert nicht

Danke für die Version, werde es Monntag mal testen. smile


LG Harald
"Fange nie an, aufzuhören - höre nie auf, anzufangen." Marcus Tullius Cicero (106-43 v.Chr.)

Offline

#11 24.01.2016 15:18:59

pfreud01
Mitglied

Re: [Erledigt] Addon proCalendar: Termin privat/öffentlich funktioniert nicht

Allein das Ersetzen der <p>-Tags mit einem <div> hat die Lösung gebracht. Danke florian!

Echt toll, wie schnell und freundlich einem hier geholfen wird. Das war in den letzten Jahren in WB classic nicht mehr so. Aber mir scheint, (fast) alle freundlichen und kompetenten von dort sind in den letzten Monaten hierher gekommen.

Schönen Sonntag noch!

Offline

#12 24.01.2016 15:24:37

florian
Administrator

Re: [Erledigt] Addon proCalendar: Termin privat/öffentlich funktioniert nicht

smile


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#13 24.01.2016 20:43:50

pfreud01
Mitglied

Re: [Erledigt] Addon proCalendar: Termin privat/öffentlich funktioniert nicht

florian schrieb:

Ggf. in der template.css Zeile 71 noch zu

margin:0 

ändern.

Ähem, weils mich interessiert: Welches template.css meinst du da? Ich finde kein solches im ProCalendar. hmm

Offline

#14 24.01.2016 21:19:06

florian
Administrator

Re: [Erledigt] Addon proCalendar: Termin privat/öffentlich funktioniert nicht

Das ist das Stylesheet des Websitetemplates.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#15 25.01.2016 08:54:52

hgs
Mitglied

Re: [Erledigt] Addon proCalendar: Termin privat/öffentlich funktioniert nicht

marmot schrieb:

....
Da offenbar Bedarf vorhanden ist, habe ich den procal 1.3.8 um die Funktionalität erweitert, dass ein Termin auch für alle eingeloggten User oder aber nur für eine bestimmte Gruppe sichtbar sein kann. Viel Spaß beim testen.

smile Vielen Dank, ich hätte meinen Wunsch vieleicht schon früher nennen sollen.
Habe es durchgetestet und es funktioniert so wie gewünscht.

User A in Gruppe 10 kann Termine von USER B in Gruppe 10 sehen und umgekehrt, wenn der USER angemeldet ist.

Durch die Multigruppenzugehörtigkeit ist auch der Admin+Gruppe 10 in der Lage Termien für die Gruppe 10 sichtbar einzutragen, oder eben nur für seine Gruppe.

Perfekte Lösung!!


LG Harald
"Fange nie an, aufzuhören - höre nie auf, anzufangen." Marcus Tullius Cicero (106-43 v.Chr.)

Offline

Fußzeile des Forums

up