diff --git a/add.php b/add.php index 9efe01c..4fcb9e1 100644 --- a/add.php +++ b/add.php @@ -21,7 +21,7 @@ */ -if (!defined('WB_PATH')) exit("Cannot access this file directly"); +if (!defined('SYSTEM_RUN')) {header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found'); echo '404 File not found'; flush(); exit;} $ct1 = '
+ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"; + //echo " | "; $day = Cell($row, $col, $firstday, $dayscount, $SectionIdCal); if (is_numeric($day)) { $FlagDayWr = 1; @@ -159,7 +191,7 @@ function ShowMiniCalendar($LinkName, $PageIdCal, $SectionIdCal) { } // Was Day already written? if ($FlagDayWr == 1) { - echo " | "; + echo " | ";
echo $day;
}
} else {
@@ -182,54 +214,76 @@ function ShowMiniCalendar($LinkName, $PageIdCal, $SectionIdCal) {
}
//#######################################################################
-function ShowCalendar($month, $year, $actions, $section_id, $IsBackend) {
- global $page_id, $monthnames, $weekdays;
- global $database, $admin, $wb;
- ($month > 1) ? ($prevmonth = $month - 1) : ($prevmonth = 12);
- ($month < 12) ? ($nextmonth = $month + 1) : ($nextmonth = 1);
- ($month == 1) ? ($prevyear = $year - 1) : ($prevyear = $year);
- ($month == 12) ? ($nextyear = $year + 1) : ($nextyear = $year);
- $dayscount = DaysCount($month, $year);
- $firstday = FirstDay($month, $year);
+//function ShowCalendar($month, $year, $actions, $section_id, $IsBackend) {
+function ShowCalendar(array $localVariables) {
+// global $page_id, $monthnames, $weekdays,$database, $admin, $wb;
+
+if (isset($localVariables) && is_array($localVariables)){extract($localVariables);}
+
+ $prevmonth = (($month > 1) ? ($month - 1) : 12);
+ $nextmonth = (($month < 12) ? ($month + 1) : 1);
+ $prevyear = (($month == 1) ? ($year - 1) : $year);
+ $nextyear = (($month == 12) ? ($year + 1) : $year);
+
+ $dayscount = DaysCount($month, $year);
+ $firstday = FirstDay($month, $year);
$addBracket = function ()
{
$aList = func_get_args();
// return preg_replace('/^(.*)$/', '/\[$1\]/s', $aList);
return preg_replace('/^(.*)$/', '[$1]', $aList);
};
-
/*
//$previmg = WB_URL."/modules/".basename(__DIR__)."/prev.png";
//$nextimg = WB_URL."/modules/".basename(__DIR__)."/next.png";
*/
+ $sAddonPath = str_replace(DIRECTORY_SEPARATOR,'/', __DIR__);
+
+ $PagesModifyUrl = (@$IsBackend ? ADMIN_URL.'/pages/modify.php' : $wb->link);
+ $output = '';
+ $output .= ' '.PHP_EOL;
+ if (isset($IsBackend)&&$IsBackend){
+ if (is_readable($sAddonPath.'/info.php')){require $sAddonPath.'/info.php';}
+ $output .= ' '.PHP_EOL;
+
if (!$IsBackend) {
// Fetch needed settings from db
- $sql = "SELECT * FROM " . TABLE_PREFIX . "mod_procalendar_settings WHERE section_id=$section_id ";
- $db = $database->query($sql);
- if ($db->numRows() > 0) {
- while ($rec = $db->fetchRow(MYSQLI_ASSOC)) {
+ $sql = "SELECT * FROM `" . TABLE_PREFIX . "mod_procalendar_settings` WHERE `section_id`=$section_id ";
+ $oRes = $database->query($sql);
+ if ($oRes->numRows() > 0) {
+# while ($rec = $db->fetchRow(MYSQLI_ASSOC)) {}
+ $rec = $oRes->fetchRow(MYSQLI_ASSOC);
$header = $rec["header"];
- }
+
}
$aPlaceHolders = $addBracket(
'NEW_ENTRY',
@@ -305,16 +366,13 @@ function ShowCalendar($month, $year, $actions, $section_id, $IsBackend) {
$display_new_entry = ''.PHP_EOL;
+ $output .= ' '.PHP_EOL;
+ }
// change Luisehahne WB_URL.'/modules/'.basename(__DIR__).'/view.php'
- $PagesModifyUrl = (@$IsBackend ? ADMIN_URL.'/pages/modify.php' : $admin->link);
- $output = ''.$module_name.''.PHP_EOL; + if (is_readable($sAddonPath.'/languages/support-'.LANGUAGE.'.php')){ + $output .= ''.PHP_EOL;
+ $output .= ' '.PHP_EOL;
+ }
+ $output .= ''.$CALTEXT['SUPPORT_INFO'].''.PHP_EOL; + $sContent = file_get_contents($sAddonPath.'/languages/support-'.LANGUAGE.'.php'); + $aSearches[] = '{SYSVAR:AddonUrl}'; + $aReplacements[] = WB_URL.'/modules/'.basename(__DIR__); + $output .= str_replace($aSearches, $aReplacements, $sContent); + $output .= '';
- $output .= ' '.PHP_EOL;
+ $output .= '
'; if ($admin->is_authenticated()) { - $display_new_entry = 'neuer Eintrag'; + $display_new_entry = 'neuer Eintrag'; } $aReplacements = array( $display_new_entry, $output ); - $output2 = str_replace($aPlaceHolders, $aReplacements, $header); - $wb->preprocess($output2); - print $output2; } else { echo $output; @@ -322,186 +380,271 @@ function ShowCalendar($month, $year, $actions, $section_id, $IsBackend) { } //######################################################################## +function ShowActionList(array $localVariables) { +/* function ShowActionList($day, $month, $year, $actions, $section_id) { global $page_id, $monthnames, $action_types, $IsBackend; global $CALTEXT; global $database, $admin, $wb; - ($month > 1) ? ($prevmonth = $month - 1) : ($prevmonth = 12); - ($month < 12) ? ($nextmonth = $month + 1) : ($nextmonth = 1); - ($month == 1) ? ($prevyear = $year - 1) : ($prevyear = $year); - ($month == 12) ? ($nextyear = $year + 1) : ($nextyear = $year); - $colcount = ColsCount($month, $year); + global $aInputRequest; + +print ' function '.__FUNCTION__.'( '.''.' ); filename: '.basename(__FILE__).' line: '.__LINE__.' ->'; flush (); // ob_flush();;sleep(10); die(); + + $localVariables = compact(array_keys(get_defined_vars())); +*/ + if (isset($localVariables) && is_array($localVariables)){extract($localVariables);} + + $aErrorMsg = []; + $prevmonth = (($month > 1) ? ($month - 1) : 12); + $nextmonth = (($month < 12) ? ($month + 1) : 1); + $prevyear = (($month == 1) ? ($year - 1) : $year); + $nextyear = (($month == 12) ? ($year + 1) : $year); + $colcount = ColsCount($month, $year); $dayscount = DaysCount($month, $year); - $firstday = FirstDay($month, $year); + $firstday = FirstDay($month, $year); //$previmg = WB_URL."/modules/".basename(__DIR__)."/prev.gif"; //$nextimg = WB_URL."/modules/".basename(__DIR__)."/next.gif"; - $IsMonthOverview = (strlen($day) > 0) ? 0 : 1; - $today = date("Y-m-d"); + $today = date("Y-m-d H:m:s"); // change Luisehahne WB_URL.'/modules/'.basename(__DIR__).'/view.php' - $PagesModifyUrl = (@$IsBackend ? ADMIN_URL . '/pages/modify.php' : $admin->link); + $PagesModifyUrl = (@$IsBackend ? ADMIN_URL . '/pages/modify.php' : $wb->link); + $BackToMonthLink = ''; $BackToMonthLink = '' . $CALTEXT['OF_MONATS'].'-'.$CALTEXT['DATES'].''; + + $IsMonthOverview = ($month != date("n")); + $IsMonthOverview = ($dayview && ($day != date("d")) ? $IsMonthOverview : !$dayview); + + $complementary = (function ($color){ + $leadingHash = false; + //clear whitespaces just to be shure + $color = trim($color); + //cut leading # + if (strpos($color, "#") !== false) { + $color = substr($color, 1); + $leadingHash = true; + } + //check if valid color string + if (preg_match('/^[A-Fa-f0-9]+$/', $color)== 'false') { + return $leadingHash ? '#' . $color : $color; + } + $r1 = dechex((15 - (hexdec($color[0])))); + $r2 = dechex((15 - (hexdec($color[1])))); + $g1 = dechex((15 - (hexdec($color[2])))); + $g2 = dechex((15 - (hexdec($color[3])))); + $b1 = dechex((15 - (hexdec($color[4])))); + $b2 = dechex((15 - (hexdec($color[5])))); + $complementary = $r1 . $r2 . $g1 . $g2 . $b1 . $b2; + return $leadingHash ? '#' . $complementary : $complementary; + }); + // no backlink in actuell month, because only events today will be shown - $BackToMonthLink = ((($IsMonthOverview != 1) && ($month != date('n'))) ? $BackToMonthLink : ''); - $HeaderText = ' | '.PHP_EOL.'« ' . $monthnames[$prevmonth] . - ' | '; - $HeaderText .= ''.$monthnames[$month].' '.$year. - ' | ';
- $HeaderText .= ''.PHP_EOL.''.$monthnames[$month].' '.$year. + ''.PHP_EOL.' | ';
+ $HeaderText .= ''.PHP_EOL.'' . $monthnames[$nextmonth] . - ' » | '; - if (!isset($IsBackend)) { + ' »'.PHP_EOL.''; + + if (isset($IsBackend) && !$IsBackend) { // Fetch header settings from db - $sql = "SELECT * FROM " . TABLE_PREFIX . "mod_procalendar_settings WHERE section_id=$section_id "; - $db = $database->query($sql); - if ($db->numRows() > 0) { - while ($rec = $db->fetchRow(MYSQLI_ASSOC)) { - $header = $rec["header"]; - $usetime = $rec["usetime"]; + $sql = "SELECT * FROM `" . TABLE_PREFIX . "mod_procalendar_settings` WHERE `section_id`=$section_id "; + if ($oRes = $database->query($sql)){ + if ($oRes->numRows() > 0) { +# while ($rec = $db->fetchRow(MYSQLI_ASSOC)) {} + $rec = $oRes->fetchRow(MYSQLI_ASSOC); + $header = $rec["header"]; + $usetime = $rec["usetime"]; + + if (is_int(strpos($header, '[CALENDAR]'))){ + $HeaderText = ''; + } } - if (is_int(strpos($header, '[CALENDAR]'))) - $HeaderText = ''; + } else { + $aErrorMsg[] = sprintf('%s',$database->get_error()); } } - $jscal_use_time = $usetime; // whether to use a clock, too - require_once(WB_PATH."/include/jscalendar/wb-setup.php"); +/* +print '
+ | ' . $CALTEXT['FROM'] . ''; - echo ' | ' . $CALTEXT['DEADLINE'] . ' | '; + echo '' . $CALTEXT['FROM'] . ' | '; + echo '' . $CALTEXT['DEADLINE'] . ' | '; } ?> -- | + | + | |
---|---|---|---|---|---|---|---|---|
= strtotime('now')) && !isset($_GET['[dayview]']) ? 1 : 0); + if (MarkDayOk($day, $month, $year, $actions, $i) || ($IsMonthOverview) ) { // && $listIt + $link_pre = "" . ($tmp['name']); + if (IstStartTerminVergangeheit("$year-$month-$day", "$yearstart-$monthstart-$daystart") == 1) { + $link = "?$link_pre&month=$monthstart&year=$yearstart&day=$daystart&show=-1"; + } else { + $link = "?$link_pre&month=$month&year=$year&day=$daystart&show=$i"; } - } + if (isset($pageid)) { + $link .= "&page_id=$pageid"; + } + $link .= "&id=" . $tmp['id'] . "§ion_id=$section_id&detail=1"; ?> - | +||||||||
+ | ' . $timestart . ''; - echo '' . $timeend . ' | '; - } + if ($usetime) { + echo '' . $timestart . ' | '; + echo '' . $timeend . ' | '; + } ?> -" . $tmp["name"] . ""; + | " . $tmp["name"] . ""; ?> - | -0) { - $action_name = explode("#", $action_types[$tmp['acttype']]['name']); - print_r( $action_name[0]); - } - ?> | -0)) { + $action_name = explode("#", $action_types[$tmp['acttype']]['name']); + print_r( $action_name[0]); + } ?> + | +|
+ + | + ++ + | + +
function '.__FUNCTION__.'( '.''.' ); filename: '.basename(__FILE__).' line: '.__LINE__.' ->'; flush (); // ob_flush();;sleep(10); die(); + echo sprintf('%s',$database->get_error()); } if ($db->numRows() > 0) { $rec = $db->fetchRow(MYSQLI_ASSOC); @@ -528,7 +672,7 @@ function fillActionArray($datestart, $dateend, $section_id) { } else { $extrawhere = '' .'AND ((`a`.`public_stat` = 0) '; // public actions - // if user is authenticated decide which actions to show +// if user is authenticated decide which actions to show if ($admin->is_authenticated()) { $extrawhere .= '' @@ -536,36 +680,36 @@ function fillActionArray($datestart, $dateend, $section_id) { .'OR (`a`.`public_stat` IN ('.$_SESSION['GROUPS_ID'].')) ' .') '; } else { - $extrawhere .= ') '; + $extrawhere .= ') '.PHP_EOL; } } $sql = '' - . 'SELECT ' - . '`a`.*, ' - . '`e`.`name` AS `act_name`, ' - . '`e`.`format` AS `act_format`, ' - . '`e`.`format_days` AS `act_dayformat` ' - . 'FROM ' - . '`'.TABLE_PREFIX . 'mod_procalendar_actions` AS `a` ' - . 'LEFT JOIN ' - . '`'. TABLE_PREFIX.'mod_procalendar_eventgroups` AS `e` ' - . 'ON ' - . '`a`.`acttype` = `e`.`id` ' - . 'WHERE (`a`.`section_id`='.$section_id.' )' - . 'AND (`a`.`date_start` <=\''.$dateend.'\')' - . ' AND (`a`.`date_end` >=\''.$datestart.'\' OR `a`.`rec_count` != 0) ' + . 'SELECT '.PHP_EOL + . '`a`.*, '.PHP_EOL + . '`e`.`name` AS `act_name`, '.PHP_EOL + . '`e`.`format` AS `act_format`, '.PHP_EOL + . '`e`.`format_days` AS `act_dayformat` '.PHP_EOL + . 'FROM '.PHP_EOL + . '`'.TABLE_PREFIX . 'mod_procalendar_actions` AS `a` '.PHP_EOL + . 'LEFT JOIN '.PHP_EOL + . '`'. TABLE_PREFIX.'mod_procalendar_eventgroups` AS `e` '.PHP_EOL + . 'ON '.PHP_EOL + . '`a`.`acttype` = `e`.`id` '.PHP_EOL + . 'WHERE (`a`.`section_id`='.$section_id.' )'.PHP_EOL + . 'AND (`a`.`date_start` <=\''.$dateend.'\')'.PHP_EOL + . ' AND (`a`.`date_end` >=\''.$datestart.'\' OR `a`.`rec_count` != 0) '.PHP_EOL . $extrawhere.'' - . 'ORDER BY ' - . '`a`.`date_start`,`a`.`time_start`'; + . 'ORDER BY '.PHP_EOL + . '`a`.`date_start`,`a`.`time_start`'.PHP_EOL; if (!$db = $database->query($sql)) { - file_put_contents(WB_PATH.'/logs/procalc_'.$datestart.'.sql', $sql.PHP_EOL); -print '
'; -print_r( $database->get_error() ); print '
function '.__FUNCTION__.'( '.$database->get_errno().' ); filename: '.basename(__FILE__).' line: '.__LINE__.' ->'; flush (); // ob_flush();;sleep(10); die(); + file_put_contents(WB_PATH.'/var/logs/procalc_'.$datestart.'.sql', $sql.PHP_EOL); } - - $actions = array(); - $overwrites = array(); + if ($admin->is_authenticated() && $admin->ami_group_member('1')) { + } + $actions = []; + $aRetval = []; + $overwrites = []; if ($db->numRows() > 0) { while ($ret = $db->fetchRow(MYSQLI_ASSOC)) { $maxCount = $ret['rec_count']; @@ -594,7 +738,7 @@ function fillActionArray($datestart, $dateend, $section_id) { } elseif ($ret['rec_week'] != "") { $iStart = microtime(true); // change Luisehahne $ret_week = explode("+", $ret['rec_week']); - $weeks = $ret_week[0] - 1; + $weeks = (int)$ret_week[0] - 1; $weekdays = explode(";", $ret_week[1]); while (($dayDateStart <= $dayDateEnd || !$maxCount == 0) && ($dateCount < $maxCount || $maxCount < 1) && $dayDateStart <= $lastCalendarDay) { @@ -620,7 +764,7 @@ function fillActionArray($datestart, $dateend, $section_id) { $msg = sprintf('created: [' . date('c') . ']' . ' Corrupted record -> %4d date_start -> %s', $ret['id'], $ret['date_start']) . PHP_EOL; $msg = sprintf('created: [' . date('c') . ']' . ' Corrupted record -> %4d date_start -> %s', $ret['id'], $ret['date_start']) . PHP_EOL; $msg .= serialize($ret).PHP_EOL; - file_put_contents(WB_PATH . '/logs/procalc_error.log', $msg); + file_put_contents(WB_PATH . '/var/logs/procalc_error.log', $msg); break; } } @@ -703,9 +847,7 @@ function fillActionArray($datestart, $dateend, $section_id) { $ret['fdate_end'] = date($useifformat, strtotime($ret['date_end'])); $actions[] = $ret; } - ; } - ; //$firstDay->add(new DateInterval('P'.$months.'M')); $firstDay->modify('+' . $months . ' month'); $dateCount++; @@ -823,7 +965,7 @@ function cmp($a, $b) { } } usort($actions, "cmp"); - return ($actions); +# return ($actions); } else { /* print '
'; -print_r( $sql."\n".$database->get_error() ); print '
function ' . __function__ . '( ' . '' . ' ); filename: ' . @@ -832,12 +974,13 @@ function cmp($a, $b) { print ''; flush(); // ob_flush();;sleep(10); die(); */ - return (null); } + return $actions; } //############################################################################# - function MarkDayOk($day, // + function MarkDayOk( + $day, // $month, // $year, // $actions, // Array with dates @@ -845,43 +988,56 @@ function MarkDayOk($day, // ) { // // Return: 0: No Date active // 1: Yes there is date aczive + $bRetVal = false; // //############################################################################# $Termin = $actions[$ActionIndex]; + $dayend = substr($Termin['date_end'], -2); $monthend = substr($Termin['date_end'], 5, 2); $yearend = substr($Termin['date_end'], 0, 4); + $daystart = substr($Termin['date_start'], 8, 2); $monthstart = substr($Termin['date_start'], 5, 2); $yearstart = substr($Termin['date_start'], 0, 4); + + $DateRefString = date('Y-m-d',\strtotime("$year-$month-$day")); + $DateStartString = date('Y-m-d',\strtotime($Termin['date_start'])); + $DateEndString = date('Y-m-d',\strtotime($Termin['date_end'])); + + $sDebugMsg = sprintf('%s %s',$DateStartString, $DateEndString); + // Liegt der Starttermin in der Vergangenheit? if (IstStartTerminVergangeheit("$year-$month-$day", "$yearstart-$monthstart-$daystart") == 1) { - if (($monthend == $month && $day <= $dayend && $year == $year) || (($monthend > $month || $yearend > $year) && $day > $daystart) || - ($monthend > $month || $yearend > $year)) { - return 1; + if (($monthend == $month && $day <= $dayend && $year == $year) + || (($monthend > $month || $yearend > $year) && $day > $daystart) + || ($monthend > $month || $yearend > $year)) { + $bRetVal = true; } } else - if (($day >= $daystart && $monthstart == $month)) { // Termin startet und endet in diesem Monat - return 1; + // Termin startet und endet in diesem Monat + if (($day >= $daystart && $monthstart == $month)) { + $bRetVal = true; } - return 0; + return $bRetVal; } //############################################################################# - function IstStartTerminVergangeheit($DateRefString, // Todays date + function IstStartTerminVergangeheit( /* function IstStartTerminVergangeheit */ + $DateRefString, // Todays date $DateStartString // date to check ) { // // Return: 0 - Date is not in the past // 1 - Yes, the date starts in the past -// -// + $bRetVal = false; //############################################################################# - // echo "DateStartString $DateRefString
- | - | + | + | + | |
---|---|---|---|---|---|
'.$tmp['fdate_start']; if ($tmp['date_end'] != $tmp['date_start']) { //only show end date if event has multiple days - echo " / "; - echo $tmp['fdate_end']; + echo ' / '.$tmp['fdate_end']; } echo ''; - ?> +?> | -- "> + | + "> | -+", $action_types[$tmp['acttype']]['name']); + echo $string; } else { //echo "Action Type not valid"; } } - ?> +?> |
function '.__FUNCTION__.'( '.''.' ); filename: '.basename(__FILE__).' line: '.__LINE__.' ->'; flush (); // ob_flush();;sleep(10); die(); +*/ + + foreach ($action_name as $aValue) { +// $date_full .= $weekdays[array_search($aValue['format_days'], $day_index)].PHP_EOL; + $date_full .= ''.PHP_EOL; } } - $date_full .= '
'; +print_r( $action_name ); print '
Folgende grundlegende Einstellungen können für einen Eintrag vorgenommen werden:
-Datum / Start- und Enddatum verwenden
Hier kann festgelegt werden, ob zu den Events nur ein Startdatum oder ein Start- und ein Enddatum angegeben werden soll. Wenn nur Ein-Tages-Events eingetragen werden soll, ist logischerweise kein Enddatum erforderlich, wenn Events hingegen über mehrere Tage stattfinden, ist die Angabe eines Enddatums sinnvoll. Auch wenn ausgewählt wurde, Start- und Enddatum zu verwenden, kann trotzdem auch nur ein Startdatum angegeben werden, das dann leere Feld für das Enddatum wird auf der Website nicht angezeigt.
Tipp: Am besten für die Datumsangabe den eingebauten Date Picker verwenden, um zu verhindern, dass versehentlich ungültige Enddatumsangabn (Enddatum vor Startdatum) gemacht werden.
-Uhrzeit verwenden
Es kann ausgewählt werden, ob zum Start- und Endzeitpunkt auch die Uhrzeit angegeben werden soll. Ist diese option ausgewählt, werden zusätzlich Eingabefelder für die Uhrzeit bei der Termineingabe angezeigt. Diese Felder können aber auch leer bleiben. Wenn ein Uhrzeitfeld leer ist oder 00:00 Uhr angegeben wird, wird es auf der Website nicht angezeigt.
Eskönnen bis zu 9 zusätzliche Eingabefelder für Eventdetails definiert werden. Diese "Eigenen Felder" werden dann angezeigt, wenn ein neuer Event angelegt wird. Die jeweiligen Eingaben werden in der im Backend festgelegten Form im Frontend angezeigt. Es stehen die folgenden feldtypen zur Verfügun:
-Es können beliebig viele der 9 Felder verwendet werden, indem der Feldtyp ausgewählt und die Ausgabe im Feld-Template festgelegt wird. Dabei werden nur die Eingabefelder angezeigt, die auch aktiviert werden (also nicht auf "Nicht benutzt" stehen). Feldbezeichnung und Feld-Template können beliebig festgelegt werden.
-Die Standard-Feldtemplate sind:
-Textfeld / Textarea<div class="field_line">
<div class="field_title">[CUSTOM_NAME]</div>
[CUSTOM_CONTENT]
</div>
WB-Link<div class="field_line">
<a href="[wblink[CUSTOM_CONTENT]]">[CUSTOM_NAME]</a>
</div>
Bild<div class="field_line">
<img src="[CUSTOM_CONTENT]" border ="0" alt="[CUSTOM_NAME]" />
</div>
Im "Master-Template" wird das Layout für Kopf- und fußzeile der Event-Übersichtsseite und die Detailseiten festgelegt. Zulässig sind Text, HTML und Droplets.
-Kopf- und Fußzeile
Standardmäßig sind Kopf- und Fußzeile der Event-Übersichtsseite leer, hier können Text und HTML-Code eingegeben werden, und natürlich auch Droplets. Zudem kann der ProCalendar-Tag [CALENDAR] hinterlegt werden, der über die gesamte zur Verfügung stehende Breite des Abschnitts einen Monatskalender mit Links zu den hinterlegten Eventdetails anzeigt.
Beitrag (Event-Detailseite)
Das Detailseiten-Template kann ebenfalls Text, HTML, Droplets enthalten; sowie die folgenden ProCalendar-Tags: [NAME], [DATE_SIMPLE], [DATE_FULL], [CATEGORY], [CUSTOM1], [CUSTOM2], [CUSTOM3], [CUSTOM4], [CUSTOM5], [CUSTOM6], [CATEGORY], [CONTENT] und [BACK]. All diese Tags können, müssen aber nicht verwendet werden; auch die Reihenfolge ist beliebig.
Der Unterschied zwischen [DATE_SIMPLE] und [DATE_FULL] besteht darin, dass [DATE_SIMPLE] nur die reine Datumsangabe ohne HTML/CSS ausgibt. [DATE_FULL] generiert die Datumsangabe mit Formatierung:
-<div class="field_line">
<div class="field_title">Start:</div>
01.10.2011
</div>
Das Standard-Template für die Detailseiten sieht so aus:
-<div class="event_details">
<h2>[NAME]</h2>
<div class="info_block">
[DATE_FULL]
[CUSTOM1]
[CUSTOM2]
[CUSTOM3]
[CUSTOM4]
[CUSTOM5]
[CUSTOM6]
[CATEGORY]
</div>
[CONTENT]
</div>
[BACK]
Durch die Kombination zwischen dem "Master-Template" und den "Feld-Templates" kann die Darstellung von Eventdetails flexibel an den jeweiligen Bedarf angepasst werden.
-Wie viele andere WebsiteBaker-Module können auch beim ProCalendar die Stylesheets für Frontend und Backend angepasst werden. Das setzt allerdings voraus, dass die CSS-Dateien beschreibbar sind, sonst können die Änderungen nicht gespeichert werden.
- -+ +Die Grundeinstellung für den ProCalendar erfolgt im BackEnd (BE) über diesen Button.
+ +Folgende grundlegende Einstellungen können vorgenommen werden:
+ ++ +mit welchem Wochentag startet der Kalender
+ ++ +in welchem Format soll das Datum angezeigt werden
+ ++ +Hier kann festgelegt werden, ob zu den Events nur ein Startdatum oder ein Start- und ein Enddatum angegeben werden soll. Wenn nur Ein-Tages-Events eingetragen werden soll, ist logischerweise kein Enddatum erforderlich, wenn Events hingegen über mehrere Tage stattfinden, ist die Angabe eines Enddatums sinnvoll. Auch wenn ausgewählt wurde, Start- und Enddatum zu verwenden, kann trotzdem auch nur ein Startdatum angegeben werden, das dann leere Feld für das Enddatum wird auf der Website nicht angezeigt.
+ +Tipp: Am besten für die Datumsangabe den eingebauten Date Picker verwenden, um zu verhindern, dass versehentlich ungültige Enddatumsangabn (Enddatum vor Startdatum) gemacht werden.
+ ++ +Es kann ausgewählt werden, ob zum Start- und Endzeitpunkt auch die Uhrzeit angegeben werden soll. Ist diese option ausgewählt, werden zusätzlich Eingabefelder für die Uhrzeit bei der Termineingabe angezeigt. Diese Felder können aber auch leer bleiben. Wenn ein Uhrzeitfeld leer ist oder 00:00 Uhr angegeben wird, wird es auf der Website nicht angezeigt.
+ +Tipp: Am besten für die Datumsangabe den eingebauten Date Picker verwenden, um zu verhindern, dass versehentlich ungültige Enddatumsangabn (Enddatum vor Startdatum) gemacht werden.
+ ++ +diese Grundeinstellung speichern
+ +Im Abschnitt Kategorien verwalten werden diese angelegt und wenn gewünscht mit einer Farbe versehen.
+ ++ +Kategoriename in das leere Textfeld eintragen
+ +
+
+
über den Farbenpicker eine Farbe auswählen und speichern, diese Farbe wird in der Auflistung für die jeweilige Kaegorie angezeigt.
+ +
+ +Wenn diese Farbe auch in den Kalenderansichten erscheinen soll, den Hacken setzen und speichern.
+ ++
+ +Hier wird der Name bzw. Titel des Events eingetragen. Dieser Eintarg erscheint in der Ãœbersicht aller termine im Frontend und im Backend.
+ ++ +Die Kategorie bzw. der Typ des Events, z.B. Workshop, Training, Meeting, Konferenz, Raumbelegung.... Bei den Optionen können beliebig viele Kategorien angelegt werden (siehe oben). Nachdem dies geschehen ist, stehen sie hier dann zur Auswahl.
+ ++ +Sichtbarkeit: Events können entweder öffentlich oder "privat" sein. Öffentliche Events sehen alle Besucher der Seite. "Private Events" werden nur angemeldeten Besuchern der jeweiligen Gruppe angezeigt. Hier werden die angelegten Gruppen von WebsiteBaker als Grundlage genommen. Als Beispiel: Wird ein Termin mit der "Sichtbarkeit" tester angelegt, ist dieser nur sichtbar wenn ein USER mit der Gruppe "tester" sind angemeldet hat. Eine angelegte Gruppe "Autoren" kann diesen Termin nicht sehen. Ausnahme, die Gruppe "Administrators" sieht alle Termine.
+ ++ +Neben den vorgegebenen Felder können bis zu 9 eigene Felder mit 4 verschiedenen Feldtypen definiert werden. Diese "Eigenen Felder" werden dann angezeigt, wenn ein neuer Event angelegt wird. Die jeweiligen Eingaben werden in der im Backend festgelegten Form im Frontend angezeigt. Es können beliebig viele der 9 Felder verwendet werden, indem der Feldtyp ausgewählt und die Ausgabe im Feld-Template festgelegt wird. Dabei werden nur die Eingabefelder angezeigt, die auch aktiviert werden (also nicht auf "Nicht benutzt" stehen). Feldbezeichnung und Feld-Template können beliebig festgelegt werden. Es stehen die folgenden Feldtypen zur Verfügung:
+ +
+
+Textfeld:einzeiliges Eingabefeld (kurze Texte oder einzelne Sätze)
+Textarea: Langtext (mehrere Sätze)
+WB Link: Link zu einer anderen Seite auf derselben Website.
+E-Mail Link: Link zu einer anderen Seite auf derselben Website.
+Bild: Bild, das entweder hier hochgeladen oder in der Medienverwaltung ausgewählt wird. Das Bild kann automatisch auf eine bestimmte Größe verkleinert werden; diese Größe wird ganz oben auf der Eigene-Felder-Seite festgelegt.
Textfeld / Textarea
+ +<div class="field_line"> + <div class="field_title">[CUSTOM_NAME]</div> + [CUSTOM_CONTENT] +</div>+ +
WB-Link
+ +<div class="field_line">
+ <a href="[wblink[CUSTOM_CONTENT]]">[CUSTOM_NAME]</a>
+</div>
Bild
+ +<div class="field_line"> + <img src="[CUSTOM_CONTENT]" border ="0" alt="[CUSTOM_NAME]" /> +</div>+ +
E-Mail-Link (Typ ist ein Textfeld!)
+ +<div class="field_line"> + <div class="field_title">[CUSTOM_NAME]</div> + <a href="mailto:[CUSTOM_CONTENT]">[CUSTOM_NAME]</a> +</div>+ +
Im "Master-Template" wird das Layout für Kopf- und Fußzeile der Event-Übersichtsseite und die Detailseiten festgelegt. Zulässig sind Text, HTML und Droplets.
+ +Kopf- und Fußzeile
+Standardmäßig sind Kopf- und Fußzeile der Event-Übersichtsseite leer, hier können Text und HTML-Code eingegeben werden, und natürlich auch Droplets. Zudem kann der ProCalendar-Tag [CALENDAR] hinterlegt werden, der über die gesamte zur Verfügung stehende Breite des Abschnitts einen Monatskalender mit Links zu den hinterlegten Eventdetails anzeigt.
Beitrag (Event-Detailseite)
+Das Detailseiten-Template kann ebenfalls Text, HTML, Droplets enthalten; sowie die folgenden ProCalendar-Tags: [NAME], [DATE_SIMPLE], [DATE_FULL], [CATEGORY], [CUSTOM1], [CUSTOM2], [CUSTOM3], [CUSTOM4], [CUSTOM5], [CUSTOM6], [CATEGORY], [CONTENT] und [BACK]. All diese Tags können, müssen aber nicht verwendet werden; auch die Reihenfolge ist beliebig.
Der Unterschied zwischen [DATE_SIMPLE] und [DATE_FULL] besteht darin, dass [DATE_SIMPLE] nur die reine Datumsangabe ohne HTML/CSS ausgibt. [DATE_FULL] generiert die Datumsangabe mit Formatierung:
+ +<div class="field_line">
+ <div class="field_title">Start:</div>
+ 01.10.2011
+</div>
<div class="event_details">
+ <h2>[NAME]</h2>
+ <div class="info_block">
+ [DATE_FULL]
+ [CUSTOM1]
+ [CUSTOM2]
+ [CUSTOM3]
+ [CUSTOM4]
+ [CUSTOM5]
+ [CUSTOM6]
+ [CATEGORY]
+ </div>
+ [CONTENT]
+</div>
+[BACK]
Durch die Kombination zwischen dem "Master-Template" und den "Feld-Templates" kann die Darstellung von Eventdetails flexibel an den jeweiligen Bedarf angepasst werden.
+CSS bearbeiten
Wie viele andere WebsiteBaker-Module können auch beim ProCalendar die Stylesheets für Frontend und Backend angepasst werden. Das setzt allerdings voraus, dass die CSS-Dateien beschreibbar sind, sonst können die Änderungen nicht gespeichert werden.
diff --git a/languages/support-EN.php b/languages/support-EN.php index cd86644..0abfeaa 100644 --- a/languages/support-EN.php +++ b/languages/support-EN.php @@ -1,47 +1,7 @@ - - Copyright (C) 2004-2006, Ryan Djurovich - - Website Baker is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - Website Baker is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Website Baker; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -*/ - -require('../../../config.php'); - -// Include WB admin wrapper script -require(WB_PATH.'/modules/admin.php'); - -if (LANGUAGE_LOADED) { // load languagepack - if(file_exists(WB_PATH."/modules/procalendar/languages/".LANGUAGE.".php")) { // if exist proper language mutation - require_once(WB_PATH."/modules/procalendar/languages/".LANGUAGE.".php"); // load it - } else { - require_once(WB_PATH."/modules/procalendar/languages/EN.php"); // else use english - } -} - -?> - -The basic options you can set for an event are: -
Like many other WB modules, ProCalendar gives you the opportunity to edit the stylesheets for both frontend and backend. Make sure the CSS-files have writing permissions, otherwise your changes won't be saved.
-De basisopties die u kunt kiezen voor een gebeurtenis zijn: @@ -111,9 +71,4 @@
Zoals veel andere WB-modules, biedt ProCalendar de gelegenheid om de stylesheets voor het beheer en de website ("backend" en "frontend") aan te passen. Zorg er wel voor dat de CSS-bestanden de juiste schrijfrechten hebben, anders worden de veranderingen niet opgeslagen. U krijgt overigens wel een foutmelding als dit het geval is.
-
+/*
+ $template = new Template(dirname($admin->correct_theme_source('preferences.htt')));
+ $template->set_file( 'page', 'preferences.htt' );
+ $template->set_block( 'page', 'main_block', 'main' );
+*/
+?>
+
- |
-
+
+
|
-