Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Themes & Theming ›

[gelöst] views mini pager theming: image mit link statt einem '>>'

Eingetragen von 1kubik (903)
am 18.10.2011 - 17:43 Uhr in
  • Themes & Theming

hallo und guten abend

ich bin gerade auf der suche nach der möglichkeit den views mini pager
zu themen. im prinzip ja auch ganz einfach der entsprechenden theme funtion
in der template.php

function mytheme_views_mini_pager($vars) {
//snipp

  $li_next = theme('pager_next',
    array(
    'text' => (isset($tags[3]) ? $tags[3] : t('››')),
    'element' => $element,
    'interval' => 1,
    'parameters' => $parameters,
  )

  );
///snapp
..

hier also statt der t('>>') eben ein img. aber das geht leider nicht so einfach:

  'text' => (isset($tags[3]) ? $tags[3] : '<img src="images/pager-right.png">'),
fürht dazu das der link quellcode als text ausgegeben wird..

bei der variante

$li_nexts = theme('image',
array(
'path' =>'images/pager-right.png',
'alt' => 'ich bin garnicht alt!',
)
);

wird die grafik auch angezeigt, allerdings logischer weise ohne link
und immer da ja auch
isset($tags[3]) ? $tags[3]

fehlt..
ich weiss das das gut mit css zu machen wäre aber ich mir gehts auch n bisschen
um theming praxis..

vielen dank vorab
grüße
stef
.

‹ [erledigt] Selbsterstelltes Gästebuch für D7 (redpanda.ch) themen Omega / libra installation ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

CSS

Eingetragen von Nicolai Schwarz (1071)
am 19.10.2011 - 12:57 Uhr
Zitat:

ich weiss das das gut mit css zu machen wäre aber ich mir gehts auch n bisschen
um theming praxis..

Ähem, du fuchtelst lieber in der template.php herum, als das "eben" mit CSS zu machen? Wenn die Links im Pager eindeutige Klassen bekommen (habe ich nicht nachgeprüft, ist aus meiner Erinnerung aber so), kannst du da schnell mit CSS ein Bild statt des Linktextes einsehen. Insbesondere weil es über die template.php ja gerade nicht klappt.

  • Anmelden oder Registrieren um Kommentare zu schreiben

hallo nicolai Zitat: Ähem,

Eingetragen von 1kubik (903)
am 19.10.2011 - 13:46 Uhr

hallo nicolai

Zitat:

Ähem, du fuchtelst lieber in der template.php herum, als das "eben" mit CSS zu machen?

ja genau. ich denke dazu ist doch die template.php / template functions da...

das beispiel ansich ist so vielleicht nicht sinnvoll aber ich möchte es grundsätzlich einfach hinbekommen
um das theming zu vertiefen statt einem text link eben eine grafik reinsetzen und zwar
innerhalb des drupal (pre)prozesses.

bei dem drupal design camp in berlin diesen jahres wurde das auch so
nahegelegt: inhalt aus- bzw einblenden nicht per css, das ist 'crime'..
leider finde ich die session bzw den titel oder den namen von dem der das
gesagt hat nicht. die http://drupaldesigncamp.net/ seite ist leider auch down.

grüße
stef

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn ich mir Dein Beispiel so

Eingetragen von wla (9461)
am 19.10.2011 - 14:27 Uhr

Wenn ich mir Dein Beispiel so anseheh, mußt die Funktion für "theme('pager_next'," überschrieben werden. Ich weiß jetzt nicht wo der Code herstammt und nehme das Stück Code jetzt einfach so, wie es da steht.
Ganz allgemein wird aus theme('pager_next',.... die Funktion theme_pager_next, die Du überschreiben mußt. Daraus wird in der template.php DeinTheme_pager_next(....
Du kannst nicht einfach den Text durch den HTML-Code für das Bild ersetzen. Vermutlich wird in der Themeing Routine die l-Funktion (Das ist ein kleines L) zum Bauen des Links benutzt. Die braucht aber einen speziellen Hinweis ('html' => TRUE), wenn ein Bild verwendet wird. Du wirst Dir den Code Deiner Theming-Funktion ansehen müssen, ob die vielleicht eine weitere Theming-Funktion aufruft, um zu sehen, wie Du mit passenden Argumenten im Aufruf der ersten Funktion das gewünschte Verhalten hinbekommst. Wird auf ein bischen graben im Code hinauslaufen, bist Du die Funktionsweise begriffen hast. Theme_pager_next scheint jedenfalls schon in Views für den Minipager irgenwo überschrieben zu werden, aber das habe ich jetzt nicht mehr überprüft.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

Halb richtig

Eingetragen von Nicolai Schwarz (1071)
am 19.10.2011 - 15:33 Uhr
Zitat:

bei dem drupal design camp in berlin diesen jahres wurde das auch so
nahegelegt: inhalt aus- bzw einblenden nicht per css, das ist 'crime'..

So allgemein ist das nicht ganz richtig. Es kommt darauf an.
Wenn du in einem Benutzerprofil zum Beispiel die Adresse abfragst, diese aber nicht erscheinen soll, ist es blöd, die per CSS zu verstecken. Denn jeder kann dann trotzdem an die Adresse herankommen. Hier musst du die Ausgabe also per PHP unterbinden.
Aber: Es gibt ab und zu Elemente auf der Seite, die du nur aus gestalterischen Gründen nicht dort haben willst. Per CSS lassen die sich mitunter viel schneller ausschalten. Und ob die jemand trotzdem im Quelltext findet, kann dir egal sein. Zumindest dann, wenn es keine Informationen sind, die du eigentlich geheim halten möchtest/musst.

Dein Fall hier ist jedoch ganz anderer Natur: Texte per CSS durch Bilder zu ersetzen ist eine gängige Technik. Das kann man mit dem Logo einer Firma (Firmenname) so machen oder mit Menüpunkten. Man schiebt den Text zur Seite und setzt ein Hintergrundbild ein. Auch in deinem Beispiel ist das völlig legitim. Nicht nur legitim, ich würde das als Best Practice verstehen. Deine Methode ist an dieser Stelle eher "mit Kanonen auf Spatzen".

  • Anmelden oder Registrieren um Kommentare zu schreiben

hallo werner ja danke

Eingetragen von 1kubik (903)
am 20.10.2011 - 12:28 Uhr

hallo werner
ja danke dir!!
die l() funktion
war die fehlende info für mich an der stelle.
und wie di ja schon vermutet hast, habe ich die theming functions für den
views mini pager überschrieben um an den page zu kommen.
im prinzip ganz einfach und recht schnell wenn mensch eben weiss wo und wie :)

function theme_views_mini_pager($vars)
//.... exemplarisch jetzt nur der pager_next
// ...satt dem t('>>') das bild einsetzen
  $li_next = theme('pager_next',
    array(
        'text' => (isset($tags[1]) ? $tags[1] : '<img src="' . base_path() . path_to_theme().'/images/pager-right.png"/>'),
    'element' => $element,
    'interval' => 1,
    'parameters' => $parameters,
  )

  );

jetzt wird der pager_net von der theme_pager_next verrabeitet, ebenso wie an anderer stelle
der theme_pager_previous.

die muss ich aber nicht anfassen, das beide theme_pager_link aufrufen um letzlich den link zu erzeugen mit der l().
und dort dann einfach eben die option html=>true setzen:

function theme_pager_link($variables) {
//.. ganz unten letzte zeile
  return l($text, $_GET['q'], array('html'=>TRUE,'attributes' => $attributes, 'query' => $query));
}

das wars schon!

besten gruss
stef

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: So allgemein ist das

Eingetragen von 1kubik (903)
am 20.10.2011 - 12:41 Uhr
Zitat:

So allgemein ist das nicht ganz richtig. Es kommt darauf an.

ja, sehe ich auch so

Zitat:

Texte per CSS durch Bilder zu ersetzen ist eine gängige Technik.

stimmt auch. am besten eben auch alscss image sprites (was ja mit drupal 7 leider
nicht umzusetzen ist http://groups.drupal.org/node/15399)
allerdings wenn eine grafik schon im markup ausgeliefert wird ist das doch aber performanter
oder?

den pager per css eine grafik zuverpassen ist ganz klar der
schnellere weg. das mit dem theming funktionen war wie gesagt
ja 'zum spielen'. ichhab jetzt wieder was gelernt darum ging es mir..:)
das problem jetzt mit den überschrieben theme hooks ist das
das natürlich jetzt bei allen pager_links und nicht nur im views_mini_pager
eingesetzt wird. das wäre mit der css variante nicht so.

grüße
stef

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 5 Tagen
  • Hey danke
    vor 1 Woche 5 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 4 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 1 Tag
  • In der entsprechenden View
    vor 3 Wochen 1 Tag
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 1 Tag
  • gelöst
    vor 5 Wochen 4 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 20 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association