Neues Feature: Board-Challenges

Boardregeln & News
Benutzeravatar
CYP3A4
Beiträge: 12
Registriert: 22.08.2014

Beitrag von CYP3A4 » 22. Aug 2014 16:22

Ich habe mich mal angemeldet, um Feedback zur MOD abzugeben.
Bei einer Testinstallation mit aktiviertem Debug-Modus ist mir nämlich aufgefallen, daß viele Variablen nicht definiert sind.
Da fehlen einige isset-Angaben und auch Sachen wie $post_data['date'] == null sind eher unsinnig bzw. sollte man besser mit isset lösen.
Also z.B. statt

Code: Alles auswählen

			'DATE'					=> ($post_data['date'] == null ? date('d.m.Y') : date('d.m.Y', $post_data['date'])),
besser

Code: Alles auswählen

			'DATE'					=> isset($post_data['date']) ? date('d.m.Y', $post_data['date']) : date('d.m.Y'),
Dann fiel mir eben noch auf, daß ihr beim Einbinden des Challenges-Link hier im Forum die Session-ID nicht mit übergebt. Der Link funktioniert also nur bei aktiviertem Cookies. Den Link sollte man deshalb in der includes/functions.php definieren, damit die Session-ID übergeben wird, gleiches gilt übrigens für den Vegan-FAQ-Link.

Also z.B.:

Code: Alles auswählen

		'U_CHALLENGE'				=> append_sid("{$phpbb_root_path}challenge.$phpEx"),
In der overall_header.html bindet man dann entsprechend {U_CHALLENGE} ein.

Die Idee hinter der MOD gefällt mir aber und abgesehen von den Hinweisen bei aktiviertem Debug-Modus funktioniert's auch wie gedacht, auch wenn ich momentan noch nicht so recht weiß, ob das wirklich was für das von mir betriebene Forum ist. ;)
Aber ich wollte erstmal austesten, wie die MOD aussieht, was sie macht usw. Anpassen ans eigene Forum wäre dann der nächste Schritt.

Benutzeravatar
Martin
SUPERPROGRAMMARTIN *tüdelütt-tüdüüüü*
Beiträge: 4574
Registriert: 03.03.2013
Wohnort: Kiel

Beitrag von Martin » 23. Aug 2014 10:10

Moin CYP3A4, vielen Dank für dein Feedback! :) Du bist meines Wissens nach der Erste, der die MOD einsetzt (mal abgesehen vom Vegan-Forum). :yay:

Danke für deine Hinweise, ich werde die MOD darauf prüfen und beim nächsten Release diese Fehler beheben. Auch die Einbindung mit der Session-Variablen ändere ich dann - denn Fall, dass ein User keine Cookies aktiviert hat, habe ich nicht geprüft. :oops:

@illith: die nötigen Änderungen an den phpBB-Dateien poste ich dann auch.
»Souverän ist nicht, wer viel hat, sondern wenig braucht.« - Niko Paech

Benutzeravatar
illith
Berufs-Veganer
Beiträge: 70109
Registriert: 09.01.2008
Wohnort: Niedersachsen

Beitrag von illith » 23. Aug 2014 10:35

:)
☜★VeganTakeover.de★☞
BlogShirtsBuch

Benutzeravatar
CYP3A4
Beiträge: 12
Registriert: 22.08.2014

Beitrag von CYP3A4 » 23. Aug 2014 17:41

Noch setze ich die MOD nicht produktiv ein. Das war jetzt nur ein Testdurchlauf in der lokalen Version, um zu sehen, was macht man damit und wo sind ggf. Fehler.

Ich möchte da sowieso noch das ein oder andere für mich anpassen wie z.B. die Nutzung durch Vergabe eines Gruppenrechts regeln, aufgrund der Thematik meines Forums auch Challenges mit abfallenden Zahlen ermöglichen und ggf. anderes.

Falls Interesse besteht, kann ich dazu dann auch gern den Code posten oder dir per PN schicken.

Benutzeravatar
Martin
SUPERPROGRAMMARTIN *tüdelütt-tüdüüüü*
Beiträge: 4574
Registriert: 03.03.2013
Wohnort: Kiel

Beitrag von Martin » 25. Aug 2014 08:20

Ja, wenn du den Code erweiterst, schick ihn mir gerne per PN zu oder hänge ihn hier an einen Beitrag an!

Die Rechte sind, wie du sicher schon gesehen hast, in der aktuellen Version sehr rudimentär gelöst. Das liesse sich auch in das Rechtesystem vom phpBB integrieren, wovon ich bisher abgesehen habe, weil ich die MOD möglichst getrennt vom phpBB umsetzen wollte.
»Souverän ist nicht, wer viel hat, sondern wenig braucht.« - Niko Paech

Benutzeravatar
CYP3A4
Beiträge: 12
Registriert: 22.08.2014

Beitrag von CYP3A4 » 26. Aug 2014 23:56

Dann schreibe ich in diesem Thema. Erstens haben dann ggf. andere etwas davon, zweitens bleibt das dann hoffentlich dauerhafter erhalten als eine PN (wenn ich die im Postausgang lösche, ist die für mich weg).

Für das Userrecht, die Funktionen nutzen zu können:

In der Datenbank einen neuen Eintrag erstellen:

Code: Alles auswählen

INSERT INTO `DATENBANKNAME`.`phpbb_acl_options` (`auth_option_id`, `auth_option`, `is_global`, `is_local`, `founder_only`) VALUES ('185', 'u_challenge_mod', '1', '0', '0');
In der Datei language/de/acp/permissions_phpbb.php neu hinzufügen:

Code: Alles auswählen

	'acl_u_challenge_mod'	=> array('lang' => 'Kann Challenge-MOD nutzen', 'cat' => 'misc'),
In der language/de/common.php neu hinzufügen:

Code: Alles auswählen

	'CHALLENGE'				=> 'Challenges',
In der includes/functions.php neu dazu:

Code: Alles auswählen

'U_CHALLENGE'            => ($auth->acl_get('u_challenge_mod') ? append_sid("{$phpbb_root_path}challenge.$phpEx") : '',
in der style/stylename/templates/overall_header.html an gewünschter Stelle dazu:

Code: Alles auswählen

<!-- IF S_CHALLENGE -->	
<li><a href="{U_CHALLENGE}">{L_CHALLENGE}</a></li>
<!-- ENDIF -->
So wird der Link nur denen angezeigt, die dazu berechtigt sind.
Im ACP kann man dann am besten den gewünschten Gruppen das Recht geben "Kann Challenge-MOD nutzen".

Da es sinnvoller ist, daß Bots das gleiche wie auch Gäste sehen, habe ich in der challenge.php etwas geändert und auch gleich eingebaut, ob der Nutzer berechtigt ist, die Seite zu nutzen.

Hinter

Code: Alles auswählen

// specify l10n
$user->setup('mods/challenge');
ergänzen

Code: Alles auswählen

// users need to log in
	if ($user->data['user_id'] == ANONYMOUS || $user->data['is_bot'] )
    {
        login_box('', $user->lang['LOGIN']);
    }	
	elseif (!$auth->acl_get('u_challenge_mod'))
    {
        trigger_error('NOT_AUTHORISED');
    }	
bzw. die Ergänzung als Ersatz nehmen für

Code: Alles auswählen

// redirect bots to index page
if ($user->data['is_bot'])
{
	redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
}

// users need to log in
if ($user->data['user_id'] == ANONYMOUS)
{
	login_box('', $user->lang['LOGIN']);
}
Den Teil

Code: Alles auswählen

// the database tables of this MOD
define('MOD_CHALLENGE_CHALLENGE_TABLE',		$table_prefix . 'mod_challenge_challenge');
define('MOD_CHALLENGE_LOG_TABLE',		$table_prefix . 'mod_challenge_log');
define('MOD_CHALLENGE_MILESTONE_TABLE',		$table_prefix . 'mod_challenge_milestone');
define('MOD_CHALLENGE_PARTICIPANT_TABLE',	$table_prefix . 'mod_challenge_participant');
lagert man am besten in die includes/constants.php aus und löscht den Teil dann in der challenge.php und challenge_gfx.php

Die anderen Optionen könnte man dann noch als ACP-Modul umsetzen. Das kommt dann als nächstes.

Benutzeravatar
Martin
SUPERPROGRAMMARTIN *tüdelütt-tüdüüüü*
Beiträge: 4574
Registriert: 03.03.2013
Wohnort: Kiel

Beitrag von Martin » 5. Nov 2014 13:36

Idee für eine weitere grafische Ausgabe: eine Art Kurvendiagramm aus den Logs erstellen.

Auf der Y-Achse die kumulierten eingetragenen Werte (z.B. die gelaufenen km), auf der X-Achse die Zeit. Mehrere Teilnehmer auswählbar, jeder bekommt eine Linie mit einer anderen Farbe. Könnte eine hübsche Grafik ergeben. :)
»Souverän ist nicht, wer viel hat, sondern wenig braucht.« - Niko Paech

Benutzeravatar
Wuseljule
Sonnenschein
Beiträge: 7693
Registriert: 01.11.2011
Wohnort: Niedersachsen

Beitrag von Wuseljule » 5. Nov 2014 13:40

Als visueller Mensch, der Statistiken liebt, sage ich: JA! :)
Und alles ist jetzt. Es ist alles alles jetzt.

Benutzeravatar
Martin
SUPERPROGRAMMARTIN *tüdelütt-tüdüüüü*
Beiträge: 4574
Registriert: 03.03.2013
Wohnort: Kiel

Beitrag von Martin » 5. Nov 2014 13:46

Die Datenbasis dafür lässt sich aus der Datenbank einfach erstellen.
Problematisch sehe ich die Erstellung der Grafik. Es gibt zwar von Google einen Dienst, der aus allen möglichen Daten einfach und gut konfigurierbar Diagramme erstellt - aber lieber würde ich eine von Google unabhängige (i.S.v. auch offline nutzbar und ohne Daten an Google zu schicken) Möglichkeit finden. Mal sehen. :kk:
»Souverän ist nicht, wer viel hat, sondern wenig braucht.« - Niko Paech

Benutzeravatar
mashisouk
Admin-Liebling
Beiträge: 5023
Registriert: 29.06.2014

Beitrag von mashisouk » 5. Nov 2014 14:46

Martin,
ich bitte dich, mal im Spiegel nachzuschauen, ob da nicht doch kleine Antennen auf deinem Kopf blinken.
Wir beide können doch unmöglich das gleiche Genom haben! Ich frage mich, ob nicht auf einem weit entfernten Planeten ein Lebewesen sitzt und sich fragt,wo der Martin so lange bleibt......

Ich finde es außerordentlich beeindruckend, wenn ich mir vorstelle, daß es Menschen gibt, die verstehen, was du sagst!

Auch übrigens: seit gestern ist manchmal plötzlich mein Internet aus, wenn ich drin bin. Also, ich klicke irgendwo drauf und dann kommt eine Seite, da steht: Sever nicht gefunden.
Leider weiß ich gar nicht, was Server ist, geschweige denn, wo ich ihn suchen sollte.
Weißt du Rat?
Sei ganz du selbst!
Außer du kannst ein Einhorn sein - dann sei ein Einhorn

Antworten