Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

Einbinden eines php Skriptes in ein Drupal Node

Eingetragen von onkiro (118)
am 31.03.2010 - 08:32 Uhr in
  • Anfängerfragen
  • Drupal 6.x

ich komme damit mal im Anfängerforum um die Ecke da ich nicht einschätzen kann
ob es einfach oder kompliziert ist.

Ich habe parallel zu meiner Drupal Installation ein php Skript auf dem Server installiert
das auf eine kleine Datenbank zugreift und mir ganz am Ende eine Index.php liefert (die auch über den
entsprechenden Unterordner erreichbar ist und funktioniert).

Es ist wie eine Fußball-Tabelle. 5-6 Spalten mit Namen(links auf eine externe Seite) und dazugehörigen Werten. Die kleine Datenbank update
ich und über die index.php wird mir dann die Tabelle präsentiert.

So. FRAGE :
Wie binde ich diese Index.php - Abfrage DIREKT in ein Node ein?

Momentan habe ich das ganze über ein iframe eingebunden – was mir aber nicht so gefällt – vorallem weil die
links in der Tabelle dann im Iframe aufgehen.

Man kann ja php direkt in einem Node ausführen – nur hab ich davon leider wenig Plan.

Kann mir jemand weiterhelfen?

‹ [gelöst]OnlineShop mit Drupal Bild als Logo unter Themes hochgeladen ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Erscheint mir irgendwie ein

Eingetragen von px (77)
am 31.03.2010 - 12:00 Uhr

Erscheint mir irgendwie ein bisschen widersinnig, was du da tust. Drupal ist ein Content Management System und du versucht da gerade am CMS vorbei zu arbeiten, womit du unmanaged content erzeugst. Die korrekte Vorgehensweise wäre eigentlich deine index.php in ein Modul einzuarbeiten.

Was vielleicht auch funktionieren könnte wäre den kompletten Inhalt deiner index.php per copy&paste in einen node einzufügen und das input format auf "PHP Code" zu setzen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

px schrieb Die korrekte

Eingetragen von onkiro (118)
am 31.03.2010 - 13:16 Uhr
px schrieb

Die korrekte Vorgehensweise wäre eigentlich deine index.php in ein Modul einzuarbeiten.

Was vielleicht auch funktionieren könnte wäre den kompletten Inhalt deiner index.php per copy&paste in einen node einzufügen und das input format auf "PHP Code" zu setzen.

Nach genau dieser Lösung suche ich ja! Die index.php meines 3rd Party scripts absolut in meine Drupal Oberfläche zu integrieren anstatt auf sie verlinken
zu müssen.
Den Inhalt der Datei direkt in einen Nodetype mit php Filter. hab ich mir auch schon gedacht. werde ich heute abend mal testen. danke schonmal

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Den Inhalt der Datei

Eingetragen von stebeg (463)
am 31.03.2010 - 13:45 Uhr
Zitat:

Den Inhalt der Datei direkt in einen Nodetype mit php Filter.

Da würd ich dir doch lieber zum eigenen Modul raten. Das ist im Prinzip garnicht so schwer. Dazu brauchst du nur 2 Dateien erstellen:

DEIN_MODUL.info

; $Id: DEIN_MODUL.info,v 1.0.0.
name = DEIN MODUL
description = Eine Beschreibung des Moduls
core = 6.x

DEIN_MODUL.module

<?php
/**
* implementation of hook_perm
*/
function DEIN_MODUL_perm()
{
  return array(
'view DEIN_MODUL page'); /* Berechtigung, die du vergeben kannst, um zu steuern wer die Seite sehen darf */
}

/**
* implementation of hook_menu
*/
function DEIN_MODUL_menu()
{
 
$items = array();
 
$items['SEITEN_URL'] = array(
   
'title' => 'SEITEN_TITEL',
   
'page callback' => 'DEIN_MODUL_page',
   
'access arguments' => array('view DEIN_MODUL page'),
   
'type' => MENU_CALLBACK,
    );
  return
$items;
}

/**
* Funktion zum Erstellen der Seite
*/
function view DEIN_MODUL_page()
{
 
$page_content = "";
 
/*
    Hier kommt dein Code rein. Das, was dein Code ausgeben soll musst du lediglich der Variable $page_content hinzufügen
  */
 
return $page_content;
}
?>

Ersetze dabei DEIN_MODUL durch den Namen deines Moduls, SEITEN_URL musst du durch den Pfad ersetzen, unter dem die Seite dann zu sehen sein soll und SEITEN_TITEL ist dann der name der Seite.
Dann musste diese 2 Dateien nurnoch in einen Odner packen, der wie das Modul heißt (DEIN_MODUL) und diesen nach sites/all/modules verschieben/kopieren.

Mehr zum Thema Module erstellen gibts hier.

  • Anmelden oder Registrieren um Kommentare zu schreiben

huihui ui also das mit dem

Eingetragen von onkiro (118)
am 31.03.2010 - 18:24 Uhr

huihui ui

also das mit dem Modul hab ich jetzt noch nicht gebacken bekommen.

was ich nicht verstehe ist :

Zitat:

function view DEIN_MODUL_page()

$page_content = "";
/*
Hier kommt dein Code rein. Das, was dein Code ausgeben soll musst du lediglich der Variable $page_content hinzufügen
*/
return $page_content;

?>

function view DEIN_MODUL_page() --- in dieser Zeile bekomme ich immer einen Fehler...leider hab ich null plan warum. das mit dem code und was ausgegeben werden soll etc...
ist alles noch zu unverständlich für mich....

In meiner Testumgebung habe ich erstaunliches erlebt.
Ich bekomme ein für mich vollkommen akzeptables Ergebnis mit

<?php
include "http://www.meinpfad.de/index.php"
?>
. geht eigentlich wunderbar.
Nur in meiner Live Seite...geht das nicht....es führt partout den Code nicht aus und mein Node ist einfach leer.....
ich hab die Filter alle durch probiert, better formats umgestellt, an fast alles gedacht....es will nicht....

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ô_o Drupal hat eine eigene

Eingetragen von Exterior (2903)
am 31.03.2010 - 19:21 Uhr

Ô_o Drupal hat eine eigene index.php, die im Root liegt, die sollte man nicht überschreiben. Und diese index.php würde man mit "meine-seite.de/index.php" aufrufen...

Also ich würde dir empfehlen, du schaust dir mal das Handbuch für Modulentwicklung an, um die Modul-Grundlagen zu erlernen (dauert nicht ewig lang) und dann packst du das ganze in ein Modul, das dürfte nach dem kleinen Tutorial ganz gut klappen.

Alternative: Du nimmst dir eine node-Inhaltstyp.tpl.php, fügst dort oben deine PHP-Funktion ein und gibst die nach dem Content aus. Dann wird diese PHP-Funktion, also deine Tabelle, unter jedem Node dieses Inhaltstyps ausgegeben.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Exterior schrieb Ô_o Drupal

Eingetragen von onkiro (118)
am 31.03.2010 - 19:30 Uhr
Exterior schrieb

Ô_o Drupal hat eine eigene index.php, die im Root liegt, die sollte man nicht überschreiben. Und diese index.php würde man mit "meine-seite.de/index.php" aufrufen...

um gottes willen :).... nein, schon klar. in meinem Beispiel hat natürlich der unterordner gefehlt ----"meine-seite.de/3rdpartyscript/index.php"

Exterior schrieb

Alternative: Du nimmst dir eine node-Inhaltstyp.tpl.php, fügst dort oben deine PHP-Funktion ein und gibst die nach dem Content aus. Dann wird diese PHP-Funktion, also deine Tabelle, unter jedem Node dieses Inhaltstyps ausgegeben.

werd ich gleich probieren.danke

  • Anmelden oder Registrieren um Kommentare zu schreiben

onkiro schrieb function view

Eingetragen von px (77)
am 31.03.2010 - 20:46 Uhr
onkiro schrieb

function view DEIN_MODUL_page() --- in dieser Zeile bekomme ich immer einen Fehler...leider hab ich null plan warum. das mit dem code und was ausgegeben werden soll etc...
ist alles noch zu unverständlich für mich....

Uhm, es hapert daran, dass der Ausdruck syntaktisch (und semantisch) falsch ist. Wenn du bereits an der Stelle Probleme hast, dann würde ich dir eher davon abraten, selbst ein Modul basteln zu wollen und es stattdessen lieber in Auftrag geben. Alternativ dazu könnte man natürlich auch fragen, ob du zwingend darauf angewiesen bist, besagte Daten in einer extra Datenbank aufzubewahren. Wenn das sowieso alles durch Drupal gehen soll und da sonst keine andere Anwendung mit herumwerkeln soll, dann wäre es vielleicht sinnvoller mit CCK und Views zu arbeiten, d.h. erstell dir einen Nodetype "Tabellenzeile" und füge ihm ein CCK Feld pro Spalte hinzu. Dann erstellst du einfach eine View, die alle Nodes diesen Typs auflistet sortiert auflistet und die CCK Felder wieder sauber in einer Tabelle anzeigt. IMHO wäre das die eleganteste Lösung.

Zitat:

In meiner Testumgebung habe ich erstaunliches erlebt.
Ich bekomme ein für mich vollkommen akzeptables Ergebnis mit

<?php
include "http://www.meinpfad.de/index.php"
?>
. geht eigentlich wunderbar.
Nur in meiner Live Seite...geht das nicht....es führt partout den Code nicht aus und mein Node ist einfach leer.....
ich hab die Filter alle durch probiert, better formats umgestellt, an fast alles gedacht....es will nicht....

[/quote]

Was nicht weiter verwunderlich ist (bzw. es ist verwunderlich, dass es auf deinem Test system funktioniert). Wenn du include 'ne URL übergibst, dann holt er sie natürlich per HTTP und da dein Server nunmal PHP ausführt und nicht ausliefert, includierst du nicht den Code, den du haben willst, sondern eben sein Ergebnis.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Uhm, es hapert daran,

Eingetragen von onkiro (118)
am 31.03.2010 - 21:36 Uhr
Zitat:

Uhm, es hapert daran, dass der Ausdruck syntaktisch (und semantisch) falsch ist. Wenn du bereits an der Stelle Probleme hast, dann würde ich dir eher davon abraten, selbst ein Modul basteln zu wollen und es stattdessen lieber in Auftrag geben. Alternativ dazu könnte man natürlich auch fragen, ob du zwingend darauf angewiesen bist, besagte Daten in einer extra Datenbank aufzubewahren. Wenn das sowieso alles durch Drupal gehen soll und da sonst keine andere Anwendung mit herumwerkeln soll, dann wäre es vielleicht sinnvoller mit CCK und Views zu arbeiten, d.h. erstell dir einen Nodetype "Tabellenzeile" und füge ihm ein CCK Feld pro Spalte hinzu. Dann erstellst du einfach eine View, die alle Nodes diesen Typs auflistet sortiert auflistet und die CCK Felder wieder sauber in einer Tabelle anzeigt. IMHO wäre das die eleganteste Lösung.

das hab ich schon eingesehen. Für mich ists im moment zeitlich nicht möglich mich da rein zu arbeiten von daher lass ichs erst mal und rufe die Seite einfach extern auf.geht auch.
CCK und Views etc geht nicht. die sache ist schon bischen umfangreicher......
ist ja kein Geheimnis: http://bfbcs.com/api

man benutzt ein kleines Script um die Statistiken bestimmter Spieler vom Masterserver in seine eigene kleine DB zu laden und dann damit eine Rangliste abzubilden.
Mein einziges Ziel ist es diese Rangliste (index.php stellt sie da) in meine Drupal basierende Webseite einzubinden.
per iframe geht - nicht so schick.
per include geht nur im Test - nicht im Live
jetzt wird sie eben als eigenständige Seite aufgerufen - auch gut.

danke trotzdem für die Hilfe - so solls sein.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: function view

Eingetragen von stebeg (463)
am 01.04.2010 - 06:10 Uhr
Zitat:

function view DEIN_MODUL_page() --- in dieser Zeile bekomme ich immer einen Fehler...leider hab ich null plan warum. das mit dem code und was ausgegeben werden soll etc...

Natürlich ist da ein Fehler, der dummerweise auf einen Flüchtigkeitsfehler meinerseits zurück zu führen ist. Es muss natürlich function view_DEIN_MODUL_page() heißen (Zwischen "view" und "DEIN_MODUL" muss ein Unterstrich sein, und kein Leerzeichen)

  • Anmelden oder Registrieren um Kommentare zu schreiben

das werde ich heute abend

Eingetragen von onkiro (118)
am 01.04.2010 - 07:54 Uhr

das werde ich heute abend nochmal testen.
noch eine Frage zum Thema eigenens modul, damit ich da noch bischen rumspielen kann.
Meinen Code aus der Index.php (des Scriptes) gebe ich hier ein:

Zitat:

$page_content = "";

Mein php code aus der index.php.....agsajdfgag
afgjadfgüioajdfgpjapdfgjadfgj

return $page_content;

Richtig?
Was kommt aber hier hin?

Zitat:

$page_content = "XXXXXX";

das meintest du doch hier oder?

Zitat:

was dein Code ausgeben soll musst du lediglich der Variable $page_content hinzufügen

Außerdem

Zitat:

$items['SEITEN_URL'] = array(

die URL die ich angebe...muss ich vorher ein node erstellen das diesen Pfad hat oder macht das das Modul?

Ich weiß....sind alles vermeindlich "dumme" Fragen. Wenn keiner Zeit oder Interesse hat es zu beantworten werde ich auch nicht
traurig sein. Irgendwann habe ich mal Zeit PHP zu lernen und dann verstehe ich das einfacher aber im Moment
suche ich nur die komfortabelste Lösung für mein "Problem". Ich denke es ist vermeindlich einfach für jemanden der sich auskennt.

Und nochwas...
Hat irgendjemand eine Erklärung oder eine Idee warum das per php include nicht funktioniert? was könnte dafür verantwortlich sein,
wenn ich ausschließen kann das die include Zeile korrekt ist. Theoretisch kann ich doch jede beliebige Seite (von meinem Space zumindest) includen
wenn ich will oder? Irgendwas scheint es zu verhindern das die Zeile ausgeführt wird.

DAAAAANKE

  • Anmelden oder Registrieren um Kommentare zu schreiben

Dein Skript erstellt doch

Eingetragen von stebeg (463)
am 01.04.2010 - 11:11 Uhr

Dein Skript erstellt doch lediglich eine Tabelle, oder nicht?
Ich vermute mal das du diese mit echo ausgibts, also ungefähr so

<?php
echo '<table>';
echo
'<tr><td>Irgendwas</td></tr>';
echo
'</table>';
?>

Statt echo musst du die Zeichenketten der Variable $page_content hinzufügen, also so:

<?php
$page_content
.=  '<table>';
$page_content .=  '<tr><td>Irgendwas</td></tr>';
$page_content .=  '</table>';
?>

Zudem ...

Zitat:

die URL die ich angebe...muss ich vorher ein node erstellen das diesen Pfad hat oder macht das das Modul?

das erledigt das Modul. Angenommen deine Seite läuft unter der domain http://www.meine-seite.de und du gibts für SEITEN_URL z.B. "meine-tabelle" ein, dann kannst du die Seite mit http://www.meine-seite.de/meine-tabelle aufrufen, wo dann $page_content ausgegeben wird.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich würde dir wirklich

Eingetragen von Exterior (2903)
am 01.04.2010 - 13:14 Uhr

Ich würde dir wirklich dringend empfehlen, dir das Modul-Tutorial anzuschauen, bevor du hier irgendwas zusammenbastelst und es dann aufgrund mangelnder Kenntnisse verpfuschst. Ist nicht böse gemeint, aber wenn man keine Ahnung hat, was man macht, kann viel schief gehen... Und sich das Tutorial mal komplett durchzulesen und zu verstehen ist eine Sache von zwei oder drei Stunden, so viel Zeit solltest du doch haben, oder? Schließlich dauert diese Diskussion hier schon eine Weile Länger ^^ Und wenn du nicht weißt, was du dort schreibst, halte ich persönlich das für sinnlos und riskant.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Exterior schrieb Ich würde

Eingetragen von onkiro (118)
am 01.04.2010 - 17:55 Uhr
Exterior schrieb

Ich würde dir wirklich dringend empfehlen, dir das Modul-Tutorial anzuschauen, bevor du hier irgendwas zusammenbastelst und es dann aufgrund mangelnder Kenntnisse verpfuschst. Ist nicht böse gemeint, aber wenn man keine Ahnung hat, was man macht, kann viel schief gehen... Und sich das Tutorial mal komplett durchzulesen und zu verstehen ist eine Sache von zwei oder drei Stunden, so viel Zeit solltest du doch haben, oder? Schließlich dauert diese Diskussion hier schon eine Weile Länger ^^ Und wenn du nicht weißt, was du dort schreibst, halte ich persönlich das für sinnlos und riskant.

keine Angst..ich nehme die Ratschläge nicht böse ab. Ich bin ja froh um die angebotene Hilfe. Ich verstehe auch das mir das Unternehmen erstmal abgeraten wird ohne jegliche PHP Kenntnisse da rumzuschrauben. null problemo.

da ich ja lesen kann und wenigstens in der Lage bin so manches trotzdem zu verstehen, hab ich auch rausgefunden warum php include in meiner Live nicht funktioniert.
allow_url_fopen <--- heißt das Zauberwort.
ist in meiner Live "aus"gestellt - in der Testumgebung ist es "ein".
ich lass es aber auch "aus" - soweit ich das verstanden hab ist das wohl sicherer.

danke euch

  • Anmelden oder Registrieren um Kommentare zu schreiben

Poste doch einfach mal diese

Eingetragen von px (77)
am 01.04.2010 - 21:35 Uhr

Poste doch einfach mal diese index.php (nachdem du Benutzername/Passwort rausgenommen hast). Ne HTML Tabelle aus ner Datenbanktabelle zu erzeugen und über einen Pfad zugänglich zu machen ist wirklich nicht der Akt, wenn man weiss, wie das Datenbankschema aussieht.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 1 Tag
  • Hey danke
    vor 2 Wochen 1 Tag
  • Update: jetzt gibt's ein
    vor 2 Wochen 2 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 2 Stunden
  • Da scheint die Terminologie
    vor 3 Wochen 5 Stunden
  • Kannst doch auch alles direkt
    vor 3 Wochen 4 Tagen
  • In der entsprechenden View
    vor 3 Wochen 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 4 Tagen
  • gelöst
    vor 6 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 1 Tag

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 33 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association