include webfront PHP-Dateien

Hallo zusammen,

ich würde gerne die TMDB-Api in einen Script nutzen und habe was auf Github gefunden.

Ich habe alle Dateien im Webfront abgeladen und dachte ich könnte diese einfach im PHP-Script includen

Leider funktioniert es nicht.

so sieht der Code aus

<?
include(IPS_GetKernelDir().'webfront/user/tmdb-api/tmdb-api.php');

echo IPS_GetKernelDir().'webfront/user/tmdb-api/tmdb-api.php';

	//Title to search for
	$title = 'back to the future';
	$movies = $tmdb->searchMovie($title);
	// returns an array of Movie Object
	foreach($movies as $movie){
		echo $movie->getTitle() .'<br>';
	}

?>

Und so die Fehlermeldung

/var/lib/symcon/webfront/user/tmdb-api/tmdb-api.php
Notice: Undefined variable: tmdb in /var/lib/symcon/scripts/47803.ips.php on line 7

Fatal error: Call to a member function searchMovie() on null in /var/lib/symcon/scripts/47803.ips.php on line 7

Mach ich irgendwas falsch, oder funktioniert sowas grundsätzlich nicht?

Viele Grüße
Markus

Das sieht soweit gut aus. Kann es sein, dass du sowas vergessen hast?


	$tmdb = new TMDB(); 

paresy

Verdammt :banghead::banghead::banghead::banghead::banghead::banghead::banghead::banghead:

Vielen vielen Dank !!!

Ich wusste nicht ob ich jetzt extra ein neues Thema aufmachen soll, daher hänge ich mich mit der nächsten frage hier dran.

Die Abfrage funktioniert jetzt.

include_once(IPS_GetKernelDir().'webfront/user/tmdb-api/tmdb-api.php');

  	$tmdb = new TMDB();  
	//Title to search for
	$title = 'Herr der Ringe';
	$movies = $tmdb->searchMovie($title);
	// returns an array of Movie Object
	foreach($movies as $movie){
		print_r($movie);
	}

Als Ausgabe bekomme ich

Movie Object
(
    [_tmdb:Movie:private] => 
    [_data:protected] => Array
        (
            [vote_count] => 7614
            [id] => 121
            [video] => 
            [vote_average] => 8
            [title] => Der Herr der Ringe - Die zwei Türme
            [popularity] => 30,423537
            [poster_path] => /cMa7haLxqVe4fWNORPIq6fGdjys.jpg
            [original_language] => en
            [original_title] => The Lord of the Rings: The Two Towers
            [genre_ids] => Array
                (
                    [0] => 12
                    [1] => 14
                    [2] => 28
                )

            [backdrop_path] => /dG4BmM32XJmKiwopLDQmvXEhuHB.jpg
            [adult] => 
            [overview] => Der Weg der Gefährten hat sich geteilt. Ringträger Frodo und sein treuer Begleiter Sam treffen in den Bergen von Emyn Muil auf Gollum, dem einst Bilbo Beutlin den Einen Ring wegnahm. Gollums Versuch, den mächtigen Ring von Frodo zu stehlen, misslingt, doch die Hobbits bringen es nicht übers Herz, die Kreatur zu töten. Stattdessen soll Gollum die beiden nach Mordor an die Pforten von Barad-Dûr, Saurons Festung, führen, wo Frodo den Ring vernichten will. Währenddessen folgen Aragorn, Elben-Bogenschütze Legolas und Zwerg Gimli den Spuren der von Orks verschleppten Hobbits. Im Menschenkönigreich Rohan ersuchen sie Unterstützung. Doch König Theoden steht unter einem tödlichen Bann Saurons. Erst als Gandalf als wiedergeborener weißer Zauberer zurückkehrt, wendet sich das Blatt. Er befreit Theoden von dem Fluch und bringt die Menschen von Rohan hinter sich. Unterdessen rückt Saurons Verbündeter Saruman mit einer 10.000 Mann starken Armee von Uruk-hais in RIchtung der Menschenstadt vor...
            [release_date] => 2002-12-18
        )
)

Ich verstehe leider nicht wie ich an die einzelnen werte ran komme, wie zB: [release_date]

Ich hab es mal mit „$movie->release_date“ oder „$movie[release_date]“ probiert, funktioniert aber leider nicht.

Ich finde in der API Doku und Google nur wie man die Daten abfragt, aber nicht wie man sie weiter benutzen kann

Kann mir von euch einer helfen?

Vielen Dank und viele Grüße

Markus

Steht doch alles in der Readme auf GitHub wo du die Dateien her hast.
Beispiel:
// returns a Movie Object Titel
echo $movie->getTitle();
Michael

Ja, dass ist richtig.

getTitle(); getID(); getPoster() funktioniert auch, aber ich finde nicht alles

zB für „release_date“ oder „overview“ finde ich keine Funktion, daher frage ich mich wie ich direkt auf die Daten zugreifen kann.

die „getTitle“ Funktion sieht so aus

public function getTitle() {
		return $this->_data['title'];
	}

ich hab auch versucht eine eigene funktion zu erstellen

public function getReleaseDate() {
		return $this->_data['release_date'];
	}

dann bekomme ich folgende Fehlermeldung

Undefined property: Movie::$getReleaseDate in

Irgendwie muss man doch auf die Daten ohne Funktion oä. zugreifen können?

Nein geht nicht, weil du auf diese Daten nicht zugreifen darfst:
Sind private und protected.
Somit musst du schon die Methoden nutzen.
Das hier gesehen?
Dort gibt es auch z.B.
Echo $movie->get(‚release_date‘);
Michael

Hast du den vielleicht eine Idee warum die von mir angelegt Funktion nicht funktioniert?

zwischen

public function getTitle() { 
        return $this->_data['title']; 
 }

und

public function getReleaseDate() { 
        return $this->_data['release_date']; 
}  

sehr ich jetzt direkt keinen Unterschied.

Die Daten kommen doch aus dem gleichen Datenpool…

Verstehe ich ehrlich gesagt nicht :frowning:

Ohhhh wie cool, „get“ funktioniert !!!

Ja, hab ich gesehen, auch getestet, funktionierte aber weshalb auch immer nicht… war wohl irgendwo ein andere Fehler drin.

Super, vielen vielen Dank für deine Hilfe !!!