Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

MyBB Forenübersicht include???

Eingetragen von SaschaCap (98)
am 11.05.2008 - 17:12 Uhr in
  • Allgemeines zu Drupal
  • Drupal 6.x

Guten Tag,
ich benutze ein MyBB Forum und möchte eine Übersicht der neuen Forentehmen in Drupal angezeigt bekommen, dazu habe ich folgenden Code:

<?php

error_reporting
('E_ALL');

// Daten für Verbindung zur Datenbank (Hier eigene Daten eintragen)
$dbhost = "Localhost";
$dbuser = "xxxxxxx";
$dbpassword = "xxxxxxxx";
$dbdatabase = "xxxxxxx";

// Präfix
$prefix = "mybb_";

// URL zum Forum
$url = "http://fiesta.nachtblock.de/forum";

$viewable_forums = "2"; // Sichtbare Foren mit Kommatas trennen! Also z.b "10,15";

$viewable_forums = str_replace(","," OR ",$viewable_forums);

// Anzahl der Themen
$limit = "8";

// Überlange Themen kürzen (0 = Nein, x = Anzahl der auszugebenden Zeichen)
$length = "45";

// Globales
define("KILL_GLOBALS", 1);
define("NO_ONLINE", 1);
define("IN_MYBB", 1);

chdir("forum");
require(
"global.php");
chdir("../");

### Konfiguration ###

// Themen aus Datenbank holen
echo "<div>";


$query = $db->query("SELECT subject,uid,tid,fid,lastpost,lastposter,lastposteruid FROM ".TABLE_PREFIX."threads WHERE visible='1' AND fid NOT IN ('17','18','22','103','105','113','172') ORDER BY lastpost DESC LIMIT 0,".$limit."");
while(
$threads = $db->fetch_array($query))
{
   
// Forum ermitteln
   
$query2 = $db->query ("SELECT pid FROM ".TABLE_PREFIX."posts WHERE tid = '".$threads['tid']."' AND dateline = '".$threads['lastpost']."'");
   
$post = $db->fetch_array($query2);
   
   
// Betreff kürzen?
   
if ($length != 0)
    {
      if (
strlen($threads['subject']) > $length)
      {
       
$threads['subject'] = substr($threads['subject'],0,$length) . "..";
      }
    }
   
// Letzte Beiträge auslesen
   
$date = date("d.m.Y", $threads['lastpost']);
    echo
"<div id=\"start\"><img src=\"http://fiesta.nachtblock.de/site/themes/fiesta/images/iconf.gif\" alt=\"\" width=\"32\" height=\"32\" style=\"float:left; margin-right:5px; margin-bottom:3px;\">&raquo; <a href=\"".$url."/showthread.php?tid=".$threads['tid']."&amp;pid=".$threads['pid']."#pid".$threads['pid']."\" target=\"_blank\">".$threads['subject']."</a>
    <br /><span style=\"font-size:8pt\">gepostet am "
.$date." von ".htmlentities($threads['lastposter'])."</span></div> 
    <div align=\"center\"><img src=\"http://fiesta.nachtblock.de/images/line01.gif\" alt=\"\" width=\"100%\" height=\"1\"></div> 
    "
;
}

echo
"</div>";
?>

Jetzt möchte ich das in die page.tpl.php include lassen an einer gewissen stelle, aber Drupal mag das anscheinend nicht und erstellt eine weisse Seite sobald der Include befehl mit diesen Code drinnen steht. Verstehe die Welt nicht warum das nicht geht. An meinen Code kann es wohl nicht liegen da das problemlos auch in anderen CMS funktioniert hat. Wäre nett wenn jemand einen Rat für mich hat.

Gruss SaschaCap

‹ Ist exec() gefährlich? Pfadangaben ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

PHP Tag

Eingetragen von tumblingmug (872)
am 11.05.2008 - 20:59 Uhr

Ich würde im ersten Schritt einmal versuchen, das schliessende PHP-Tag

?>
wegzunehmen. Hat das Script hat auch wirklich kein BOM? (Nehme mal an, dass es auf einem Linux läuft...)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ahoi tumblingmug, aber ich

Eingetragen von SaschaCap (98)
am 11.05.2008 - 23:27 Uhr

Ahoi tumblingmug,
aber ich muss doch am Ende jedes php Tag das abschliessende ?> machen sonst würde ja der PHP code offen bleiben?
Versteh das erhlich gesagt mit den BOM nicht, hab zwar den Wiki Artikel gelesen aber werde da einfach nicht draus schlau *grins*.
Ja läuft auf einen Linux Server (CentOs 5.1).

lg SaschaCap

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nee bei Drupal läuft dit

Eingetragen von Tobias Bähr (4019)
am 11.05.2008 - 23:40 Uhr

Nee bei Drupal läuft dit ein Bisschen anders, also kannste ruhig vertrauen. Nur bei Themes muss ein Schließtag vorhanden sein.

Und ein BOM (ByteOrderMark)ist das  ,welches am Anfang einer Datei sitzt. Ältere Editoren benötigen dies um UTF-8 zu erkennen, aber heutzutage beherrscht doch jeder guter Editor/IDE eine Ausgabe auch ohne BOM.

----------------------------------------
Alle Angaben ohne Gewähr!!:D
http://www.tobiasbaehr.de/

  • Anmelden oder Registrieren um Kommentare zu schreiben

SaschaCap schrieb aber ich

Eingetragen von tumblingmug (872)
am 12.05.2008 - 09:41 Uhr
SaschaCap schrieb

aber ich muss doch am Ende jedes php Tag das abschliessende ?> machen sonst würde ja der PHP code offen bleiben?

Probieren geht über Studieren :)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Moin Moin, ok wenn es in

Eingetragen von SaschaCap (98)
am 12.05.2008 - 11:48 Uhr

Moin Moin,
ok wenn es in Drupal anders läuft nehme ich mal das schluss Tag weg, aber dennoch funktioniert es nicht. -__-
Hab auch mal einen anderen Code probiert da ist das selbe Problem. Kann es vielleicht sein, dass Drupal mit irgendetwas nicht zurecht kommt wie z.B. mit zwei verschiedene Datenbanken? Also das Forum liegt auf einer anderen Datenbank als wie Drupal.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die DB-Zugriffe sollten

Eingetragen von tumblingmug (872)
am 12.05.2008 - 14:35 Uhr

Die DB-Zugriffe sollten nicht das Problem sein. Wenn Du das mit einer Datei mit folgendem Inhalt versuchst (bitte auch ohne error_reporting()):

<?php
 
print "Include Test";
?>

funktioniert das Ganze dann auch nicht??

Wenn Du andererseits Deine oben gepostete Datei direkt als PHP-Datei aufrufst, gibt sie nur die Div's zurück wie erwartet? Gibt sie noch etwas davor zurück (Fehlermeldungen, Leerzeilen, -zeichen => dazu bitte in den Quellcode schauen)?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo tumblingmug, Wenn ich

Eingetragen von SaschaCap (98)
am 12.05.2008 - 17:37 Uhr

Hallo tumblingmug,

Wenn ich mit

<?php
print "themen.php";
?>
gibt er nur den Namen der Datei wieder also themen.php!

Wenn ich meine Datei direkt abrufe: (http://fiesta.nachtblock.de/themen.php) wird alles normal angezeigt und hab mit Firebug keine Fehlermeldung. Im Quellcode gibt sie die divs zurück wie erwartet.

Hast du schon mal getestet ob das bei Drupal überhaupt geht fremde Scripts per php zu Includen oder liegt das jetzt nur an mir?

lg SaschaCap

  • Anmelden oder Registrieren um Kommentare zu schreiben

SaschaCap schrieb

Eingetragen von tumblingmug (872)
am 12.05.2008 - 22:16 Uhr
SaschaCap schrieb

Wenn ich mit

<?php
print "themen.php";
?>
gibt er nur den Namen der Datei wieder also themen.php!

Ja schon - aber das Drumherum wird doch auch angezeigt, oder? Ich meine: es gibt nicht nur eine komplett weisse Seite wie vorher, sondern eben an der Stelle, wo Du das Include eingefügt hast, den String "themen.php"?!

SaschaCap schrieb

Hast du schon mal getestet ob das bei Drupal überhaupt geht fremde Scripts per php zu Includen

Ja, das geht schon in Drupal. Ein Include als solches macht kein Problem. Was da aber passiert in der inkludierten Datei, ich denke beinahe, dass das eben die Probleme macht. Ich habe das require(...) in Verdacht. Kannst Du das bitte mal auskommentieren und versuchen, ob nun immer noch ein Whitescreen kommt?

EDIT:
Du schreibst oben:

SaschaCap schrieb

Drupal mag das anscheinend nicht und erstellt eine weisse Seite sobald der Include befehl mit diesen Code drinnen steht

Ich hatte das so verstanden, dass eine komplett weisse Seite "ausgegeben" wird (white screen of death) - meintest Du aber hingegen, dass ab dem Include nichts mehr ausgegeben wird? Das wäre ein grosser Unterschied.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Nabend, glaub ich hab mich

Eingetragen von SaschaCap (98)
am 12.05.2008 - 23:27 Uhr

Nabend,
glaub ich hab mich falsch Ausgedrückt. Alles was nach den Include kommt wird nicht mehr ausgegeben also weg. Da der Content bereich nach den Include kommt hab ich mich fälschlicher weise falsch ausgedrückt, sorry.

Mhh hoffe du meinst das require() im Script denn im Drupal wüsste ich nicht wo ich require() benutze. Wenn ich also das im script auskommentiere oder gar umschreibe in include() passierd auch nichts.

tumblingmug schrieb

Ja schon - aber das Drumherum wird doch auch angezeigt, oder? Ich meine: es gibt nicht nur eine komplett weisse Seite wie vorher, sondern eben an der Stelle, wo Du das Include eingefügt hast, den String "themen.php"?!

Ja alles wird normal angezeigt inklusive den String "themen.php".

  • Anmelden oder Registrieren um Kommentare zu schreiben

Gut, Du musst Dich da

Eingetragen von tumblingmug (872)
am 12.05.2008 - 23:55 Uhr

Gut, Du musst Dich da herantasten. Ich kann den gleichen Fehler provozieren (also keine Ausgabe mehr ab dem "include"), wenn ich in der includeten Datei ein

<?php
require('template.php');
?>
aufrufe. Daher dachte ich, ich bin dem Fehler schon ziemlich nahe gekommen.

Ich würde es jetzt so machen: alles Verdächtige (zur Not eben alles) auskommentieren und testen, die Kommentarzeichen Zeile für Zeile entfernend. Ich denke ja fast immer noch, dass der Hund diese globals.php sein muss - aber wie auch immer. Poste mal Deine Ergebnisse - vor allem die Fehlerlösung, wenn Du sie gefunden hast.

  • Anmelden oder Registrieren um Kommentare zu schreiben

So hab jetzt viel rum

Eingetragen von SaschaCap (98)
am 13.05.2008 - 01:15 Uhr

So hab jetzt viel rum getestet aber dennoch funktioniert nichts! Es gab nur eine Fehlermeldung als ich bei require(global.php); durch include und den direkten Pfad zum Script angegeben habe:

Direct initialization of this file is not allowed.

Please make sure IN_MYBB is defined.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wozu die globals.php

Eingetragen von tumblingmug (872)
am 13.05.2008 - 11:28 Uhr

Die globals.php brauchst Du offenbar nur für die Datenbank-Klassen. Du kannst doch auch die ungewrappten PHP-Funktionen zum Auslesen der MySQL-DB verwenden und die Globals-Geschichten raushauen. Dann ist das Script relativ unabhängig und liest eben einfach eine drupalfremde DB aus.

Möglicherweise lädt ja auch die globals.php ihrerseits noch jede Menge Includes und Requires nach und da reicht dann einfach der PHP-Ausführungsspeicher nicht?

Also:

<?php
function db_connect($dbhost, $dbuser, $dbpassword, $dbdatabase) {
 
$link = mysql_connect($dbhost, $dbuser, $dbpassword);
  if (
$link) {
   
$db = mysql_select_db($dbdatabase);
  }
  if (
$db) {
    return
TRUE;
  } else {
    return
FALSE;
  }
}
$db_is_connected = db_connect($dbhost, $dbuser, $dbpassword, $dbdatabase);
if (
$db_is_connected) {
 
// Forum ermitteln
 
$query = mysql_query('SELECT subject,uid,tid,fid,lastpost,lastposter,lastposteruid
                        FROM ...'
);
  while(
$threads = mysql_fetch_array($query)) {
   
// ...
 
}
}
?>

usw. usf. Die Konstante TABLE_PREFIX in den verwendeten Abfragen müsstest Du dann entweder vorher noch definieren oder einfach mit dem tatsächlich verwendeten Präfix ersetzen.

Dieser ganze Code gehört aber nicht (und sowieso nicht) in eine Template-Datei. Im nächsten Schritt müssten die DIVs, anstatt mit <?php echo ...?> direkt ausgegeben zu werden, in eine Variable $mybb einlesen werden, die dann als Template-Variable zur Verfügung gestellt wird. Ob der PHP-Code bei Drupal 6 dann (ebenso wie noch bei D5) in der Funktion _phptemplate_variables() in der Datei template.php untergebracht wird, weiss ich augenblicklich nicht, sollte sich aber leicht herausbekommen lassen. Im Template jedenfalls sollte ganz am Ende nur noch <?php print $mybb ?> stehen müssen.

  • 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 4 Tagen
  • Hey danke
    vor 2 Wochen 4 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 5 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 3 Tagen
  • Da scheint die Terminologie
    vor 3 Wochen 3 Tagen
  • Kannst doch auch alles direkt
    vor 4 Wochen 10 Stunden
  • In der entsprechenden View
    vor 4 Wochen 10 Stunden
  • Dazu müsstest Du vermutlich
    vor 4 Wochen 10 Stunden
  • gelöst
    vor 6 Wochen 3 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 4 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20458

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 15 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