PDA

Shop Support News Archive - Shopbetreiber News -> Forum : ECB: Boxinhalt in Contentmanager steuern


Schuster Hannes
30.05.2009, 10:42
Hallo liebe Leser und Foren Nutzer,

ist es eigentlich möglich über das Plugin "{content group=xx}" den Inhalt einer neuen Extrabox im Contentmanager zu pflegen??? Wie müssten dann die beiden Box-Dateien aussehen???

Ich habe so einmal versucht:

box_extrabox_1.html


{config_load file="$language/lang_$language.conf" section="boxes"}
"boxInfoLS" id="ExtraBox">
****<h4>{#heading_extrabox_1#}</h4>
****<div align="center" class="boxInfoBodyLS">
********{content group=30}
****</div>
</div>


extrabox_1.php


<?php

$box_smarty = new smarty;
$box_smarty->assign('tpl_path','templates/'.CURRENT_TEMPLATE.'/');

$box_content='';

// set cache ID

XXXXXX??????

$box_smarty->assign('BOX_CONTENT', $extrabox_1_string);
$box_smarty->assign('language', $_SESSION['language']);
$box_banner = $box_smarty->fetch(CURRENT_TEMPLATE . '/boxes/box_extrabox_1.html');

$smarty->assign('box_EXTRABOX_1', $BOX_extrabox_1);

?>

Schuster Hannes
01.06.2009, 00:28
Oder ist das mit dem Content Plugin nicht zu realisieren???
Gibt es vielleicht noch eine andere Möglichkeit???

Ich denke die .html Datei sollte dann doch so aussehen:


{config_load file="$language/lang_$language.conf" section="boxes"}
"boxInfoLS" id="ExtraBox">
****<h4>{#heading_extrabox_1#}</h4>
****<div align="center" class="boxInfoBodyLS">
********{$BOX_CONTENT}
****</div>
</div>


Aber wie binde ich dises Smarty Plugin {content group=30} in die extrabox_1.php ein.

Hat jemand eine Idee?

Koelbl
04.06.2009, 01:35
Wenn ich das so richtig sehe soll hier ein Content über den Contentmanager pflegbar sein und direkt in einer Box dargestellt werden. Also nicht eine neue Box wie z.B. 'Mehr über...'.

Ich würde sagen das die Content Gruppe hier nicht so wichtig ist, da nur die Pflege von Content in verschieden Sprachen über die Gruppe geregelt wird.

Ich denke man sollte das hier über die Box (content/information) regeln. Dazu muss in der Datnbanktabelle cm_file_flags ein neuer Eintrag gemacht werden. Z.B. file_flag = 2 / flie_flag_name = extrabox_1.

Im Contentmanager legt man dann einen neuen Content mit dieser Box an.

Der Inhalt von box_extrabox_1.html kann dann so bleiben:
{config_load file="$language/lang_$language.conf" section="boxes"}
{snippet file=box_head.html heading=#heading_extrabox_1# class=boxInfoLS id=box_extrabox_1}
****<div align="center" class="boxInfoBodyLS">
********{$BOX_CONTENT}
****</div>
{snippet file=box_foot.html}

Der Inhalt von extrabox_1.php sollte dann etwa so aussehen:
$box_smarty = new smarty;
$box_smarty->assign('tpl_path','templates/'.CURRENT_TEMPLATE.'/');

$box_content='';

$Shop/Onlineshop / Onlineshop_content_query = xtc_db_query("SELECT
******************** content_Text
******************** FROM ".TABLE_CONTENT_MANAGER."
******************** WHERE file_flag=2
******************** AND languages_id='".(int) $_SESSION['languages_id']."'");
$Shop/Onlineshop / Onlineshop_content_data = xtc_db_fetch_array($Shop/Onlineshop / Onlineshop_content_query);

$box_smarty->assign('BOX_CONTENT', $Shop/Onlineshop / Onlineshop_content_data['content_Text']);
$box_smarty->assign('language', $_SESSION['language']);
$box_extrabox_1 = $box_smarty->fetch(CURRENT_TEMPLATE . '/boxes/box_extrabox_1.html');

$smarty->assign('box_EXTRABOX_1', $box_extrabox_1);

Xantiva
05.06.2009, 12:50
Wenn Ihr eine fertige Lösung habt, bitte wieder hier posten, damit wir es im Wiki einpflegen können! Danke

Schuster Hannes
12.06.2009, 00:28
Ich habe das jetzt mit einem etwas modifizierten MoDul "Box-Content-Manager" auf eine für mich optimale Lösung gelöst.
Mit einem extra Contentmanager für eine beliebige Anzahl von Boxen, die sich auch hier ein und ausblenden lassen.

Die Lösung von Koebl funktioniert auch, ist aber nicht ganz so benutzerfreunlich.

Hobbybastler
12.06.2009, 01:01
''>ZITAT(Ex-Entwickler @ Jun 5 2009, 11:50) 176478
Wenn Ihr eine fertige Lösung habt, bitte wieder hier posten, damit wir es im Wiki einpflegen können! Danke
[/b]

Also eine fertige Lösung für eine weitere Box mit Content die wahlweise plaziert werden kann, stell ich mal hier bereit.

Wir nenne mal die neue Box {$box_INFORMATION_B}

Schritt 1:
in das Verzeichnis:/template/xtc4/source/boxes

und dort die Datei kopieren von:
information.php
nach
information_b.php

in das Verzeichnis:/template/xtc4/boxes

die Datei
box_information.html
nach
box_information_b.html
kopieren

Schritt 2:
Änderungen in der Datei:/template/xtc4/source/boxes/information_b.php

alle Einträge die "information" heissen mit "information_b" ersetzen.

$smarty->assign('box_INFORMATION',$box_information);
ändern auf
$smarty->assign('box_INFORMATION_B',$box_information_b);


Schritt 3:
Änderung des Wertes file_flag von 0 auf 2 in der information_b.php erfolgen (Zeile 41-49):

$content_query = "SELECT
content_id,
categories_id,
parent_id,
content_title,
content_group
FROM ".TABLE_CONTENT_MANAGER."
WHERE languages_id='".(int) $_SESSION['languages_id']."'
and file_flag=0 ".$group_check." and content_status=1 order by sort_order";

Hier den Wert ändern von file_flag=0 auf file_flag=2

Danach sollte es so aussehen:

$content_query = "SELECT
content_id,
categories_id,
parent_id,
content_title,
content_group
FROM ".TABLE_CONTENT_MANAGER."
WHERE languages_id='".(int) $_SESSION['languages_id']."'
and file_flag=2 ".$group_check." and content_status=1 order by sort_order";


Schritt 4:
Änderung in der Datei: box_information_b.html

ändere den Smarty Tag von:

{#heading_infobox#}
auf:
{#heading_information_b_box#}

Beispeil:
<td class="infoBoxHeading">{#heading_information_b_box#}</td>


Schritt 5:
Die neue Box muss nun in der boxes.php eingebunden werden.
Dazu folgende Datei bearbeiten:/template/xtc4/source/boxes.php

Nach der zeile (24):

require(DIR_WS_BOXES . 'information.php');
folgende Zeile einfügen:
require(DIR_WS_BOXES . 'information_b.php');

Schritt 6:
Nun den Smarty Tag in die index.html des Template [CSS Shop/Onlineshop Template s oder Tabellen Shop/Onlineshop Template s ] s einfügen.
Bearbeite nun die Datei "index.html" im Verzeichnis:/template/xtc4/index.html

Füge{$box_INFORMATION_B}
entweder in die Linke oder in die Rechte Boxenleiste ein.

Hier im Beispiel in die Link [ Verweis auf andere Stelle der Webseite ]e Box:
<td>{$box_CATEGORIES}{$box_ADD_QUICKIE}{$box_CONTENT}{ $box_INFORMA
TION}{$box_INFORMATION_B}{$box_LAST_VIEWED}{$box_R EVIEWS}{$box_SEARCH}
{$box_SPECIALS}{$box_WHATSNEW}</td>

Schritt 7:
Jetzt noch die Änderung in der Datenbank (mit phpMyAdmin oder ähnlichem).
Suche nun in Deiner Datenbank die Tabelle:cm_file_flags

Erzeuge einen neuen Eintrag in der Tabelle cm_file_flags und fülle die Felder wie folgt:

file_flag : 2
file_flag_name : Zusatzinformationen

Dieser Name wird dann in der Auswahlbox des Content-Managers stehen und es steht Dir
natürlich frei, einen beliebig anderen Namen zu verwenden.


Schritt 8:
Als letztes die Änderungen an der Sprachdatei für die Überschrift in der neuen Box.
Gehe in des Verzeichnis:lang/german/lang_german.conf

Bearbeite nun die Datei: lang_german.conf
Füge im Abschnitt (Zeile 456-495) danach folgendes ein:

heading_information_b_box = 'Zusatzinformationen'
(Das ist natürlich wieder frei wählbar)

Das gleiche gilt für Englisch:lang/english/lang_english.conf


[b]Jetzt kann der Content erzeugt werden:
Melde Dich als Admin im Shop/Onlineshop an und gehe dann zum Content-Manager. Erstelle einen neuen
Content.

Jetzt solltest Du bei "Box" die neue Box "Zusatzinformationen" auswählen können und der
Box den neuen Content zuweisen.

Nicht vergessen, auch das Kästchen "Sichtbar" anklicken, da sonst keine Inhalte in der neuen
Box erscheinen.