Please login to view attachment.

Write anything here about Membership module

Moderators: wynerst, buitenzorg812, purwoko, sutriadi, ido, Dicarve, ridorido

Post Reply
ifaizaiman
Posts: 6
Joined: 05 Dec 2014, 01:43

Please login to view attachment.

Post by ifaizaiman » 03 Jan 2015, 16:57

Assalamualaikum admin dan rakan2,

Bagaimanakah saya mahu "set" kn "Please login to view attachment" sebelum user mahu access file attachment?.

Ini adalah kerana, apabila saya set kn Access limit by member type semasa upload attachment. Apabila di OPAC, dan jika tidak login, field bagi attachment tersebut hanya kosong.

Jadi kesimpulannya, di tempat field kosong bagi attachment tersebut saya mahu setkn "Please login to view attachment." jika user tidak login. Jadi user harus login
dahulu baru boleh access attachment tersebut.

Terima Kasih semua.

User avatar
ido
Posts: 36
Joined: 27 Sep 2011, 18:29
Location: Purbalingga

Re: Please login to view attachment.

Post by ido » 09 Jan 2015, 10:37

Wa'alaikumsalam,

jadi permasalahannya adalah "attachment limit access link tidak muncul"

nah mari kita munculken, sebelumnya kita cari dulu bagian mana dari kode yang munculin tu link. Mari beranalisis :)
  • Link attachment berada pada halaman detail sepesifik *(kode sumber: ../(current_template)/detail_template.php)
    Kalo diraba-raba cuman nemu kode gini doang :?

    Code: Select all

    <div class="control-group">
            <label class="control-label key"><?php print __('File Attachment'); ?></label>
            <div class="controls">{file_att}</div>
    </div>
    
  • Dari kode diatas kita bisa melihat ada kode dalam kurung kurawal yaitu {file_att}
    Kode inilah yang memunculkan link attachment, *(tapi masa kodenya gitu doang? :? )
    Jadi, kode itu hannya untuk memunculkan (view), maka kita perlu mencari lagi kode sumber lain yang melakukan proses pengolahan.
  • Untuk mencarinya kita gunakan kata yang ada pada kurung kurawal diatas *(file_att)
    Disini saya menggunakan text editor sublime, yang mana terdapat feature untuk mencari kata dalam banyak file, jadi memudahkan dalam pencarian. Bisa jg sih menggunakan text editor lain, tapi kagak tau ada feature ini apa enggak *(klo komodo kayaknya ada, klo notepad++ kayaknya tidak ada, kayaknya lho ya :lol:
  • Setelah melakukan pencarian didapat pencarian seperti ini

    Code: Select all

    Searching 1169 files for "file_att"
    
    C:\xampp\htdocs\slims7_cendana\lib\detail.inc.php:
      205  
      206          // attachments
      207:         $this->record_detail['file_att'] = '<div id="attachListLoad">LOADING LIST...</div>';
      208:         $this->record_detail['file_att'] .= '<script type="text/javascript">'
      209              .'jQuery(document).ready(function() { jQuery.ajax({url: \''.SWB.'lib/contents/attachment_list.php\',
      210                  type: \'POST\',
    
    Dari kode diatas dapat dilihat bahawa proses "file_att" ada pada file ../lib/detail.inc.php line 207-208
    Ya udin, kita buka aja file tersebut.
  • Setelah dibuka malah pusing :roll: kog tidak ada yg buat munculin linknya juga? :?
    Oke deh penjelasan dikit, jadi disitu menggunakan AJAX untuk memunculkan linknya.
    dari situ jg terlihat kn, bahwa file eksekusi ajaxnya menuju ke ../lib/content/attachment_list.php
    Jadi mari kita buka file tersebut :)
  • Pada file attachment_list.php pada line 58-68 terdapat kode berikut

    Code: Select all

         // check member type privileges
            if ($attachment_d['access_limit']) {   // kode ini untuk mngecek bahwa file memiliki pembatasan hak akses ato tidak
    
              if (utility::isMemberLogin()) {       // klo yang ini untu mengecek bahwa member sudah login atau belum
    
                $allowed_mem_types = @unserialize($attachment_d['access_limit']);  // cek tipe member boleh mengakses ato tidak.
    
                if (!in_array($_SESSION['m_member_type_id'], $allowed_mem_types)) {   // jika tidak diijinkan maka link tidak muncul.
                  continue;
                }
              } else {
                continue;
              }
            }
    
    Fungsi kodenya untuk mengecek pembatasan hak aksses.
  • Jika scroll kebawah (mulai line 70 - dst.) maka akan ada pengaturan untuk memunculkan link-linknya untuk tiap file type.
    Nah disinilah akan kita kasih penambahan aturannya.
  • Dari masalah yang ada yg dibutuhkan adalah kondisi dimana si member harus login dulu tapi link tetep muncul. Jadi kita butu parameter yang memberikan informasi bahwa si member sudah login.
    Di dalam SLiMS dapat menggunakan kode berikut ( utility::isMemberLogin() )
    Selanjutnya, tinggal menggunakan fungsi if else saja 8-)
  • Saya contohkan satu, selanjutnya silahken dilanjutken sendiri untuk tiap file type
    # file type PDF
    Kode awal :

    Code: Select all

    if ($sysconf['pdf']['viewer'] == 'zviewer') {
    
                echo '<li style="list-style-image: url(images/labels/ebooks.png)"><strong><a class="openPopUp" title="'.$attachment_d['file_title'].'"   href="./index.php?p=fstream&fid='.$attachment_d['file_id'].'&bid='.$attachment_d['biblio_id'].'" width="780" height="520">'.$attachment_d['file_title'].'</a></strong>';
    
              }
    
    Setelah ditambahkan parameter login menggunakan fungsi if else menjadi :

    Code: Select all

    if ($sysconf['pdf']['viewer'] == 'zviewer') {
    
    if (utility::isMemberLogin()) {
    
         echo '<li style="list-style-image: url(images/labels/ebooks.png)"><strong><a class="openPopUp" target="_blank" title="'.$attachment_d['file_title'].'" href="./index.php?p=fstream&fid='.$attachment_d['file_id'].'&bid='.$attachment_d['biblio_id'].'" width="780" height="520">'.$attachment_d['file_title'].'</a></strong>';
    
    }else{
    
         echo '<li style="list-style-image: url(images/labels/ebooks.png)"><strong><a class="redirect" title="'.$attachment_d['file_title'].'" href="./index.php?p=member">'.$attachment_d['file_title'].' -- Login to view attachment</a></strong>';
    
                }
    
              }
    
semoga bermanfaat :)

User avatar
nalamapu
Posts: 19
Joined: 27 Sep 2011, 09:48
Location: Dhaka, Bangladesh
Contact:

Re: Please login to view attachment.

Post by nalamapu » 10 Jan 2015, 21:37

Can you please write a clear tutorial in English. This is very useful and a required feature. Hope to be default in SLiMS 8.

Thank you.
A.K.M. Nurul Alam (Apu)
Country Coordinator, SLiMS-BD &
Deputy Director (Library)
Bangladesh Bank
Dhaka, Bangladesh
http://slimsbd.com/
http://slimsbd.wordpress.com/slimsbd/nurulalam

User avatar
ido
Posts: 36
Joined: 27 Sep 2011, 18:29
Location: Purbalingga

Re: Please login to view attachment.

Post by ido » 12 Jan 2015, 14:56

nalamapu wrote:Can you please write a clear tutorial in English. This is very useful and a required feature. Hope to be default in SLiMS 8.

Thank you.
Ok, I'll try to summarize in English, but before it, I apologize my bad English *vikinisasi mode on* :lol:

problem in there is if we set an attachment limited access for member, it will hidden until the member login. So member don't know in current bibliographic have an attachment or not.

in there we just need a statement for user login. if login will display url to attachment and if not login will display url to member area.
SLiMS define statement user login in this code

Code: Select all

utility::isMemberLogin() // this code will return in boolean (true or false)
Next, the file that show the url is attachment_list.php in folder ../lib/content/
this file set each of file type.
Just using "if else" statement for it.

emmm, start modifying from line 70 and so on.

I give one example, and you can go on their own.

Code: Select all

if ($sysconf['pdf']['viewer'] == 'zviewer') {

  if (utility::isMemberLogin()) { 

      // ... here code to show URL attachment 
     // member login TRUE

  }else{

     // ... here code to show URL to member area 
     // member login FALSE

  }

}
So like this for example.

Code: Select all

if ($sysconf['pdf']['viewer'] == 'zviewer') {

  if (utility::isMemberLogin()) {

    echo '<li style="list-style-image: url(images/labels/ebooks.png)"><strong><a class="openPopUp" target="_blank" title="'.$attachment_d['file_title'].'" href="./index.php?p=fstream&fid='.$attachment_d['file_id'].'&bid='.$attachment_d['biblio_id'].'" width="780" height="520">'.$attachment_d['file_title'].'</a></strong>';

    }else{

         echo '<li style="list-style-image: url(images/labels/ebooks.png)"><strong><a class="redirect" title="'.$attachment_d['file_title'].'" href="./index.php?p=member">'.$attachment_d['file_title'].' -- Login to view attachment</a></strong>';

                }

              }

good luck :D

User avatar
nalamapu
Posts: 19
Joined: 27 Sep 2011, 09:48
Location: Dhaka, Bangladesh
Contact:

Re: Please login to view attachment.

Post by nalamapu » 12 Jan 2015, 22:40

ido wrote: Ok, I'll try to summarize in English, but before it, I apologize my bad English *vikinisasi mode on* :lol:
Thank you for your reply. Its really very useful. However, it will be helpful for no-technical people if you upload a complete modified file (with small write-up) here or goslims.net or elsewhere.
A.K.M. Nurul Alam (Apu)
Country Coordinator, SLiMS-BD &
Deputy Director (Library)
Bangladesh Bank
Dhaka, Bangladesh
http://slimsbd.com/
http://slimsbd.wordpress.com/slimsbd/nurulalam

ifaizaiman
Posts: 6
Joined: 05 Dec 2014, 01:43

Re: Please login to view attachment.

Post by ifaizaiman » 12 Jan 2015, 23:20

Thank You Bro Ido, untuk file type PDF sudah berjaya. ;)

Sekarang saya sedang cuba tukar untuk file type yg lain : audio,video dan image.

Saya tidak tahu bahagian mana hendak letakkan else yg akan link kan ke member page bagi file type yg lain : audio,video dan image.

Masih belajar lagi. :geek:

Post Reply