Contao-Camp 2024
Ergebnis 1 bis 3 von 3

Thema: Einbinden einer zweiten DB

  1. #1
    Contao-Fan Avatar von Hoch-3
    Registriert seit
    16.11.2010.
    Ort
    Zürich
    Beiträge
    372
    Partner-ID
    7136

    Standard Einbinden einer zweiten DB

    Hallo

    Nach langer Suche hier nun doch die Anfrage.

    Es geht darum, eine DB, die ich via API auf den Server importiere, im Contao auszugeben. Das sind dann Projekte mit Kategorien.

    Je Kategorie soll eine Liste (Titel, Bild, Kurztext und Link auf Detail) angezeigt werden.
    Auf der Detailseite dann diverse weitere Inhalte.

    Erstens brauche ich einen Knopf im Backend um via Cron-Job die Daten aus der Mutterdatenbank zu übernehmen.
    Zweitens muss ich je Ansicht ein Modul erstellen, das die Daten aus dieser zweiten DB rausliest. Und wo ich im Backend, am liebsten auf Artikel-Ebene, in einem Feld die Kategorie bestimmen kann.

    Gibt es für so etwas eine einfach verständliche Anleitung? Ich bin leider kein Programmierprofi, klick mir die Sites in Contao bisher einfach zusammen. Meistens mit ganz gutem Erfolg, glaubs.

    Tres Tutorials hab ich teilweise angeschaut. Danke dafür. Erstens hat sich die Contao-Version inzwischen geändert und zweitens hab ich den Fall mit der Verbindung einer zweiten DB nicht gefunden.
    Geändert von Hoch-3 (28.11.2016 um 14:21 Uhr)

  2. #2
    Alter Contao-Hase Avatar von kmielke
    Registriert seit
    21.06.2009.
    Beiträge
    1.172

    Standard

    Hallo Hoch-3,

    ich habe das mal so gemacht, dass ich eine neue Klasse erstellt habe, die dann die neue DB zur Verfügung gestellt hat.

    PHP-Code:
    namespace Contao;


    /**
     * Class Testlink
     *
     * Provide methods to handle Testlink requests.
     * @copyright  Kester Mielke 2012
     * @author     Kester Mielke
     * @package    Controller
     */
    class Testlink extends \Backend
    {

        protected 
    $tldb;

        
    /**
         * Get the current action
         * @throws Exception
         */
        
    public function __construct()
        {
            
    parent::__construct();
        }


        
    /**
         * @param $db
         */
        
    public function setDB($db)
        {
            
    $this->tldb = \Database::getInstance(array(
                
    'dbHost'     => $GLOBALS['TL_CONFIG']['testlinkdb']['dbhost'],
                
    'dbUser'     => $GLOBALS['TL_CONFIG']['testlinkdb']['dbuser'],
                
    'dbPass'     => $GLOBALS['TL_CONFIG']['testlinkdb']['dbpass'],
                
    'dbDatabase' => $db,
            ));
        }

    ...
    ...

    Des Weiteren hat diese Klasse dann alle nötigen Funktionen bereit gestellt, um an die Daten zu kommen.
    Evtl. hilft dir das...

    Gruß Kester
    Gruß Kester

    Kein Support via PN ohne vorherige Absprache.

  3. #3
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.788

    Standard

    In einem externen PHP-Skript habe ich den Zugriff so realisiert:
    PHP-Code:
    // Contao einbinden
    define('TL_MODE''FE');
    require(
    '../system/initialize.php');

    $objShopDB = \Database::getInstance(array( 
        
    'dbHost'     => 'mysql5.domain.de'
        
    'dbUser'     => 'dbxxx'
        
    'dbPass'     => 'xxx'
        
    'dbDatabase' => 'dbxxx'
    )); 

    // Adressen aus externer DB-Tabelle auslesen
    $objShop $objShopDB->prepare('SELECT email FROM s_user WHERE active = ? ORDER BY email ASC')->execute(1); 

    // Email-Adressen speichern
    $kunden = array();
    if(
    $objShop->numRows)
    {
        while(
    $objShop->next())
        {
            
    $kunden[] = $objShop->email;
        }
    }

    // Adressen aus Newsletter-Tabelle auslesen
    $objNewsletter = \Database::getInstance()->prepare("SELECT * FROM tl_newsletter_recipients WHERE pid=?")
                                             ->
    execute(9); 
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •