Hallo erstmal,
bin neu im Forum und auch noch nicht so erfahren mit Contenido. Ich habe vor einen Newsticker der die Nachrichten durchlaufen lässt zu basteln, da ich bisher noch keinen gefunden habe.
Ich bin bis jetzt auch schon relativ weit gekommen, aber nun stehe ich vor einem Problem.
Ich habe die Art und weise des vpNewstickers verwendet, um die Daten aus Contenido auszulesen. Danach verwende ich den Marquee Liveticker von
http://www.perlunity.de/javascript/scri ... main.shtml.
Der Ticker funktioniert selbst sehr gut. Ich habe manuel ein Array erstellt und dieses mit join zu einem String zusammen geführt. alles kein Problem. wenn ich es lokal teste (ohne Contenido) geht der Ticker, auch wenn ich genau den Inhalt ins Array schreibe, der laut Contenido in der "tickercontents" steht.
Wenn ich jedoch das gesamte Modul, also den Teil um Daten auszulesen und den Teil zur Ausgabe als Lauftext, in Contenido einbinde erscheint nur der "$newstitle", sonst nichts. Was könnte da falsch laufen?
Ich habe am Cross browser Marquee script selbst nichts geändert, nur eben meine Anpassungen oben, die passen soweit auch. Am vpNewsticker habe ich bis auf den JS Teil, den ich gelöscht habe, nur kleine Änderungen gemacht, die meines Wissens keine Auswirkungen auf das Problem haben.
Ich versuch schon seit Stunden ne Lösung zufinden, aber leider ohne Erfolg. Vielleicht hat ja jemand gerade nen besseren Durchblick und findet ne Lösung. Schon mal vielen Dank.
Und bevor ichs noch vergesse, hier der Code.
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : vpNewsticker v1.2
* Author : Ingo van Peeren (ingo@van-peeren.de)
* Copyright : Ingo van Peeren (ingo@van-peeren.de)
* Created : 15-01-2005
* Modified : 07-04-2005
************************************************
*Modified by Marc E | 01.03.2009
************************************************/
//allgemeine Konfigurationen
// in welcher Kategorie befinden sich die News
$cat = 12;
$startartikel = true; // möglich sind:
// true (Startartikel wird mit angezeigt)
// false (Startartikel wird nicht mit angezeigt)
// welche Sprache und welcher Mandant sollen genutzt werden
$sprache = $lang; // hier kann auch eine bestimmte Sprache als Zahl angegeben werden
$mandant = $client; // hier kann auch ein bestimmter Mandant als Zahl angegeben werden
// Einstellungen für die Darstellung der Nachrichten
//Specify the marquee's width (in pixels)
$mwidth=500;
//Specify the marquee's height
$mheight=25;
//Specify the marquee's marquee speed (larger is faster 1-10)
$mspeed=2;
//configure background color:
$mbgcolor="#EAEAEA";
//Pause marquee onMousever (0=no. 1=yes)?
$pauseit_onmouseover=1;
// Titel, Sortierung usw.
$titel = "headline"; // möglich sind:
// headline (entspricht HTMLHEAD1)
// title (entspricht Artikeltitel)
$sortby = "created"; // möglich sind:
// titel (entspricht dem zuvor ausgewählten Titelfeld)
// created (entspricht Erstellungsdatum)
// lastmodified (entspricht Datum der letzten Änderung)
$sortorder = "desc"; // möglich sind:
// asc (aufsteigend)
// desc (absteigend)
// Texte
$newstitle = "News";
$noscripttext1 = "<br />Um die Neuigkeiten lesen zu können, muss";
$noscripttext2 = "Javascript";
$noscripttext3 = "aktiviert sein!";
$noscripttext4 = "Wenn sie auch ohne Javascript immer über alles informiert bleiben möchten klicken sie bitte";
$noscripttext5 = "hier";
$noscripttext6 = "!";
/* ab hier nichts mehr mofizieren */
// Funktionen
function ticker_feld () {
global $cat, $startartikel, $sprache, $mandant, $titel, $sortby, $sortorder;
if (($sortby == "created") || ($sortby == "lastmodified")) {
// Artikellisten Optionen einstellen
$articleListOptions = array("idcat" => $cat, // Idcat (Muss angegeben werden)
"lang" => $sprache, // Sprach id (optional), standard ist die aktive Sprache
"client"=> $mandant, // Mandant id (optional), standard ist der aktive Mandant
"start" => $startartikel, // Startartikel
"order" => $sortby, // Feldname nach dem sortier wird, siehe tabelle 'con_art_lang'
"direction" => $sortorder); // Ab- oder Aufsteigende sortierung ('asc', oder 'desc')
// Artikellisten Objekt erzeugen
$articleList = new ArticleCollection($articleListOptions);
$i = 0;
while ($article = $articleList->nextArticle()) {
if ($titel == "headline") $tickerfeld[]['titel'] = $article->getContent('htmlhead', 1);
else $tickerfeld[$i]['titel'] = $article->get("title");
$tickerfeld[$i]['idart'] = $article->get("idart");
$i++;
}
}
else {
// Artikellisten Optionen einstellen
$articleListOptions = array("idcat" => $cat, // Idcat (Muss angegeben werden)
"lang" => $sprache, // Sprach id (optional), standard ist die aktive Sprache
"client"=> $mandant, // Mandant id (optional), standard ist der aktive Mandant
"start" => $startartikel, // Startartikel
"order" => "idartlang", // Feldname nach dem sortier wird, siehe tabelle 'con_art_lang'
"direction" => "asc"); // Ab- oder Aufsteigende sortierung ('asc', oder 'desc')
// Artikellisten Objekt erzeugen
$articleList = new ArticleCollection($articleListOptions);
$i = 0;
while ($article = $articleList->nextArticle()) {
if ($titel == "headline") $htitel = $article->getContent('htmlhead', 1);
else $htitel = $article->get("title");
$tickerfeld[$i]['titel'] = $htitel;
$tickerfeld[$i]['idart'] = $article->get("idart");
$sort_value = trim(strip_tags(html_entity_decode(urldecode($htitel))));
$sortiert[$i] = strtr($sort_value, "ÄÖÜäöüß", "AOUaous");
$i++;
}
if ($sortorder == "asc") array_multisort($sortiert, SORT_ASC, $tickerfeld);
else array_multisort($sortiert, SORT_DESC, $tickerfeld);
}
return $tickerfeld;
}
// Funktionen Ende
?>
<div style="display: inline;" class="ticker">
<script type="text/javascript">
<!--
document.write('<a href="front_content.php?idcat=<?php echo $cat; ?>"><?php echo $newstitle; ?><\/a>: ')
//-->
</script>
<noscript>
<div style="display: inline;" class="ticker">
<?php echo $newstitle; ?>: <?php echo $noscripttext1; ?>
<a class="newsticker" href="www.javascript.com"><?php echo $noscripttext2; ?></a>
<?php echo $noscripttext3; ?>
<?php echo $noscripttext4; ?>
<a class="newsticker" href="front_content.php?idcat=<?php echo $cat; ?>"><?php echo $noscripttext5; ?></a>
<?php echo $noscripttext6; ?>
</div>
</noscript>
</div>
<div style="display: inline;" class="ticker">
<script type="text/javascript" language="JavaScript1.2">
<!--
var tickercontent=new Array()
<?php
$tickerfeld = ticker_feld();
$i = 0;
foreach ($tickerfeld as $ticker) {
$link = "front_content.php?idcat=$cat&idart=" . $ticker['idart'] ;
$titel = trim(strip_tags($ticker['titel']));
echo "tickercontent[$i]='<a class=\\\"newsticker\\\" href=\\\"$link\\\">".urldecode($titel)."<\/a>'\n";
$i++;
}
?>
//##########################HIER ENDET DER TEIL des vpNewsticker Moduls ####################################################
var content = tickercontent.join(" | ")
//##########################HIER BEGINNT DER TEIL des vCross browser Marquee script #########################################
/*
Cross browser Marquee script- © Dynamic Drive (www.dynamicdrive.com)
For full source code, 100's more DHTML scripts, and Terms Of Use, visit http://www.dynamicdrive.com
Credit MUST stay intact
*/
//Specify the marquee's width (in pixels)
//var marqueewidth=300
var marqueewidth=<?php echo $mwidth; ?>
//Specify the marquee's height
var marqueeheight=<?php echo $mheight; ?>
//Specify the marquee's marquee speed (larger is faster 1-10)
var marqueespeed=<?php echo $mspeed; ?>
//configure background color:
var marqueebgcolor=<?php echo $mbgcolor; ?>
//Pause marquee onMousever (0=no. 1=yes)?
var pauseit=<?php echo $pauseit_onmouseover; ?>
//Specify the marquee's content (don't delete <nobr> tag)
//Keep all content on ONE line, and backslash any single quotations (ie: that\'s great):
var marqueecontent='<nobr>'+content+'</nobr>'
//######### AB HIER IST ALLES UNVERÄNDERT ################
////NO NEED TO EDIT BELOW THIS LINE////////////
var copyspeed=marqueespeed
var pausespeed=(pauseit==0)? copyspeed: 0
var iedom=document.all||document.getElementById
if (iedom)
document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100;left:-1000">'+marqueecontent+'</span>')
var actualwidth=''
var cross_marquee, ns_marquee
function populate()
{
if (iedom)
{
cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee
cross_marquee.style.left=marqueewidth+8
cross_marquee.innerHTML=marqueecontent
actualwidth=document.all? cross_marquee.offsetWidth : document.getElementById("temp").offsetWidth
}
else if (document.layers)
{
ns_marquee=document.ns_marquee.document.ns_marquee2
ns_marquee.left=marqueewidth+8
ns_marquee.document.write(marqueecontent)
ns_marquee.document.close()
actualwidth=ns_marquee.document.width
}
lefttime=setInterval("scrollmarquee()",20)
}
window.onload=populate
function scrollmarquee()
{
if (iedom)
{
if (parseInt(cross_marquee.style.left)>(actualwidth*(-1)+8))
cross_marquee.style.left=parseInt(cross_marquee.style.left)-copyspeed
else
cross_marquee.style.left=marqueewidth+8
}
else if (document.layers)
{
if (ns_marquee.left>(actualwidth*(-1)+8))
ns_marquee.left-=copyspeed
else
ns_marquee.left=marqueewidth+8
}
}
if (iedom||document.layers)
{
with (document)
{
document.write('<table border="0" cellspacing="0" cellpadding="0"><td>')
if (iedom)
{
write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden">')
write('<div style="position:absolute;width:'+marqueewidth+';height:'+marqueeheight+';background-color:'+marqueebgcolor+'" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">')
write('<div id="iemarquee" style="position:absolute;left:0;top:0"></div>')
write('</div>')
}
else if (document.layers)
{
write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee" bgColor='+marqueebgcolor+'>')
write('<layer name="ns_marquee2" left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>')
write('</ilayer>')
}
document.write('</td></table>')
}
}
</script>
</div>
Danke, Gruß Marc