Sortierungsanzeige falsch / Gästebuch

Hi zusammen,

die Sortierungsbeschriftung im Gästebuch wird falsch angezeigt. Dort steht klein “author” und “date”. Richtig sollte das natürlich heißen: Autor und Datum.

Das sort_guestbook.snippet.tpl sieht wie folgt aus:


[{if $oView->showSorting()}]
  <!--Native Language-->
  [{assign var="columnnames_oxtitle" value="INC_SORT_GUESTBOOK_DATE"|oxmultilangassign }]
  [{assign var="columnnames_oxprice" value="INC_SORT_GUESTBOOK_AUTHOR"|oxmultilangassign }]
  [{assign_adv var="columnnames" value="array
  (
    'oxgbentries.oxcreate' => '$columnnames_oxtitle',
    'oxuser.oxusername' => '$columnnames_oxprice'
  )
  "}]

  <span class="sort_row">
      [{ oxmultilang ident="INC_SORT_GUESTBOOK_SORTBY" }]

      [{foreach from=$oView->getSortColumns() item=sortcolumn}]

        [{assign var="neworder" value="asc"}]
        [{if $oView->getGbSortBy() == $sortcolumn}]
          [{if $oView->getGbSortDir() == "asc"}]
            [{assign var="sort_order" value="asc active" }]
            [{assign var="neworder" value="desc"}]
          [{else}]
            [{assign var="sort_order" value="desc active" }]
            [{assign var="neworder" value="asc"}]
          [{/if}]
        [{else}]
            [{assign var="sort_order" value="none" }]
        [{/if}]

         
        <a href="[{ $oViewConf->getSelfLink() }]gborderby=[{$sortcolumn}]&gborder=[{$neworder}]&[{$oView->getAdditionalParams()}]" class="[{$sort_order}]" rel="nofollow">[{if $columnnames.$sortcolumn}][{$columnnames.$sortcolumn}][{else}][{$sortcolumn}][{/if}]</a>
      [{/foreach}]
  </span>

[{/if}]


INC_SORT_GUESTBOOK_DATE und INC_SORT_GUESTBOOK_AUTHOR sind in der cust_lang.php natürlich genauso vorhanden.

Irgendwelche Ideen, weshalb die Sprachvariablen nicht korrekt gezogen werden?

Chris,
wo erreicht man deinen Gästebuch und du hast 4.6 ?

Grüße
Rafig

Servus Rafig,

mein Gästebuch erreichst Du unter www.meinestruempfe.de/feedback/.
Ja, ich verwende noch eine 4.6 er Version :slight_smile:

Chris,
in[B][I] views/guestbook.php[/I][/B] Zeile 234.


$this->_aSortColumns  = array( 'author', 'date' );

Grüße
Rafig

EDIT: Chris, ich habe extra kurz und knapp geschrieben weil ich weiß das du Technisch versiert bist. Es handelt sich hierbei um Array() und sowie jetzt ist kannst du Ihn über deiner lang.php nicht Steuern, dafür musstest du schon bisschen Arbeiten und Ihn anpassen. :slight_smile:

Hi Rafig,

das gibt aber komplett die Sortierungsspalten an und nicht die eigentliche Übersetzung. Die Spaltennamen werden dann im Snippet direkt so ausgeben. Auf den vorherigen Part im Template wird gar nicht erst zugegriffen…

ich sehe hier keinen Sprachschlüssel:


 <a href="[{ $oViewConf->getSelfLink() }]gborderby=[{$sortcolumn}]&gborder=[{$neworder}]&[{$oView->getAdditionalParams()}]" class="[{$sort_order}]" rel="nofollow">[{if $columnnames.$sortcolumn}][{$columnnames.$sortcolumn}][{else}][{$sortcolumn}][{/if}]</a>

Ändere das PHP Datei und speichere ab und du wirst sehen das die Arrays sind.

Grüße
Rafig

Dann wohl so:


[{ oxmultilang ident=$sortcolumn|upper}]

Ach ja, jemand ne Ahnung, für was dieses IF hier gut sein soll?


[{if $columnnames.$sortcolumn}][{$columnnames.$sortcolumn}]

du hast recht, ganz oben sehe ich gerade das die sprache definiert ist
(so alt ist die Basic Template auch wieder nicht das man Sprache in PHP Ändern muss :)).

Funktioniert denn nur mit cust_lang.php nicht oder wird auch auf das lang.php nicht zugegriffen ?


  [{assign var="columnnames_oxtitle" value="INC_SORT_GUESTBOOK_DATE"|oxmultilangassign }]
  [{assign var="columnnames_oxprice" value="INC_SORT_GUESTBOOK_AUTHOR"|oxmultilangassign }]
  [{assign_adv var="columnnames" value="array
  (
    'oxgbentries.oxcreate' => '$columnnames_oxtitle',
    'oxuser.oxusername' => '$columnnames_oxprice'
  )
  "}]

Grüße
Rafig

Chris,

$columnnames

ist ein Array und enthält eben deine Sprachvariablen (Autor und Datum) und

$sortcolumn

wie der Name schon sagt Sortiert nach “Autor” und “Datum”.

Grüße
Rafig

Chris,
leider kann ich Ihn nicht testen. Ich habe weder 4.6 noch Basic im Einsatz, probiere doch mal das hier:


 [{var_dump|$columnnames}]

Grüße
Rafig

Servus Rafig! Danke für Deine Erklärung. Wenn ich die IF Bedingung weglasse funktionierts dennoch, deswegen die Frage…

Chris,
in der IF Abfrage wird nur gefragt:

Ist der Aktueller Sortierung “Absteigender” Sortierung, mach bei USER-Klick einen “Aufsteigender” Sortierung wenn nicht mache einen “Absteigender” Sortierung.

In JavaScript würde man das “toggle” nennen. :slight_smile:

Grüße
Rafig

Ja, aber dort wird ja nicht der Parameter String generiert, sondern die Ausgabe der Wörter Datum und Autor, deswegen erschließt sich mir der Sinn der Abfrage so ganz und gar nicht…

Ein [{ oxmultilang ident=$sortcolumn|upper}] reicht hier also völlig aus…

Ja, aber du sollst nicht vergessen das der <A> Tag und HREF=“Parameter” in einer Foreach Schleife aufgebaut wird. Dort hast du nicht 2 Verlinkungen (Autor und Datum) Statisch nebeneinander stehen.


[{foreach from=$oView->getSortColumns() item=sortcolumn}]

Grüße
Rafig

Is mir klar, dennoch wird ja die IF Bedingung niemals wahr…

Ok. Du meinst das wäre jetzt aus “Jux und dollerei” drin?

Liest doch mal den ganzen Code in [B]sort_guestbook_snippet.tpl[/B] durch. Das sind gerade mal 35 Zeilen Code und verstehen tust du Ihn sowieso wie ich dich so kenne. :slight_smile:

Aber wenn du meinst Du nimmst die IF Abfrage raus und alles Funktioniert und Sprachschlüssel wird Korrekt ausgelesen, lasse es doch einfach weg.

Grüße
Rafig

Hmmm, könnte sein :wink:

Jedenfalls funktionierts auch prächtig ganze ohne den IF-Kram. Ja, verstehen tu ich den Code schon. Andererseits störts auch nicht weiter, wenn ich den Code einfach so stehen lasse, da sowieso immer das ELSE greift.

Weiß der Geier, der ja sowieso immer alles weiß, weshalb das da so drinne steht…

Hier greift immer ELSE ein? Das kann nicht sein:


[{if $columnnames.$sortcolumn}]

Obwohl du Ihn richtig verstehst hier noch einmal Erklärung:

[{ Falls Autor oder Datum (punkt) gerade Auf oder Absteigend Sortiert ist}]

Autor oder Datum ist gerade Auf-oder Absteigend Sortiert

[{Wenn nicht}]

Autor oder Datum ist nicht Sortiert bzw. Standard Sortierung.

[{ENDE}]

Aber ich sehe gerade du hast noch zu wenige Einträge in der Gästebuch und die Abfrage kommt noch nicht zur Geltung.

Grüße
Rafig

Okay, dann warten wir mal ab, was bei mehreren Gästebucheinträgen passieren wird. Meiner Meinung nach gibts dafür aber noch keine passenden Sprachschlüssel, die an dieser Stelle dann ausgegeben werden können.

Dankeschön nochmal für Deine ausführliche Erklärung!