Wenn kein Inhalt, dann default-Sprache

Bei Problemen/Anregungen mehrsprachiger Webseiten.

Wenn kein Inhalt, dann default-Sprache

Beitragvon Manuel.Schmöllerl » 19. Apr 2006, 16:38

Hallo Community,

erstmals hallo und Gratulation zu diesem tollen CMS. Ich komme eigentlich aus der Typo3-Fraktion und war bis jetzt auf der Suche nach einer Alternative und bin so auf REDAXO gestoßen. Einfach ideal für kleinere Projekte. :D

So, nun hier gleich auch meine erste Frage:
Die meisten meiner Websites sind 5-sprachig (en, de, fr, es, it), wobei die default-Sprache immer english ist. Bei Typo3 sieht die Sprachversion so aus, wenn man keine Übersetzung hat, wird einfach die default-Sprache angezeigt.

Gibt es diese Funktion für REDAXO auch.
Falls es sie nicht gibt, wie schwierig wäre soetwas zu realisieren?

Ich wäre für eine Lösung bzw. einen Denkanstoß sehr dankbar.

Beste Grüße
Manuel
Manuel.Schmöllerl
 
Beiträge: 139
Registriert: 10. Apr 2006, 22:48
Wohnort: Wien

Beitragvon Markus.Staab » 19. Apr 2006, 18:38

Hi Manuel,

Willkommen bei REDAXO!

das sollte einfach in deinem Template integrierbar sein.

Suche im Template nach
Code: Alles auswählen
echo $this->getArticle();


und ersetze es durch

Code: Alles auswählen
$content = $this->getArticle();
if($content == '')
{
  $content = $this->setClang(0); // Clang ID 0 hier jetzt als Default angenommen
  $content = $this->getArticle();
}
echo $content;


ungetestet!

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

Beitragvon Manuel.Schmöllerl » 19. Apr 2006, 20:13

Hallo Jan,

hat super(einfach) funktioniert, danke.

Beste Grüße
Manuel
Manuel.Schmöllerl
 
Beiträge: 139
Registriert: 10. Apr 2006, 22:48
Wohnort: Wien

Beitragvon Jan.Kristinus » 19. Apr 2006, 21:58

Hallo Yamo,

gerne ;) .. "kills" ist nicht mein Pseudonym :) .. Er nennt sich Markus..

Lg

Jan
Yakamara Media GmbH & Co. KG | Kaiserstrasse 69 | 60329 Frankfurt
Tel.: 069-900.20.60.30
http://www.yakamara.de/
Benutzeravatar
Jan.Kristinus
Admin
 
Beiträge: 1928
Registriert: 24. Aug 2004, 21:11
Wohnort: Frankfurt

Beitragvon Manuel.Schmöllerl » 20. Apr 2006, 05:02

Hoppla, :oops:

kann schon mal passieren, wenn man 5 Dinge gleichzeitig erledigen möchte.

Das Danke gilt natürlich Markus.

Beste Grüße
Manuel
Manuel.Schmöllerl
 
Beiträge: 139
Registriert: 10. Apr 2006, 22:48
Wohnort: Wien

Beitragvon Markus.Staab » 20. Apr 2006, 13:42

Hi zusammen,

jan hat geschrieben:gerne ;) .. "kills" ist nicht mein Pseudonym :) .. Er nennt sich Markus..


das will ich aber auch hoffen ;-)

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

Beitragvon Peter.Bickel » 1. Feb 2007, 11:40

Hm, diese Lösung klappt irgendwie nicht bei Redaxo 3.0. Kann das sein?

Wenn kein Inhalt vorhanden ist, dann geht's. Wenn jedoch schon Inhalt vorhanden ist, wird er doppelt angezeigt - sowohl in deutsch als auch in englisch.
Ich kann den Denkfehler nicht finden. Hat jemand eine Idee?

Danke,
Peter.
Benutzeravatar
Peter.Bickel
 
Beiträge: 1642
Registriert: 25. Jan 2005, 20:17
Wohnort: Schleswig-Holstein

Beitragvon Markus.Staab » 1. Feb 2007, 19:14

Hi,

in 3.0 gibt getArticle() den Inhalt direkt aus, anstatt ihn zurückzugeben..

du müsstest mit

Code: Alles auswählen
ob_start()
$..->getArticle();
$content = ob_get_contents();
ob_end_clean();


arbeiten..

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

Beitragvon Peter.Bickel » 1. Feb 2007, 20:26

Sorry, Markus.

Die Syntax von 3.2 verstehe, aber was Du da geschreiben hast, sind für mich böhmische Dörfer. Könntest Du mir bitte nochmal die vollständige Ausgabe hinschreiben?

Ich wäre Dir sehr dankbar.

Viele Grüße,
Peter.
Benutzeravatar
Peter.Bickel
 
Beiträge: 1642
Registriert: 25. Jan 2005, 20:17
Wohnort: Schleswig-Holstein

Beitragvon Markus.Staab » 1. Feb 2007, 20:42

anstatt von

Code: Alles auswählen
$content = $this->getArticle();

schreibe

Code: Alles auswählen
ob_start();
$this->getArticle();
$content = ob_get_contents();
ob_end_clean();


siehe auch:
http://www.php.net/ob_start

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

Beitragvon Peter.Bickel » 1. Feb 2007, 20:51

Tausend Dank, klappt!
Benutzeravatar
Peter.Bickel
 
Beiträge: 1642
Registriert: 25. Jan 2005, 20:17
Wohnort: Schleswig-Holstein

Beitragvon grb2 » 5. Apr 2007, 17:40

Hallo zusammen,

ich beschäftige mich auch mit einem ähnlich gelagerten Problem.

Der Besucher der Website soll nur auf den Link Englisch klicken können, wenn es im englischsprachigen Artikel tatsächlich Content gibt. Dies versuche ich im Moment wie folgt herauszufinden:

Code: Alles auswählen
<?php
ob_start();
$en = new article;
$en->setArticleId($this->getValue('article_id'));
$en->setClang(1);
$en->getArticle();
$enContent = ob_get_contents();
ob_end_clean();
$size = strlen($enContent);
echo "<pre>$size</pre>\n";
?>


Das Ergebnis ist immer eine positive Zahl, obwohl im englischsprachigen Artikel kein Block eingefügt wurde.

Danke im Voraus für eure Tips.

Schöne Grüße
von Simon
grb2
 
Beiträge: 234
Registriert: 3. Feb 2006, 11:27
Wohnort: Weismain

Beitragvon Markus.Staab » 6. Apr 2007, 12:33

Hi Simon,

Ich würde einfach prüfen, ob der Artikel in der anderen Sprache online ist, nicht ob dieser Inhalt besitzt.. Das geht dann auch über das OOF und ist viel schneller.

Gruß,
Markus

PS:
Diese ob_start() etc Geschichte brauchst du nur bei REDAXO mit Version kleiner 3.1!
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon grb2 » 6. Apr 2007, 13:06

Hallo Markus,

leider kann ich das mit dem Status des Artikels nicht verwenden. Es gibt nämlich auch Artikel, die absichtlich offline sind und trotzdem in der anderen Sprache vorliegen.

Wie kann ich dies zuverlässig prüfen?

VG Simon
grb2
 
Beiträge: 234
Registriert: 3. Feb 2006, 11:27
Wohnort: Weismain


Zurück zu Mehrsprachigkeit [R3]

Wer ist online?

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