[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
POP-UP: CType(1) in Template(2) mit rex_getUrl($articleId) ? - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Benutzeravatar
gseilheimer
Beiträge: 78
Registriert: 3. Jan 2008, 01:31

POP-UP: CType(1) in Template(2) mit rex_getUrl($articleId) ?

10. Aug 2010, 15:20

Hallo liebe REX-Community,

ZIEL:
ich möchte die Artikelliste der DEMO nutzen um die angezeigten Artikel in einem FANCYBOX-INLINE-POP-UP-Fenster darstellen...

PROBLEME ohne LÖSUNG:

Variante A)
- zweites Template (1. als default & 2. als pop-up) für den Artikel im POP-UP-Fenster...
Problem bei A)
- Artikel über die Suche (XSearch) werden ebenfalls im POP-UP-Template geöffnet, womit keine Menüs mehr verfügbar sind...

Variante B)
- alle Artikel der Liste vorladen und per FANCYBOX im POP-UP-Fenster öffnen, was wohl nicht wirklich sauber wäre bei 100 Artikeln...

Variante C)
- über mögliche Parameter in der URL den Artikel(XY) aus CType(1) im Template(2) des POP-UP-Fenster darstellen...

Code: Alles auswählen

$articleLink = rex_getUrl($articleId);
echo "<a href=\"{$articleLink}\" 
		class=\"fancyboxStyle{$rex_img_js_style} iframe\">";
echo "{$articleName}";
echo "</a><br />";
Problem bei C)
- Artikel werden immer mit dem default-Template der kompetten Seite geöffnet, was unbrauchbar ist, da alle Menüs im POP-UP-Fenster wären...
- Dafür könnten Artikel auch über die Suche geöffnet werden...

WUNSCHVORSTELLUNG:
zu C) Parameter oder Lösungsansätze... für die Darstellung im POP-UP-Fenster des CType(1) mit Hilfe des Template(2) z.B.:

Code: Alles auswählen

index.php?article_id=XY&clang=0&ctype=1&template=2
Besten Dank im Voraus für mögliche Lösungsansätze...

Gruß, Gilbert
Zuletzt geändert von gseilheimer am 10. Aug 2010, 15:42, insgesamt 1-mal geändert.

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

10. Aug 2010, 15:24

Ich verstehe das Problem überhaupt nicht.

Du hast einen Link und wenn man darauf klickt, soll sich ein Inline-Popup mit allen verfügbaren Artikeln öffnen?

Kannst du das nochmal Schritt für Schritt beschreiben? Dann finden wir sicher auch eine Lösung. =)
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
gseilheimer
Beiträge: 78
Registriert: 3. Jan 2008, 01:31

10. Aug 2010, 15:49

Xong hat geschrieben:Ich verstehe das Problem überhaupt nicht.

Du hast einen Link und wenn man darauf klickt, soll sich ein Inline-Popup mit allen verfügbaren Artikeln öffnen?

Kannst du das nochmal Schritt für Schritt beschreiben? Dann finden wir sicher auch eine Lösung. =)
Habe die Schilderungen noch ein wenig optimiert...

IDEAL wäre VARIANTE C):

- über mögliche Parameter in der URL den Artikel(XY) genauer CType(1) im Template(2) des POP-UP-Fenster darstellen...

Beispiel zu Variante A) mit Hilfe des POP-UP-Templates(2): http://eilige-edv.de/41-0-FAQ-Tools.html

...leider würden hier auch die gefundenen Artikel von XSearch im zugewiesenen Template(2) ausgegeben werden, was nicht gewünscht ist...

Möge es besser formuliert sein :) und mir hilfreicher sein... :lol:

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

11. Aug 2010, 09:54

Verstanden! =)

Möglichkeit 1:
Modifiziere das Suchausgabemodul so, dass die Seiten ohne Seitenstil in diesem Popup geöffnet werden.

Möglichkeit 2:
Verlinke nicht auf die Seite ohne Seitenstil, sondern auf die übergeordnete FAQ-Listen-Seite.

Möglichkeit 3:
Binde für die Seiten ohne Seitenstil einfach einen Seitenstil mit ein. Anhand eines Parameters (z. B. ispopup=1/0) kannst du dann mit oder ohne Seitenstil anzeigen lassen.

Möglichkeit 4:
Schließe die FAQ-Unterseiten von der Suche oder von der Anzeige im Suchergebnismodul aus.

Ich hoffe, diese 4 Möglichkeiten reichen erstmal. Die Möglichkeit 3 habe ich auch schon umgesetzt und das wäre in diesem Fall wahrscheinlich auch meine favorisierte Variante.

Das hat dann auch den Vorteil, dass du auf der FAQ-Listen-Seite bei aktiviertem Javascript das Inlinepopup zeigen und sonst auf die normale Seite verlinken kannst.

Meine openInlinePopup()-Funktion sieht dabei derzeit so aus:

Code: Alles auswählen

function openInlinePopup(src, closebuttonlabel, urlparams)
{
  src += '&popup=1';
  for(key in urlparams)
  {
    src += '&' + key + '=' + urlparams[key];
  }
  
  jQuery('body').prepend(
    jQuery('<div>').addClass('inlinepopup-overlay').attr('id', 'inlinepopup-overlay')
    .css('height',jQuery('body').outerHeight()+'px')
    .css('width',jQuery('body').outerWidth()+'px')
    .click(function()
    {
      jQuery('#inlinepopup').remove();
      jQuery('#inlinepopup-overlay').remove();
    })
  ).append(
    jQuery('<div>').attr('id', 'inlinepopup').prepend(
      jQuery('<iframe>').attr('src', src)        
    ).append(
      jQuery('<span>').attr('id', 'close-inlinepopup').text(closebuttonlabel).click(function()
      {
        jQuery('#inlinepopup').remove();
        jQuery('#inlinepopup-overlay').remove();
      })
    )
    .css('top',((window.innerHeight >> 1) + (window.pageYOffset || document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) - 250) + 'px')
  );
  
  return false;
}
Da sich das Projekt noch in der Entwicklung befindet, wird sie aber sicher noch verbessert werden. (Setzt jQuery voraus!)
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
gseilheimer
Beiträge: 78
Registriert: 3. Jan 2008, 01:31

11. Aug 2010, 10:47

Xong hat geschrieben:Verstanden! =)

...

Das hat dann auch den Vorteil, dass du auf der FAQ-Listen-Seite bei aktiviertem Javascript das Inlinepopup zeigen und sonst auf die normale Seite verlinken kannst.

Meine openInlinePopup()-Funktion sieht dabei derzeit so aus:

Code: Alles auswählen

function openInlinePopup(src, closebuttonlabel, urlparams)
{
  src += '&popup=1';
  for(key in urlparams)
  {
    src += '&' + key + '=' + urlparams[key];
  }
  
  jQuery('body').prepend(
    jQuery('<div>').addClass('inlinepopup-overlay').attr('id', 'inlinepopup-overlay')
    .css('height',jQuery('body').outerHeight()+'px')
    .css('width',jQuery('body').outerWidth()+'px')
    .click(function()
    {
      jQuery('#inlinepopup').remove();
      jQuery('#inlinepopup-overlay').remove();
    })
  ).append(
    jQuery('<div>').attr('id', 'inlinepopup').prepend(
      jQuery('<iframe>').attr('src', src)        
    ).append(
      jQuery('<span>').attr('id', 'close-inlinepopup').text(closebuttonlabel).click(function()
      {
        jQuery('#inlinepopup').remove();
        jQuery('#inlinepopup-overlay').remove();
      })
    )
    .css('top',((window.innerHeight >> 1) + (window.pageYOffset || document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) - 250) + 'px')
  );
  
  return false;
}
Da sich das Projekt noch in der Entwicklung befindet, wird sie aber sicher noch verbessert werden. (Setzt jQuery voraus!)
Okay, habe dein JS im Template eingebunden...
Wie hast Du die entsprechenden Artikel bei Dir verlinkt, damit die Funktion aufgerufen wird und die zusätzlichen Parameter übergibst?

Eine Beispiel-URL wäre sicherlich hilfreich, damit ich sehe welche Parameter ich setzen sollte.

Danke im Voraus.

Gruß, Gilbert

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

11. Aug 2010, 11:08

gseilheimer hat geschrieben:Eine Beispiel-URL wäre sicherlich hilfreich, damit ich sehe welche Parameter ich setzen sollte.
So werden alle Links mit der Klasse iframe gepopupt:

Code: Alles auswählen

jQuery('a.iframe').each(function()
{
  jQuery(this).click(function()
  {
    return openInlinePopup(jQuery(this).attr('href'), 'Schließen', {});
  });
});
Du kannst natürlich auch weiterhin die Fancybox nutzen. Dann musst du nur irgendwie beim Aufruf der URL über die Fancybox dafür sorgen, dass ein URL-Parameter wie z. B. ispopup übergeben wird.
Dafür musst du nur in der Datei /files/addons/fancybox/jquery.fancybox-1.3.1.js Zeile 697 so ändern:

Code: Alles auswählen

					$('<iframe id="fancybox-frame" name="fancybox-frame' + new Date().getTime() + '" frameborder="0" hspace="0" scrolling="' + selectedOpts.scrolling + '" src="' + selectedOpts.href + '&ispopup=1"></iframe>').appendTo(tmp);
Im Template überprüfst du dann, ob der Parameter ispopup gesetzt ist und gibst entsprechend die gesamte Seitenstruktur aus oder nicht.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Zurück zu „Allgemeines [R4]“