Kalender Umgestalten

Aktuelle Version: 2.0.2
Veröffentlicht: 27.10.2013
Forum rules
Vor dem erstellen neuer Supportanfragen bitte zuerst in die board3 Portal FAQ schauen und die Suche benutzen!
Viele Fragen sind bereits schon gestellt und beantwortet worden.
Bitte auch unsere Forumsregeln lesen und beachten!
Locked

Topic author
Toppi87
Active Member
Posts: 5
Joined: 20. December 2012 00:45

Kalender Umgestalten

Post by Toppi87 »

Deine Portal Version: 2.0.1
Typ Deines phpBB Forums: Standard phpBB3
MODs installiert: Ja
Dein Wissensstand: Einsteiger

PHP Version: 5.3
MySQL Version: 3.4.10.2

Was hast Du gemacht, bevor das Problem aufgetreten ist?


Was hast Du bereits versucht um das Problem zu lösen?


Fehlerbeschreibung und Nachricht
Moin.

Vorweg: Ich bin ein totaler Anfänger, also bitte vom Wissensstand 0 ausgehen. ;-)

So, ich würd gern den Kalender Umgestalten.
Ich möchte das Forum als Band-Forum nutzen und dafür wären mehrere Dinge für mich wichtig.
Zu jeder Probe, jedem Gig, etc, möchte ich ein Thema erstellen, welches dann auch im Kalender verlinkt werden soll.

Nun aber zu meinen Wünschen:
1a. Ich würde gern, dass eingetragene Termine auch im Kalender (also die Zahlen) gekennzeichnet werden.
Ob der gewünschte Tag eine andere Farbe bekommt, oder durch eine Grafik marktiert werden, spielt dabei keine Rolle.
1b. Da der Tag mit Termin Farblich markiert werden soll, wäre es super, die Sonntage auch schwarz zu machen.
2. Wäre es super, wenn ich durch klicken auf die Zahl auch zum entsprechenden Thema kommen würde.
3. Wäre es cool, wenn die Termine kompakter aufgelistet werden.
Mir wär es recht, wenn die Termine untereinander aufgelistet werden egal ob "aktuelle Termine" oder "bevorstehende".

Stelle mir das in etwa so vor:

Veranstaltungen:
23.12.12 - Konzert in XYZ
24.12.12 - Weihnachten
25.12.12 - Konzert in ABC
31.12.12 - Silvesterparty

4. Außerdem sollten sich die Verantaltungen am besten selber löschen. So dass z.b. "Konzert in XYZ" am 23.12.12 um 23:59 Uhr Automatisch verschwindet.
5. Mehrtätige Events sind nicht geplant, daher brauch ich eigentlich kein "Start" und "End"-Datum. Wann gelöscht werden soll, reicht eigentlich, da die Termine direkt ab Einstellung angezeigt werden sollen..

Ich hoffe, ihr könnt mir helfen.
Eilt auch eigentlich nicht.
Notfalls mach ich mir ne kleine eigene Box, aber es wäre schon schöner, wenn diese mit dem Kalender verbunden wäre.

Topic author
Toppi87
Active Member
Posts: 5
Joined: 20. December 2012 00:45

Re: Kalender Umgestalten

Post by Toppi87 »

keiner?
Nicht mal ein "keine ahnung" oder "nicht möglich"?
User avatar

cpg
Sponsor
Posts: 119
Joined: 3. September 2010 19:42
phpBB.de User: cpg
Location: Ringsberg
Contact:

Re: Kalender Umgestalten

Post by cpg »

Moin,

zu diesem - und ähnlichen Themen gibt es schon zahlreiche Threads.
Ich habe mich selbst auch mit dem Thema beschäftigt. Es ist aber nicht mit einem "Dreizeiler in php" erledigt.

Die Frage ist auch, was mit den anderen, laufenden Projekten geschieht; nicht, dass man "das Rad neu erfindet" - und zwei Tage früher oder später meldet sich einer und sagt: "habe gerade fertig".

Wenn Du die Board-Suche bemühst, wirst Du zum Thema "Kalender" einige Threads finden; aber soweit ich gesehen habe, gibt es noch keine 1-A-SUPERTOLL-Lösung, aber immerhin Ansätze, die Du vielleicht verwenden kannst.
Notfalls mach ich mir ne kleine eigene Box, aber es wäre schon schöner, wenn diese mit dem Kalender verbunden wäre.
Das wäre natürlich auch ein Ansatz. Ich hatte mir mal eine Seiten-Box gebastelt, die die letzten "Treffen-Threads" aufgelistet hat.
Das Ding könnte man umtaufen in "Termine" - und dann macht man im Board ein Forum "Termine" auf und bildet in der Box die jeweils neuesten Postings ab.
... ist aber auch noch weit weg von einer Ideal-Lösung ;)

Gruß und guten Rutsch
CPG

Topic author
Toppi87
Active Member
Posts: 5
Joined: 20. December 2012 00:45

Re: Kalender Umgestalten

Post by Toppi87 »

Moin.
Mir wäre schon sehr geholfen, wenn du mir erklärst, die was mit den Treffen funktioniert..
Wenn er diese in der Box noch nach Datum sortieren würde, und nur Termine in der Zukunft anzeigen würde, wären das für mich die Ideallösung.
Is dann zwar nicht mit dem Kalender verbunden, aber muss es ja auch nicht zwingend..
War nur mein Gedanke, da es ja schon einen Kalender mit ähnlicher Funktion gibt..
User avatar

cpg
Sponsor
Posts: 119
Joined: 3. September 2010 19:42
phpBB.de User: cpg
Location: Ringsberg
Contact:

Re: Kalender Umgestalten

Post by cpg »

Moin,

ich habe eine Datei portal_treffenside.php erstellt (eine veränderte recent)

Code: Select all

<?php
/**
*
* @package Board3 Portal v2 - Default
* @copyright (c) Board3 Group ( www.board3.de )<br>
* @aenderungen: cpg
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
        exit;
}

/**
* @package portal_treffenside
*/
class portal_treffenside_module
{
        /**
        * Allowed columns: Just sum up your options (Exp: left + right = 10)
        * top                1
        * left                2
        * center        4
        * right                8
        * bottom        16
        */
        public $columns = 10;

        /**
        * Default modulename
        */
        public $name = 'PORTAL_TREFFENSIDE';

        /**
        * Default module-image:
        * file must be in "{T_THEME_PATH}/images/portal/"
        */
        public $image_src = 'recentside.png';

        /**
        * module-language file
        * file must be in "language/{$user->lang}/mods/portal/"
        */
        public $language = 'portal_treffenside_module';


        public $custom_acp_tpl = '';

        public function get_template_side($module_id)
        {
                global $config, $template, $db, $auth, $phpbb_root_path, $phpEx;

                //
                // Exclude forums
                //
                $sql_where = '';
               // orig if ($config['board3_forum_' . $module_id] > 0)
                if ($config['board3_treffenside_forum_' . $module_id] > 0)
                {
                        //orig $exclude_forums = explode(',', $config['board3_treffenside_forum_' . $module_id]);
                           $exclude_forums = explode(',', $config['board3_treffenside_forum_' . $module_id]);

                        $sql_where = ' AND ' . $db->sql_in_set('forum_id', array_map('intval', $exclude_forums), ($config['board3_treffenside_exclude_forums_' . $module_id]) ? true : false);
                }

                // Get a list of forums the user cannot read
                $forum_ary = array_unique(array_keys($auth->acl_getf('!f_read', true)));

                // Determine first forum the user is able to read (must not be a category)
                $sql = 'SELECT forum_id
                        FROM ' . FORUMS_TABLE . '
                        WHERE forum_type = ' . FORUM_POST;

                $forum_sql = '';
                if (sizeof($forum_ary))
                {
                        $sql .= ' AND ' . $db->sql_in_set('forum_id', $forum_ary, true);
                        $forum_sql = ' AND ' . $db->sql_in_set('t.forum_id', $forum_ary, true);
                }

                $result = $db->sql_query_limit($sql, 1);
                $g_forum_id = (int) $db->sql_fetchfield('forum_id');
                $db->sql_freeresult($result);

                //
                // Recent announcements
                //
                $sql = 'SELECT topic_title, forum_id, topic_id
                        FROM ' . TOPICS_TABLE . ' t
                        WHERE topic_status <> ' . FORUM_LINK . '
                                AND topic_approved = 1
                                AND (topic_type = ' . POST_ANNOUNCE . ' OR topic_type = ' . POST_GLOBAL . ')
                                AND topic_moved_id = 0
                                ' . $sql_where . '' .  $forum_sql . '
                        ORDER BY topic_time DESC';
                $result = $db->sql_query_limit($sql, $config['board3_treffenside_max_topics_' . $module_id]);

                while(($row = $db->sql_fetchrow($result)) && ($row['topic_title']))
                {
                        // auto auth
                        if (($auth->acl_get('f_read', $row['forum_id'])) || ($row['forum_id'] == '0'))
                        {
                                $template->assign_block_vars('latex_announcements', array(
                                       //orig 'TITLE'                        => character_limit($row['topic_title'], $config['board3_recent_title_limit_' . $module_id]),
                                        'TITLE'                        => character_limit($row['topic_title'], $config['board3_treffenside_title_limit_' . $module_id]),
                                        'FULL_TITLE'        => censor_text($row['topic_title']),
                                        'U_VIEW_TOPIC'        => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . (($row['forum_id'] == 0) ? $g_forum_id : $row['forum_id']) . '&t=' . $row['topic_id'])
                                ));
                        }
                }
                $db->sql_freeresult($result);


                //
                // Recent topic (only show normal topic)
                //
                $sql = 'SELECT topic_title, forum_id, topic_id
                        FROM ' . TOPICS_TABLE . ' t
                        WHERE topic_status <> ' . ITEM_MOVED . '
                                AND topic_approved = 1
                                AND topic_type = ' . POST_NORMAL . '
                                AND topic_moved_id = 0

                                ' . $sql_where . '' .  $forum_sql . '
                        ORDER BY topic_time ASC';
                $result = $db->sql_query_limit($sql, $config['board3_treffenside_max_topics_' . $module_id]);
                //if ($data['forum_id'] != 2)

                while(($row = $db->sql_fetchrow($result)) && ($row['topic_title']))
                {
                        // auto auth
                        if (($auth->acl_get('f_read', $row['forum_id'])) || ($row['forum_id'] == '0'))
                        {
                                $template->assign_block_vars('latex_topics', array(
                                       //orig 'TITLE'                        => character_limit($row['topic_title'], $config['board3_recent_title_limit_' . $module_id]),
                                        'TITLE'                        => character_limit($row['topic_title'], $config['board3_treffenside_title_limit_' . $module_id]),
                                        'FULL_TITLE'        => censor_text($row['topic_title']),
                                        'U_VIEW_TOPIC'        => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $row['forum_id'] . '&t=' . $row['topic_id'])
                                ));
                        }
                }
            $db->sql_freeresult($result);

                return 'treffen_side.html';
        }

        public function get_template_acp($module_id)
        {
                return array(
                        'title'        => 'ACP_PORTAL_TREFFENSIDE_SETTINGS',
                        'vars'        => array(
                                'legend1'                                                        => 'ACP_PORTAL_TREFFENSIDE_SETTINGS',
                                'board3_treffenside_max_topics_' . $module_id                                => array('lang' => 'PORTAL_TREFFENSIDE_MAX_TOPIC',                        'validate' => 'int',                'type' => 'text:3:3',                'explain' => true),
                                'board3_treffenside_title_limit_' . $module_id                => array('lang' => 'PORTAL_TREFFENSIDE_TITLE_LIMIT',        'validate' => 'int',                'type' => 'text:3:3',                'explain' => true),
                                'board3_treffenside_forum_' . $module_id                                => array('lang' => 'PORTAL_TREFFENSIDE_FORUM',                'validate' => 'string',                'type' => 'custom',                        'explain' => true, 'method' => 'select_forums', 'submit' => 'store_selected_forums'),
                                'board3_treffenside_exclude_forums_' . $module_id        => array('lang' => 'PORTAL_TREFFENSIDE_EXCLUDE_FORUM',                'validate' => 'bool',                'type' => 'radio:yes_no',        'explain' => true),
                        )
                );
        }

        /**
        * API functions
        */
        public function install($module_id)
        {
                set_config('board3_treffenside_max_topics_' . $module_id, 10);
                set_config('board3_treffenside_title_limit_' . $module_id, 100);
                set_config('board3_treffenside_forum_' . $module_id, '');
                set_config('board3_treffenside_exclude_forums_' . $module_id, 1);
                return true;
        }

        public function uninstall($module_id)
        {
                global $db;

                $del_config = array(
                        'board3_treffenside_max_topics_' . $module_id,
                        'board3_treffenside_title_limit_' . $module_id,
                        'board3_treffenside_forum_' . $module_id,
                        'board3_treffenside_exclude_forums_' . $module_id,
                );
                $sql = 'DELETE FROM ' . CONFIG_TABLE . '
                        WHERE ' . $db->sql_in_set('config_name', $del_config);
                return $db->sql_query($sql);
        }

        // Create forum select box
        public function select_forums($value, $key, $module_id)
        {
                global $user, $config;

                $forum_list = make_forum_select(false, false, true, true, true, false, true);

                $selected = array();
                if(isset($config[$key]) && strlen($config[$key]) > 0)
                {
                        $selected = explode(',', $config[$key]);
                }
                // Build forum options
                $s_forum_options = '<select id="' . $key . '" name="' . $key . '[]" multiple="multiple">';
                foreach ($forum_list as $f_id => $f_row)
                {
                        $s_forum_options .= '<option value="' . $f_id . '"' . ((in_array($f_id, $selected)) ? ' selected="selected"' : '') . (($f_row['disabled']) ? ' disabled="disabled" class="disabled-option"' : '') . '>' . $f_row['padding'] . $f_row['forum_name'] . '</option>';
                }
                $s_forum_options .= '</select>';

                return $s_forum_options;

        }

        // Store selected forums
        public function store_selected_forums($key, $module_id)
        {
                global $db, $cache;

                // Get selected extensions
                $values = request_var($key, array(0 => ''));

                $news = implode(',', $values);

                set_config($key, $news);

        }
}
und folgende html-Datei, die in die styles/meinStyle/templates/portal/modules kommt
die habe ich treffen_side.html genannt.
Sie sieht so aus:

Code: Select all

<!-- IF .latest_announcements or .latex_topics -->
{$C_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{$IMAGE_SRC}" width="{$IMAGE_WIDTH}" height="{$IMAGE_HEIGHT}" alt="" />&nbsp;<!-- ENDIF -->{$TITLE}{$C_BLOCK_H_R}
        <ul class="topiclist bg1">
               <li>
                        <table width="100%">
                        <tr>
                                <!-- IF .latex_topics --><td class="row1"><strong>{L_PORTAL_TREFFENSIDE_TOPIC}</strong></td><!-- ENDIF -->
                                </tr>
                                 <tr>

                               <!-- IF .latex_topics -->

                                <td class="row1" style="width: 100%;" valign="top">

                                        <!-- BEGIN latex_topics -->
                                        <ul>
                                      <li><a href="{latex_topics.U_VIEW_TOPIC}" title="{latex_topics.FULL_TITLE}">{latex_topics.TITLE}</a> </li></ul>
                                        <!-- END latex_topics -->

                               </td>
                                <!-- ENDIF -->
                        </tr>
                        </table>

                </li>
        </ul>
{$C_BLOCK_F_L}{$C_BLOCK_F_R}
<!-- ENDIF -->
Im ACP habe ich dann ausgewählt, aus welchem Forum die "latest Postings" bei mir angezeigt werden sollen (bei mir TREFFEN). Man kann natürlich auch jedes andere Forum auswählen (bei Dir TERMINE) und die Umbenennungen dann vornehmen. Die Sortier-Reihenfolge kannst Du natürlich auch umkehren.

Gruß
CPG
User avatar

cpg
Sponsor
Posts: 119
Joined: 3. September 2010 19:42
phpBB.de User: cpg
Location: Ringsberg
Contact:

Re: Kalender Umgestalten

Post by cpg »

Moin,

ich habe mal den Kalender für meine Zwecke etwas modifiziert.
- Ein Monats-Kalenderbild habe ich eingefügt
- oberhalb des Bildes erscheint der "heutige Termin" (wenn es einen geben sollte)
- unterhalb der Kalendertage befindet sich der Ausblick
- ist ein Termin innerhalb der nächsten 24 Stunden, dann wechselt die Hintergrundfarbe der Kalendertage

Weil ich zeitnah keine andere Lösung gestalten konnte, habe ich in meinem Forum im Forum "Kalender 2012" die Unterforen "Januar", "Februar" usw. eingerichtet.
Wenn ich in meinem Kalender auf z.B. auf "März" gehe, dann erscheint das Kalenderbild vom März - und wenn ich auf einen Tag klicke, dann lande ich im Unterforum "März". Dort werden zunächst noch manuell die Ereignisse für diesen Monat eingetragen.
Natürlich könnte man auch von jedem Tag einen einzelnen Link auf eine Tages-Seite herstellen; aber so viele Termine haben wir nicht.

Die Geburtstage habe ich auch integriert.
Es ist noch in der Testphase, aber falls Du mal schauen willst: http://www.crossdresser-forum.de/phpBB3/portal.php

Gruß und schöne Wochenende
CPG

standmotor_de
Active Member
Posts: 5
Joined: 18. October 2013 17:36

Re: Kalender Umgestalten

Post by standmotor_de »

cpg wrote:Moin,

ich habe mal den Kalender für meine Zwecke etwas modifiziert.
- Ein Monats-Kalenderbild habe ich eingefügt
- oberhalb des Bildes erscheint der "heutige Termin" (wenn es einen geben sollte)
- unterhalb der Kalendertage befindet sich der Ausblick
- ist ein Termin innerhalb der nächsten 24 Stunden, dann wechselt die Hintergrundfarbe der Kalendertage

Weil ich zeitnah keine andere Lösung gestalten konnte, habe ich in meinem Forum im Forum "Kalender 2012" die Unterforen "Januar", "Februar" usw. eingerichtet.
Wenn ich in meinem Kalender auf z.B. auf "März" gehe, dann erscheint das Kalenderbild vom März - und wenn ich auf einen Tag klicke, dann lande ich im Unterforum "März". Dort werden zunächst noch manuell die Ereignisse für diesen Monat eingetragen.
Natürlich könnte man auch von jedem Tag einen einzelnen Link auf eine Tages-Seite herstellen; aber so viele Termine haben wir nicht.

Die Geburtstage habe ich auch integriert.
Es ist noch in der Testphase, aber falls Du mal schauen willst: http://www.crossdresser-forum.de/phpBB3/portal.php

Gruß und schöne Wochenende
CPG
Hallo,

das ist genau das was ich suche. Kann man den Block irgendwo downloaden?

Gruß Mathias
User avatar

heiner
Valued Contributor
Posts: 56
Joined: 29. November 2012 17:11
phpBB.de User: HirschHeinrich
phpBB.com User: HirschHeinrich
Location: D-19061 Schwerin
Contact:

Re: Kalender Umgestalten

Post by heiner »

das angepasste Portal-Kalendermodul gefällt auch mir.
An dem Code des angepassten Moduls mit Monatsbildern bin auch ich sehr interessiert.
PN? oder E-Mail?
Heiner
User avatar

cpg
Sponsor
Posts: 119
Joined: 3. September 2010 19:42
phpBB.de User: cpg
Location: Ringsberg
Contact:

Re: Kalender Umgestalten

Post by cpg »

Moin,

es sind ein paar Dateien zu ändern. Ich werde versuchen, eine kleine Anleitung zu schreiben und hier zu posten.
Das kann aber etwas dauern, ich habe im Moment leider recht viel um die Ohren.
Ich melde mich wieder.

Gruß
CPG
Locked

Return to “Board3 Portal 2.0.x - Deutscher Support”