[GELÖST]Alternativtext zu View
Eingetragen von DZLM-Helpdesc (15)
am 14.05.2014 - 13:55 Uhr in
am 14.05.2014 - 13:55 Uhr in
Hallo,
ich habe per PHP ein View mit einem Video auf eine einfache Seite eingebettet. Dieses Video soll nur für eine bestimmte Nutzergruppe sichtbar sein. Auch das ist kein Problem. Wenn aber ein Gast auf diese Seite kommt, soll an der Stelle des Views so stehn wie "geschützter Inhalt..." oder so.
Hat jemand eine Idee, wie ich das realisieren kann?
- Anmelden oder Registrieren um Kommentare zu schreiben
Du könntest einfach einen
am 14.05.2014 - 21:53 Uhr
Du könntest einfach einen Block anlegen mit Sichtbarkeitseinstellung nur für Gast mit dem entsprechenden Text und "diesen Block nur auf meine-video-seite" anzeigen.
Unterhalb des Blocktextextes kannst du ja frei bestimmen wo Blöcke und für wen angezeigt werden.
Reicht dir das aus?
Grüße Jenna
Hey Jenna, danke für deine
am 15.05.2014 - 08:19 Uhr
Hey Jenna,
danke für deine Idee. Leider hab ich es nicht geschafft einen Block per php einzubetten (z.B. in eine Tabelle). Bei Views hab ich da keine Probleme.
Weißt du vielleicht, wie ich das hinbekomme?
Leider hab ich es nicht
am 15.05.2014 - 09:57 Uhr
Leider hab ich es nicht geschafft einen Block per php einzubetten
Ich verstehe nicht ganz was du vorhast und warum, bitte beschreib das etwas genauer.
Warum nutzt du nicht die Drupal Funktionen, also z.B. hat deine Video-Seite doch einen bestimmten Path und auf dem kannst du einen Block ausgeben?
Ebenso kannst du auch Videos auf diese Weise nur bestimmten Benutzerrollen anzeigen (ein Weg von vielen bei Drupal).
Mit PHP Abfragen kann ich dir leider nicht weiter helfen, falls es in deinem Fall nicht anders geht.
Grüße Jenna
Hey, also. Ich habe bisher
am 15.05.2014 - 10:24 Uhr
Hey,
also. Ich habe bisher gedacht, dass man Blöcke immer nur auf bestimmten Bereichen (Sidebar usw.) anzeigen lassen kann. Ich möchte aber zum Beispiel den Block in einer Tabelle anzeigen lassen (siehe angehängtes Bild (dort wo das Video jetzt ist, soll der besagte Block dann auftauchen)). Verstehst du nun was ich meine? Ich will den Block genau an dieser Stelle haben
Moin, ich hoffe, ich
am 15.05.2014 - 10:33 Uhr
Moin,
ich hoffe, ich verstehe dich richtig: Mit Hilfe einer View bindest du ein Video- Feld in eine Node ein, oder? Ich verstehe nicht ganz, wozu du dafür PHP benötigst. Dafür gibt es EVA.
Dein Problem kannst du mit einem View- Template lösen. In der View rechts unter Advanced -> Theme: Information findest du dein Feld. Da klickst du drauf und kopierst den PHP- Code in eine Datei, die du nach einem der Vorgaben von Views benennst. Z.Bsp.: views-view-field-video.tpl.php. Die Datei speicherst du im Template Verzeichnis deines Themes. Danach müssen die Template Dateien neu eingelesen werden. Dafür siehst du direkt in der View einen Link. Alternativ die Theme Registry neu aufbauen.
Die Template Datei kannst du dann z.Bsp. so modifizieren:
<?php
/**
* @file
* This template is used to print a single field in a view.
*
* It is not actually used in default Views, as this is registered as a theme
* function which has better performance. For single overrides, the template is
* perfectly okay.
*
* Variables available:
* - $view: The view object
* - $field: The field handler object that can process the input
* - $row: The raw SQL result that can be used
* - $output: The processed output that will normally be used.
*
* When fetching output from the $row, this construct should be used:
* $data = $row->{$field->field_alias}
*
* The above will guarantee that you'll always get the correct data,
* regardless of any changes in the aliasing that might happen if
* the view is modified.
*/
?>
<?php
$alttext = '<div class="alttext">Videos stehen nur angemeldeten Users zur Verfügung..... oder sowas</div>';
global $user;
if($user->uid != 0) { // Gäste haben immer die UserID 0 (Integer)
print $output;
}
else {
$output = $alttext;
print $output;
}
?>
Danke Danke:) genau das wollt
am 15.05.2014 - 10:52 Uhr
Danke Danke:)
genau das wollt ich!