Wie eine Seite mit Inhalt füllen

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

Wie eine Seite mit Inhalt füllen

Beitragvon webstar » 1. Nov 2005, 12:23

Hallo Profis,

Eigentlich gehört dieser Post in alle Foren, weil irgendwie von allem was drin ist.

Vorerst mal zu meinen Skills. Üblicherweise arbeite ich viel mit HTML, somit bereitet mir das nicht wirklich Probleme. Außerdem hab ich häufig mit Flash zu tun. Beim Thema PHP bricht es mir jedoch ständig das Genick was ich wohl auch auf meine Programmierschwäche zurückführen kann.

Zum Thema:
Ich habe vor Redaxo R3 für eine Webseite zu nutzen. Nun möchte ich vorab ersteinmal eine kleine Präsentation erstellen, sprich eine Minimalversion zum testen zusammenbauen. Alles was es können muss ist, das eine kleine Navi aus 2 Punkten dargestellt werden soll. Dazu kommt, das eine Seite erstellt werden soll, in der in Tabellenform verschiedene Datensätze nacheinander angezeigt werden sollen. Im Backend sollen diese Datensätze dann bearbeitet werden können, zudem soll aus dem Medienpool ein Bild für jeden Datensatz abrufbar sein.

Die Installation funktionierte reibungslos. Ich habe zudem schon eine Kategorie und darunter 2 Artikel erstellt. Der erste Artikel soll lediglich als Index dienen, soll also die Inhalte und Navigation nicht direkt enthalten.
Das Template sieht folgendermaßen aus:

Code: Alles auswählen
<html>
<head>
<title>Redaxo Demo
</head>

<body>

<!--Haupttabelle-->

<table bgcolor="#5F5F5F" width="800" align="center">

<!--Headerspalte-->
<tr>
   <td>
   </td>
</tr>
<!--Headerspalte Ende-->

<!--Navispalte-->
<tr>
   <td bgcolor="#FF0000">
   </td>
</tr>
<!--Navispalte Ende-->

<!--Inhaltsspalte-->
<tr>
   <td align="center">
   </td>
</tr>
<!--Inhaltsspalte Ende-->

<!--Haupttabelle Ende-->

</body>
</html>


Ich hab im Handbuch gelernt das man per
Code: Alles auswählen
echo $this->getArticle();

einen Artikel einbinden kann. Allerdings weiß ich noch nicht wo hier der Name des Artikels eingetragen werden soll.

Desweiteren weiß ich das man per
Code: Alles auswählen
<a href=index.php?article_id=22>

im Navigationstemplate Links setzten kann. Allerdings frage ich mich woher ich die ID des jeweiligen Artikels bekomme?Zumal stellt sich mir die Frage ob Artikel auch Kategorieübergreifend ausgelesen werden können.

Im Contentbereich soll zumal ein einfacher Text stehen.Dieser soll wenn möglich per WYSIWYG-Editor eingefügt werden können.Allerdings hab ich keine Ahnung woher ich einen solchen Block bekomme und wie ich ihn importiere. Im Forum habe ich gelesen, das der Editor nur in der Demoversion dabei ist, also kopierte ich das tiny...Verzeichniss auf den Webspace wo es hin gehörte. Allerdings kann ich noch immer keinen Block auswählen.

Wo wir grad beim Thema sind, beim Erstellen eines Moduls komm ich nicht ganz klar. Was soll denn in die Felder "Eingabe" und "Ausgabe"? Muss da jetzt ein Scriptbefehl rein per php oder Java? Ich komm da nicht ganz klar.
Im Downloadbereich hab ich auch noch kein wirklich brauchbares Modul zu dieser Thematik gefunden.

Tja ihr seht schon, Fragen über Fragen,ein rauchender Kopf und ein hilfloser User mehr.

MfG
Unwissenheit schützt nicht vor Mittäterschaft.
webstar
 
Beiträge: 54
Registriert: 1. Nov 2005, 11:51
Wohnort: Erfurt

Beitragvon Markus.Staab » 1. Nov 2005, 12:32

Hi webstar,

für mich klingt das alles ein wenig nach den grundlegenden Zügen eines CMS.

Um erstmal ein wenig gefühl für REDAXO zu bekommen, würd ich mir einfach mal einen Testwespace (evtl. subdomain) einrichten, auf dem dann die REDAXO Demo importiert wird (je nach Forderung multilang oder normal).

Dann darin einfach mal mit dem Aufbau der Struktur, die Templates und den Modulen befassen.

Auf einer 2. Subdomain dann einfach ein weiteres REDAXO installieren und dort dann alles was du aus der Demo brauchen kannst hineinkopieren. (NICHT DIE DATEIEN! nur Module/Templates etc..)

Dann lernst du so langsam wie das alles so läuft..

Fertige Module und Templates findest du in der Modulsammlung oder Templatesammlung

Wenn weitere Fragen auftreten, einfach Fragen ;)

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

Beitragvon webstar » 1. Nov 2005, 13:02

Also ich habe jetzt einmal eine neue Subdomain eingerichtet. Auf dieser läuft im Moment die Demo.Auf der anderen die "Vollversion".

Zudem hab ich mir eben mal das default-Template angeschaut. Leider ergeben sich daraus keine für mich klar ersichtlichen Strukturen. Kurz gesagt, es ist einfach zu verwirrend :-)

Ich glaube aber im Bezug auf die Module verstehe ich wie du das gemeint hast. Einfach den Quelltext aus den Modulen "klauen" und ein neues in der anderen Version anlegen oder?
Unwissenheit schützt nicht vor Mittäterschaft.
webstar
 
Beiträge: 54
Registriert: 1. Nov 2005, 11:51
Wohnort: Erfurt

Beitragvon Thomas.Blum » 1. Nov 2005, 14:24

Hej,
du darfst dir auch die Dokumentation [1] natürlich durchlesen. Dort findet man nützliche Dinge und es wird erklärt, wie Redaxo arbeitet.

[1] http://www.redaxo.de/4-0-dokuredaxode.html

Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Beitragvon webstar » 1. Nov 2005, 14:57

Mach ich ja nebenbei. Aber zugegebenermaßen ist das ganze für jemanden der PHP als notwendiges Übel hinnimmt nicht allzu leicht. :D

Noch ein Frage. Wenn ich einen Artikel erstellt habe, dem einen Block zugewiesen habe und diesen mit Text gefüllt habe, muss ich dann für diesen Artikel noch ein Template schreiben, der ihm sagt wo der Text hinkommt?
Unwissenheit schützt nicht vor Mittäterschaft.
webstar
 
Beiträge: 54
Registriert: 1. Nov 2005, 11:51
Wohnort: Erfurt

Beitragvon Thomas.Blum » 1. Nov 2005, 15:19

Hej,

webstar hat geschrieben:Mach ich ja nebenbei. Aber zugegebenermaßen ist das ganze für jemanden der PHP als notwendiges Übel hinnimmt nicht allzu leicht.


Ohne Php und MySQL Kenntnisse ist Redaxo zwar benutzbar, du kommst aber nicht in den vollen Genuss von Redaxo. Also Php und MySQL lernen.

webstar hat geschrieben:Noch ein Frage. Wenn ich einen Artikel erstellt habe, dem einen Block zugewiesen habe und diesen mit Text gefüllt habe, muss ich dann für diesen Artikel noch ein Template schreiben, der ihm sagt wo der Text hinkommt?


Jeden Artikel den du erstellst musst du ein Template zuweisen. Das machst du nicht im Editiermodus sondern in der Strukturverwaltung. In dem ausgesuchten template, hast du ja bereits definiert wo dann der Inhalt stehen soll. Definiert hast du es mit $this->getArticle();

Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Beitragvon webstar » 1. Nov 2005, 16:20

Hallo,

also wi schon beschrieben, habe ich jetzt einen Artikel der von mir per Block nen Blindtext bekommen hat.
Für diesen Artikel habe ich folgendes Template erstellt:

Code: Alles auswählen
<html>

<head>
</head>

<body>
<div align="left" color="#FFFFFF">

<?php
echo $this->getArticle();
?>

</div>

</body>
</html>


Die Indexseite trägt folgendes Template:
Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<head>
<title>Redaxo Demo
</head>

<body>

<!--Haupttabelle-->

<table bgcolor="#5F5F5F" width="800" align="center">

<!--Headerspalte-->
<tr>
   <td>
   </td>
</tr>
<!--Headerspalte Ende-->

<!--Navispalte-->
<tr>
   <td bgcolor="#FF0000">
        <?php
         foreach (OOCategory::getRootCategories() as $lev1):
            if($lev1->isOnline()):
               echo '&nbsp;<a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>&nbsp;|';
                                endif;
                        endforeach;
        ?>
   </td>
</tr>
<!--Navispalte Ende-->

<!--Inhaltsspalte-->
<tr>
   <td align="center">

        <div color="#FFFFFF">
        <?php
        echo $this->getArticle();
        ?>
        </div>
   </td>
</tr>
<!--Inhaltsspalte Ende-->

</table>
<!--Haupttabelle Ende-->

</body>
</html>


Der Aufbau der Navigation funktioniert auch, bloß wird einfach der Blindtext nicht angezeigt. Wo hängts denn jetzt?

Danke
Zuletzt geändert von webstar am 1. Nov 2005, 16:24, insgesamt 1-mal geändert.
Unwissenheit schützt nicht vor Mittäterschaft.
webstar
 
Beiträge: 54
Registriert: 1. Nov 2005, 11:51
Wohnort: Erfurt

Beitragvon Markus.Staab » 1. Nov 2005, 16:22

Hi,

Warum 2 Templates?

Setze bei deinem Artikel mal das INDEX-Template.

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

Beitragvon webstar » 1. Nov 2005, 16:25

Hab auch schon versucht wie in der Demo allen beiden Artikeln das gleiche Template zu verpassen, aberirgendwie will das auch nicht funzen.

Zur Struktur ist zu sagen, das beide Artikel in einer Kategorie stecken.Der Indexartikel hat Prio1 der Testartikel die Prio2.
Unwissenheit schützt nicht vor Mittäterschaft.
webstar
 
Beiträge: 54
Registriert: 1. Nov 2005, 11:51
Wohnort: Erfurt

Beitragvon webstar » 2. Nov 2005, 18:17

Keiner n Lösungsansatz parat?
Unwissenheit schützt nicht vor Mittäterschaft.
webstar
 
Beiträge: 54
Registriert: 1. Nov 2005, 11:51
Wohnort: Erfurt

Beitragvon Markus.Staab » 2. Nov 2005, 23:04

Hi,

kann man das mal online sehen, ich kann mir aktuell kein Bild machen ;)

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

Beitragvon webstar » 3. Nov 2005, 09:03

Also die Sache hat sich wohl geklärt. Nachdem ich noch n bissl rumprobiert habe konnte ich dann den Fehler finden. Musste mir nur erstmal klar machen, das nicht jeder Artikel n eigenes Template brauch.

Das Template sieht jetzt folgendermaßen aus:

Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<head>
<title>IVC Redaxo Demo
</head>

<body>

<!--Haupttabelle-->

<table bgcolor="#FFFFCC" width="800" align="center">

<!--Headerspalte-->
<tr>
   <td>
   </td>
</tr>
<!--Headerspalte Ende-->

<!--Navispalte-->
<tr>
   <td bgcolor="#FFFF99">
        <?php
         foreach (OOCategory::getRootCategories() as $lev1):
            if($lev1->isOnline()):
               echo '&nbsp;<a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>&nbsp;|';
                                endif;
                        endforeach;
        ?>
   </td>
</tr>
<!--Navispalte Ende-->

<!--Kategorie-Anzeigespalte-->
<tr>
        <td align="left" bgcolor="#FFFF99">
        <?php
         print '<h1>'.$this->getValue(name).'</h1>';
        ?>
        </td>

<tr>

<!--Inhaltsspalte-->
<tr>
   <td align="center">

        <div color="#FFFFFF">
        <?php
        echo $this->getArticle();
        ?>
        </div>
   </td>
</tr>
<!--Inhaltsspalte Ende-->

</table>
<!--Haupttabelle Ende-->

</body>
</html>


Klappt eigentlich alles bisher. Jetzt muss ich nur noch rausbekommen wie ich die Datenbankabfrage so gestalte, das mir bei Bedarf Einträge in einem bestimmten Modul nach nem Kriterium sortiert werden. Die DB hab ich mir schon angesehen. Wenn ich die Lösung hab wird sie natürlich gepostet.

MfG
Unwissenheit schützt nicht vor Mittäterschaft.
webstar
 
Beiträge: 54
Registriert: 1. Nov 2005, 11:51
Wohnort: Erfurt

Beitragvon Markus.Staab » 3. Nov 2005, 10:19

Hi,

webstar hat geschrieben:Also die Sache hat sich wohl geklärt. Nachdem ich noch n bissl rumprobiert habe konnte ich dann den Fehler finden. Musste mir nur erstmal klar machen, das nicht jeder Artikel n eigenes Template brauch.


Hab ich ja oben gesagt,.. ;)

webstar hat geschrieben:Klappt eigentlich alles bisher. Jetzt muss ich nur noch rausbekommen wie ich die Datenbankabfrage so gestalte, das mir bei Bedarf Einträge in einem bestimmten Modul nach nem Kriterium sortiert werden. Die DB hab ich mir schon angesehen. Wenn ich die Lösung hab wird sie natürlich gepostet.


Wie meinst du das?

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

Beitragvon webstar » 3. Nov 2005, 11:28

Also was ich vorhabe ist eigentlich folgendes.

Es gibt einen Artikel innerhalb ner Kategorie. Für diesen Artikel habe ich nun ein Modul geschrieben, welches wie folgt aussieht:

Eingabe:
Code: Alles auswählen
Immobilienart:<br />
<input type="text" size="50" name="VALUE[1]" value="REX_VALUE[1]" />
<br/>

Lage:<br />
<input type="text" size="50" name="VALUE[2]" value="REX_VALUE[2]" />
<br/>

m²:<br />
<input type="text" size="4" name="VALUE[3]" value="REX_VALUE[3]" />
<br/>

R&auml;ume:<br />
<input type="text" size="3" name="VALUE[4]" value="REX_VALUE[4]" />
<br/>

Kaufpreis in Euro:<br />
<input type="text" size="10" name="VALUE[5]" value="REX_VALUE[5]" />
<br/>

Beschreibung:<br />
<textarea cols="49" rows="7" name="VALUE[6]" value="REX_VALUE[6]" ></textarea>
<br/>

Bild:<br />
REX_MEDIA_BUTTON[1]


Ausgabe:
Code: Alles auswählen
<table width="600" bgcolor="#FFFF99" align="right">
<tr>
   <td rowspan="6" valign="top" align="center"><img src="<?php echo $REX[HTDOCS_PATH]; ?>/files/REX_FILE[1]" width="200" height="200"></td>
        <td>Immobilienart:</td>
   <td>REX_VALUE[1]</td>
</tr>

<tr>
        <td>Lage:</td>
   <td>REX_VALUE[2]</td>
</tr>

<tr>
        <td>m²</td>
   <td>REX_VALUE[3]</td>
</tr>

<tr>
        <td>R&auml;ume:</td>
   <td>REX_VALUE[4]</td>
</tr>

<tr>
        <td>Kaufpreis in Euro:</td>
   <td>REX_VALUE[5]</td>
</tr>
<tr>
        <td>Beschreibung:</td>
   <td>REX_VALUE[6]</td>
</tr>

</table>


Also jedesmal wenn ein neues Modul angelegt wird wird auf der Seite logischerweise ne neue Tabelle angefügt.
Jetz soll bei Bedarf der User die Einträge nach z.B "Lage" sortieren können.
Dazu hab ich mir wie gesagt die DB schon mal angeschaut und versuche mich im Moment an der Umsetzung dessen.

Oder gibts ne bessere Variante?
Unwissenheit schützt nicht vor Mittäterschaft.
webstar
 
Beiträge: 54
Registriert: 1. Nov 2005, 11:51
Wohnort: Erfurt

Beitragvon Markus.Staab » 3. Nov 2005, 12:24

Hi,

webstar hat geschrieben:Also jedesmal wenn ein neues Modul angelegt wird wird auf der Seite logischerweise ne neue Tabelle angefügt.
Jetz soll bei Bedarf der User die Einträge nach z.B "Lage" sortieren können.
Dazu hab ich mir wie gesagt die DB schon mal angeschaut und versuche mich im Moment an der Umsetzung dessen.

Oder gibts ne bessere Variante?


Wenn dir kein Javascript zur Verfügung steht, dann wirst du, wie du schon selbst sagst, wird du um eine Sortierung via SQL nicht herumkommen.

Aber es geht auch mit Javascript:

Sortierbare Tabellen mit Javascript - Einführung
Sortierbare Tabellen mit Javascript - Demo

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

Nächste

Zurück zu Templates/Navigationen [R3]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast