Blockdaten werden nicht eingefügt

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
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.
Nescire
Mitglied
Beiträge: 10
Registriert: 30.10.2008 15:16
Kontaktdaten:

Blockdaten werden nicht eingefügt

Beitrag von Nescire »

Hi ich habe versucht eine eigene Seite in mein phpBB3 Board einzufügen. Das hat auch fast komplett geklappt, nur an einer leider sehr wichtigen Sache hängt es noch und da ich leider nirgends Debugger-Meldungen finde habe ich keine ahnung was falsch ist.

Wenn jemand den Fehler finden würde wäre ich echt dankbar.


Der code meiner gilde.php:

Code: Alles auswählen

<?php
/**
*
* @author Jan-Erik Siegmann jan@siegmann-digital.de - http://www.rechtundordnung.de.tp
*
* @package {BuffedGildendetails}
* @version 1.0
* @copyright (c) 2008 Siegmann Digital
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
// Specify the path to you phpBB3 installation directory.
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
// The common.php file is required.
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);

// specify styles and/or localisation
// in this example, we specify that we will be using the file: my_language_file.php
$user->setup();

/*
* All of your coding will be here, setting up vars, database selects, inserts, etc...
*
*/
$gilde = simplexml_load_file('http://www.buffed.de/public/war/xml/guild/226.xml');

$colorset =0;
  foreach ($gilde->character as $character) {
	  $template->assign_block_vars('gildendetails', array(
        'NAME'        => "Name",
        'KARRIERE'            => $character->career[0],
		'TITLE'            => $character->title[0],
		'RANG'            => $character->rank[0],
		'BGCOLOR' 		=> $bgcolor,
    ));
  
 		if ($colorset == "1")
  		{
   			$bgcolor="'#444444'";
	    }
 		else
  		{
  			$bgcolor="'#666666'";
    		$colorset =0;
  		} 
  
 }


// Page title, this language variable should be defined in the language file you setup at the top of this page.
page_header('Gildendetails');

// Set the filename of the template you want to use for this file.
// This is the name of our template file located in /styles/<style>/templates/.
$template->set_filenames(array(
    'body' => 'gilddetails.html',
));

// Completing the script and displaying the page.
page_footer();

?>
und hier der code der Templatedatei:

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->
<table width="60%" border="0">
<div align="center">
  <tr>
    <th scope="col">Name</th>
    <th scope="col">Karriere</th>
    <th scope="col">Titel</th>
    <th scope="col">Rang</th>
  </tr>
   <!-- BEGIN gildendetails -->
   <tr bgcolor={gildendetails.BGCOLOR}>
    <td>{gildendetails.NAME}</td>
    <td>{gildendetails.KARRIERE}</td>
    <td>{gildendetails.TITLE}</td>
    <td>{gildendetails.RANG}</td>
   </tr>";
<!-- END gildendetails -->
</div>
</table>
<!-- INCLUDE jumpbox.html -->
<!-- INCLUDE overall_footer.html -->
</body>
</html>
Hasu0bs

Beitrag von Hasu0bs »

Hallo
also was ich auf anhieb sehe: Ich würde mal das

Code: Alles auswählen

</body>
</html> 
nach <!-- INCLUDE overall_footer.html --> weglassen das ist in der overall_footer schon drin ;)
Nescire
Mitglied
Beiträge: 10
Registriert: 30.10.2008 15:16
Kontaktdaten:

Beitrag von Nescire »

Das wars leider nicht :(
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

So kommt das irgendwie einer Glaskugelsuche gleich: Wie waere es, wenn du mitteilen wuerdest was genau du da fuer einen Fehler drin hast? Oder damit du die Frage nicht falsch verstehst: Was du zu Gesicht bekommst und was du stattdessen erwarten wuerdest?

Ausserdem: KB:knigge Bitte poste nicht so viel Code auf einmal sondern verlinke den stattdessen. Danke (KB:datei)
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Nescire
Mitglied
Beiträge: 10
Registriert: 30.10.2008 15:16
Kontaktdaten:

Beitrag von Nescire »

Sorry wegen dem Code, kenn das aus anderen Foren nur so das es lieber ist wenn der Code im Posting ist.

Naja was eben nicht passiert ist das die Daten aus den variablen eingetragen werden, er sollte ja die tabelle mit den einträgen füllen. dies geschieht nicht die seite wird aufgebaut und man sieht nur den table header.
Das ist das momentane Resultat:
http://ruo.siegmann-digital.de/gilde.php
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Mach mal einen print_r($gilde->character), so wie es für mich aussieht hast du da einfach keine Daten drin, sprich simplexml_load_file funktioniert nicht richtig.

Was das Template angeht hat ein div in einer Tabelle nichts zu suchen, das kannst du außen drum rum machen aber nicht innen drin.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Nescire
Mitglied
Beiträge: 10
Registriert: 30.10.2008 15:16
Kontaktdaten:

Beitrag von Nescire »

Also daten wurden mit print_r ausgegeben:
SimpleXMLElement Object ( [@attributes] => Array ( [name] => Abratak [lastlogin] => 16.10.2008 - 20:33:03 ) [rank] => 11 [career] => Feuerzauberer [title] => Mitglied )

Und am Div liegt es auch nicht :(
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Bau mal oben in das skript die Konstante define('DEBUG_EXTRA', true); ein.

Wenn das ein Objekt ist dann ist das Konstrukt aber so nicht richtig, denn foreach erwartet ein Array von Daten und keine Objekte (welche du ihm lieferst). Entsprechend kann foreach mit deinem SimpleXMLElement Object nichts anfangen und führt daher keine einzige Schleife aus. Du musst dafür sorgen dass die Daten in Arrayform vorliegen oder eine andere Schleifenform wählen in der du selbst kontrollierst wann die Schleife alle Werte durchlaufen hat. Zudem enthält $gilde->character offenbar auch nicht alle Elemente die du ausgeben willst, sondern nur das erste. print_r($gilde) gibt vermutlich mehr aufschluss was du machen musst.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Nescire
Mitglied
Beiträge: 10
Registriert: 30.10.2008 15:16
Kontaktdaten:

Beitrag von Nescire »

Ähm $gilde ist ein array. simplexml_load_file gibt ein array zurück in dem wiederum arrays liegen der letzendliche wert ist dann ein objekt.

Im array Gilde, liegen arrays namens character, darin sind wieder arrays gespeichert und in diesen sind dann objekte.

hatte das ganze schonmal so programmiert als reine php seite wollte es nun ins forum einbinden und daher das mit der template seite. die ausgabe über foreach schleife mit echo als ausgabe hatte funktioniert. nur habe ich den eindruck das die daten in der template datei ankommen.

ich habe auch DEBUG_Extra nun eingebunden, sehe aber nirgends eine debug meldung.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Wenn $gilde ein Array ist dann ist die Benutzung oben falsch, denn du versuchst per -> auf ein Element zuzugreifen. Probier das mal ohne ->character aus. Allerdings wundert es mich dass dann überhaupt was rauskommt, ich hätte dann einen Fatal Error erwartet.

Hast du DEBUG_EXTRA oder DEBUG_Extra definiert? Ein riesen Unterschied! Kann sein dass du auch noch define('DEBUG', true); brauchst damit es meldungen gibt.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“