[ABD] Simple Calendar

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
BB-BF-BM
Mitglied
Beiträge: 2179
Registriert: 28.10.2005 16:38
Wohnort: Essen

Re: [0.6.1] Simple Calendar

Beitrag von BB-BF-BM »

Hallo!

Darf eine der beiden Zeiten fest gewählt werden?

Also z.B. dass man auf jeden Fall zwei Tage vorher benachrichtigt wird und wahlweise auch zu einem anderen Zeitpunkt?
oder müssen beide Zeitabstände vom Benutzer individuell festgelegt werden können?
einfachkarl
Mitglied
Beiträge: 6
Registriert: 06.10.2009 22:48

Re: [0.6.1] Simple Calendar

Beitrag von einfachkarl »

schlect wäre es nicht wenn man es wählen könnte, aber im grunde ist es egal. solange der admin (ich) es einstellen kann wann der eine fixtermin ist ist es ok.
BB-BF-BM
Mitglied
Beiträge: 2179
Registriert: 28.10.2005 16:38
Wohnort: Essen

Re: [0.6.1] Simple Calendar

Beitrag von BB-BF-BM »

Guten Tag!

Wenn einer der Termine fest eingestellt wird, ist nur eine kleine Änderung nötig:

/calendar/cronjob.php

Code: Alles auswählen

return true; 
Davor einfügen:

Code: Alles auswählen

$check_time = $now + 3 * 86400;
$day = cal_days::get_day_by_time($check_time);
echo $day->get_dmY()."<br />\n";
if ($dates = $day->get_dates())
{
    foreach (cal_users::$users as $_user)
    {
        echo "<br />\n".$_user->name.": <br />\n";
        if (!$_user->notify_mode)
        {
            continue;
        }
        $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";
    }
} 
In der ersten hinzugefügten Zeile

Code: Alles auswählen

$check_time = $now + 2 * 86400; 
gibt die 2 die Anzahl der Tage bis zu einem Termin an, damit man benachrichtigt wird. Im Moment wird man also auf jeden Fall zwei Tage vor einem Termin benachrichtigt. Diesen Fixtermin kannst du natürlich auch ändern. Von dieser Zeitspanne unabhängig kann jeder Benutzer weiterhin einen weiteren Termin festlegen, wann er benachrichtigt werden möchte.
einfachkarl
Mitglied
Beiträge: 6
Registriert: 06.10.2009 22:48

Re: [0.6.1] Simple Calendar

Beitrag von einfachkarl »

grüße,

da sag ich doch mal herzlich danke!
habs grad eingebaut und werde dir rückmeldung geben ob alles funzt.

dankeschön.
BB-BF-BM
Mitglied
Beiträge: 2179
Registriert: 28.10.2005 16:38
Wohnort: Essen

Re: [0.6.1] Simple Calendar

Beitrag von BB-BF-BM »

Hallo!

Mir ist gerade ein kleiner Fehler aufgefallen: Mit dieser Änderung würden möglicherweise zwei Benachrichtigungen versendet.

Ersetze den eingefügten Code gegen:

Code: Alles auswählen

    $_notify_days = 2;
    $check_time = $now + $_notify_days * 86400;
    $day = cal_days::get_day_by_time($check_time);
    echo $day->get_dmY()."<br />\n";
    if ($dates = $day->get_dates())
    {
        foreach (cal_users::$users as $_user)
        {
            echo "<br />\n".$_user->name.": <br />\n";
            if (!$_user->notify_mode)
            {
                continue;
            }
            if ($_user->notify_days == $_notify_days)
            {
                continue;
            }
            $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";
        }
    } 
Um den Fix-Zeitpunkt der Benachrichtigung einzustellen, kannst du in der ersten Zeile

Code: Alles auswählen

    $_notify_days = 2; 
die 2 gegen eine beliebige andere Zahl ersetzen.
einfachkarl
Mitglied
Beiträge: 6
Registriert: 06.10.2009 22:48

Re: [0.6.1] Simple Calendar

Beitrag von einfachkarl »

oki, danke dir.
ich habs mal geändert... müßte eigentlich morgen eine mail bekommen wenn das alles hinhaut.
Fabian
Mitglied
Beiträge: 797
Registriert: 25.12.2003 11:25

Re: [0.6.1] Simple Calendar

Beitrag von Fabian »

Hallo,

der Kalender-Mod ist wirklich gut gelungen!
Ein kleines Problem habe ich noch.

[ externes Bild ]


Für den Text wäre eigentlich genug Platz, trotzdem wird umgebrochen und das letzte Wort erscheint in einer neuen Zeile. Geht es auch, dass es einzeilig erscheint?

Gruß,
Fabian
BB-BF-BM
Mitglied
Beiträge: 2179
Registriert: 28.10.2005 16:38
Wohnort: Essen

Re: [0.6.1] Simple Calendar

Beitrag von BB-BF-BM »

Hallo Fabian!

Folgende Änderungen sollten ausreichen:


/styles/prosilver/theme/calendar.css

Code: Alles auswählen

#search_results .dates dd
{
	position: relative;
	left: 9em;
	width: 21em;
	display: block;
	text-indent: -2em;
	padding-left: 2em;
	margin-bottom: 4px;
	clear: left;
	overflow: visible;
}
ersetzen gegen:

Code: Alles auswählen

#search_results .dates dd
{
	position: relative;
	left: 9em;
	width: 33em;
	display: block;
	text-indent: -2em;
	padding-left: 2em;
	margin-bottom: 4px;
	clear: left;
	overflow: visible;
}

Code: Alles auswählen

html>body #dates_list li.day dd.events li dt
{
	display: block;
	text-indent: -2em;
	clear: left;
	padding-left: 2em;
	margin-top: 1px;
	width: 21em;
	height: auto;
}
ersetzen gegen:

Code: Alles auswählen

html>body #dates_list li.day dd.events li dt
{
	display: block;
	text-indent: -2em;
	clear: left;
	padding-left: 2em;
	margin-top: 1px;
	width: 33em;
	height: auto;
}
Fabian
Mitglied
Beiträge: 797
Registriert: 25.12.2003 11:25

Re: [0.6.1] Simple Calendar

Beitrag von Fabian »

Danke für die schnelle Antwort!
Leider haben die Veränderungen nichts gebracht - den Forum-Cache hatte ich geleert. Zu meinem Verblüffen hat es auch keine Auswirkungen, wenn ich die Datei calendar.css komplett lösche (und den Cache leere). Ich habe nur einen Style, das heißt ich habe nicht an einem falschen Style verändert.

Was mache ich da denn falsch?

Kann ich eigentlich - bei zwei Terminen am Tag - die Reihenfolge verändern? Bisher sind nämlich häufig später folgende Ereignisse vornestehend (weil ich sie zuerst eingetragen hatte).

Mit freundlichem Gruß,
Fabian
BB-BF-BM
Mitglied
Beiträge: 2179
Registriert: 28.10.2005 16:38
Wohnort: Essen

Re: [0.6.1] Simple Calendar

Beitrag von BB-BF-BM »

Hallo Fabian!

Da es sich um eine Änderung am Theme handelt, musst du den Theme-Cache löschen.
BB-BF-BM hat geschrieben:
  • ...
  • Theme-Cache:
    • ACP
    • Reiter: "Styles"
    • Style-Komponenten: Themes
    • Vorgänge: Aktualisieren
    • "Ja"
Eine Änderung der Reihenfolge, in der die Termine angezeigt werden, ist zur Zeit nicht möglich.
Antworten

Zurück zu „[3.0.x] Mods in Entwicklung“