Daten aus externe Datenbank abfragen
Verfasst: 19.06.2015 18:26
OK nachdem ich jetzt seit gut einer Woche an dem Problem tüftle und nicht weiter komme hoffe ich hier einen kleinen Stoß in die richtige Richtung zu bekommen.
Eins jedoch vorweg, ich bin nur ein Hobby Programmierer welcher sich seine Kenntnisse selber beigebracht hat.
Ich möchte Daten aus einer externen Datenbank abfragen und diese in einer Tabelle auf der Startseite des Forums anzeigen. In der 3.0. Version hatte ich dies gelöst, indem ich am Ende der common.php eine Verbindung zu dieser Datenbank aufgebaut, die Daten abgefragt und verarbeitet habe. In der 3.1. wollte ich es jetzt eigentlich genauso machen nur eben als Extension und dachte eigentlich, da ich nicht in die Funktionen des Forums eingreife, wird es bestimmt kein großes Problem...
Ich habe mir die ein oder andere Extension angeschaut und (deutsche) Anleitungen für Extension gelesen.
Ich habe eine composer.json und ext.php erstellt, diese erklären sich eigentlich von selber daher dürfte das Problem nicht hier liegen. Auch den html-Teil einbinden war kein Problem.
Der Fehler dürfte in der event/listener.php liegen. Ich vermute ich muss bei Constructor noch etwas hinzufügen, den ganz ehrlich habe ich keine Ahnung was die einzelnen Teile bewirken/für was sie gut sind.
Mein bisheriger Code
Meine config/services.yml:
Das ganze erzeugt allerdings nur folgende Fehlermeldung:
Ich habe leider keine Extension gefunden, welche etwas ähnliches macht, also Daten aus einer andreren Datenbank abfragen. Wer so eine kennt, kann sie mir gerne nennen, damit ich etwas als "Schablone" habe um zukünftige Probleme zu vermeiden/selber zu lösen.
Ich sage schon einmal Danke.
Eins jedoch vorweg, ich bin nur ein Hobby Programmierer welcher sich seine Kenntnisse selber beigebracht hat.
Ich möchte Daten aus einer externen Datenbank abfragen und diese in einer Tabelle auf der Startseite des Forums anzeigen. In der 3.0. Version hatte ich dies gelöst, indem ich am Ende der common.php eine Verbindung zu dieser Datenbank aufgebaut, die Daten abgefragt und verarbeitet habe. In der 3.1. wollte ich es jetzt eigentlich genauso machen nur eben als Extension und dachte eigentlich, da ich nicht in die Funktionen des Forums eingreife, wird es bestimmt kein großes Problem...
Ich habe mir die ein oder andere Extension angeschaut und (deutsche) Anleitungen für Extension gelesen.
Ich habe eine composer.json und ext.php erstellt, diese erklären sich eigentlich von selber daher dürfte das Problem nicht hier liegen. Auch den html-Teil einbinden war kein Problem.
Der Fehler dürfte in der event/listener.php liegen. Ich vermute ich muss bei Constructor noch etwas hinzufügen, den ganz ehrlich habe ich keine Ahnung was die einzelnen Teile bewirken/für was sie gut sind.
Mein bisheriger Code
Code: Alles auswählen
<?php
namespace eight\termine\event;
/**
* @ignore
*/
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
/**
* Event listener
*/
class listener implements EventSubscriberInterface
{
static public function getSubscribedEvents()
{
return array(
'core.common' => 'load_termine',
);
}
/* @var \phpbb\template\template */
protected $template;
/* @var \phpbb\controller\helper */
protected $helper;
/**
* Constructor
*
* @param \phpbb\controller\helper $helper Controller helper object
* @param \phpbb\template $template Template object
*/
public function __construct(\phpbb\template\template $template, \phpbb\controller\helper $helper)
{
$this->helper = $helper;
$this->template = $template;
}
public function load_termine($event)
{
$db2 = @mysql_pconnect("...") or
die("Verbindung zur Datenbank ist fehlgeschlagen");
mysql_select_db("Datenbank",$db2);
$query = "select date_unix,Info1,Info2 from Termine order by date_unix LIMIT 0,4";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
{
$template->assign_block_vars('termine', array(
'DATE' => date("d.m.Y",$row['date_unix']),
'TIME' => date("H:i",$row['date_unix']),
'INFO1' => utf8_encode($row['Info1']),
'INFO2' => utf8_encode($row['Info2'])
));
}
// Get unit data end
mysql_close($db2);
}
}
Code: Alles auswählen
services:
eight.termine.listener:
class: eight\termine\event\listener
arguments:
- @template
- @controller.helper
tags:
- { name: event.listener }
Ich hoffe es ist wirklich nur eine Kleinigkeit. Denn wenn nicht und mein Ansatz unter Umständen komplett falsch ist, werde ich mich die nächste Zeit wohl oft melden.Fatal error: Call to a member function assign_block_vars() on a non-object in pfad/zum/Forum/ext/eight/termine/event/listener.php on line 62
Ich habe leider keine Extension gefunden, welche etwas ähnliches macht, also Daten aus einer andreren Datenbank abfragen. Wer so eine kennt, kann sie mir gerne nennen, damit ich etwas als "Schablone" habe um zukünftige Probleme zu vermeiden/selber zu lösen.
Ich sage schon einmal Danke.