Erstellte Profilfelder als Ordnernamen im IMCE verwenden
am 29.04.2011 - 13:18 Uhr in
Hallo leute,
nach einigen überlegungen und experimenten mit verschiedenen CMS systemen habe ich mich nun für Drupal entschieden. Bei meinem ersten Drupal projekte möchte ich einige sachen realisieren. Zunächst erstmal über das Admin Interface. Trau mich noch nicht an den Quellcode heran.
Folgendes habe ich vor:
Ich möchte für mein Studiengang eine kleine Homepage erstellen um Dateien mit Dozenten auszutauschen(zb Vorlesungspräsentationen). Diese Homepage soll von mehreren Jahrgängen benutzt werden. Die Accounts werden nur vom Administrator erstellt. Um das umzusetzen habe ich das Modul IMCE installiert und habe 2 Profile angelegt. Dozent und Student. Der Dozent hat zugriff auf die Verzeichniss files und users und auch auf die Unterverzeichnisse. Er kann dort Dokumente hochladen. Der Student soll nur zugriff auf users/username und files/jahrgang zugriff haben. Er darf keine Dateien hochladen , sondern nur anschauen und downloaden.
Erstmal wollte ich für jeden Jahrgang eine Rolle anlegen und ein Profil im IMCE, dann habe ich aber im Admin Interface die möglichkeit gefunden , felder hinzuzufügen. Ich habe also ein weiteres Feld hinzugefügt "field_year".
Mein Problem ist folgender. Ich möchte gerne, dass NUR der Administrator das feld editieren kann und der user darf in das Feld nichts eintragen.
Und in den Profile Einstellungen von IMCE habe ich kein zugriff auf diese variable. habe dort als verzeichnis folgendes eingetragen:
php: return 'files/'.$user->field_year;
Meine fragen wären zunächst dann, ob und wie könnte ich, ein nur für Administrator sichbares ,eingabefeld erstellen.
Und wie kann ich auf den wert des eingabefeldes im IMCE zugreifen?
Ich dachte mir, bevor ich anfange mich mit Quellcode außeinander zu setzen, frage ich erstmal im Forum nach.
Meine PHP Kentnisse sind fortgeschritten aber ich habe keine Ahnung wo und was sich im Quellcode von Drupal befindet.
Ich hoffe ihr könnt meine fragen beantworten.
MFG
- Anmelden oder Registrieren um Kommentare zu schreiben

Bei Drupal 6 geht das ganz
am 29.04.2011 - 13:34 Uhr
Bei Drupal 6 geht das ganz einfach über die Permissions/Berechtigungen. Dort kann eingestellt werden welche Rolle welches (CCK)Feld editieren und/oder sehen kann. Rolle A darf z.B. Feld B editieren und sehen - Rolle B darf Feld B aber nur sehen NICHT editieren.
Dasselbe wird unter Drupal 7 sicher auch möglich sein.
Schau mal wo dort die Permissions zu finden sind.
Hm.. leider kann ich nur
am 29.04.2011 - 14:01 Uhr
Hm.. leider kann ich nur einstellen was eine bestimmte rolle auf der seite machen kann, muss ich vielleicht das CCK Modul installieren?
CCK wird dir nichts bringen,
am 29.04.2011 - 14:18 Uhr
CCK wird dir nichts bringen, dieses Modul ist hauptsächlich für D6 gedacht, Drupal 7 bringt seine eigenen Felder mit.
Aber evtl. wäre das Modul Field Permissions da was für dich:
http://drupal.org/project/field_permissions
hey klasse, das ist das was
am 29.04.2011 - 18:24 Uhr
hey klasse, das ist das was ich gesucht habe, wie könnte ich nun auf den wert des feldes über IMCE zugreifen?
php: return 'files/'.$user->field_year; klappt leider nicht
EDIT: also ich weis nicht genau wo sich die Daten des feldes befinden.. ich habe folgendes gemacht
php: echo ''.print_r($user,true).'';
und
php: echo ''.print_r($GLOBALS,true).'';
ich kriege dann im File Browser großes array angezeigt aber das erstellte field_year ist da nicht vorhanden..in welcher variable stehen denn die eingabefelder drin?
EDIT2: ok ich habe jetzt mit der funktion
php: echo''.print_r(field_info_field('field_year'),true).'';
jetzt alle infos über das eingabefeld gefunden aber immernoch nicht das value, welches ich für jeden user da gespeichert habe... auch war komisch dass wenn ich als administrator oben in der navi auf Benutzer und einen benutzer auswähle, dann sehe ich den wert des feldes.
die ausgabe sieht dann so aus:
['user']=>Array(
['fieald_year']=>array(
['und']=>array(
[0]=>array(
['value']=> 2011
)
)
)
)
wenn ich mich aber ganz normal als user einlogge, wird es nicht mehr angezeigt... ich will ledeglich an dieses value rankommen.. kann denn mir hier keiner helfen?
Da ich noch keine Antwort
am 02.05.2011 - 11:04 Uhr
Da ich noch keine Antwort erhalten habe, gehe ich davon aus dass ihr nicht genau verstanden habt, was ich vorhabe. Desswegen erkläre ich es mal schritt für schritt.
Ich habe im ACP(Admin Control Pannel) unter Konfiguration->Kontoeinstellungen->Felder Verwalten ein feld hinzugefügt. Das feld heißt field_year es ist eine Ganzzahl.
Mit dem Modul "Field Permissions" habe ich eingestellt , dass die Benutzergruppe bzw. Rolle "Student" dieses Feld nur sehen kann in seinem Profil aber nicht bearbeiten. (Unter Benutzer->Berechtigungen ist bei "View any field_year" View field_year, regardless of content author. und bei "View own field_year" View own field_year on content created by the user. habe ich ein Häckchen gesetzt).
Als Admin kann ich für jeden User bei der Registrierung das Feld ausfüllen. (zb mit 2010, 2011, 2012)
Soweit so gut:D
Als nächstes habe ich das Modul IMCE installiert , dort habe ich 2 Profile. "Admin" und "Student" . Der Admin darf auf das Root verzeichnis zugreifen und dort sachen Uploaden und Löschen. Der Student hat zugriff auf das verzeichnis:
"users/benutzername"
und sollte zusätzlich noch auf "files/field_year"(Also den wert, den ich für jeden user eintrage) zugreifen können.
Mein Problem ist, dass ich nicht weis , wie ich über das IMCE modul auf dieses field_year zugreifen kann.
Ich möchte am ende einen User anlegen, dabei ihm ein Schuljahrgang eintragen und dieser user soll auf sein persönliches Verzeichnis zugreifen können und auf sein Jahrgangsverzeichnis. Dies soll dazu dienen, dass wenn ein Admin eine Powerpoint Präsentation für Ganze klasse hochlädt, dass er es dann ledeglich in ein verzeichnis reinkopiert und nicht für jeden Stundenten extra.
Ich hoffe nun ist alles verständlich erklärt und ihr könnt mir weiterhelfen.
MFG
Hallo BlackScorp, kannst Du
am 02.05.2011 - 18:50 Uhr
Hallo BlackScorp, kannst Du bitte den Titel dieses Threads etwas spezifischer formulieren? Mit "Ein paar Fragen" kann keiner etwas anfangen (siehe auch: http://www.tty1.net/smart-questions_de.html#bespecific) Im Voraus vielen Dank! :)
oh sorry wurde geändert..
am 02.05.2011 - 21:02 Uhr
oh sorry wurde geändert..