Hier mal kurz mein Modul für die Allgemeinheit!
Mit dem Modul kann man in der Template-Konfiguration einen Artikel im Layout anzeigen lassen (entweder einen Standard-Artikel, einen individuell ausgewählten oder einen Zufallsartikel aus der Kategorie).
Wichtig dabei ist natürlich, das diese kleinen Artikel in etwa nur aus einem einfachen Layout bestehen.
Code: Alles auswählen
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Include Text</title>
<link rel="stylesheet" href="css/styles.css" type="text/css">
</head>
<body>
<!--start:content-->
<container id="555" name="TeaserBox flexibel 1" default="" mode="fixed">TeaserBox flexibel 1</container>
<container id="556" name="TeaserBox flexibel 2" default="" mode="fixed">TeaserBox flexibel 2</container>
<container id="557" name="TeaserBox flexibel 3" default="" mode="fixed">TeaserBox flexibel 3</container>
<!--end:content-->
</body>
</html>
Hier kann man dann indivduell seine Container zuweisen.
Und das Modul einfach in sein Haupt-Template packen:
Input
Code: Alles auswählen
?><?php
$Showroomoption="CMS_VALUE[9922]";
echo '<table cellspacing="0" cellpadding="2" border="0" width="100%"><tr><td>'.mi18n("Bitte wählen Sie ob ein bestimmter Showroom angezeigt werden soll <br />(individuelle Auswahl - dann bitte in der Auswahlboxen den Gewünschten auswählen), <br /> ob der Haupt-Showroom oder eine zufälliger Showroom aus dem Pool angezeigt werden soll.").'</td></tr><tr><td>'."\n";
if ($Showroomoption== "zufaellig") {
echo '<input type="radio" name="CMS_VAR[9922]" value="zufaellig" checked>'.mi18n("Zufällig").' <input type="radio" name="CMS_VAR[9922]" value="standard">'.mi18n("Standard").' <input type="radio" name="CMS_VAR[9922]" value="auswahl">'.mi18n("individuelle Auswahl").'';
} else if ($Showroomoption== "standard") {
echo '<input type="radio" name="CMS_VAR[9922]" value="zufaellig">'.mi18n("Zufällig").' <input type="radio" name="CMS_VAR[9922]" value="standard" checked>'.mi18n("Standard").' <input type="radio" name="CMS_VAR[9922]" value="auswahl">'.mi18n("individuelle Auswahl").'';
} else {
echo '<input type="radio" name="CMS_VAR[9922]" value="zufaellig">'.mi18n("Zufällig").' <input type="radio" name="CMS_VAR[9922]" value="standard">'.mi18n("Standard").' <input type="radio" name="CMS_VAR[9922]" value="auswahl" checked>'.mi18n("individuelle Auswahl").'';
}
echo '</td></tr>'."\n";
echo '</table>'."\n";
/**
* $RCSfile$
*/
#Get current settings
$name = "CMS_VAR[1]";
$cms_idcat = "CMS_VALUE[1]";
$cms_idcatart = "CMS_VALUE[2]";
#Cat selector
echo buildCategorySelect($name, $cms_idcat);
$bDebug = false;
if ($bDebug)
echo "<pre>cat $cms_idcat catart $cms_idcatart client $client lang $lang <br>webpath ".$cfgClient[$client]['path']['htmlpath']."</pre>";
echo '<table cellpadding="0" cellspacing="0" border="0">';
#Article selector
echo '
<tr><td class="text_medium" style="padding:5px">'.mi18n("Artikel wählen").': </td></tr>
<tr><td class="text_medium" style="padding:5px">';
echo '<select name="CMS_VAR[2]" style="width:240px">';
echo '<option value="" selected>'.i18n("Please choose").'</option>';
if ($cms_idcat != "0" && strlen($cms_idcat) > 0) {
$sql = "SELECT
a.title AS title,
b.idcatart AS idcatart
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b
WHERE
b.idcat = '".$cms_idcat."' AND
a.idart = b.idart AND
a.idlang = '".$lang."'";
$db->query($sql);
while ($db->next_record()) {
$catartid = $db->f('idcatart');
$title = $db->f('title');
if ($cms_idcatart != $catartid) {
echo '<option value="'.$catartid.'"> '.$title.'</option>';
} else {
echo '<option selected="selected" value="'.$catartid.'"> '.$title.'</option>';
}
}
}
echo '</select> <input type="image" src="images/submit.gif">';
echo '</td></tr></table>';
?><?php
Output
Code: Alles auswählen
<?php
$Showroomoption="CMS_VALUE[9922]";
if ($Showroomoption == "zufaellig") {
#Get current settings
$cms_idcat = "CMS_VALUE[1]";
$cms_idcatart = "";
$bDebug = false;
#Check data
$cms_idcat = (int)$cms_idcat;
$cms_idcatart = (int)$cms_idcatart;
/*
* RAMDOM FUNCTION - START
*/
$randomfunction = false;
if( !$cms_idcatart && $cms_idcat )
{
$randomfunction = true;
$sql = "SELECT tblData.value AS headline, "
. "ARTLANG.idart AS id, "
. "ARTLANG.lastmodified AS lastmodified, "
. "ARTLANG.created AS created, "
. "ARTLANG.published AS published, "
. "ARTLANG.artsort AS artsort, "
. "CATLANG.name AS category, "
. "ARTLANG.idartlang AS idartlang, "
. "CATART.idcat AS idcat, "
. "CATART.idcatart AS idcatart "
. "FROM "
. $cfg["tab"]["cat_art"]." AS CATART, "
. $cfg["tab"]["art_lang"]." AS ARTLANG, "
. $cfg["tab"]["cat_lang"]." AS CATLANG, "
. $cfg["tab"]["content"]." AS tblData "
. "WHERE "
. "CATART.idcat = ".$cms_idcat." "
. "AND ARTLANG.idlang = '".$lang."' "
. "AND tblData.idartlang = ARTLANG.idartlang "
. "AND CATLANG.idlang = ARTLANG.idlang "
. "AND CATLANG.idcat = CATART.idcat "
. "AND ARTLANG.idart = CATART.idart ";
$sql .= "AND ARTLANG.online = '1' ";
// Sort by
$sql .= " ORDER BY RAND() ";
// LIMIT
$sql .= "LIMIT 0, 1";
// execute query
$db->query($sql);
$lCount = $db->num_rows();
if( $lCount ) {
$db->next_record();
$cms_idcatart = $db->f("idcatart");
}
}
/*
* RAMDOM FUNCTION - START
*/
if ($bDebug) {
echo "<pre> cat $cms_idcat catart $cms_idcatart - Random-Function:".($randomfunction ? 'yes' : 'no')."</pre>";
}
if ($cms_idcat >= 0 && $cms_idcatart >= 0)
{
$bArticleAvailable = false;
# Get idcat, idcatart, idart and lastmodified from the database
$sql = "SELECT A.idart AS idart, A.idcat AS idcat, A.createcode AS createcode,
A.idcatart AS idcatart, B.lastmodified AS lastmodified
FROM ".$cfg["tab"]["cat_art"]." AS A, ".$cfg["tab"]["art_lang"]." AS B
WHERE
A.idart = B.idart AND
B.online = 1 AND ";
if ($cms_idcatart == 0)
{
$sql .= "A.idcat = '" . $cms_idcat . "' ORDER BY B.lastmodified DESC"; # Only idcat specified, get latest article of category
} else {
$sql .= "A.idcatart = '" . $cms_idcatart . "'"; # Article specified
}
if ($bDebug)
{
echo "<pre>";
print_r($sql);
echo "</pre>";
}
$db->query($sql);
if ($db->next_record())
{
$bArticleAvailable = true;
$iIDCatArt = $db->f("idcatart");
$iIDCat = $db->f("idcat");
$iIDArt = $db->f("idart");
$iCreateCode = $db->f("createcode");
$sModified = $db->f("lastmodified");
}
$db->free();
# Check if category is online or protected
$sql = "SELECT public, visible
FROM " . $cfg["tab"]["cat_lang"] . "
WHERE idcat = '" . $iIDCat . "' AND idlang = '" . $lang . "'";
if ($bDebug)
{
echo "<pre>";
print_r($sql);
echo "</pre>";
}
$db->query($sql);
$db->next_record();
$iPublic = $db->f("public");
$iVisible = $db->f("visible");
$db->free();
# Check if article is online
# Not needed anymore, as only online articles are used
/* $sql = "SELECT online FROM " . $cfg["tab"]["art_lang"] . "
WHERE idart = '" . $cms_artid . "' AND idlang = '" . $lang . "'";
if ($bDebug)
{
echo "<pre>";
print_r($sql);
echo "</pre>";
}
$db->query($sql);
$db->next_record();
$online = $db->f("online");
$db->free(); */
# If the article is online and the according category is not protected and visible, include the article
if ($bArticleAvailable && $iPublic == 1 && $iVisible == 1)
{
# Check, if code creation is necessary
# Note, that createcode may be 0, but no code is available (all code for other languages will be deleted in
# front_content, if code for one language will be created). This "bug" may be fixed in future releases.
if ($iCreateCode == 0)
{
$sql = "SELECT count(*) AS CodeCount FROM " . $cfg["tab"]["code"] . "
WHERE idcatart = '" . $iIDCatArt . "' AND idlang = '" . $lang . "'";
if ($bDebug)
{
echo "<pre>";
print_r($sql);
echo "</pre>";
}
$db->query($sql);
$db->next_record();
if ($db->f("CodeCount") == 0) {
$iCreateCode = 1;
}
$db->free();
}
# Create code if necessary
if ($iCreateCode == 1)
{
cInclude('includes', 'functions.con.php');
cInclude('includes', 'functions.tpl.php');
cInclude('includes', 'functions.mod.php');
conGenerateCode($iIDCat, $iIDArt, $lang, $client);
}
# Get code from database and execute it
$sql = "SELECT code FROM " . $cfg["tab"]["code"] . "
WHERE idcatart = '" . $iIDCatArt . "' AND idlang = '" . $lang . "'";
if ($bDebug)
{
echo "<pre>";
print_r($sql);
echo "</pre>";
}
$db->query($sql);
if ($db->next_record())
{
$sCode = stripslashes($db->f("code"));
$db->free();
ob_start();
eval("?>
".$sCode."
<?php
");
$sCode = ob_get_contents();
# Clean buffer
ob_end_clean();
$iStartPos = strpos($sCode, "<!--start:content-->");
$iEndPos = strpos($sCode, "<!--end:content-->");
$iDiffLen = $iEndPos - $iStartPos;
$sCode = substr($sCode, $iStartPos, $iDiffLen);
echo $sCode;
} else {
echo "<!-- ERROR in module Article Include<pre>no code created for article to include!<br>idcat $cms_catid, idart $cms_artid, idlang $lang, idclient $client</pre>-->";
}
}
}
}
else if (($Showroomoption == "standard") || ($Showroomoption == "auswahl")) {
if ($Showroomoption == "standard") {
$cms_idcat = "4";
$cms_idcatart = "2";
} else {
$cms_idcat = "CMS_VALUE[1]";
$cms_idcatart = "CMS_VALUE[2]";
};
$bDebug = false;
#Check data
$cms_idcat = (int)$cms_idcat;
$cms_idcatart = (int)$cms_idcatart;
if ($bDebug) {
echo "<pre> cat $cms_idcat catart $cms_idcatart</pre>";
}
if ($cms_idcat >= 0 && $cms_idcatart >= 0)
{
$bArticleAvailable = false;
# Get idcat, idcatart, idart and lastmodified from the database
$sql = "SELECT A.idart AS idart, A.idcat AS idcat, A.createcode AS createcode,
A.idcatart AS idcatart, B.lastmodified AS lastmodified
FROM ".$cfg["tab"]["cat_art"]." AS A, ".$cfg["tab"]["art_lang"]." AS B
WHERE
A.idart = B.idart AND
B.online = 1 AND ";
if ($cms_idcatart == 0)
{
$sql .= "A.idcat = '" . $cms_idcat . "' ORDER BY B.lastmodified DESC"; # Only idcat specified, get latest article of category
} else {
$sql .= "A.idcatart = '" . $cms_idcatart . "'"; # Article specified
}
if ($bDebug)
{
echo "<pre>";
print_r($sql);
echo "</pre>";
}
$db->query($sql);
if ($db->next_record())
{
$bArticleAvailable = true;
$iIDCatArt = $db->f("idcatart");
$iIDCat = $db->f("idcat");
$iIDArt = $db->f("idart");
$iCreateCode = $db->f("createcode");
$sModified = $db->f("lastmodified");
}
$db->free();
# Check if category is online or protected
$sql = "SELECT public, visible
FROM " . $cfg["tab"]["cat_lang"] . "
WHERE idcat = '" . $iIDCat . "' AND idlang = '" . $lang . "'";
if ($bDebug)
{
echo "<pre>";
print_r($sql);
echo "</pre>";
}
$db->query($sql);
$db->next_record();
$iPublic = $db->f("public");
$iVisible = $db->f("visible");
$db->free();
# Check if article is online
# Not needed anymore, as only online articles are used
/* $sql = "SELECT online FROM " . $cfg["tab"]["art_lang"] . "
WHERE idart = '" . $cms_artid . "' AND idlang = '" . $lang . "'";
if ($bDebug)
{
echo "<pre>";
print_r($sql);
echo "</pre>";
}
$db->query($sql);
$db->next_record();
$online = $db->f("online");
$db->free(); */
# If the article is online and the according category is not protected and visible, include the article
if ($bArticleAvailable && $iPublic == 1 && $iVisible == 1)
{
# Check, if code creation is necessary
# Note, that createcode may be 0, but no code is available (all code for other languages will be deleted in
# front_content, if code for one language will be created). This "bug" may be fixed in future releases.
if ($iCreateCode == 0)
{
$sql = "SELECT count(*) AS CodeCount FROM " . $cfg["tab"]["code"] . "
WHERE idcatart = '" . $iIDCatArt . "' AND idlang = '" . $lang . "'";
if ($bDebug)
{
echo "<pre>";
print_r($sql);
echo "</pre>";
}
$db->query($sql);
$db->next_record();
if ($db->f("CodeCount") == 0) {
$iCreateCode = 1;
}
$db->free();
}
# Create code if necessary
if ($iCreateCode == 1)
{
cInclude('includes', 'functions.con.php');
cInclude('includes', 'functions.tpl.php');
cInclude('includes', 'functions.mod.php');
conGenerateCode($iIDCat, $iIDArt, $lang, $client);
}
# Get code from database and execute it
$sql = "SELECT code FROM " . $cfg["tab"]["code"] . "
WHERE idcatart = '" . $iIDCatArt . "' AND idlang = '" . $lang . "'";
if ($bDebug)
{
echo "<pre>";
print_r($sql);
echo "</pre>";
}
$db->query($sql);
if ($db->next_record())
{
$sCode = stripslashes($db->f("code"));
$db->free();
ob_start();
eval("?>
".$sCode."
<?php
");
$sCode = ob_get_contents();
# Clean buffer
ob_end_clean();
$iStartPos = strpos($sCode, "<!--start:content-->");
$iEndPos = strpos($sCode, "<!--end:content-->");
$iDiffLen = $iEndPos - $iStartPos;
$sCode = substr($sCode, $iStartPos, $iDiffLen);
echo "";
echo $sCode ;
echo "";
} else {
echo "<!-- ERROR in module Article Include<pre>no code created for article to include!<br>idcat $cms_catid, idart $cms_artid, idlang $lang, idclient $client</pre>-->";
}
}
}
}
?>
Wichtig nochmal: Im Output findet man folgende zwei Zeilen:
diese muss man natürlich mit seinem Standard-Artikel ersetzen.
MfG Steffen und Danke noch mal OliverL