Seite 1 von 1
"Sie befinden sich:"-Modul
Verfasst: Di 3. Nov 2009, 12:16
von dmf
Hallo zusammen!
Erstmal sorry für den komischen Threadnamen, aber leider weiß ich nicht wie das Modul heißen könnte.
Ich suche ein Modul wie folgt. Es soll auf jeder Seite an einer bestimmten Stelle Anzeigen wo man sich gerade befindet.
Ein Beispiel:
Man ist in der Kategorie Portofolio im Unterpunkt Websites und dort auf "Design 1".
Jetzt möchte ich eine Anzeige haben die dies wie folgt darstellt:
"Portofolio -> Websites -> Desisgn 1"
Gibt es sowas bereits? Für einen Link wäre ich sehr dankbar!
Mit freundlichem Gruß
Re: "Sie befinden sich:"-Modul
Verfasst: Di 3. Nov 2009, 13:09
von BagHira
Servus dmf,
das sollte eigentlich im Demomandaten mit drinne sein?
Bzw. suche mal nach Breadcrumb oder conCreateLocationString.
Ansonnsten versuche es mal hiermit:
Code: Alles auswählen
<?php
#Settings
$separator = '';
#Get path to root
$dummy = conCreateLocationString($idcat, ' '.$separator.' ', $retval, true, "navipath", 1);
if ($retval=='') {
$retval=' ';
} else {
$pattern = "'>.*?<'";
preg_match_all($pattern, $retval, $matches);
$matches = $matches[0];
$retval = substr($matches[0], 1, strlen($matches[0]) - 2);
}
echo $retval;
?>
Re: "Sie befinden sich:"-Modul
Verfasst: Di 3. Nov 2009, 13:12
von Oldperl
Hallo dmf,
ersteinmal willkommen im Contenido Forum.
Du suchst eine Brotkrumen-Navigation, oder auf Neudeutsch: Breadcrumb Navigation.
Schau mal in einer Demoinstallation unter Style->Module, dort gibt es das entsprechende Modul
Navigation_Breadcrumb.
Gruß aus Franken
Ortwin
Edit: Da war Holger schneller.

Re: "Sie befinden sich:"-Modul
Verfasst: Di 3. Nov 2009, 13:46
von _wiewo_
hier mal mein kleines Breadi was ich immer einsetze
Code: Alles auswählen
<?php
cInclude('classes', 'Contenido_FrontendNavigation/Contenido_FrontendNavigation_Breadcrumb.class.php');
$oBreadcrumb = new Contenido_FrontendNavigation_Breadcrumb($db, $cfg, $client, $lang, $cfgClient);
$oBreadCategories = $oBreadcrumb->get($idcat, 1, true);
$oArticle = new Article($idart, $client, $lang);
$sArticleTitle = $oArticle->getField('title');
$sArticleLink = Contenido_Url::getInstance()->build(array('idart' => $idart, 'lang' => $lang, 'client' => $client));
echo '<p id="breadcrumbs"><span>Sie sind hier</span>';
foreach ($oBreadCategories as $oBreadCategory) {
$iCategoryID = $oBreadCategory->getIdCat();
$sCategoryName = $oBreadCategory->getCategoryLanguage()->getName();
$sCategoryLink = Contenido_Url::getInstance()->build(array('idcat' => $iCategoryID, 'lang' => $lang, 'client' => $client));
echo ' <span>»</span> <a href="' . $sCategoryLink . '" title="zur Kategorie -> ' . $sCategoryName . '">' . $sCategoryName . '</a>';
}
echo ' <span>»</span> <a href="' . $sArticleLink . '" title="zum Artikel -> ' . $sArticleTitle . '">' . $sArticleTitle . '</a>';
echo '</p>';
?>
nicht dokumentiert, aber hoffe verständlich

Re: "Sie befinden sich:"-Modul
Verfasst: Do 5. Nov 2009, 11:20
von Kurby
Hi!
Vielen Dank für das recht einfach gehaltene Modul, es ist genau das was ich gesucht habe
Gruß
Michael
Re: "Sie befinden sich:"-Modul
Verfasst: Mo 9. Nov 2009, 13:36
von dmf
Danke, genau das was ich gesucht habe! :

Re: "Sie befinden sich:"-Modul
Verfasst: Mi 2. Dez 2009, 19:31
von Kurby
Moin!
Ich benutze dieses Modul mittlerweile seit eingier Zeit. Allerdings bin ich noch nicht ganz zufrieden damit, da es nur den Artikeltitel anzeigt und den Navigationspunkt dazu.
Mein Seite ist wie folgt aufgebaut:
*Menüpunkt 1
-Unterpunkt 1.1 -> Verweis auf einen Artikel 1.1
-Unterpunkt 1.2 -> Verweis auf einen Artikel 1.2
-Unterpunkt 1.3 -> Verweis auf einen Artikel 1.3
*Menüpunkt 2
-Unterpunkt 2.1 -> Verweis auf einen Artikel 2.1
-Unterpunkt 2.2 -> Verweis auf einen Artikel 2.2
usw.
Wenn ich nun Punkt 1.2 angeklickt habe, sehe ich den Artikel 1.1.
Die derzeitige Breadcrumb Navigation zeigt dann an:
"Sie sind hier: Unterpunkt 1.2 >> Artikel 1.2"
Die erste Ebene wird leider weggelassen.
Kann man diese auch so modifizieren, das sie folgendes anzeigt:
"Sie sind hier: Menüpunkt 1 >> Unterpunkt 1.2 >> Artikel 1.2"
Wobei evtl noch wichtig wäre, dass das ganze Menü selbst in dem Baum "Hauptmenü" steckt. Dies musste ich so machen, da es auf meiner Seite noch ein zweites Menü gibt. Insofern sollte diese Ebene nicht angezeigt werden.
Vielen Dank!
Michael
Re: "Sie befinden sich:"-Modul
Verfasst: Mi 2. Dez 2009, 19:48
von _wiewo_
aus
Code: Alles auswählen
$oBreadCategories = $oBreadcrumb->get($idcat, 1, true);
mach
Code: Alles auswählen
$oBreadCategories = $oBreadcrumb->get($idcat, 0, true);
und dann guck mal was er macht...

Re: "Sie befinden sich:"-Modul
Verfasst: Do 3. Dez 2009, 13:15
von Kurby
Wow, so eine kleine Änderung und alle meine Probleme sind gelöst.
Vielen Dank Christian!
Re: "Sie befinden sich:"-Modul
Verfasst: Do 3. Dez 2009, 13:20
von _wiewo_
reiche das modul im laufe des tages nochmal ein, mit input wo man sowas zb einstellen kann... direkt in der templatekonfiguration
jede kategorie oder jeden artikel einstellen find ich immer so doof,
also kommt die einstellung des moduls in die templatekonfiguration, für einen anderen platz der konfiguration eines solchen seitenübergreifendem moduls wäre ich für vorschläge offen
Re: "Sie befinden sich:"-Modul
Verfasst: Do 3. Dez 2009, 13:45
von idea-tec
System- oder Mandanteneistellungen
Re: "Sie befinden sich:"-Modul
Verfasst: Do 3. Dez 2009, 14:19
von _wiewo_
dann hätte man es natürlich ganz global für alle seiten,
habe eine variante in der man einen haken setzt, das er die eingestellten variablen als mandantenspezifische werte setzen soll.
man KANN aber auch nem Template extra einstellungen geben
die möglichkeit ne kategorie oder einen artikel extra einzustellen, würde bei einer breadnavi glaube ich keinen sinn geben oder?
Re: "Sie befinden sich:"-Modul
Verfasst: Do 3. Dez 2009, 15:37
von _wiewo_
Anbei das Modul in "neu", als xml speichern und importieren
Eingestellt wird es in den Templatevorkonfigurationen....
Setzt man einen Haken bei "Werte Mandantenspezifisch setzen?" werden die Werte in den Mandanteneinstellungen gespeichert und sind automatisch auf allen Seiten aktiv
Setzt man einen Haken bei "Diese anstelle der globalen Werte benutzen?" werden in dem Template nicht die globalen Werte genommen, sondern welche man für dieses Template eingegeben hat.
Code: Alles auswählen
<?xml version="1.0" encoding="ISO-8859-1"?>
<module><name>Breadcrumbs</name>
<description/>
<type>Navigation</type>
<input>?>
<?php
if ($area === 'tpl_cfg')
{
$oTemplateApi = new cApiTemplate($idtpl);
$oClientApi = new cApiClient($client);
if ($_POST)
{
###################################################
### Variablen welche festgelegt wurden auslesen ###
###################################################
$sDelimiterPost = (string) $_POST['delimiter'];
$iRootLevelPost = (int) $_POST['root_level'];
$bClientCfgPost = (bool) $_POST['client_cfg'];
$bUseTemplateCfgPost = (bool) $_POST['use_template_cfg'];
######################################
### Templatekonfigurationen setzen ###
######################################
$oTemplateApi->setProperty('breadcrumb_config', 'delimiter', $sDelimiterPost);
$oTemplateApi->setProperty('breadcrumb_config', 'root_level', $iRootLevelPost);
$oTemplateApi->setProperty('breadcrumb_config', 'use_template_cfg', $bUseTemplateCfgPost);
if ($bClientCfgPost)
{
######################################
### Mandantenkonfiguration setzen ###
######################################
$oClientApi->setProperty('breadcrumb_config', 'delimiter', $sDelimiterPost);
$oClientApi->setProperty('breadcrumb_config', 'root_level', $iRootLevelPost);
}
echo '--- Daten wurden gespeichert ---';
}
########################################
### Templatekonfigurationen auslesen ###
########################################
$sDelimiter = (string) $oTemplateApi->getProperty('breadcrumb_config', 'delimiter');
$iRootLevel = (int) $oTemplateApi->getProperty('breadcrumb_config', 'root_level');
$bUseTemplateCfg = (bool) $oTemplateApi->getProperty('breadcrumb_config', 'use_template_cfg');
$sUseTemplateCfg = ($bUseTemplateCfg ? 'checked="checked"' : '');
?>
<table>
<tr>
<td>Delimiter</td>
<td><input type="text" class="text_medium" name="delimiter"
value="<?php echo $sDelimiter ?>" /></td>
</tr>
<tr>
<td>RootLevel</td>
<td><input type="text" class="text_medium" name="root_level"
value="<?php echo $iRootLevel ?>" /></td>
</tr>
<tr>
<td>Diese anstelle der globalen Werte benutzen?</td>
<td><input type="checkbox" name="use_template_cfg" value="true"
<?php echo $sUseTemplateCfg ?> /></td>
</tr>
<tr>
<td>Werte Mandantenspezifisch setzen?</td>
<td><input type="checkbox" name="client_cfg" value="true" /></td>
</tr>
</table>
<?php
}
else
{
echo 'Bitte konfigurieren Sie die Breadcrumbs unter Templates -> "gewünschtes Template auswählen" -> Vorkonfigurieren';
}</input>
<output><?php
/**
* wtBreadcrumbs
*
* @author Christian Kehres
* @copyright webtischlerei.de
* @version 1.0.0
*/
// ID des aktuellen Templates auslesen
$sQueryTemplateID = "
SELECT
`templateconf`.`idtpl` AS `idtpl`
FROM
`con_art_lang` AS `artlang`
LEFT JOIN
`con_cat_art` AS `catart` ON `artlang`.`idart` = `catart`.`idart`
LEFT JOIN
`con_cat_lang` AS `catlang` ON `artlang`.`idlang` = `catlang`.`idlang` AND `catart`.`idcat` = `catlang`.`idcat`
LEFT JOIN
`con_template_conf` AS `templateconf` ON `templateconf`.`idtplcfg` = if(`artlang`.`idtplcfg` > 0, `artlang`.`idtplcfg`, `catlang`.`idtplcfg`)
WHERE
`artlang`.`idartlang` = " . $idartlang . "
";
$db->query($sQueryTemplateID);
$db->next_record();
$idtpl = $db->f('idtpl');
$oTemplateApi = new cApiTemplate($idtpl);
$bUseTemplateCfg = (bool) $oTemplateApi->getProperty('breadcrumb_config', 'use_template_cfg');
if (!$bUseTemplateCfg)
{
$oClientApi = new cApiClient($client);
$sDelimiter = (string) $oClientApi->getProperty('breadcrumb_config', 'delimiter');
$iRootLevel = (int) $oClientApi->getProperty('breadcrumb_config', 'root_level');
}
else
{
$sDelimiter = (string) $oTemplateApi->getProperty('breadcrumb_config', 'delimiter');
$iRootLevel = (int) $oTemplateApi->getProperty('breadcrumb_config', 'root_level');
}
cInclude('classes', 'Contenido_FrontendNavigation/Contenido_FrontendNavigation_Breadcrumb.class.php');
$oBreadcrumb = new Contenido_FrontendNavigation_Breadcrumb($db, $cfg, $client, $lang, $cfgClient);
$oBreadCategories = $oBreadcrumb->get($idcat, $iRootLevel, true);
$oArticle = new Article($idart, $client, $lang);
$sArticleTitle = $oArticle->getField('title');
$sArticleLink = Contenido_Url::getInstance()->build(array('idart' => $idart, 'lang' => $lang, 'client' => $client));
echo '<p id="breadcrumbs"><span>Sie sind hier</span>';
foreach ($oBreadCategories as $oBreadCategory) {
$iCategoryID = $oBreadCategory->getIdCat();
$sCategoryName = $oBreadCategory->getCategoryLanguage()->getName();
$sCategoryLink = Contenido_Url::getInstance()->build(array('idcat' => $iCategoryID, 'lang' => $lang, 'client' => $client));
echo ' <span>' . $sDelimiter . '</span> <a href="' . $sCategoryLink . '" title="zur Kategorie -> ' . $sCategoryName . '">' . $sCategoryName . '</a>';
}
echo ' <span>' . $sDelimiter . '</span> <a href="' . $sArticleLink . '" title="zum Artikel -> ' . $sArticleTitle . '">' . $sArticleTitle . '</a>';
echo '</p>';
?></output>
</module>
Kann ja wer testen wer es mag, dokumentier das nochn bissl aus und dann kommts ins Forum als eigener Thread
Re: "Sie befinden sich:"-Modul
Verfasst: Mo 29. Mär 2010, 14:27
von GaMbIt_
setz es doch gleich ins Contenido-Wiki
