Table of Contents

LightBox Prev/Next verbinden

RT der alle Bilder der Contentparts einer Kategorie in denen die LightBox (SlimBox) verwendet wird verbindet.

Sind größere Bildermengen in einer Kategorie vorhanden, läßt sich das im BE häufig schlecht handhaben, wenn alle Bilder in einem CP liegen. Daher wird dieser Bildervorrat auf mehrere CPs verteilt. Allerdings rollt die LightBox die Bilder nicht automatisch von einem CP zum nächsten durch (Prev/Next), sondern stoppt am Anfang/Ende des jeweiligen CPs.

Um alle Bilder der Kategorie CP-übergreifend in den Rollvorgang einzuschließen kann dieser RT eingesetzt werden.
(Alternativ können natürlich auch die Scripte gallery oder galleryX verwendet werden (andere Logik, Installation aufwändiger)).

(Funktioniert auch mit der Erweiterung MediaBox-Advanced).

<note> Der RT in der jetzigen Form schließt auch Einzelbilder aus dem CP Text mit Bild ein, wenn hier die LightBox aktiviert wurde. </note>


rt_lighbox_prev_next_all.php V1.0 17.12.09

Docu: –
Forum: –

Autor: K.Heermann (flip-flop) http://planmatrix.de
CMS Version: >= 1.3
Version: V1.0
Update 05.08.2011 KH: Fehler behoben “Wenn keine Kategorie im Array angegeben wurde” (“If no category is specified in the array”).

Tag: –

Dateiname: rt_lighbox_prev_next_all.php

Verzeichnis: template/inc_script/frontend_render/

Bedingung:/config/phpwcms/conf.inc.php




Beschreibung

Im Bereich === CUSTOM INPUT === des RTs kann angegeben werden, für welche Kategorien dieses Verhalten gewünscht ist.

Hierzu werden in das Array $_categories = array( ); die IDs der Kategorien eingetragen die entweder dieses Verhalten zeigen (include) oder nicht (exclude) zeigen sollen.
Ob zeigen (include) oder nicht zeigen (exclude) wird mit dem Schalter $inc_categories = true|false; festgelegt.

true = include aktiv, false = exclude aktiv

Beispiel:

  $inc_categories  = true;
  $_categories     = array(5,7,23,67);

In den Kategorien mit der ID 5,7,23,67 wird überprüft, ob die LightBox aktiv ist und die Bilderreihen (wenn vorhanden) zusammengefasst (Prev/Next).
Wäre $inc_categories = false; würden die Bilder in den Kategorien mit der ID 5,7,23,67 von diesem Vorgang ausgeschlossen aber alle anderen Kategorien eingeschlossen.

<note> Ist das Array leer $_categories = array( );, wird jede Kategorie auf die Verwendung der LightBox überprüft, unabhängig von der Einstellung die in $inc_categories getroffen wurde. </note>

Code

rt_lighbox_prev_next_all

<?php
/*********************************************************************************************
 V1.0  17.12.09 K.Heermann (flip-flop)
 "LightBox Prev/Next all": All Prev/Next from LightBox bind up
 New rel for all LB pictures is called: rel="lightbox[catid-XX]"
 Where XX is the current category ID.
 Update 05.08.2011 KH: If no category is specified in the array
 
 Filename: rt_lighbox_prev_next_all.php
 Folder:   /template/inc_script/frontend_render/
 Switch:   $phpwcms['allow_ext_render'] = 1; (/config/phpwcms/conf.inc.php)
 
**********************************************************************************************/
 
// -------------------------------------------------------------------------------------------
// obligate check for phpwcms constants
  if (!defined('PHPWCMS_ROOT')) {
    die("You Cannot Access This Script Directly, Have a Nice Day."); }
// -------------------------------------------------------------------------------------------
 
// ===== CUSTOM INPUT ========================================================================
 
// ------ true = include active,   false = exclude active
$inc_categories    = true;
 
// ------ Fill in your inc/excluded categories e.g. array(7,23,16,25,33)
$_categories    = array(  );
 
// ===========================================================================================
 
 
 
$cat_id     = $content['cat_id'];    // current category ID
 
if (count($_categories) == 0 ) $_categories[0] = $cat_id;  // Update 05.08.2011 KH: If no category is specified in the array
 
if ($inc_categories ) {  // include active?
 
    if ( in_array($cat_id, $_categories) ) {
 
        $content['all'] = preg_replace('/rel="lightbox\[(.*?)\]"/i',
            'rel="lightbox[catid-'.$cat_id.']"', $content['all']);  // fill content
    }
}
else { // exclude active!
 
    if ( !in_array($cat_id, $_categories) ) {
 
        $content['all'] = preg_replace('/rel="lightbox\[(.*?)\]"/i',
            'rel="lightbox[catid-'.$cat_id.']"', $content['all']);  // fill content
    }
}
 
// -----------[ CLOSE ]----------------
?>