Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 20. Januar 2011 15:29

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

Hi,

ich hatte ja schonmal vor einer Weile gefragt, ob es möglich ist, globale Inhaltsblöcke zur Auswahl in die Eingabemaske zu bringen. Das ging.

Jetzt habe ich das Problem, dass mehrere zusätzliche Inhaltsblöcke zu einem Inhalt hinzugefügt werden müssen.
Beispiel:
Es gibt eine Seitenspalte. In der Seitenspalte steht ein Standardinhalt.

Unterhalb dieses Standardinhalts soll der User die Möglichkeit haben, extra Inhalte zu packen. Das gänge mit einem Dropdown und Advanced Content.

Jetzt soll aber nicht nur ein Inhalt zur Seitenspalte hinzugefügt werden können, sondern x.

Wie mach ich das mit dem x? Ich hab überlegt, ob es vielleicht ein Listenfeld mit Mehrfachauswahl, Checkbox oder ähnliches gibt. Geht das irgndwie? Was meint ihr?

Danke
leerraum


Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline

#2 20. Januar 2011 18:34

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

Also mit AdvancedContent und einem Mehrfachauswahl-Feld könnte es genauso funktionieren wie mit einem Dropdown. Du müsstest im Template nur etwas anders verfahren. Du müsstest zuerst den Inhalt einer Variablen zuweisen, diese dann anhand des Trennzeichens in ein Array aufsplitten und dann das Array mit foreach durchlaufen. Bsp.:

{content block="additional_content" block_type="select_multiple" label="Weitere Inhalte" items="..." values="..." assign="additional_content"}
{assign var="global_content_blocks" value="|"|explode:$additional_content}
{foreach from=$global_content_blocks item="block_name"}
<div class="gcb">
{global_content name=$block_name}
</div>
{/foreach}

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 20. Januar 2011 19:25

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

*G*
Genau deswegen Frage ich hier nach smile
Danke!


Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline

#4 02. Februar 2011 17:07

amh
Server-Pate
Ort: Augsburg
Registriert: 14. Dezember 2010
Beiträge: 117

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

leerraum schrieb:

ich hatte ja schonmal vor einer Weile gefragt, ob es möglich ist, globale Inhaltsblöcke zur Auswahl in die Eingabemaske zu bringen. Das ging.

Kannst Du mir verraten wie das ging, oder den Link zum alten Thread hier posten? Wäre super!  kiss   big_smile  big_smile

Und mit den Inhaltsblöcken probiere ich auch mal. Das ist ja ein Hammer-Feature!


Danke und Grüße schreibt
Andreas

Offline

#5 02. Februar 2011 17:23

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

Die Lösung sah am Ende so hier aus:

{content block_group="Mittelspalte" assign="mittelspaltengcbliste" smarty="true" values=":::get_gcb_list prefix='Mittelspalte' filter='include':::" items=":::get_gcb_list prefix='Mittelspalte' filter='include':::" block_type="select_multiple" block="zusatzmitte" label="Zusätze (mit Click anwählen, mit Click + STRG abwählen)"}
{assign var="global_content_blocks" value="|"|explode:$mittelspaltengcbliste}
{foreach from=$global_content_blocks item="block_name"}
    {if $block_name != "" && $block_name != " " && $block_name != "<br /><br />" && $block_name != "<p></p>" && $block_name != "<p></p><p></p>"}
        {global_content name=$block_name assign="currentgcb"}
        {if $currentgcb != "" && $currentgcb != " " && $currentgcb != "<br /><br />" && $currentgcb != "<p></p>" && $currentgcb != "<p></p><p></p>"}
        <div id="hauptinhaltszusatz">
            <hr class="mittelspaltenhr"/>
            {$currentgcb}
        </div>
        {/if}
    {/if}

{/foreach}

Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline

#6 02. Februar 2011 17:32

amh
Server-Pate
Ort: Augsburg
Registriert: 14. Dezember 2010
Beiträge: 117

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

Da steige ich nicht durch, das ist nicht mein Level :-( wink

Dennoch herzlichen Dank fürs schnelle Posten
Andreas

Offline

#7 02. Februar 2011 18:04

leerraum
kennt CMS/ms
Ort: Baden-Baden
Registriert: 15. Dezember 2010
Beiträge: 479
Webseite

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

gut, die erste Zeile ist problematisch, der rest ist eher normales Smarty

1.Zeile:
Ein ContentBlock namens "Zusatzmitte" in der BlockGruppe "Mittelspalte" wird ein einer Variable "mittelspaltengcbliste" gespeichert. Smarty wird true gesetzt, damit die Werte der Parameter "values" und "items" verarbeitet werden. Diese Werte beziehen sich auf "get_gcb_list", das die globalen Inhaltsblöcke ausliest.


Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.

Offline

#8 02. Februar 2011 19:13

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

Okay, dann mal etwas ausfühlricher...

Was Du im Prinzip brauchst ist ein Plugin welches Dir die Namen aller verfügbaren globalen Inhaltsblöcke mit einem bestimmten Trennzeichen auflistet. Dieses Plugin verwendest Du als Wert für den Parameter "items" bei AdvancedContent und einem Block vom Typ dropdown oder select_multiple.

Ich hatte hier mal eine ganz einfache Version in Form eines UDT vorgestellt:
http://wiki.cmsmadesimple.org/index.php … t_gcb_list

Inzwischen habe ich daraus ein etwas flexibleres Plugin gemacht:
http://dl.dropbox.com/u/2876578/CMSms/P … b_list.php

(einfach in das Verzeichnis /plugins/ kopieren - vorher aber den UDT umbenennen oder löschen falls der schon verwendet wurde - Bei AdvancedContent ist dieses Plugin aber bereits dabei!)

Im Prinzip funktioniert es so:

{get_gcb_list delimiter='|' output='name'}

Das würde einfach nur die Namen aller globalen Inhaltsblöcke mit einem | getrennt ausgeben. Im zusammenhang mit AdvancedContent kann man diese Ausabe als Wert für den Parameter "items" verwenden.
Das sähe dann also so aus:

{content block="global_content_blocks" block_type="select_multiple" sortable="true" items=":::get_gcb_list delimiter='|' output='name':::" smarty=true}

Das zeigt Dir zwar im Backend eine Liste mit globalen Inhaltsblöcken an, aber im Frontend macht es auch noch nichts weitern als deren Namen mit einem Trennzeichen auszugeben.
Deshalb musst Du erst die Ausgabe des Inhalts im Frontend einer Variablen zuweisen und diese Variable nochmal bearbeiten.
Zuweisung von Variablen - sollte klar sein - macht man mit assign="variable":

{content block="global_content_blocks" block_type="select_multiple" sortable="true" items=":::get_gcb_list delimiter='|' output='name':::" assign="global_content_blocks"  smarty=true}

Jetzt gibt es die Variable {$global_content_blocks}.
Diese muss man wieder in ein Array aufsplitten, damit man an jeden Namen einzeln herankommt:

{assign var="global_content_blocks_array" value="|"|explode:$global_content_blocks}

Jetzt hat man ein Array namens {$global_content_blocks_array}.
Und das kann man jetzt mit einer {foreach} Schleife durchgehen und jeden Namen einzeln prüfen, ob er z.B. einen Wert beinhaltet. Wenn ja, dann ruft man einfach den globalen Inhaltsblock auf. Dabei weist man aber den Inhalt des globalen Inhaltsblocks auch nochmal einer Variablen zu, um zu prüfen, ob der Block an sich auch einen Inhalt hat.

Und jetzt das ganze komplett:

{* Block definieren und seinen Inhalt einer variable zuweisen: *}
{content block="global_content_blocks" block_type="select_multiple" sortable="true" items=":::get_gcb_list delimiter='|' output='name':::" assign="global_content_blocks" smarty=true}

{* diesen Inhalt dann anhand des Trennzeichens in ein Array aufteilen: *}
{assign var="global_content_blocks_array" value="|"|explode:$global_content_blocks}

{* Array durchgehen: *}
{foreach from=$global_content_blocks_array item="block_name"} {* schleife *}

    {if $block_name|strip != ''} {* prüfen ob der block name einen wert hat (dürfte eigentlich nie leer sein) *}

        {global_content name="$block_name" assign="current_gcb"} {* globalen inhaltsblock aufrufen und ausgabe einer variablen zuweisen (current_gcb) *}

        {if $current_gcb|strip != ''} {* prüfen ob der block einen Inhalte hat *}

            {$current_gcb} {* ausgabe *}

        {/if}

    {/if}

{/foreach}

eigentlich nicht weiter schwer... hoffe ich wink


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#9 02. Februar 2011 19:15

amh
Server-Pate
Ort: Augsburg
Registriert: 14. Dezember 2010
Beiträge: 117

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

o.k. Ich sag’ mal herzlichen Dank für die viele Arbeit!
Dann drucke ich mir das mal aus und lese/lerne geduldig :-)

Andreas

Offline

#10 31. März 2011 21:29

uniqu3
Server-Pate
Ort: Feldkirchen in Kärnten
Registriert: 20. November 2010
Beiträge: 305
Webseite

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

Hi,

könnte es sein das es mit 0.7.2 (aus SVN) nicht mehr funktioniert?

string(169) "Smarty error: unable to read resource: "globalcontent: footer""

Offline

#11 31. März 2011 21:31

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

Wo genau kommt denn dieser Fehler?
Sieht mir eher danach aus, als würdest Du einen globalen Inhaltsblock aufrufen, der nicht (oder nicht mehr) existiert.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#12 31. März 2011 21:34

uniqu3
Server-Pate
Ort: Feldkirchen in Kärnten
Registriert: 20. November 2010
Beiträge: 305
Webseite

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

Fehler kommt im frontend, footer existiert aber, ist ja immer dabei  smile dazu habe ich noch "sidebar" mit der gleichen Meldung nur  string(76) unterscheidet sich.

Offline

#13 31. März 2011 21:52

uniqu3
Server-Pate
Ort: Feldkirchen in Kärnten
Registriert: 20. November 2010
Beiträge: 305
Webseite

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

Ah ok Alarm vorbei, InlineEdit war daran schuld  smile

Offline

#14 31. März 2011 21:57

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

Hab es gerade mal mit dem hier vorgestellten Beispiel probiert.
Code 1 zu 1 kopiert, ModulVersion SVN (trunk).
Funktioniert tadellos.

Aber...

Mal etwas Analyse:

Böse Leerzeichen, sag ich da nur! mad

Die Fehlermeldung, wenn globale Inhaltsblöcke nicht existieren, hat normalerweise kein Leerzeichen zwischen Doppelpunkt und Blocknamen. (gib mal {global_content name="existiert nicht!"} ein wink )
D.h. Du hast da ein Leerzeichen, wo keines sein darf.
CMSms sucht sozusagen nicht nach "footer" sondern nach " footer".

Daher meine Frage, woher kommen Deine globalen Inhaltsblöcke?
Womit machst Du die Liste im Backend?
Ich nutze das hier verlinkte Plugin, nicht den UDT.

Das kann man übrigens auch via Smarty korrigieren:

{global_content name=$block_name|strip}

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#15 01. April 2011 22:01

uniqu3
Server-Pate
Ort: Feldkirchen in Kärnten
Registriert: 20. November 2010
Beiträge: 305
Webseite

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

Danke NaN,
ja habe mit der plugin Lösung gespielt (sind auch keine Leerzeichen vorhanden), InlineEdit modul deaktiviert und es funktioniert wieder. wink

Offline

#16 01. April 2011 22:15

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

Übrigens... wenn man viele viele viele Seiten und nochmal so viele Unterseiten erstellt hat, und man löscht einen globalen Inhaltsblock, der in allen Seiten ausgewählt war... dann hat man sehr viel Arbeit.
Aus gegebenem Anlass habe ich deshalb einen UDT erstellt, der über die Ereignisverwaltung beim Löschen von globalen Inhaltsblöcken ausgeführt wird und alle Seiten vom Typ AdvancedContent, die einen Inhaltsblock mit einem bestimmten Präfix enthalten, aktualisiert:

$prefix = "HIER EUER PRÄFIX EINTRAGEN (z.B. 'global_content_')";

$db =& cmsms()->GetDb();
$query = "SELECT CP.content_id, CP.prop_name, CP.content 
    FROM ". cms_db_prefix()."content_props CP 
    LEFT JOIN ". cms_db_prefix()."content C 
    ON CP.content_id = C.content_id 
    WHERE CP.prop_name LIKE ? AND C.type = ?";
$dbresult = $db->Execute($query, array($prefix.'%', 'content2'));
while($dbresult && $row = $dbresult->FetchRow()) 
{
    $gcbs = explode('|',$row['content']);
    foreach($gcbs as $k=>$v)
    {
        if($v == $params['global_content']->name) 
        {
            unset($gcbs[$k]);
        }
    }
    $query = "UPDATE ".cms_db_prefix()."content_props SET content = ? WHERE content_id = ? AND prop_name = ?";
    $db->Execute($query, array(implode('|',$gcbs), $row['content_id'],$row['prop_name']));
}

Wenn also die Inhaltsblöcke, die globale Inhaltsblöcke anzeigen sollen, im Block-Parameter z.B. mit dem Prefix 'global_content_' versehen werden, dann braucht man sich keine Sorgen zu machen, wenn man einen globalen Inhaltsblock mal löscht.
(Für's Umbenennen habe ich erstmal leider noch keine Lösung)


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#17 01. April 2011 22:19

uniqu3
Server-Pate
Ort: Feldkirchen in Kärnten
Registriert: 20. November 2010
Beiträge: 305
Webseite

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

cool danke  smile  und schon UDT'S geklickt  big_smile

Offline

#18 03. April 2011 18:41

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

ich möchte da kurz nochmal nachhaken aber befürchte dass mein anliegen in eine andere richtung geht.
folgende annahme:
ich habe zweispaltiges layout in dem links text und rechts bilder hinkommen. die anzahl der bilder variiert aber von seite zu seite. normalerweise habe ich also für die rechte spalte einen normalen zweiten block in dem ich dann manuell die <img> hintereinander reinschreibe.
schöner wäre es natürlich mit dem GBfilepicker da der anwender sich gerne mal bei den <img>s verschreibt.
aber wenn man den GBfilepicker benutzt, kann man die anzahl nicht kontrollieren. man müsste bspw 10 instanzen vom modul im template eintragen, was dann ja 10 zusätzliche blöcke bedeutet. aber was ist wenn es dann 11 bilder werden sollen? richtig, einen 11. block anlegen. aber bei seiten wo es nur ein bild gibt, sieht man dann trotzdem 11 blöcke. nun wäre es doch großartig wenn man das alles in einem block kontrolliert. und dann weitere bilder mit einem button a la "new item" hinzufügen könnte. eine mögliche syntax für das template wäre vielleicht:

{content block="imgcolumn" type="multicontent" template="imgcolumn"}

und dann gibt es wie bei den multiinputs eine templateverwaltung wo man dann definieren kann wie die items in dem block zusammengesetzt werden:

<img src="{$imgsrc}" alt="{$title}"/>

leider fehlt mir da natürlich der durchblick und meine vorstellung ist natürlich absolut naiv aber wenn man das ziel irgendwie erreichen könnte, wäre das ja auch auf absätze und normale inhalte (text) anwendbar.
eine sache die ich schon ewig bei CMSms vermisse.

Offline

#19 03. April 2011 19:08

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

Womit wir wieder bei der Mutli-Content-Idee wären big_smile
Geduld.
Ich arbeite dran.
Fragt bitte nicht nach einem Termin.

Das soll am Ende so ähnlich laufen, wie Du es gerade beschrieben hast.
Man sagt im Template einfach

{content block="Linke Spalte" block_type="multi_content" allowed_block_types="module" modules="GBFilePicker" allowed_params="..." ... }

Und im Backend kann man dann beliebig viele GBFilePicker hinzufügen.
Im Block "Linke Spalte" werden dann lediglich die Parameter, die man im Backend beim Erstellen des Content-Blocks angibt, gespeichert. Die erstellten Blöcke selber werden als ganz normale Inhaltsblöcke in der DB gespeichert. So als hätten sie tatsächlich im Template gestanden.
D.h. kurz: ein Teil des Templates soll in einem Inhaltsblock gespeichert werden.
Nur muss ich dazu noch ein hübsches dynamisches Formular erstellen. Sonst sieht es am Ende genauso aus wie mit den multi_inputs, und das bringt keinem etwas.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#20 03. April 2011 19:16

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

achso, sorry. wusste ich nicht oder hatte es nicht mehr so gut in erinnerung. daher wollte ich nochmal von meinen träumen schwärmen big_smile

Offline

#21 03. April 2011 20:01

uniqu3
Server-Pate
Ort: Feldkirchen in Kärnten
Registriert: 20. November 2010
Beiträge: 305
Webseite

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

Ah ich freue mich schon auf neue versionen  smile

@nicmare
Falls es dir hilft habe ich ein Plugin im .org Forum ausgegraben das auf NaN's UDT basiert, hat mich schon öfter gut bedient zum beispiel für einfach Auflistung verfügbarer Galerien, Ordner, Dateien...

function.list_dir.php erstellen.

[== php ==]
<?php
#CMS - CMS Made Simple
#(c)2004 by Ted Kulp (wishy@users.sf.net)
#This project's homepage is: http://cmsmadesimple.sf.net
#
#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

#Author: Ludger Merkens (kontakt@cms-merkens.de)

function smarty_cms_function_list_dir($params, &$smarty)
{
   $dir = isset($params['dir']) ? $params['dir'] : '';
   $display = isset($params['display']) ? $params['display']: 'filename';
   $glue = isset($params['glue']) ? $params['glue']: '|';
   $filetype = isset($params['filetype']) ? strtolower($params['filetype']) : 'f';
   
   $output = array();
   if($GBFilePicker =& cmsms()->modules['GBFilePicker']['object'])
   {
      $files =& $GBFilePicker->GetFiles($dir); // dir relative to the uploads dir
      foreach($files as $onefile)
      {
         if (strpos($filetype, 'd')===false && $onefile->is_dir) continue;
         if (strpos($filetype, 'f')===false && !$onefile->is_dir) continue;
         switch($display)
         {
         case 'relurl':
            $output[] = $onefile->relurl; // this will be the url of the file relative to the uploads dir (e.g.: images/image.jpg)
            break;
         case 'fullurl':
            $output[] = $onefile->fullurl; // this will be the full url to the image (e.g.: yourdomain/uploads/images/image.jpg)
            break;
         case 'filename':
         default:
            $output[] = $onefile->basename; // this will be the filename (image.jpg)
            break;
         }
      }
   } else return "GBFFilePicker not installed!";
   $_output = implode($glue,$output); // this will stick the filenames together separated by given glue (=pipe)
   return $_output;
}
// 3148
// 0177 7115502

function smarty_cms_help_function_list_dir() {
?>
<h3>Was macht dieser Tag?</h3>
<p>Dieser Tag listet ein Unterverzeichnis (parameter dir) auf. Dabei ist der Haupteinsatzzweck die Bereitstellung von Auswahldaten für AdvancedContent</p>
<h3>Welche Parameter sind möglich</h3>
<table>
<tr><th>Option</th><th>Parameter</th><th>Beschreibung</th><th>Default</th></tr>
<tr><td></td><td><code>dir</code></td><td> Verzeichnis dessen Inhalt angezeigt werden soll (relativer Pfad zu root_path)</td><td>--</td></tr>
<tr><td><em>(*)</em></td><td><code>glue</code></td><td>Verbinder, bzw. Separator zwischen den Verzeichnispfaden</td><td><code>'|'</code></td></tr>
<tr><td><em>(*)</em></td><td><code>display</code></td><td>Einer der Werte <code>(relurl, fullurl, filename)</code></td><td><code>filename</code></td></tr>
<tr><td><em>(*)</em></td><td><code>filetype</code></td><td>Notieren Sie 'f' für Dateien (files) und 'd' um Verzeichnisse (directories) aufzulisten. 'fd' für beides.</td><td><code>'f'</code></td></tr>
</table>
<h3>Voraussetzungen</h3>
<p>Dieses Plugin setzt voraus, dass das Modul <a href="http://dev.cmsmadesimple.org/projects/gbfilepicker">GBFilePicker</a> (© Georg Busch(nan)) installiert ist.</p>  
<?php
}

function smarty_cms_about_function_list_dir() {
   ?>
   <p>Author: Ludger Merkens<kontakt@cms-merkens.de> (© 2010)</p>
   <p>dieses Plugin beruht in weiten Teilen auf einem Posting von Georg Busch (nan) im Forum von CMS made simple. Das dort veröffentlichte <code>udt</code> wurde leicht erweitert und in ein Plugin konvertiert.</p>
   <p>Version: 1.0</p>
   <?php
}

?>

Danach im Template content block und eine foreach schleife erstellen um mehrere Dateien auswählen zu können.

[== smarty ==]
{content block="bilder" label="Bitte Bild auswählen" description='Beschreibung' block_type='select_multiple' allow_none=true items=":::list_dir dir='images' filetype='f' :::" smarty=true assign='listimg' sortable='true' default="default.jpg"}
{assign var='img_array' value="|"|explode:$listimg}
{foreach from=$img_array item="img_name"} 
      <img src="{root_url}/uploads/images/{$img_name}" alt="{$img_name}" />
     {/foreach}

So werden alle Bilder aus vorgegeben Verzeichnis aufgelistet, mit checkbox können auch mehrere Bilder ausgewählt werden, na ja die restlichen AC parameter wärst eh schon kennen.

Offline

#22 03. April 2011 20:44

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

Anstelle von

if($GBFilePicker =& cmsms()->modules['GBFilePicker']['object'])

würde ich allerdings eher

if($GBFilePicker =& cms_utils::get_module('GBFilePicker'))

verwenden.
Ist perspektivisch sicherer.
(Ich denke solche Plugins werde ich auch mit in GBFilePicker integrieren)


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#23 03. April 2011 21:06

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

finde ich nicht so gut da man ja dann ne große liste hat was alles son bissl unübersichtlich macht. da habe ich lieber die liste aus dem filepicker popup.
außerdem müsstet man ja vorher die bilder über ein modul oder ftp hochladen und sieht keine vorschau.

Offline

#24 04. April 2011 07:13

uniqu3
Server-Pate
Ort: Feldkirchen in Kärnten
Registriert: 20. November 2010
Beiträge: 305
Webseite

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

@nicmare
Natürlich ist es nicht die beste Lösung aber ein Übergang bis NaN mit GBFilePicker und AC so weit ist  smile
Da bei mir meistens zum Beispiel Gallery Modul installiert ist, verwende ich es um Gallery Ordner anzuzeigen, so habe ich eine Galerie namens "Sidebar" oder "Header" und diese lasse ich mir im backend anzeigen und Kunde kann aus dropdown Auswahl oder mittels checkboxen die Untergalerien auswählen.
Gallery Modul hat bulk upload daher ist es nicht viel unterschied ob Kunde fünf Bilder mit GBFilePicker hoch lädt oder zum Gallery Modul zwei mal klickt und diese dort hoch lädt.  smile

Offline

#25 13. Mai 2011 22:43

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: Undefinierte Anzahl von zusätzlichen Inhaltsblöcken

NaN schrieb:
if($GBFilePicker =& cms_utils::get_module('GBFilePicker'))

Nachtrag:
Aus irgendeinem mir unbekannten Grund funktioniert das innerhalb von Modulen nicht, wenn die Variable genauso heißt wie das Modul.
Bsp.:

$GBFilePicker =& cms_utils::get_module('GBFilePicker');

oder

$GBFilePicker =& $this->GetModuleInstance('GBFilePicker');

führt zu einem Fehler, sobald man auf $GBFilePicker->Funktion() zugreifen will.
Besser wäre also

$gbfp =& cms_utils::get_module('GBFilePicker');

oder

$gbfp =& $this->GetModuleInstance('GBFilePicker');

(betrifft übrigens alle Module)


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline