+ Antworten
Ergebnis 1 bis 9 von 9

Thema: PHP Zugriff auf Joomla DB

  1. #1
    Neu an Board
    Registriert seit
    01.04.2010
    Beiträge
    16
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard PHP Zugriff auf Joomla DB

    Guten Tag,

    Da ich in der Anfänger-Rubrik schreibe, muß ich sicherlich nicht erklären dass ich noch nicht über viel Erfahrung mit Joomla verfüge.

    Wir haben ein Joomla 1.5.15 im Einsatz und ich benötige für eine Applikation die wir aus Joomla heraus aufrufen wollen zusätzliche Informationen aus der Datenbank.

    Generell ist dass ja kein Problem. Nur ich möchte unbedingt die Daten aus der configuration.php verwenden um nicht an mehreren Stellen den Benutzernamen und das Passwort für die Datenbank hinterlegen zu müssen.

    Ich seh sicherlich einfach nur den Wald vor Bäumen nicht, aber ich schaffe es einfach nicht die Datenbank Klasse so zu verwenden, dass ich mein SQL Statement an die DB schicken kann.

    Ich wäre Euch sehr dankbar, wenn mir jemand einen Denkanstoß geben könnte, durch den es mir dann doch möglich ist die Variablen der configuration.php auszulesen.

    Vielen Dank
    Markus

  2. #2
    Neu an Board
    Registriert seit
    19.05.2009
    Beiträge
    47
    Bedankte sich
    1
    Erhielt 5 Danksagungen
    in 5 Beiträgen

    Standard

    ich hatte mal ein ähnliches Problem, nur da ging es darum auf die Sessions von Joomla von Aussen zuzugreifen. Habe dazu das Joomla Framework geladen und dan ging es.
    http://individualit.wordpress.com/20...ons-zugreifen/

    Ich denke das müsste mit der Datenbank auch ähnlich funktionieren. Und dann sollte dir diese Seite hier weiterhelfen: http://docs.joomla.org/How_to_use_th...in_your_script

  3. #3
    Moderator Avatar von time4mambo
    Registriert seit
    11.12.2006
    Ort
    76646 Bruchsal
    Alter
    54
    Beiträge
    14.363
    Bedankte sich
    456
    Erhielt 2.978 Danksagungen
    in 2.796 Beiträgen

    Standard

    Wenn ich dich richtig verstanden habe, möchtest du wissen, wie man in einem eigenen Modul, Plugin, etc. Die DB anspricht?

    Hier ein paar Links für dich, die dir da weiterhelfen können:
    http://www.time4joomla.de/nuetzliche...html#developer


    Axel
    Schulungen, Webentwicklung: time4mambo
    (Video-)Tutorials: time4joomla

  4. #4
    Neu an Board
    Registriert seit
    01.04.2010
    Beiträge
    16
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Vielen Dank

    schon mal an der Stelle.

    Mag sein, dass ich mich jetzt etwas blöd anstelle, aber irgendwie blicke ich noch nicht ganz durch die Funktionsweise durch.

    Ich habe mir den folgenden Code zusammengebaut und wenn ich den in die index.php inludiere, dann geht er auch.
    Nur dass ist ja nicht der Sinn der Sache. Wenn ich nun versuhe ihn in einen Beitrag zu setzen, so dass ich ihn über das MEnü aufrufen kann, dann kann er die Sessiondaten anscheinend nicht auslesen. Dabei dachte ich, dass ich ja immernoch in der selben Session bin und es so ja gehen müsste.

    Habt Ihr da noch einen Vorschlag?
    Ich will doch nur die URL zu dem Chat mit den entsprechenden Variablen auffüllen, dass kann doch nicht so schwer sein. Dazu benötige ich ja nur das Alter und den Usernamen.

    PHP-Code:
    <?php
    $username
    =$my->username;
    $userid=$my->id;
    $datumgetdate();
    $actyear$datum[year];
    define'_JEXEC');
    define'JPATH_BASE'realpath(dirname(__FILE__).'/../../..' ));
    define'DS'DIRECTORY_SEPARATOR );
    require_once ( 
    JPATH_BASE .DS.'includes'.DS.'defines.php' );
    require_once ( 
    JPATH_BASE .DS.'includes'.DS.'framework.php' );
    $mainframe =& JFactory::getApplication('site');
    $mainframe->initialise();
    $db =& JFactory::getDBO();
    $query "SELECT cbe_birthday FROM jos_cbe where id = $userid";
    $db->setQuery($query);
    $result $db->query();
    $bday mysql_result($result0);
    $byear substr("$bday"0); 
    $age $actyear $byear;
    $chat "http://www.vagipe.com/webcam_window_ext.php?user=" $username "&lang=deutsch&setage=" $age "&setgender=male&setroom=xxxxxx";
    ?>
    HTML-Code:
    <div align="center"><a href=<?echo $chat;?> target=new>><img src="http://xxxxxx/images/live-chat.jpg"></a></div>

  5. #5
    Moderator Avatar von time4mambo
    Registriert seit
    11.12.2006
    Ort
    76646 Bruchsal
    Alter
    54
    Beiträge
    14.363
    Bedankte sich
    456
    Erhielt 2.978 Danksagungen
    in 2.796 Beiträgen

    Standard

    Ich bin kein PHP-Coder und kann daher deinen Code nicht so ohne weiteres analysieren.
    Aber wenn du das ganze als Plugin, wahlweise Modul programmierst, wird es gehen. Einfach nur Code in Beiträge schreiben, geht ja nicht, wie du schon herausgefunden hast. Joomla benötigt eine bestimmte Mimik, damit das alles zusammenspielt.

    Ich habe mich bei der Plugin-Entwicklung u.a. hier lang gehangelt:
    http://openbook.galileocomputing.de/...3605479514559f


    Axel
    Schulungen, Webentwicklung: time4mambo
    (Video-)Tutorials: time4joomla

  6. #6
    Neu an Board
    Registriert seit
    01.04.2010
    Beiträge
    16
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Hallo

    und vielen Dank für die Hilfen.

    Ich habe es dann zwar etwas unkonvetionell gelöst, aber immerhin es geht.

    Nun erstelle ich mir einfach in der index.php zwei neue Session Variablen und auf diese kann ich dann im Beitrag ohne Probleme wieder zugreifen.
    Damit habe ich dann auch die Daten um die URL zu dem Videochat zusammen zubauen.

    Gruß
    Markus

  7. #7
    Neu an Board
    Registriert seit
    01.04.2010
    Beiträge
    16
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Okay, ich habe mich wohl doch zu früh gefreut.
    Es schien am Anfang alles zu funktionieren, aber da habe ich die Rechnung wohl ohne den Wirt oder in dem Fall ohna Joomla gemacht.

    Das setzen der Session Variablen in der index.php scheint wunderbar zu funktionieren und der Aufruf den Artikels der zu dem Videochat leiten soll geht wunderbar.

    Sobald ich jedoch den Artikel nicht von der Startseite aufrufe kennt er die Session Variablen nicht mehr. Wenn ich ehrlich bin, hab ich keine Ahnung warum.

    HIer noch einmal kurz der Code der Datei die ich an dem Ende der index.php inludiere.
    PHP-Code:
    <?php
    $username
    =$my->username;
    $userid=$my->id;
    $datumgetdate();
    $actyear$datum[year];
    define'_JEXEC');
    define('JPATH_BASE'dirname(__FILE__) ); 
    define'DS'DIRECTORY_SEPARATOR );
    require_once ( 
    JPATH_BASE .DS.'includes'.DS.'defines.php' );
    require_once ( 
    JPATH_BASE .DS.'includes'.DS.'framework.php' );
    $mainframe =& JFactory::getApplication('site');
    $mainframe->initialise();
    $db =& JFactory::getDBO();
    $query "SELECT cbe_birthday FROM jos_cbe where id = $userid";
    $db->setQuery($query);
    $result $db->query();
    $bday mysql_result($result0);
    $byear substr("$bday"0); 
    $age $actyear $byear;
    $_SESSION['user_name'] = $username;
    $_SESSION['user_id'] = $userid;
    $_SESSION['user_age'] = $age;
    ?>
    und hier der Code, mit dem ich den Video Chat in dem Artikel aufrufe. Den Code binde ich mit Hilfe des Sourcers ein.

    PHP-Code:
    {source}
    <?php
    $username 
    $_SESSION['user_name'];
    $userid $_SESSION['user_id'];
    $age $_SESSION['user_age'];
    $chat "http://www.vagipe.com/webcam_window_ext.php?user=" $username "&lang=deutsch&setage=" $age "&setgender=male&setroom=xxxdomainxxx";
    $url "<a href=$chat target=new><img src=\"live-chat.jpg\"></a>";
    ?>
    <div align="center"><? echo $url?>
    </div>
    {/source}
    Wie gesagt, von der Startseite aus geht alles ohne Probleme, wenn ich jedoch den Artikel von einer anderen Stelle aufrufe, geht es nicht.
    Ich dachte eigentlich, dass die index.php immer mit geladen wird und dass Session Variablen auch immer gelten.

    Eventuell noch kurz angemerkt, wir nutzen das jaw061 Template.

    Ich wäre für Hilfe echt dankbar.

    Gruß
    Markus

  8. #8
    Neu an Board
    Registriert seit
    17.06.2009
    Beiträge
    47
    Bedankte sich
    0
    1 Danksagung in 1 Beitrag

    Standard

    hmm ich kann mir grade sehr gut vorstellen das deine _session daten zufrüh gesetzt werden.

    deine session daten werden gesetzt bevor session_start(); ausgeführt wird. daher geht der erste aufruf ins leere.
    sobald du den artikel anklickst, ist die session gestartet und bei index.php?bla_bla aufruf können deine externen werte gesetzt werden.
    beim direkten aufruf hingegen werden deine werte ins nichts geschrieben, dann die session gestartet und jetz soll schon direkt drauf zugegriffen werden -> eehhhhh



    try'n'error

  9. #9
    Neu an Board
    Registriert seit
    01.04.2010
    Beiträge
    16
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    Zitat Zitat von Dark_BROTOSS Beitrag anzeigen
    hmm ich kann mir grade sehr gut vorstellen das deine _session daten zufrüh gesetzt werden.

    deine session daten werden gesetzt bevor session_start(); ausgeführt wird. daher geht der erste aufruf ins leere.
    sobald du den artikel anklickst, ist die session gestartet und bei index.php?bla_bla aufruf können deine externen werte gesetzt werden.
    beim direkten aufruf hingegen werden deine werte ins nichts geschrieben, dann die session gestartet und jetz soll schon direkt drauf zugegriffen werden -> eehhhhh



    try'n'error
    Nun, ich bin doch die ganze Zeit in der selben Session oder etwa nicht?
    Die Seite wird ja nicht von aussen aufgerufen sondern immer aus Joomla selber heraus.
    Der Artikel wird über das Hauptmenü aufgerufen. Soweit kein Problem.
    Von der Startseite aus geht es auch ohne Probleme. Sobald ich mich jedoch in einem anderen Artikel (meiner Meinung nach, noch immer in der selben Session) befinde und dann über das Hauptmenü den Artikel aufrufe der den Chat starten soll, kann er die Daten nicht mehr lesen. Als ob die Session nicht existieren würde.

+ Antworten

Lesezeichen

Berechtigungen

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