Arşiv
   
Yazarlar
   
MyBloglog

   
Technorati

Favori bloglarım arasına ekle
   
Okuduğum Bloglar
   
İstatistikler
   
Blog

Güncel Yazılar | | Ara |

10 Mart 2007 Cumartesi
Repository Modülüne Dosya Yüklemenin Alternatif Yolları
Gönderen: Dumlupınar @ 16:56 :: Okunma: 1050 :: 0 Yorum :: Article Rating :: DotNetNuke
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(3721GETDATE(), 1GETDATE(), 'Manual Upload Test''Mitch Sellers'
    
'mitchel.sellers@gmail.com''39 K''Unemp.auto.jpg'1, -1'This is the summary',
    
'Demonstration file description'0000.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.

linkibol linkibol | digg digg | del.ico.us del.ico.us | facebook facebook | facebook stumbleupon | reddit reddit

Puan
Yorumlar

İsim (zorunlu)

Eposta (zorunlu)

Websitesi

Enter the code shown above:

   
DNN
   

 
Tüm Haklar © 2005-2007 www.mikroproje.com
 
Tema: Nina Meiers