VIEWS - "Ist online" / "Ist offline" Grafik zuweisen ?
Eingetragen von Thoor (3678)
am 20.10.2009 - 12:50 Uhr in
am 20.10.2009 - 12:50 Uhr in
Beim VIEWS "Feld Benutzer: Is online" unterscheidet sich die Ausgabe im VIEW leider nur im Text.
z.B.:
<div class="views-field-is-online">
<span class="field-content">Online</span>
</div>
<div class="views-field-is-online">
<span class="field-content">Offline</span>
</div>
Ich würde aber ganz gerne eine weitere CSS Klasse unterbringen, abhängig vom online/offline status um beispielsweise eine "Ist online" / "Ist offline" Grafik zuzuweisen. Die Durchsicht der Template Dateien brachte nichts ... jemand nen Tipp für mich?
- Anmelden oder Registrieren um Kommentare zu schreiben
Also meine erste Idee waere
am 20.10.2009 - 13:25 Uhr
Also meine erste Idee waere jetzt ein eigenes Template fuer die View zu erstellen in dem du dann an entsprechender Stelle ein Bild anzeigst.
Die Source des Bildes baust du dir dann mit hilfe von deinem Feld zusammen.
MartinI schrieb Also meine
am 20.10.2009 - 14:58 Uhr
Also meine erste Idee waere jetzt ein eigenes Template fuer die View zu erstellen in dem du dann an entsprechender Stelle ein Bild anzeigst.
Die Source des Bildes baust du dir dann mit hilfe von deinem Feld zusammen.
Tja ... nur wie du siehst wäre es ja das gleiche Bild für ONLINE und OFFLINE, da sich ausschliesslich der Text ändert! Das ist ja mein Problem!
---------------------------------------------------------------------------
NEU! Drupalseiten vorstellen, bewerten und kommentieren - Jetzt eintragen!
kannst Du das nicht lösen
am 21.10.2009 - 08:03 Uhr
kannst Du das nicht lösen in dem Du nur nach online filterst? Dann kannst Du per default ein offline Bildchen angeben und sollte ein Wert für online zurückgegeben werden, dann lässt Du das online Bildchen anzeigen.
Views werden ja nicht angezeigt wenn sie keine Werte haben.
... nur so als Ansatz
genau, der Text aendert
am 21.10.2009 - 08:20 Uhr
genau, der Text aendert sich. Lass dir in einem View-Template doch mal alle PHP-Variablen ausgeben und guck was du da zurueck bekommst. Im besten Fall bekommst du fuer den on-/offlinestatus genau den Text "Online" oder "Offline" raus und da du im Template ja wunderbar mit PHP arbeiten kannst sollte es dann doch kein Problem sein
Bsp.: (dummycode)
// Werte aus den View-Variablen
$view['online'] = 'offline';
// Bild online oder offline anzeigen
printf('<img src="%s.jpg"/>', $view['online']);
Keine Ahnung ob in den Variablen tatsaechlich die Werte so drin stehen aber ein Versuch ists wert
preprocess
am 21.10.2009 - 08:38 Uhr
Moin.
Über eine preprocess-Funktion für den View kannst Du die Ausgabe dieses Feldes beliebig anpassen und somit auch anstelle des Textes eine Grafik anzeigen.
hth,
Stefan
--
sei nett zu Deinem Themer
Tja ... sag ich mal Danke an
am 21.10.2009 - 09:20 Uhr
Tja ... sag ich mal Danke an alle, die sich versucht haben. Ich habe leider zwei Probleme mit den Tipps :-) Da wären zum einen wieder mal meine bescheidenen PHP Fähigkeiten und zum anderen finde ich die preprocess_function auch nicht, die den online Status "regelt" ... da hatte ich mir gestern schon den "Wolf" gesucht ...
preprocess
am 21.10.2009 - 09:39 Uhr
Mal angenommen, Dein View heisst "userlist" und Du zeigst ein page-Display an:
<?php
/**
* Modify available variables for view userlist.
*/
function template_preprocess_views_view_fields__userlist__page_1(&$vars) {
$status = $vars['fields']['field_is_online']->content;
$img_path = drupal_get_path('theme', 'myThemename') . '/images/' .
($status == t('Online') ? 'online' : 'offline') . '.png';
$vars['is_online'] = theme('image',
$img_path,
$status,
t('User is %status', array('%status' => $status))
);
}
?>
Jetzt hast Du im Template views-view-fields--userlist--page-1.tpl.php die Variable
$is_online
zur Verfügung, in der ein fertig gerendertes Bild enthalten ist.hth,
Stefan
--
sei nett zu Deinem Themer
Mich würde interessieren ob
am 14.01.2010 - 23:52 Uhr
Mich würde interessieren ob du schon zur einer Lösung gekommen bist. Ich stehe jetzt vor demselben Problem und möchte in meiner userliste noch ein Icon zufügen der rot oder grün anzeigt je nachdem ob eine User online ist oder nicht. viele grüße
ach vergessen meine userliste gebe ich mit views aus, und habe sie mit views-view-fields--Benutzerliste--page-1.tpl.php verändert.
$rows durchforsten
am 15.01.2010 - 04:01 Uhr
Hab's nicht ausprobiert: Aber könnt ihr nicht einfach z.B. $rows im views-view.tpl.php per
str_replace
durchforsten? Ihr ersetzt dann einfach etwaOnline
durch<img ...>
.Das funktioniert so natürlich nur, wenn "Online" oder das betreffende Wort sonst nicht im Text vorkommt. In dem Fall erweitert man eben durch
<span class="field-content">Online</span>
.--
textformer mediendesign | Webkrauts
Ich meine man könnte das
am 15.01.2010 - 06:25 Uhr
Ich meine man könnte das viel einfacher Lösen:
Wenn ich das richtig verstande habe, dann geht es ja um die Ausgabe eines Feldes, das nur 2 Werte haben kann. Man könnte bei diesem Feld einfach die "Rewrite Output"-Funktion dieses Feldes benutzen.
angenommen es handelt sich um das Feld "MyField". Replacement Pattern dafür wäre dann [myfiled]. Bei Rewrite Output könnte man dann folgende eintragen:
<span class="myfield-[myfield]">[myfield]</span>
Die Ausgabe wäre dann dementsprechend:
<span class="myfield-Offline">Offline</span>
oder<span class="myfield-Online">Online</span>
Das hört sich gut an, nur
am 15.01.2010 - 08:23 Uhr
Das hört sich gut an, nur bin ich kein Profi und versuche es mal. (class="myfield-[myfield]">[myfield]) in Views (Rewrite the output of this field) einfügen. Und die Ausgabe über (class="myfield-Offline">Offline) oder
(class="myfield-Online">Online) *.tpl.php. Habe ich das so richtig verstanden. viele grüße
fugazi schrieb über
am 15.01.2010 - 08:30 Uhr
über (class="myfield-Offline">Offline) oder
(class="myfield-Online">Online) *.tpl.php. Habe ich das so richtig verstanden.
Nein - du müsstest eigentlich nur im VIEW die Feldausgabe ersetzen! "Rewrite the output of this field" .... dann sollte das klappen und Du kannst dann den beiden neuen Klassen Hintergrundgrafiken per CSS zuordnen ...
--------------------
Design Probleme einfach mit FF und FIREBUG lösen!
Ähm .... nee glaub nich
am 15.01.2010 - 08:30 Uhr
Ähm .... nee glaub nich :-)
mit "Rewrite the output of this field" kannst du die Ausgabe des Feldes verändern. Wenn du dort also
<span class="myfield-[myfield]">[myfield]</span>
eingibst, dann wird bei der Ausgabe um den Inhalt des Feldes ein span-Tag eingefügt, der dann die Klasse "myfield-Offline" oder "myfield-Online" hat und somit können beide Variante über CSS eindeutig angesprochen werden.Beachte: [myfield] muss natürlich mit dem richtigen Replacement-Pattern erstezt werden. Für z.Bsp. den Titel müsste man also [title] benutzen. Wenn du die Option Rewrite the output of this field aktivierst, dann siehst du dort etwas weiter unten die Replacement Patterns.
Es gibt noch die
am 15.01.2010 - 10:36 Uhr
Es gibt noch die Möglichkeit über das Modul User-Stats zu gehen. Dieses zeigt ebenfalls den Online/Offline-Status an und ist Views-Kompatibel. Eventuell hilft es ja bei der Problematik.
alles klar ich kann nicht
am 15.01.2010 - 10:39 Uhr
alles klar ich kann nicht mehr folgen, ich bin noch Anfänger und verstehe php nicht so gut. Ich mache ein Screen:
was soll oder muss im Textfeld stehen. Und was danach? ich muss doch meiner css oder *.tp.php sagen wo das Bild erscheinen soll. Hier haben wir das Problem, ich verstehe das noch nicht so... jammer :-(
Ich hoffe das mir da einer Helfen kann... Viele Grüße
Zitat: ich muss doch meiner
am 15.01.2010 - 10:55 Uhr
ich muss doch meiner css oder *.tp.php sagen wo das Bild erscheinen soll.
Mit PHP das nix zu tun. Aber bevor ich hier jetzt anfange über CSS zu philosphieren könne man sichs auch einfacher machen:
Ich nehme an du möchtest nur die 2 Bilder anzeigen und hast diese bereits erstellt, also eines für Online und eines für Offline. Am besten legst du diese beiden Bilder im Verzeichnis /sites/default/files ab, am besten unter den Namen Offline.png und Online.png
Dann musst du in das von dir mit "was soll hier rein?"-markierte Feld nurnoch folgendes eintragen:
<img src="/sites/default/files/[is_online].png" alt="[is_online]"/>
Super hat geklappt jetzt
am 15.01.2010 - 15:52 Uhr
Super hat geklappt jetzt frage ich mich nur wie bekommt man es hin das beim offline Status z.b. roter Punkt und bei Online grünen Punkt gezeigt wird. Geht das überhaupt? Danke erst mal für die Hilfe an alle !!!!!