Link aus PHP-Include umleiten in ein Node
Eingetragen von wogga (19)
am 29.06.2010 - 15:24 Uhr in
am 29.06.2010 - 15:24 Uhr in
Hallo,
ich inkludiere mir in einem Node eine PHP-Datei, besser gesagt die Pixlie-Bildergalerie:
<?php
ob_start();
include_once "http://xxxxx/drupal/pixlie/galerie.php";
$output = ob_get_contents();
ob_end_clean();
return $output;
?>
Das funktioniert soweit auch alles einwandfrei. Nur die Sache mit den Unterordner klappt nicht.
Hierzu werden mir über einen Foreach-Schleife in der galerie.php die Ordner aufgelistet.
<?php foreach ($pixlie_table_dir as $folder){ ?>
<li>
<a href="//xxxxx/drupal/pixlie/galerie.php<?php echo $folder['link_get']; ?>">
<?php echo $folder['name']; ?>
</a>
</li>
<?php } ?>
Allerdings werden mir die Links immer in einem neuen Fenster geöffnet.
Wie schaffe ich es das ich die Linkausgabe umleite damit Sie im Content-Bereich von meinem Node ausgegben wird? Ist das überhaupt möglich?
Danke schonmal.
- Anmelden oder Registrieren um Kommentare zu schreiben
Warum verwendest Du für dein
am 29.06.2010 - 15:33 Uhr
Warum verwendest Du für dein Vorhaben nicht die Module Imagecache und ImageApi, die es Dir erlauben die gleiche Funktionalität wie Pixlie zur Verfügung zu stellen?
Willst Du nur eine Galerie unterhalt der Node ausgeben oder was genau hast Du vor?
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Die Bilder MÜSSEN im
am 29.06.2010 - 15:44 Uhr
Die Bilder MÜSSEN im Hintergrund weiterhin in einer bestehenden Ordnerstruktur bleiben, somit scheiden fast alle Drupal-Galerien aus. Das Modul FastGallery kommt dem ganzen schon recht nahe, funktioniert allerdings nur sehr eingeschränkt (da Aktualisierung sehr lang und meine Bildermenge ist zu viel). Pixlie erfüllt alles was ich benötige, ist schnell und einfach. Außerhalb von Drupal funktioniert es 100%ig. Nur das Einbinden in Drupal will einfach nicht funktionieren, außer über iframe, allerdings entspricht das nicht genau meinen Vorstellungen da dann die Fancybox auch nur innerhalb des Iframe arbeitet. Auch den kompletten Inhalt der galerie.php in eine node einkopieren funktioniert nicht, hier scheitert es immer an einem Fehler bezogen auf die Foreach-Schleife.
Poste mal alle entsprechenden
am 29.06.2010 - 15:48 Uhr
Poste mal alle entsprechenden Quelltexte aus den Dateien, sonst wird es schwierig sich ein Bild zu machen. Ein Link wo das Ganze zu sehen ist, wäre auch sehr hilfreich, wenn verfügbar.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Okay
am 29.06.2010 - 15:56 Uhr
Inhalt meiner Node:
<?php
ob_start();
include_once "http://srv-intranet/drupal/pixlie/galerie.php";
$output = ob_get_contents();
ob_end_clean();
return $output;
?>
Inhalt Galerie.php <!DOCTYPE
am 29.06.2010 - 15:57 Uhr
Inhalt Galerie.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Galerie</title>
<link rel="stylesheet" type="text/css" href="//srv-intranet/drupal/pixlie/jquery.fancybox/jquery.fancybox.css" media="screen" />
<script type="text/javascript" src="//srv-intranet/drupal/pixlie/jquery.fancybox/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="//srv-intranet/drupal/pixlie/jquery.fancybox/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="//srv-intranet/drupal/pixlie/jquery.fancybox/jquery.fancybox-1.2.1.pack.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".fancy").fancybox();
});
</script>
<style>
// html, body {
// font: normal 11px Tahoma;
// color: #333;}
a {
outline: none;}
div#wrap {
width: 500px;
margin: 50px auto;}
img {
border: 1px solid #CCC;
padding: 2px;
margin: 10px 5px 10px 0;}
</style>
</head>
<body>
<h1>Fotogalerie</h1>
<?php
$response_type = 'php'; //Ausgabe auf php umstellen
include('pixlie.php'); //Einbinden von Pixlie
?>
<h2>Bilder</h2>
<p>
<?php foreach ($pixlie_table_file as $picture){ ?>
<a rel="group" href="<?php echo $pixlie_table_env['path_pixlie'].$picture['link_get']; ?>_b<?php echo $picture['extension']; ?>" class="fancy">
<img
src="<?php echo $pixlie_table_env['path_pixlie'].$picture['link_get']; ?>_s<?php echo $picture['extension']; ?>"
alt="<?php echo $picture['name']; ?>" />
</a>
<?php } ?>
</p>
<h2>Unterordner</h2>
<ul>
<?php foreach ($pixlie_table_dir as $folder){ ?>
<li>
<a href="//srv-intranet/drupal/pixlie/galerie.php<?php echo $folder['link_get']; ?>">
<?php echo $folder['name']; ?>
</a>
</li>
<?php } ?>
<?php if(count($pixlie_table_dir)==0){ echo '<li>Keine vorhanden</li>'; } ?>
</ul>
</body>
</html>
(Kein Betreff)
am 29.06.2010 - 15:59 Uhr
Die Pixlie.php ist 100%ig Original wie man sie im Internet bekommt.
Einen Link zum Anschauen kann ich leider nicht bieten. Ist ein Intranet. :-)
Ich versuche das Ganze mal
am 29.06.2010 - 16:03 Uhr
Ich versuche das Ganze mal nachzuvollziehen:
Du willst aber, dass die Galerie als Deine Node angezeigt wird?
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Genau so ist es. Die Bilder
am 30.06.2010 - 07:34 Uhr
Genau so ist es.
Die Bilder die direkt in der Galerie sind, also im Hauptordner nicht in Unterordnern, funktionieren auch wunderbar. Er geht zwar eigentlich auch auf eine externe Seite, aber da die Bilder mit der Fancybox geöffnet werden fällt das nicht auf.
Ich müsste nur irgendwie die Unterornderlinks umleiten in ein Node.
Kannst Du zumindest mal
am 30.06.2010 - 08:28 Uhr
Kannst Du zumindest mal Screenshots anhängen, damit ich mir mal ein genaues Bild davon machen kann was Du vor hast.
Ich denke dass ich einigermaßen nachvollziehen kann was Du vorhast.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Kann ich machen
am 30.06.2010 - 08:41 Uhr
Bild1 zeigt: die Galerie nach dem Klick auf den Menüpunkt Test Galerie.
Die Fotos auf oberster Ebende werden dann mittels Fancybox auch richtig dargestellt.
Bild2 zeigt: nach einem Klick auf einen Unterordner öffnet sich einfach ein neues Browser-Fenster ohne Drupal.
Diese Unterordner-Links müsste ich umleiten damit die Ausgabe immer in Drupal sprich in einem Node dargestellt wird, so wie die oberste Ebene der Galerie auch.
iframe ?
am 30.06.2010 - 08:45 Uhr
und wenn du die Gallery in einem iframe einbindest ?
siehe http://de.selfhtml.org/html/frames/eingebettete.htm
Sepp
Dann funktioniert die
am 30.06.2010 - 08:55 Uhr
Dann funktioniert die Fancybox nur über den IFrame, was oben schon einmal ausgeschlossen wurde.
Du musst die Generierung der Links so umschreiben, dass Du immer auf diese Node verweist und in einem GET Parameter den entsprechenden Ordner (ID, was auch immer) mitlieferst den Du anzeigen willst.
Dann sollte die Galerie sich auch innerhalb der Node anzeigen lassen.
Das Ganze ist natürlich nicht wirklich Drupal konform geschrieben.
Ich würde mir für diese Funktionalität ein eigenes Modul schreiben, das mir diese Funktionalität zur Verfügung stellt.
Wenn Interesse besteht können wir uns das näher ansehen.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
Iframe
am 30.06.2010 - 08:56 Uhr
Iframe hat den Nachteil das meistens ein zweiter Scrollbalken dann hinzukommt und das die Fancybox dann auch nur innerhalb des Iframe arbeitet und große Bilder werden dann auch noch verkleinert da die Fancybox ja an die max. Iframe-Größe gebunden ist. Siehe Bild.
Wirkt sehr unpraktisch und ist auch nicht so schön wenn die Fancybox nicht den ganzen Browser nutzt.
brilliant gallery
am 30.06.2010 - 09:01 Uhr
Hst du dir http://drupal.org/project/brilliant_gallery schon mal angesehen ?
Arbeitet auch mit einem Ordner-System.
Sepp
Hab ich mir auch schon mal
am 30.06.2010 - 12:26 Uhr
Hab ich mir auch schon mal angeschaut. War meines Erachtens aber ziemlich buggy, gefiel mir nicht so gut. Außerdem wars relativ langsam.
Pixlie ist das wesentlich schlanker und schneller.
@Sense
Könntest du mir mal ne kleine Hilfestellung geben wie der Aufbau des Links auszusehen hätte?
Beispiel: Deine Seite ist
am 30.06.2010 - 12:47 Uhr
Beispiel:
Deine Seite ist unter dem Path "galerie" erreichbar.
Wenn Du "galerie" aufrufst kommst Du auf die Hauptseite, wo Deine aktuell funktionierende Galerie zu sehen ist.
Klickst Du nun auf einen Unterordner muss der Link auf die selbe Seite verweisen, nur zusätzlichen einen GET Parameter mit übergeben.
mit Clean-URL:
<a href="http://domain.de/galerie?subfolder=untergalerie">Untergalerie</a>
ohne Clean-URL:
<a href="http://domain.de/index.php?q=galerie&subfolder=untergalerie">Untergalerie</a>
Diesen Parameter "subfolder" müsstest Du dann weiter verarbeiten und der Galerie übergeben, so dass der entsprechende Unterordner geladen wird.
sense-design | online solutions | Do not hack core!
Drupalcenter Verhaltensregeln | Threads bitte auf [gelöst] stellen.
file-get-contents
am 30.06.2010 - 14:57 Uhr
Du könntest den Inhalt vom Pixlie mittles file-get-contentsholen.
Aber Achtung: Pixlie verwendet wie Drupal den das Argument "q" in der URL deshalb in der Pixlie.php Zeile 164 ändern:
<?php
'http_var_name' => 'pixlie', //Name der Query-Variablen die per http_method uebergeben wird
?>
und dann eine Drupal-Seite erstellen mit folgendem Inhalt: (Eingabeformat: php-Code)
<?php
print file_get_contents('http://domain.de/pixlie-pfad/index.php?pixlie='.$_GET['pixlie']);
?>
dann noch im Theme in der page.tpl.php die CSS-Datei von pixlie im
<head>
einbinden !Sepp
@sepp68 Bei deinem Vorschlag
am 30.06.2010 - 15:20 Uhr
@sepp68
Bei deinem Vorschlag erhalte ich genau das gleiche Ergebnis wie beim include welchen ich im ersten Post geschrieben. Galerie auf Hauptebene funktioniert, aber Unterordner werden weiterhin in einem neuen Fenster geöffnet.
@Sense
Deinen Vorschlag kapier ich irgendwie nicht so ganz. Vielleicht könntest du es mir etwas einfacher erklären..... :-)
Neues Fenster
am 30.06.2010 - 15:36 Uhr
Bei deinem Vorschlag erhalte ich genau das gleiche Ergebnis wie beim include welchen ich im ersten Post geschrieben. Galerie auf Hauptebene funktioniert, aber Unterordner werden weiterhin in einem neuen Fenster geöffnet.
ja, weil du ja den absoluten Pfad im Link angibst: (deine Galerie.php)
<a href="//srv-intranet/drupal/pixlie/galerie.php<?php echo $folder['link_get']; ?>">
<?php echo $folder['name']; ?>
</a>
du solltest das Relativ machen
<a href="<?php echo $folder['link_get']; ?>">
<?php echo $folder['name']; ?>
</a>
Sepp
DANKE!!!!
am 30.06.2010 - 15:47 Uhr
Du bist klasse!!! Das funktioniert ja tadellos! Danke. Vielen Vielen Dank.