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

[gelöst] Image Upload in der Node-Edit-Form manipulieren! Welche Funktion?

Eingetragen von Ionit (1774)
am 05.07.2014 - 15:18 Uhr in
  • Module
  • Drupal 7.x

Hallo Freunde,

da ich kein Coder bin, habe ich hier gerade Probleme.

In einem Node gibt es ein Image-Field ... bei diesem Image-Field ist der Alt-Text aktiviert sodass er in der Node-Add/Edit-Form angegeben werden kann. Ich möchte das Formelement des Alt-Textes aber nur anzeigen/ausgeben wenn der bearbeitende User der Admin ist (also ich), normale User die die Form bearbeiten, sollen dieses Alt-Text-Element nicht angezeigt bekommen (in der Edit-Form) und können es somit auch nicht ausfüllen/ändern. Per Permissions kann man dies leider nicht steuern.

Ich habe nun gerade mit hook_form_alter versucht das Alt-Text-Element mit unset auszublenden aber leider funktioniert das nicht. Das muss doch vorm rendern gemacht werden oder nicht? Ich weiß leider nicht wo ich da ansetzen muss.

Kann mir bitte jemand von euch auf die Sprünge helfen? Muss ich eventuell an der Function theme_image oder theme_image_widget rumhacken oder wo muss ich da ansetzen?

Danke schonmal im Voraus.

Gruß Matthias

‹ fotos löschen aber nicht editieren [gelöst] Image Upload in der Node-Edit-Form manipulieren! Welche Funktion? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Kannst du hier raus

Eingetragen von Jenna (1819)
am 05.07.2014 - 16:41 Uhr

Kannst du hier raus vielleicht etwas basteln ohne zu Coden?
http://nextentity.com.au/blog/2013/apr/adding-alt-tag-title-tag-support-...

Wenn ich das richtig überflogen habe kannst du die Felder gesondert anlegen und mit field_permissions Module könntest du das Feld dann auf "admin" setzen.

Grüße Jenna

ergänzt: sorry, sehe gerade das sich der Link speziell auf das Media Modul bezieht, habe ich überlesen, das hilft dir dann vermutlich auch nicht weiter.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo Jenna, danke für den

Eingetragen von Ionit (1774)
am 05.07.2014 - 17:21 Uhr

Hallo Jenna,

danke für den Hinweis.

Ich habe die Funktionen jetzt aber schon gefunden. Zum einen ist das image_field_widget_process (diese Function ist für die Alt-, Titletexte etc. verantwortlich) und zusätzlich hook_field_widget_form_alter - damit kann man steuern wann/wo das Widget geändert werden soll.

Ich code dazu gerade ein Mini-Modul zusammen und poste später noch den Code (falls das in Zukunft jemand brauchen sollte).

Gruß Matthias

Drupal rockt!!!

  • Anmelden oder Registrieren um Kommentare zu schreiben

So - fertig! Falls das in

Eingetragen von Ionit (1774)
am 05.07.2014 - 18:31 Uhr

So - fertig! Falls das in Zukunft mal jemand braucht - hier ist der Code meines Minimodules. Damit wird das Formelement des Alttextes im Node-Edit-Form nur ausgegeben wenn der bearbeitende User der Admin (uid: 1) ist. Das funzt auch für den Titletext und alle anderen Atribute ....

<?php
function MY_MODULE_field_widget_form_alter(&$element, &$form_state, $context) {
 
// If this is an image field type
 
if ($context['field']['type'] == 'image') {
   
// Loop through the element children (there will always be at least one).
   
foreach (element_children($element) as $key => $child) {
     
// Add the new process function to the element
     
$element[$key]['#process'][] = 'MY_MODULE_image_field_widget_process';
    }
  }
}

function
MY_MODULE_image_field_widget_process($element, &$form_state, $form) {
 
// unset Alt-Text if user is not admin
global $user;
if (
$user->uid != 1) {
unset(
$element['alt']);
}
 
// Return the altered element
 
return $element;
}
?>

Soweit ich das gelesen habe ist aber hook_field_widget_form_alter erst ab Drupal 7.28 verfügbar.

Drupal rockt!!!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Meldung zu Token im Statusbericht
  • Modulupdate per Webinterace scheitert an authorize.php und access denied für Admin-User
  • Fehlermeldung: Deprecated function
  • Warning: call_user_func() expects parameter 1 to be a valid callback, class 'Drupal\node\Entity\Node' does not have a method 'ge
  • Versenden von Anfragen per Webform
  • Goodbye Online Drupal Meetup Germany - Hello Drupal DACH Online Meetup!
  • Übersetzte Felder bei Inhaltstyp automatisch übernehmen
  • Content Ex-/Import
  • RESTful Path request will nicht
  • Wer ist online Block
  • Doppelte Anzeige von Node im View
  • URL-Alias von bestehendem Link wird gelöscht und auf -0 gesetzt 404 Fehler entsteht
Weiter

Neue Kommentare

  • Self-referencing
    vor 7 Stunden 29 Minuten
  • settings.php
    vor 8 Stunden 5 Minuten
  • Kulturmensch schrieb Prima
    vor 9 Stunden 2 Minuten
  • Metatag
    vor 9 Stunden 12 Minuten
  • Links
    vor 8 Stunden 30 Minuten
  • Wenn Du nach der
    vor 10 Stunden 16 Minuten
  • Gut zu wissen. Demnächst
    vor 1 Tag 2 Stunden
  • Token Fehler behoben
    vor 1 Tag 3 Stunden
  • Du hast völlig recht, da habe
    vor 1 Tag 8 Stunden
  • Link 404
    vor 1 Tag 11 Stunden

Statistik

Beiträge im Forum: 245974
Registrierte User: 18827

Neue User:

  • finnster
  • Damian1802
  • MrWebMV

» Alle User anzeigen

User nach Punkten sortiert:
wla9010
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3916
ronald3829
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 6 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