Drupal 6: DB için özel profil alanları ve kaydetme veri

1 Cevap php

Ben bir veritabanında bilgi saklamak değil eğer tüm ince ama tamamen işe yaramaz - Yani ben birkaç bazı özel profil alanları (> profillerini yönetmek) ekledik. Ben çok az şans ile bu iş için "en iyi uygulamalar" yolu anlamaya çalışıyorum şimdi saatlerce arıyor oldum.

Ben Kullanıcılar tabloya yeni sütunlar eklemek musunuz? Ben yepyeni bir tablo oluşturmak mı? Hatta çekirdek profil modülü benim için zaten bu sütunları ekledi olmalıdır belirsiz bir başvuru mu? Ve sen (ama bunun için herhangi bir seçenek yok) çekirdek profil modülünde CCK kullanmak mümkün olmalıdır?

Ve sonra tabii ki kullanıcının kendi alanları güncelleştirmek için izin isterim ama özel profil alanları $ form diziye dahil değildir ...

PS arrrggg! Drupal onun tutarsızlıklar ile viraj bana itici ve o her zaman kesmek zorunda olduğunu!

1 Cevap

Eğer çekirdek profil modülünü kullanıyorsanız, veritabanı depolama otomatik olarak sağlanır ve veritabanındaki herhangi bir şey değiştirmek gerekmez. Install, modül veritabanına iki tablo ekler, profile_fields özel alan tanımlarını saklamak ve profile_values alanlar için kullanıcı tarafından sağlanan verileri depolamak için.

Aynı mekanizma o yüklü aldığında kullanıcı nesnesine bu alanların değerlerini eklemek için kullanılır - alanları otomatik olarak profile_user() hook_user uygulanması yoluyla, kullanıcı düzenleme formlara eklenir .

So if those fields don't show up for you, something is fishy - have you added your fields with 'categories'? If so, they won't show on the standard user edit page, but on additional new pages (one per category). These are added as menu type MENU_LOCAL_TASK, so they should create new 'tab' entries at the top of the user edit page - maybe you have a theme that does not display the tabs?
Another thing to check would be the fields visibility settings chosen on the fields configuration form. If that is set to 'hidden', the field is only accessible for administrators and module/theme code. You should at least set it to 'private' if the user is supposed to edit it himself.

CCK alanları kullanarak gelince, ben bu çekirdek profil modülü (belki bazı uzatma modülü bu içerir) ile mümkün olduğunu sanmıyorum. Farklı bir yaklaşım Content Profile Module tarafından alınır. Profil değerleri standart Drupal düğümleri olarak depolanır böylece kullanıcı profilleri için özel bir düğüm türü oluşturur. Bunun bir avantajı sadece oluşturduğunuz düğüm türü için bu eklemek gerekir gibi, profiller için tüm CCK alanları kullanabilir olmasıdır.