Probleme bei Verwendung von Classes auf phpBB

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
canonknipser
Supporter
Supporter
Beiträge: 922
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon canonknipser » 07.07.2017 14:13

Mahony hat geschrieben:Hallo
Zeile 8 sollte das hier sein

Code: Alles auswählen

<!-- BEGIN matches -->


Wenn es sich um einen Kommentar (mehrere Kommentare) handelt,...

Es ist hier aber kein Kommentar, sondern ein Schleifenanfang (Aufbau einer Tabelle )- die Variable ist nur ein TWIG-reserviertes Wort, s.o. ;)

-> https://area51.phpbb.com/docs/32x/codin ... #templates
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;)
Kein Support via PN, nur im Board und (manchmal) im IRC

Benutzeravatar
Mahony
Ehemaliger
Beiträge: 10875
Registriert: 17.11.2005 22:33
Wohnort: Esslingen (Neckar)
Kontaktdaten:

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon Mahony » 07.07.2017 14:19

Hallo
Danke für den Hinweis. Ich hatte mir das nicht so genau angesehen (Sorry).
Aber somit sind dann ja alle Eventualitäten abgedeckt (falls jemand mal ähnliche Probleme hat).

Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.

Benutzeravatar
canonknipser
Supporter
Supporter
Beiträge: 922
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon canonknipser » 07.07.2017 15:59

Hallo Mahony,
Ja, das ist eines der Probleme mit der phpBB-Template-Syntax - Anweisungen sind in html-Kommentaren verbaut ...
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;)
Kein Support via PN, nur im Board und (manchmal) im IRC

UweA
Mitglied
Beiträge: 13
Registriert: 19.06.2017 19:22
Wohnort: Volketswil, CH

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon UweA » 07.07.2017 19:28

Das hat schon mal zwei Schritte weiter geholfen, Danke canonknipser ...

Leider verhalten sich jetzt erst 2 Seiten wie gewünscht.
Das eine bezieht sich anscheinend auf unsachgemässe Umsetzung der Superglobals
Dieser Ausschnitt gibt leider für eine Variable keinen Wert zurück - die team_id bleibt leer, alle anderen werden sauber belegt

Code: Alles auswählen

...
case PAGE_DETAILS:
   .....
        //if (isset ($_GET['team_id']) || isset ($_POST['team_id']))
      if ($request->variable('team_id', ''))
        {
            //$data['team_id'] = (isset ($_POST['team_id'])) ? $_POST['team_id'] : $_GET['team_id'];
      $data['team_id'] = $request->variable('team_id', '');
      }
        else
        {
            $data['team_id'] = '';
      }
   
        break;


Habe ich einen Fehler bei der Umsetzung der gemacht ? Es geht immer gleich in die ELSE

:geek:

Benutzeravatar
canonknipser
Supporter
Supporter
Beiträge: 922
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon canonknipser » 07.07.2017 19:58

BTW: Die ganzen Klassendefinitionen usw. findest du in der API-Dokumentation: https://area51.phpbb.com/docs/code/3.2.x/
einfach mal nach request suchen:
Es gibt in der Klasse request noch weitere Methoden, u.a auch eine is_set
Also, anstelle
if (isset ($_GET['team_id']) || isset ($_POST['team_id']))
einfach ein
if ($request->is_set('team_id')

vollständig sähe der Block dann so aus:

Code: Alles auswählen


      if 
($request->is_set('team_id')
      {
        $data['team_id'] = $request->variable('team_id', '');
      }
      else
      
{
         $data['team_id'] = '';
      }
   



Wenn du dann immer noch nicht das gewünschte Ergebnis hast, musst du mal überprüfen,ob deine team_id bei Aufruf mit "PAGE_DETAILS" überhaupt übergeben wird und wenn nicht, warum nicht. Das kann man leider aus so kurzen Codeschnipseln nicht rauslesen.
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;)
Kein Support via PN, nur im Board und (manchmal) im IRC

UweA
Mitglied
Beiträge: 13
Registriert: 19.06.2017 19:22
Wohnort: Volketswil, CH

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon UweA » 09.07.2017 08:45

Jetzt mal wieder eine andere Frage. Ich weiss nicht warum es passiert wie es passiert ... und was der Code im Original an dieser Stelle, die ich als Problem ausgemacht habe tut. Die Seite ansich lief (bis zu meiner letzten Aenderung)
Habe den Code der main page mal im pate_bin abgelegt : https://www.phpbb.de/community/pastebin/?mode=view&s=27

Ich bekomme bei der Heim / Auswärtswertung NUR die Auswärtswertungen, Nun sehe ich kein direktes Problem NUR verstehe ich nicht ganz was da im alten Code (3. Zeile, mit dem "Fragezeichen") mit den Superglobals passiert ist um es umzusetzen.

Code: Alles auswählen

        if (isset ($_GET['ha']) || isset ($_POST['ha']))
        {
            $data['ha'] = (isset ($_POST['ha'])) ? $_POST['ha'] : $_GET['ha'];
            if ($data['ha'] < GESAMT || $data['ha'] > AWAY)
            {
                 $data['ha'] = GESAMT;
            }
        }


Wenn ich es den 2. Teil (also ? $_POST.... ) weg lasse läuft die Seite, aber ich habe das Ergebnis, das nur die AWAY Ergebnisse berechnet werden
Wenn ich es versuche abzubillden mit

Code: Alles auswählen

            //$data['ha'] = (isset ($_POST['ha'])) ? $_POST['ha'] : $_GET['ha'];
         $data['ha'] = $request->is_set_post('ha') ? $request->variable('ha', '');


bekomme ich einen Fehler dass das Semikolon dort nicht hingehört - aber schon beim rsten vorkommen dieses Codeteiils in Zeile 144, denn diese Abfrage gehört zu jeder Variablen im $data-Array

Die aktuelle Seite setzt sich aus zwei Seiten des Originalcodes zusammen, da ich die Variablen nicht vom page_header.php (bis Zeile 874) in das scores.php herüber bekam, was aber im alten Code funktionierte. ich wollte es erst einmal zum Laufen bringen und dann hinterher wieder mit einer Trennung arbeite, da der page_header in allen Seiten Verwendung findet....

Oder war mein erster Ansatz korrekt und der Fehler passiert im Bereich des scores.php ?

Benutzeravatar
canonknipser
Supporter
Supporter
Beiträge: 922
Registriert: 10.09.2011 11:14
Kontaktdaten:

Re: Probleme bei Verwendung von Classes auf phpBB

Beitragvon canonknipser » 10.07.2017 09:02

Nein, der Fehler liegt in einer Fehlinterpretation der Syntax b ? c : d Hierbei handelt es sich um den sogenannten ternären Operator von php: http://php.net/manual/de/language.opera ... arison.php

Also, deine Ursprungssyntax:
$data['ha'] = (isset ($_POST['ha'])) ? $_POST['ha'] : $_GET['ha'];
bedeutet "wenn der POST-Wert ha (isset ($_POST['ha'])) gesetzt ist, dann ? weise den POST-Wert von ha zu $_POST['ha'], sonst : weise den GET-Wert von ha zu $_GET['ha']"

Das brauchst du nicht mehr, weil GET und POST in einem request-Aufruf ermittelt werden und du bei der Zuweisung nicht mehr unterscheiden musst. Also weist du nur noch den Wert zu:
$data['ha'] = $request->variable('ha', '');
Grüße, canonknipser
"there are only 10 types of people: those, who understand binary and those, who don't"
just arrived ;)
Kein Support via PN, nur im Board und (manchmal) im IRC


Zurück zu „Coding & Technik“