ich verwende das u.a. Modul als geteilte Hauptnavigation.
Leider funktioniert MR damit nicht. Kann mir jemand helfen?
Contenido Version: 4.8.12
AMR-Version: 0.5.4
Hauptnavigation Kategorie 1
Input
Code: Alles auswählen
?><?php
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : Hauptnavigation
* Author(s) : Jan Lengowski, Andreas Lindner, 4fb
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 12.08.2005
************************************************/
#Select tree
?>
<table cellspacing="0" cellpadding="0" cellpadding="4">
<tr>
<td class="text"><?php echo mi18n("Baum wählen"); ?>:</td>
<td>
<select name="CMS_VAR[0]">
<option value="0">-- <?php echo mi18n("kein"); ?> --</option>
<?php
$sql = "
SELECT
A.idcat,
C.name
FROM
".$cfg["tab"]["cat_tree"]." AS A,
".$cfg["tab"]["cat"]." AS B,
".$cfg["tab"]["cat_lang"]." AS C
WHERE
A.idcat = B.idcat AND
B.idcat = C.idcat AND
C.idlang = '".$lang."' AND
B.idclient = '".$client."' AND
C.visible = 1 AND
A.level = '0'
ORDER BY
A.idtree";
$db->query($sql);
while ( $db->next_record() ) {
if ( "CMS_VALUE[0]" == $db->f("idcat") ) {
echo '<option selected="selected" value="'.$db->f("idcat").'">'.$db->f("name").'</option>';
} else {
echo '<option value="'.$db->f("idcat").'">'.$db->f("name").'</option>';
}
}
?>
</select>
</td>
</tr>
</table>
<?php
Code: Alles auswählen
<?php
/************************************************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Hauptnavigation
* Author(s) : Jan Lengowski, Andreas Lindner, 4fb
* Copyright : Contenido - four for business, Andreas Lindner
* Created : 12.08.2005
* Modified : 12.11.2007 - Maron Chatzifrantzis, angepasst auf
* Basis von OSI's "geteilte Navigation 4.6.2 BETA"
************************************************************************/
#System properties in use:
#Type: navigation, Name: idcat_homepage
#Contains idcat of tree to be displayed in main navigation
#Includes
cInclude("frontend", "includes/functions.navigation.php");
#If no tree is selected, use client setting
$start_cat = "CMS_VALUE[0]";
if ($start_cat=='') {
$cApiClient = new cApiClient($client);
$start_cat = $cApiClient->getProperty('navigation','idcat_homepage');
}
if ( !is_object($db2) ) {
$db2 = new DB_Contenido;
}
/**
* Check if a category is child
* of another category
*
* @return boolean true/false
* @author Jan Lengowski <Jan.Lengowski@4fb.de>
* @copyright four for business AG 2003
*/
if (!function_exists("catIsChildOf")) {
function catIsChildOf($id, $idparent) {
global $cfg, $client, $lang;
$db = new DB_Contenido;
$parent = $id;
while ( $parent != 0 ) {
$sql = "SELECT
a.parentid
FROM
".$cfg["tab"]["cat"]." AS a,
".$cfg["tab"]["cat_lang"]." AS b
WHERE
a.idclient = '".$client."' AND
b.idlang = '".$lang."' AND
a.idcat = b.idcat AND
a.idcat = '".$parent."'";
$db->query($sql);
$db->next_record();
$parent = $db->f("parentid");
if ($parent == $idparent) {
return true;
}
}
return false;
}
}
if ( catIsChildOf($idcat, $start_cat) ) {
$sel_idcat = $idcat;
} else {
$sel_idcat = $start_cat;
}
/* Include Template Class */
include_once($cfg["path"]["contenido"] . 'classes/class.template.php');
/**
* Array storing alle the
* navigation data
*/
$navitems = array();
/* Template Instance */
$tpl = new Template;
/**
* Recursive function for creating
* the navigation array
* @param Int $idcat Category id
*/
function nav($idcat) {
global $navitems, $client, $lang, $cfg, $start_cat;
$db = new DB_Contenido;
$db2 = new DB_Contenido;
$sql = "SELECT parentid FROM ".$cfg["tab"]["cat"]." WHERE idcat = '$idcat'";
$db->query($sql);
$db->next_record();
$parentid = $db->f("parentid");
if ( $parentid == 0 ) {
if ( $idcat != $start_cat ){
$navitems = array();
$sql = "SELECT
A.idcat,
C.name,
C.public,
C.idcatlang
FROM
".$cfg["tab"]["cat_tree"]." AS A,
".$cfg["tab"]["cat"]." AS B,
".$cfg["tab"]["cat_lang"]." AS C
WHERE
A.idcat = B.idcat AND
B.idcat = C.idcat AND
B.idclient = '$client' AND
C.idlang = '$lang' AND
C.visible = '1' AND
B.parentid = '".$start_cat."'
ORDER
BY A.idtree";
$db->query($sql);
while ($db->next_record()) {
/* Check for external redirects... */
$sql = "SELECT
a.external_redirect AS ext,
a.idartlang AS idartlang
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b,
".$cfg["tab"]["cat"]." AS c
WHERE
b.idcat = '".$db->f("idcat")."' AND
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$flag = false;
while ($db2->next_record()&&!$flag) {
if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
{
$flag = true;
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"target" => $target,
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"));
}
}
}
}
return true;
}
$sql = "SELECT
A.idcat,
C.name,
C.public,
C.idcatlang
FROM
".$cfg["tab"]["cat_tree"]." AS A,
".$cfg["tab"]["cat"]." AS B,
".$cfg["tab"]["cat_lang"]." AS C
WHERE
A.idcat = B.idcat AND
B.idcat = C.idcat AND
B.idclient = '$client' AND
C.idlang = '$lang' AND
C.visible = '1' AND
B.parentid = '$parentid'
ORDER BY
A.idtree";
$db->query($sql);
while ($db->next_record()) {
/* Check for external redirects... */
$sql = "SELECT
a.external_redirect AS ext,
a.idartlang AS idartlang
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b,
".$cfg["tab"]["cat"]." AS c
WHERE
b.idcat = '".$db->f("idcat")."' AND
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
$flag = false;
while ($db2->next_record() && !$flag) {
if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
{
$flag = true;
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$tmp_nav[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"),
"target" => $target);
}
}
}
$tmp_nav[$idcat]["sub"] = $navitems;
$navitems = $tmp_nav;
/* Function call */
nav($parentid);
} // end function
$sql = "SELECT
A.idcat,
C.name,
C.public,
C.idcatlang
FROM
".$cfg["tab"]["cat_tree"]." AS A,
".$cfg["tab"]["cat"]." AS B,
".$cfg["tab"]["cat_lang"]." AS C
WHERE
A.idcat = B.idcat AND
B.idcat = C.idcat AND
B.idclient = '$client' AND
C.idlang = '$lang' AND
C.visible = '1' AND
B.parentid = '$sel_idcat'
ORDER BY
A.idtree";
$db->query($sql);
while ( $db->next_record() ) {
/* Check for external redirects... */
$sql = "SELECT
a.external_redirect AS ext,
a.idartlang AS idartlang
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b,
".$cfg["tab"]["cat"]." AS c
WHERE
b.idcat = '".$db->f("idcat")."' AND
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
#$db2->next_record();
$flag = false;
while ($db2->next_record()&&!$flag) {
if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
{
$flag = true;
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"),
"target" => $target);
}
}
}
/* Create Navigation Array */
if (($sel_idcat == '') || ($sel_idcat == '0')) {
$cApiClient = new cApiClient($client);
$sel_idcat = $cApiClient->getProperty('navigation', 'idcat_homepage');
}
nav($sel_idcat);
/* Start Output buffer */
ob_start();
foreach( $navitems as $key => $data ) {
/* 1. Navigation level */
if( checkCatPermission($data['idcatlang'],$data['public']) ) {
$tpl->reset();
$tpl->set('d', 'NAME', $data['name']);
$tpl->set('d', 'UL_STAGE', '2');
$tpl->set('d', 'LI_STAGE', '1');
$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl->next();
if( $idcat == $data['idcat'] && empty($data['sub']) ) {
$tpl->generate('templates/mnavi1_on.html', 0, 0);
} elseif( $idcat == $data['idcat'] && !empty($data['sub']) ) {
$tpl->generate('templates/mnavi1_on_open.html', 0, 0);
} elseif( $idcat != $data['idcat'] && !empty($data['sub']) && catIsChildOf($sel_idcat, $data['idcat']) ) {
$tpl->generate('templates/mnavi1_off_open.html', 0, 0);
} else {
$tpl->generate('templates/mnavi1_off.html', 0, 0);
$second_subdata = $data['sub'];
}
} // end if
} // end foreach
/* Read out buffer */
$html = ob_get_contents();
/* Clean buffer */
ob_end_clean();
/* Output buffer-contents */
echo "$html";
?>
Input (leer)
Output
Code: Alles auswählen
<?php
if (!isset($tpl) || !is_object($tpl)) {
$tpl = new Template();
}
$sText = "CMS_HTMLHEAD[100]";
$tpl->reset();
if ($contenido && $edit) {
$tpl->set('s', 'text', $sText);
$tpl->generate('templates/headline_h2.html');
} else {
if ($sText != '') {
$tpl->set('s', 'text', strip_tags($sText));
$tpl->generate('templates/headline_h2.html');
}
}
echo "<div id=\"hauptnavi_ebene2\">";
/* Include Template Class */
include_once($cfg["path"]["contenido"] . 'classes/class.template.php');
/**
* Array storing alle the
* navigation data
*/
$navitems = array();
/* Template Instance */
$tpl = new Template;
$sql = "SELECT
A.idcat,
C.name,
C.public,
C.idcatlang
FROM
".$cfg["tab"]["cat_tree"]." AS A,
".$cfg["tab"]["cat"]." AS B,
".$cfg["tab"]["cat_lang"]." AS C
WHERE
A.idcat = B.idcat AND
B.idcat = C.idcat AND
B.idclient = '$client' AND
C.idlang = '$lang' AND
C.visible = '1' AND
B.parentid = '$sel_idcat'
ORDER BY
A.idtree";
$db->query($sql);
while ( $db->next_record() ) {
/* Check for external redirects... */
$sql = "SELECT
a.external_redirect AS ext,
a.idartlang AS idartlang
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b,
".$cfg["tab"]["cat"]." AS c
WHERE
b.idcat = '".$db->f("idcat")."' AND
c.idclient = '".$client."' AND
c.idcat = b.idcat AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db2->query($sql);
#$db2->next_record();
$flag = false;
while ($db2->next_record()&&!$flag) {
if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
{
$flag = true;
$target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
$navitems[$db->f("idcat")] = array("idcat" => $db->f("idcat"),
"name" => $db->f("name"),
"public" => $db->f("public"),
"idcatlang" => $db->f("idcatlang"),
"target" => $target);
}
}
}
/* Create Navigation Array */
if(($sel_idcat=='')||($sel_idcat=='0')){
$cApiClient = new cApiClient($client);
$sel_idcat = $cApiClient->getProperty('navigation', 'idcat_homepage');
}
nav($sel_idcat);
/* Start Output buffer */
ob_start();
foreach ($navitems as $key => $data) {
if (checkCatPermission($data['idcatlang'],$data['public'])) {
/* 2. Navigation level */
if( is_array($data['sub']) ) {
foreach( $data['sub'] as $key => $data ) {
if( checkCatPermission($data['idcatlang'],$data['public']) ) {
$tpl->reset();
$tpl->set('d', 'NAME', $data['name']);
$tpl->set('d', 'UL_STAGE', '3');
$tpl->set('d', 'LI_STAGE', '2');
$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl->next();
if( $idcat == $data['idcat'] && empty($data['sub']) ) {
$tpl->generate('templates/mnavi2_on.html', 0, 0); # AKTIVER PUNKT HAT KEINE SUBCATS
} elseif( $idcat == $data['idcat'] && !empty($data['sub']) ) {
$tpl->generate('templates/mnavi2_on_open.html', 0, 0); # AKTIVER PUNKT HAT SUBCATS
} elseif( $idcat != $data['idcat'] && is_array($data['sub']) && catIsChildOf($sel_idcat, $data['idcat']) ) {
$tpl->generate('templates/mnavi2_off_open.html', 0, 0); # PASSIVER PUNKT HAT SUBCATS
} else {
$tpl->generate('templates/mnavi2_off.html', 0, 0); # PASSIVER PUNKT HAT KEINE SUBCATS
}
if( is_array( $second_subdata ) ) {
$last_cat = end( $second_subdata );
if( $data['idcat'] == $last_cat['idcat'] ) {
$tpl->generate('templates/mnavi2_end.html', 0, 0);
} // end if
} // end if
$third_subdata = $data['sub'];
/* 3. Navigation level */
if( is_array($data['sub']) ) {
foreach( $data['sub'] as $key => $data ) {
if( checkCatPermission($data['idcatlang'],$data['public']) ) {
$tpl->reset();
$tpl->set('d', 'NAME', $data['name']);
$tpl->set('d', 'UL_STAGE', '4');
$tpl->set('d', 'LI_STAGE', '3');
$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl->next();
if( $idcat == $data['idcat'] && empty($data['sub'])) {
$tpl->generate('templates/mnavi3_on.html', 0, 0);
} elseif( $idcat == $data['idcat'] && !empty($data['sub']) ) {
$tpl->generate('templates/mnavi3_on_open.html', 0, 0);
} elseif( $idcat != $data['idcat'] && is_array($data['sub']) && catIsChildOf($sel_idcat, $data['idcat']) ) {
$tpl->generate('templates/mnavi3_off_open.html', 0, 0);
} else {
$tpl->generate('templates/mnavi3_off.html', 0, 0);
}
if( is_array($third_subdata) ) {
$last_cat = end( $third_subdata );
if( $data['idcat'] == $last_cat['idcat'] ) {
$tpl->generate('templates/mnavi3_end.html', 0, 0);
} // end if
} // end if
$forth_subdata = $data['sub'];
/* 4. Navigation level */
if( is_array($data['sub']) ) {
foreach( $data['sub'] as $key => $data) {
if( checkCatPermission($data['idcatlang'],$data['public']) ) {
$tpl->reset();
$tpl->set('d', 'NAME', $data['name']);
$tpl->set('d', 'UL_STAGE', '5');
$tpl->set('d', 'LI_STAGE', '4');
$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl->next();
if( $idcat == $data['idcat'] && empty($data['sub']) ) {
$tpl->generate('templates/mnavi4_on.html', 0, 0);
} elseif( $idcat == $data['idcat'] && !empty($data['sub']) ) {
$tpl->generate('templates/mnavi4_on_open.html', 0, 0);
} elseif( $idcat != $data['idcat'] && is_array($data['sub']) && catIsChildOf($sel_idcat, $data['idcat']) ) {
$tpl->generate('templates/mnavi4_off_open.html', 0, 0);
} else {
$tpl->generate('templates/mnavi4_off.html', 0, 0);
}
if( is_array($forth_subdata) ) {
$last_cat = end( $forth_subdata );
if( $data['idcat'] == $last_cat['idcat'] ) {
$tpl->generate('templates/mnavi4_end.html', 0, 0);
} // end if
} // end if
$fith_subdata = $data['sub'];
/* 5. Navigation level */
if( is_array($data['sub']) ) {
foreach( $data['sub'] as $key => $data ) {
if( checkCatPermission($data['idcatlang'],$data['public']) ) {
$tpl->reset();
$tpl->set('d', 'NAME', $data['name']);
$tpl->set('d', 'UL_STAGE', '6');
$tpl->set('d', 'LI_STAGE', '5');
$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl->next();
if( $idcat == $data['idcat'] && empty($data['sub']) ) {
$tpl->generate('templates/mnavi5_on.html', 0, 0);
} else {
$tpl->generate('templates/mnavi5_off.html', 0, 0);
}
if( is_array($fith_subdata) ) {
$last_cat = end($fith_subdata);
if( $data['idcat'] == $last_cat['idcat'] ) {
$tpl->generate('templates/mnavi5_end.html', 0, 0);
} // end if
} // end if
} // end if
} // end foreach
} // end if
} // end if
} // end foreach
} // end if
} // end if
} // end foreach
} // end if
} // end if
} // end foreach
} // end if
} // end if
} // end foreach
/* Read out buffer */
$html = ob_get_contents();
/* Clean buffer */
ob_end_clean();
/* Output buffer-contents */
echo "$html";
?>
</div>