template in index.php festlegen...

Wie verwendet man Templates oder erstellt Navigationen und passt diese an.

template in index.php festlegen...

Beitragvon _kweso » 20. Dez 2006, 10:47

hi,
ich hab jetzt ein template, das mir alle kategorien als xml ausgibt.
zusetzlich will ich jetzt eines bauen, das mir nur die artikel einer
bestimmten kategorie ausgibt.

beide sollen von einem flashfilm aufgerufen werden. da dieser in der
index.html liegt und diese weiter nichts mit dem cms zu tun hat, habe ich
die eigentliche index.php in navXml.php umbenannt, welche dann von
flash aufgerufen wird (und mein erstes template laed). einer weitere php-
datei soll nun aufgerufen werden, die aber ein anderes template laden soll.

wie kann ich also das template in der index.php (auch wenn die bei
mir jetzt anders heisst) festlegen?


lieben dank
kws
Benutzeravatar
_kweso
 
Beiträge: 164
Registriert: 11. Dez 2006, 19:05
Wohnort: wien/regensburg

Beitragvon Markus.Staab » 20. Dez 2006, 10:58

Hi,

normalerweise macht mann solche Artikellisten als Modul, nicht im Template..

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon _kweso » 20. Dez 2006, 11:17

das geht aber nicht, wenn ich spaeter das ganze noch als html ausgeben will.
oder doch?
kann man das template in der index.php festlegen?
Benutzeravatar
_kweso
 
Beiträge: 164
Registriert: 11. Dez 2006, 19:05
Wohnort: wien/regensburg

Beitragvon Markus.Staab » 20. Dez 2006, 11:32

Hi,

das Template wird doch in der Strukturverwaltung dem Artikel zugefügt..

Notfalls leg dir 2 "Template-Artikel" an und übergebe diesen nen Parameter, welchen Artikel diese darstellen sollen, z.b.

dann sollte das ganze mit solchen Urls funktionieren:
(Beispiel mit dem Artikel 27)

XML:
index.php?article_id=1&clang=0&content_article=27

HTML:
index.php?article_id=2&clang=0&content_article=27

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon _kweso » 20. Dez 2006, 12:18

hi,
habs jetzt so geloest (proXml.php):
Code: Alles auswählen
<?php
ob_start();
@ini_set( 'arg_separator.input', '&amp;');
@ini_set( 'arg_separator.output', '&amp;');
unset($REX);
$REX['REDAXO'] = false;
$REX['GG'] = true;
$REX['HTDOCS_PATH'] = "./";
include "./redaxo/include/master.inc.php";
if (!isset($article_id) or $article_id == '') $article_id = $REX['START_ARTICLE_ID'];
$REX_ARTICLE = new article;
$REX_ARTICLE->setCLang($clang);
if ($REX_ARTICLE->setArticleId($article_id))
{
  echo $REX_ARTICLE->getArticleTemplate();
}elseif($REX_ARTICLE->setArticleId($REX['NOTFOUND_ARTICLE_ID']))
{
  echo $REX_ARTICLE->getArticleTemplate();
}else
{
  echo 'Kein Startartikel selektiert / No starting Article selected. Please click here to enter <a href="redaxo/index.php">redaxo</a>';
  $REX['STATS'] = 0;
}
$CONTENT = ob_get_contents();
ob_end_clean();
$CONTENT = rex_register_extension_point( 'OUTPUT_FILTER', $CONTENT);
rex_register_extension_point( 'OUTPUT_FILTER_CACHE', $CONTENT, '', true);
//echo $CONTENT;
include $REX['INCLUDE_PATH']."/generated/templates/2.template";
?>

(die unteren beiden zeilen sind ausschlaggebend)

ist das irgendwie unsauber?...

lg
kws

ps: wollt mal auch DANKE sagen! hab lange nach einem cms gesucht, und viele ausprobiert. dieses hier ist echt genau die richtige mischung aus "kompakt und gut bedienbar" und "flexibel". feine abeit...
Benutzeravatar
_kweso
 
Beiträge: 164
Registriert: 11. Dez 2006, 19:05
Wohnort: wien/regensburg

Beitragvon darwin » 2. Jan 2007, 20:07

HI _kweso (alter Flasher) ...

kannst du hier auch posten wie dein template z.B. für
einen Artikel (id über article_id=) aussieht.
Irgendwie hakts da bei mir noch :oops: ...

deine proXML.php sieht auf jedenfall schon mal fein aus ;)
und funzt ...

Danke. grz. chris
Benutzeravatar
darwin
 
Beiträge: 1261
Registriert: 2. Jan 2007, 16:10
Wohnort: LA

Beitragvon darwin » 2. Jan 2007, 20:40

Hat sich erledigt...
mit ein wenig basteln und der Redaxo CheatSheet (oder so ;)
kam dann folgendes raus:

Code: Alles auswählen
<?php
//
$articles = OOArticle::getArticleById($article_id);   // Artikel-ID
$slice = OOArticleSlice::getFirstSliceForArticle($article_id);
//
$artid = $articles->getValue("id");
$artdate = date('d.m.Y',$articles->getValue("createdate"));
$artname = $articles->getValue("name");
//
$artTitel = $slice->getValue(1);
$artText = $slice->getValue(3);
$artBild = $slice->getFile(1);
//
$artText = str_replace("\r\n", "", $artText);
$artText = str_replace("<strong>", "<b>", $artText);
$artText = str_replace("</strong>", "</b>", $artText);
//
$nl ="\r\n";
// START XML-OUTPUT
//
echo '<?xml version=\'1.0\' encoding=\'UTF-8\'?>' . $nl;
echo '<root>' . $nl;
echo '<article id="' . $artid . '" artikelname="' . htmlentities($artname) . '" datum="' . $artdate .'" bild="../files/cache_resize___200a__' . strtolower($artBild) . '" >' . $nl;
echo '<titel><![CDATA[<p><h2>' . utf8_encode($artTitel) .'<h2></p>]]></titel>' . $nl;
echo '<content><![CDATA[<p>' . utf8_encode(html_entity_decode($artText)) . '<p>]]></content>' . $nl;
echo '</article>' . $nl;
echo '</root>' . $nl;

?>


somit hat man nun für Flash eine nette XML-Ausgabe per Template ;)

so long.

chris
Benutzeravatar
darwin
 
Beiträge: 1261
Registriert: 2. Jan 2007, 16:10
Wohnort: LA

Beitragvon _kweso » 3. Jan 2007, 14:13

hi darwin, alter niederbayer ;)

sorry, bin grad schwer mit was anderem
beschaeftigt. werd aber morgen oder so
an dem cms weiterbauen, dann schau ich
mir das mal genauer an..

bis dahin: gutes neues
kws
Benutzeravatar
_kweso
 
Beiträge: 164
Registriert: 11. Dez 2006, 19:05
Wohnort: wien/regensburg

Beitragvon headkit » 29. Jun 2007, 20:11

bin ganz neu hier und würde gern redaxo nutzen, um ein backend für eine flashseite zu haben.

dieser PHP-code im vorletzten thread, wo muss ich den einbinden, damit die entsprechende seite als XML ausgegeben wird?

danke!
headkit
 
Beiträge: 11
Registriert: 29. Jun 2007, 20:09

Beitragvon darwin » 29. Jun 2007, 21:39

Hi & willkommen im redaxoForum ...

ich hab das hier als Template eingebunden und per URL
in Flash aufgerufen ...

etwa so: flash.php?temp_id=2&art_id=1

temp_id = Template ID
art_id = Artikel ID

jedoch könnte man auch diese Aktion an ein Modul anhängen
um somit den XML-Output per Redaxo zu bekommen...

grz. chris

PS: Nicht nervös werden (doppel Postings ;) )
Benutzeravatar
darwin
 
Beiträge: 1261
Registriert: 2. Jan 2007, 16:10
Wohnort: LA

Beitragvon headkit » 1. Jul 2007, 19:02

vielen dank für die nette begrüssung!
freut mich sehr.

wenn ich dein skript als neues template einfüge und beispielsweise in der demo-installation den startartikel unter news dieses template zuweise, bekomme ich eine fehlerausgabe:

Code: Alles auswählen
Fatal error: Call to a member function on a non-object in /homepages/20/d32204467/htdocs/redaxo/redaxo/include/classes/class.article.inc.php(455) : eval()'d code on line 6


und in deinem beispiel-link, was ist diese flash.php für eine datei?

ich hab das gefühl, ich hab noch nicht ganz verstanden, wie der hase hier bei redaxo so läuft...
Zuletzt geändert von headkit am 2. Jul 2007, 08:30, insgesamt 1-mal geändert.
headkit
 
Beiträge: 11
Registriert: 29. Jun 2007, 20:09

Beitragvon headkit » 1. Jul 2007, 19:40

...und wenn ich die flash.php (aus deinem anderen thread) direkt ansurfe, dann bekomme ich die fehlermeldung
Code: Alles auswählen
Fatal error: Undefined class name 'ooarticle' in /homepages/20/d32204467/htdocs/redaxo/flash.php on line 3
headkit
 
Beiträge: 11
Registriert: 29. Jun 2007, 20:09

Beitragvon darwin » 2. Jul 2007, 09:37

HI,
du brauchts das Template gar nicht einem Artikel zuweisen (thats the trick ;) )
du rufst das Template und den Artikel über die URL auf...
d.h. du kannst im Frontend beides nutzen. Entweder den Output aus Redaxo (mit eigen Templates) für die HTML-Seite und/oder per URL den XML-Output über die flash.php

etwa so...

XML Output-Template ins Redaxo einbinden (Achtung das Template holt sich die Values per id raus), Modul erstellen (Bsp. mit Headline und Text in einem Modul (Value (1), Value(2) ...) ...
dann per URL aufrufen: http://www.deineSeite.de/flash.php?temp_id=4&art_id=2
wobei hier die IDs für das Template und den Artikel gesetzt werden müssen.

Bei Fragen fragen. ;)
grz. Chris

PS: oder das AddOn nutzen ;)
Benutzeravatar
darwin
 
Beiträge: 1261
Registriert: 2. Jan 2007, 16:10
Wohnort: LA

Beitragvon headkit » 2. Jul 2007, 10:20

also, für ganz doofe:

- template erstellen.
- modul erstellen
- flash.php-datei erstellen und hochladen in den root-ordner
- inhalt erstellen
- inhalt per url aufrufen, generiert xml-datei

so?
headkit
 
Beiträge: 11
Registriert: 29. Jun 2007, 20:09

Beitragvon darwin » 2. Jul 2007, 10:23

yep ...

c.
Benutzeravatar
darwin
 
Beiträge: 1261
Registriert: 2. Jan 2007, 16:10
Wohnort: LA

Nächste

Zurück zu Templates/Navigationen [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste