Gönderen:
halley Tarih: Mart 10, 2007 16:56

Repository Nedir?
Repository Modülü DotNetNuke kullanıcılarının, resim, video, ses, yazı ve benzeri dökümanlarını bir arada tutan ve kullanıcılara erişim kolaylığı sunan bir depo modülüdür. Kullanıcı, herhangi bir sayfaya Repository modülü yerleştirir. Daha sonra kategorileri oluşturur ve şablon seçimini yapar. Hangi kullanıcıların yükleme, görüntüleme, denetleme ve oy kullanma yetkilerine sahip olacağını belirler. Daha sonra ayarları kaydederek modülü kullanıma hazır hale getirir.
Repository Modülünün avantajları küçük dosyaları hızlı bir şekilde sunucuya gönderebilmeniz ve listeleyebilmenizdir. Ancak büyük boyutlu dosyaları Repository modülünün Upload arabirimi ile karşıya göndermek istediğinizde zaman aşımı (timeout) gibi hatalar almanız muhtemeldir.
Bu tür hataların üstesinden gelmenin en kolay yolu, dosyayı ftp ile sunucuya gönderdikten sonra upload arabiriminde dosyanın sunucu üzerindeki fiziksel adresini (full physical path on the server) belirtmeniz gerekir. Bu işlemi başarıyla yapsanız bile dosyaya ait istatistiksel bilgiler düzgün olarak gösterilmeyecektir. Bunun nedeni veri tabanının elle yapılan dosya atamalarında dosya boyutu ve benzer istatistikleri tam olarak kavrayamamasıdır.
Repository modülünün avantajları ve dezavantajlarından bahsettikten sonra dilerseniz SQL scripti yardımı ile nasıl dosya yükleyeceğimizi anlatalım.
Birazdan bahsedeceğim yöntem Mitchell Sellers tarafından DotNetNuke 4.4.1 ve Repository 3.01.10 platformunda test edilmiştir. Ancak yöntemi uygulamadan önce portal ve database backup alınmasını öneriyorum. Ayrıca işlem sırasında karşılaşacağınız sorunlardan sorumlu olmadığımı belirtmeliyim.
Kurulum
Dosyanızı göndermeden önce dosyayı yeniden adlandırmalısınız. Bunun için dosya adına birkaç karakter ekleyebilirsiniz. Örnek olarak "Unemp.jpg" isimli bir dosyayı nasıl yükleyeceğinizden bahsedelim. Öncelikle dosyayı yeniden adlandıralım. "Unemp.auto.jpg" şeklinde olsun. Repository modülü benzersiz dosya adlarını içerecek şekilde dizayn edildiğinden oluşturduğumuz dosya adları benzersiz (unique) olmalıdır.
Dosyayı Yüklemekİşlemin bu aşaması oldukça kolay. Yeniden adlandırdığınız dosyayı mevcut olarak kullandığınız portal klasöründeki Repository klasörüne yüklemelisiniz. (Örneğin; d:/Siteler/mikroproje/Portals/0/Repository) Örnekte resim dosyası kullandık, ancak daha büyük boyutlu dosyalarda Mozilla gibi bir FTP programı kullanabilirsiniz (Eğer küçük boyutlu dosyalarla çalışıyorsanız Yönetim/Dosya Yöneticisi, ya da Repository modülünün varsayılan upload arabirimini kullanabilirsiniz). Bir sonraki aşamada sunucuya gönderdiğiniz dosyanın Repository modülü tarafından listelenmesi için veritabanını güncellememiz gerekiyor. Ancak bunun için öncelikle bazı bilgilere sahip olmalısınız.
Gerekli Bilgileri AlmakÖncelikle
Repository modülü tarafından kullanılan "
ModuleId" kimliğini not etmelisiniz. Bu bilgiyi edinmek için sitenize yönetimsel haklarla giriş yapmalısınız (
Admin ya da
Host hesabı ile). Yönetici hesabı ile giriş yaptıktan sonra Modül İşlemleri listesinden (
Module Actions Drop Down List) "Hakkında" (
About) seçimine tıklayın. Repository Modülü hakkında bilgi veren bir sayfaya yönlendirileceksiniz. Adres alanında
"
/mid/xxx/" bölümüne dikkat edin. xxx anahtarı sizin
ModuleId anahtarınızdır. ModuleId değerini bir not defteri dosyasına not edin. Çünkü ilerleyen aşamalarda bu anahtara ihtiyaç duyacaksınız. İkinci olarak dosyayı gönderen kullanıcının kimliğine yani
UserId anahtarına ihtiyacınız var. Bu bilgiyi de Yönetim > Kullanıcı Hesapları (
Admin > User Accounts) menüsünde elde edebilirsiniz. İlgili kullanıcıyı Kullanıcı Hesapları menüsünden seçip, Düzenle butonuna tıkladığınızda ekranda "
ID:X" şeklinde bir bilgi göreceksiniz. Burada X, kullanıcı kimliği yani UserId anahtarıdır. Bu anahtarı da not defterine kaydettikten sonra, veritabanında gerekli kodu işlemeye geçebiliriz. Lütfen aşağıdaki örneği kendi bilgilerinize uyacak şekilde düzenleyin.
Veritabanına Kayıt Eklemek
Son olarak yukarıda bahsettiğimiz şekilde veritabanına elle kayıtları eklememiz gerekiyor. Bunun için hazırlanan scripti kullanabilirsiniz. Örnek kod üzerinde özel alanları DNN portalınıza ve yüklemek istediğiniz dosyaya göre özelleştirmeyi unutmayın.
/*
NOTES:
ModuleId = Specific Repository Module you are working with
CreatedByUser = ID for the user adding the document, from the users table
UpdatedByUser = ID for the user adding the document, from the users table
Author = The display name for the user adding the document
FileSize = The size of the file, text field, 39 K for example
FileName = The name of the file as you uploaded it
*/
INSERT INTO grmRepositoryObjects(ModuleId, CreatedByUser, CreatedDate, UpdatedByUser,
UpdatedDate, [Name], Author, AuthorEmail, FileSize, [FileName],
Approved, ShowEMail, Summary, [Description], [Downloads], clicks,
RatingVotes, RatingAverage)
VALUES(372, 1, GETDATE(), 1, GETDATE(), 'Manual Upload Test', 'Mitch Sellers',
'mitchel.sellers@gmail.com', '39 K', 'Unemp.auto.jpg', 1, -1, 'This is the summary',
'Demonstration file description', 0, 0, 0, 0.0)
İşlemleri başarıyla gerçekleştirdikten sonra sunucuya gönderdiğiniz dosyayı Repository modülünde görebilirsiniz. Dilerseniz dosya adı, ve kullanıcı bilgilerini de Repository modülündeki Düzenle butonu yardımı ile değiştirebilirsiniz.
Bu yazıda Mitchel Sellers'in blog sayfasındaki
Manually Uploading/Inserting Documents to the Repository başlıklı makale kaynak olarak kullanılmıştır.
Special thanks goes to
Mitchel Sellers for creating the orginal article about
Manually Uploading/Inserting Documents to the Repository.