Advanced Profile Kit ile Gelişmiş Profil Sayfaları
Drupalle tanışalı uzun zaman oldu, fakat dersler, okul, hayat derken çok ilgilenme fırsatı bulamadım. Genelde kaynak olarak bu siteyi kullandım. Umarım anlatımını yapmaya çalışacağım bu eklenti drupal kullanıcılarına faydalı olur. Farkında olmadan yaptığım hatalar içinde şimdiden affınıza sığınıyorum.
"Sosyal topluluk sitelerinin olmazsa olmaz özelliklerinin başında içerik ve işlev açısından zengin kullanıcı profilleri geliyor. Kullanıcıların birbirlerini daha iyi tanıyabilmeleri ve farklı şekillerde (özel mesaj, duvar yazısı, hediye gönderme, göz kırpma, vs.) etkileşime geçebilmeleri bu sitelerin vaad ettikleri belki de en önemli özellik. Peki, bu tarz gelişmiş kullanıcı profillerine sahip bir siteyi Drupal ile yapmak mümkün müdür? Şüpheniz olmasın; Drupal ile yapılmış oldukça başarılı örnekler var (ör: teamsugar.com). Tabii ki bunu çekirdek Drupal kurulumu ile elde edebileceğinizi düşünmek güzel bir hayal olurdu. Unutmamalı ki Drupal çekirdeği çok farklı site türlerine ortak bir altyapı sunan yalın bir işlevselliğe sahip. Dolayısıyla gelişmiş kullanıcı profilleri oluşturabilmek için çekirdek dışındaki eklentilere yönelmek gerekiyor. Burada da karşımıza Advanced Profile Kit (APK) eklentisi çıkıyor. APK, aradığınız tüm özellikleri sunan tam donanımlı bir eklenti olmaktan çok Voltranı oluştururken kullanacağınız yapıştırıcı vazifesini görüyor. Bir başka deyişle mesajlaşma, arkadaş listeleri, istatistikler, içerik listeleri gibi farklı işlevleri sunan eklentileri APK ile biraraya getirerek hayalinizdeki profil sayfalarını inşaa edebiliyorsunuz."

Kurulum
- Öncellikle aşağıdaki eklentileri kuruyoruz (bkz. Eklenti ve Tema Kurulumu dersi). Bunlardan 2 tanesi isteğe bağlı eklentiler: user_relationships eklentisiyle kullanıcıların arkadaş edinebilmeleri ve ilgili işlevlerini; çekirdekte bulunan Statistics eklentisi ile de profil sayfasını ziyaret eden diğer kullanıcıların isim ve erişim zamanlarının kaydedilebilmesini sağlayacağız.
Gerekli Eklentiler
- Author Pane (Author pane),
- Panels 3 (Panels),
- CTools (Chaos Tools, Page Manager),
- Views (Views, Views content panes),
- CCK (Content, Content Copy, Fieldgroup, Option Widgets, Text),
- Content Profile
- Link (Link - grouped with CCK).
- [İsteğe Bağlı] User Relationships
- [İsteğe Bağlı] Statistics (çekirdekteki eklenti; User Visits pane için gerekli)
- Advanced Profile eklentisini etkinleştiriyoruz.
- Profil sayfalarında kullanıcı resimlerini görünmesi için, Yönet » Kullanıcı Yönetimi » Kullanıcı Ayarları (admin/user/settings) sayfasından en altta bulunan Resim Desteği kısmını aktif hale getiriyoruz (diğer ayarlar sizin isteğinize kalmış).
- Yönet » Site Kurulumu » Advanced Profile (admin/settings/advanced-profile) satfasından eklenti ile ilgili bazı ayarları yapmamız gerekiyor.
- Öncelikle en üstte bulunan, ”Create user profile node type” seçeneğini işaretliyoruz. Bu sayede kullanıcı profillerini birer düğüm haline getiriyoruz ve her kullanıcı sadece bir adet olan ve kendine özgü profil içerik türüne sahip düğümü düzenlemeye hak kazanıyor (umarım yanlış bişey söylemedim :) )
- Enter the number of profile visits to show. Profili en son ziyaret eden kaç kişinin gösterileceği. Varsayılan değer 5 ama istenirse 1 ile değiştirilebilir.
- Show only the last visit from each user. Hemen altındaki bu kutucuğu da işaretliyoruz ki aynı kullanıcıların sadece son ziyaretleri gösterilsin.
- Granularity of time ago. Bu kutucuğa 1, 2 ve 3 değerlerinden birini girebiliriz. Değerler şu örnek gösterimlere karşılık geliyor: 1-> "1 saat önce". 2-> "1 saat 4 dakika önce". 3-> "1 saat 4 dakika ve 2 saniye önce"
- Not: Bu eklenti ile ilgili bir çok sorun yaşadım, bunlardan biride cck ile oluşturduğum alanlar profil sayfasında bir türlü gözükmemesiydi, viewsle bir şeyler yapmaya çalıştım ama başaramadım, sonra “create uprofile content” bu izinden hareketle içerik türü “profile” Edit dediğimde ilk sayfada görünen Type->”profile” kısmını “uprofile” olarak değiştirdim. Sonrasında sorun yaşamadım umarım kimseyi yanlış yönlendirmiyorumdur.
- İçerik Türleri (admin/content/node-type/profile) sayfasına gidip. Type kısmındaki "profile" kısmını "uprofile" olarak değiştiriyoruz. Save Content Type kısmının üstünde bulunan “Content Profile” linkini tıklıyoruz ve “Use this content type as a content profile for users” seçeneğini işaretliyoruz.
- Şimdi de izinler sayfasından (admin/user/permissions) aşağıdaki düzenlemeri yapıyoruz.
- access user profiles
- create uprofile content
- edit any uprofile content (admin perm)
- edit own uprofile content
- Şimdi de Profili ziyaret eden kullanıcıların kaydedilmesi için admin/reports/settings sayfasından "Enable access log" ayarını Enabled konumuna getiriyoruz.
- Eğer user_relationships eklentisini kullandıysak, ki ben tavsiye ederim, bu eklentiyle ilgili ayarları yapıcaz: admin/content sayfasına geçiş yaptığımızda, ”Posting to social network”, user_relationships eklentisiyle ilintili bu kısım karşımıza çıkıyor. Bağlantıyı tıklayalım ve karşımıza gelen seçeneklerin içinde “Profile” seçeneğini aktif edelim.
- /admin/user/relationships sayfasında, User Management kısmının hemen altındaki bu bağlantıya erişelim.
- Add Type-> Single kısmına "Arkadaş", Plural Kısmına da "Arkadaşlar" yazıp kaydedelim.
Kurulum Sonrası
- Eğer her şey yolunda gittiyse, Hesabım sekmesine gelip düzenle dediğinizde,aşağıdaki gibi görünümle karşılacaksınız:
- Yönet » Site Kurulumu » Sayfalar (admin/build/pages) sayfasında User Profile Template kısmı gözükecek, bu kısmı Enable olarak seçelim. Tekrar Hesabım linkine ulaştığınızda, işte aşağıdaki gibi bir görünüm elde edeceksiniz :)
- Artık bundan sonra çok kolay bir o kadar da zevkli. Edit Panel diyelim, Sol taraftan Content sekmesine geçiş yapalım. Burada bazı alanlar göreceksiniz isterseniz bunları silebilirsiniz, ya da disable edip, yeni alanları ihtiyacınıza göre ekleyebilirsiniz. Bu kısım artık panel eklentisinin kullanımı olduğundan ve bu konuda çok fazla bilgi sahibi olmadığımdan, çok fazla bir şey yazamayacağım. Artı simgeleri göreceksiniz, bu simgeleri tıklayıp istediğiniz alanlara "Add Content" diyerek içerik ekleyebilirsiniz.
Örneğin;
- Ad Soyad
- Web Sitesi
- Mezun Olduğu Okul
Bunlar bir grup olsun, bu uprofile içerik türünün sahip olduğu alanları ekleyelim; + işareti/Add Content/Content Sekmesi/ Profile: (Text) field_ad -> Finish
- Msn Adresi
- İcq Adresi
Bu alanlar da başka bir grup olsun ve sol tarafta görünsün diyelim. Bunun için sol taraftaki panelin +'sını tıklayalım, + işareti/Add Content/Content Sekmesi/ Profile: (Text) field_msn -> Finish diyip işlemi bitirelim.
En alttada kulancıların arkadaşları olsun;
+ işareti/Add Content/APK Sekmesi/ Friends Gallery(UR) seçelim (gerekli izinleri ayarlamayı unutmayın). Eklediğimiz panelin sağında bir de ayarlar düğmesi var, oradan da Style kısmından "round corner" seçelim. Böylece arkadaş galerimiz daha görsel bir şekilde karşımıza çıkacak.
Umarım faydalı olmuştur:)
- Yeni yorum ekle
- 3014 kez okundu

Teşekkürler çok yararlı bir anlatım olmuş.
//editör notu: İlgili mesaj buraya taşınmıştır.
Yönet » Site Kurulumu » Advanced Profile (admin/settings/advanced-profile)
sayfasında "create user profile node type" seçeneğini göremedim.
"Redirect from profile node to user page" seçeneği var sadece
yardımcı olursanız sevinirim..
anlatımda kullandığım versiyon(6.x-1.0-beta1), galiba sen 6.x-1.0-beta2 kullanıyorsun, bu kısım "Redirect from profile node to user page" olarak değiştirilmiş sorun olacağını sanmıyorum.
makalede anlatıldığı gibi çalışıyo teşekkürler.
Bir sorum daha olacaktı profilde kullanacağımız fieldları (örn. okul, iş bilgileri) profile field olarakmı eklemeliyiz (user management--> profiles-->profile_okul) yoksa profil content tipinde (content_type-->profile-->field_okul) mi eklemeliyiz?? profil_okul olarak ekledim ancak profile view kısmına gelip + işaretine tıkladığım zaman kullandığım fieldları göremedim.
profile içerik türüne fieldler ekliyorsun sonra da panel eklentisini kullanarak istediğin bir bölgede bu alanları gösteriyorsun,örn; uprofile içerik türüne "Okul","Numara","İletişim Adresi" alanları ekle sonrada "Okul" ve "Numara"alanlarını bir blok halinde "iletişim adresi" kısmında başka bir blok şeklinde gösterebilirisin.
modülü kurdum fakat profil sayfasında edit panel dediğim zaman aşağıdaki hatayı alıyorum. ne yapmalıyım??
warning: preg_match() expects parameter 2 to be string, array given in C:\xampp\htdocs\drupal6\includes\bootstrap.inc on line 723.
Anlatım için teşekkürler güzel olmuş gerçekten.Ben bu eklentiyi bir kaç kez kullandım.Fakat panel kısmında arkadaşlarınız diye bir bölüm var.Bu kısma nasıl arkadaş ekleyebiliriz ? yani site içerisindeki diğer bir kullanıcıyı arkadaş olarak ekleyip burada görünmesini nasıl sağlayabiliriz ? yardımcı olursanız sevinirim.
User relations eklentisi...
bunun kurulumunu gerçekleştirdim ama şöyle bir problemim var.
kullanıcılar "düğüm yönetimi" yetkisi verdiğimde dediğiniz gibi çok güzel bir kullanıcı profili geliyor ama yetkiyi kaldırdığımda ise
node/20/edit?destination=user/3gibi bir yönlendirme gerçekleştiriyor.kullanıcılara düğüm yönetimi yetkisi vermek istemiyorum bunun için ne yapabilirim....
izinler sayfasını kontrol er ,bunla ilgili bir izin varsa onu kaldırmayı dene
Teşekkürler bu eklentiyi untumuştum panel ile canım çıkmıştı. Bunu ekleyince işim kolaylaştı:)
Kurulumun ardından bir dizi hata mesajı aldım.
hepside includes/module.inc dosyasıyla ilgili.nedini anlayamadım
Bahsi geçen dosyanın 483. satırında ise
$result = call_user_func_array($function, $args);kodları var.
Ayrıca drupal forumlarında da tam bir cevap bulamadım.
Ayrıca google aramalarında şu siteyle karşılaştım. Sanırım yabancı bir kullanıcı da sayfasında aynı hatayı almış fakat onun ki 471.satırda.
hocam comment form ekledigimde sadece comment form here gibi bi yazi cikiyor neden acaba?
atamanbasar, tam olarak ne yapmak istiyorsun? Comment form derken. Yapmak istediğini söylersen başka bir türlü yardımcı olabilirim.
sadece kullanicilarin diger kullanicilar icin yorum yapmalarini istiyorum, ilgilendigin icin tesekkurler
Öle bi modül vardı ama aradım bulamadım kusura bakma. Belki content profile eklentisini açıp bir içerik türünü profil olarak atayıp yorumlara açabilirsin.
saol hocam ilgilendigin icin ne kusuru estegfurullah
Mikuru ile aynı sorunla karşılaştım:
* warning: Parameter 2 to content_profile_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 3 to block_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 3 to comment_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to contact_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to dblog_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 3 to locale_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to node_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to poll_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to profile_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to statistics_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 3 to system_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to user_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to userreference_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to imagecache_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to pm_block_user_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to pm_email_notify_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to privatemsg_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to privatemsg_filter_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to user_relationships_api_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to user_relationships_ui_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to user_relationship_defaults_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to user_relationship_mailer_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to views_attach_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
* warning: Parameter 2 to wysiwyg_user() expected to be a reference, value given in C:\xampp\htdocs\dr\includes\module.inc on line 483.
nasıl çözebiliriz acaba?
'User profile template'in düzenleme sayfasında şu hatayı alıyorum.
* warning: htmlspecialchars() expects parameter 1 to be string, array given in /home/xxx/public_html/v2/includes/bootstrap.inc on line 840.
* warning: htmlspecialchars() expects parameter 1 to be string, array given in /home/xxx/public_html/v2/includes/bootstrap.inc on line 840.
* warning: htmlspecialchars() expects parameter 1 to be string, array given in /home/xxx/public_html/v2/includes/bootstrap.inc on line 840.
840. satırda ise şu kod yeralmakta;
sanırım bu hatadan dolayı profil sayfası bomboş gözüküyor 'User profile template'i pasif yaptığımda eskisine dönüyor...
Benimde başıma aynı sorun gelmişti. Bootstrap.inc dosyasındaki 840 nolu satırda bulunan aşağıdaki kodları
return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
}
return (preg_match('/^./us', $text) == 1) ? htmlspecialchars($text, ENT_QUOTES, 'UTF-8') : '';
yenisi ile değiştirdiğimde düzeldi.
{
return (preg_match('/^./us', (string) $text) == 1) ? htmlspecialchars((string) $text, ENT_QUOTES, 'UTF-8') : '';
}
return (preg_match('/^./us', $text) == 1) ? htmlspecialchars($text, ENT_QUOTES, 'UTF-8') : '';
Bu sayfada bununla ilgili çözümü okuyabilirsin. Umarım bu çözüm işine yarar.
Bu arada şöyle bir uyarıda var aynı dosyada
// We duplicate the preg_match() to validate strings as UTF-8 from
// drupal_validate_utf8() here. This avoids the overhead of an additional
// function call, since check_plain() may be called hundreds of times during
// a request. For PHP 5.2.5+, this check for valid UTF-8 should be handled
// internally by PHP in htmlspecialchars().
// @see http://www.php.net/releases/5_2_5.php
// @todo remove this when support for either IE6 or PHP < 5.2.5 is dropped.
Kısaca: eğer php versiyonun 5.2.5 ten düşükse veya ie6 desteklemek istiyorsan bu değişikliği yapmasan iyi olur diyor.
PHP 5.2.13 olmasına rağmen değişikliği yaptığımda hiçbir sayfa yüklenmiyor bembeyaz bir sayfa karşıma çıkıyor...
o sayfaya biraz göz attım hata gözükmedi ama profil sayfasında göster sekmesi boş çıkıyor...
Kaç gündür bu hatayla uğraşıyorum....
Anlatım için teşekkür ederim. Sorunsuz çalışıyor. Yalnız kullanımına yönelik de anlatımlara ihtiyaç var. Yeni alanlar nasıl eklenir, bunlar forum profilinde nasıl gösterilir gibi. Bu haliyle pek bir anlamı olmadı gibi.