WordPress Meta Box’ta Görsel Seçtirmek

Herkese Merhaba 👋🏻 Şu anda bu yazıyı okuduğunuz blogumun temasını hazırlarken Wordpress hakkında birçok güzel ipucu ve güzel özellik öğrendim. Bunlar içerisinde en çok sevdiğim özelliklerden birisi de (ki bunu daha önce birçok kez yapmaya çalışıp becerememiştim) metabox içerisinde ortam kütüphanesinden resim seçtirmek oldu. Bunu yapabilmek için iki adımımız var. Birinci adımımız bir metabox oluşturmak ve içerisine ortam kütüphanesini açmak için bir buton koymak (oldukça kolay değil mi?). Diğer adımımız ise birazcık Javascript içeriyor. En temel anlamda ortam kütüphanesi için bir frame oluşturuyoruz ve buradaki seçim olaylarını yakalayıp seçilen görsellerin ID'lerini alıp kaydediyoruz. Hemen başlayalım. Öncelikle temamızın functions.php dosyasına şu satırları ekleyelim.
function lahmacun_add_meta_boxes() {
  add_meta_box( 'lahmacun_gallery_metabox', __( 'Galeri', 'lahmacun' ), 'lahmacun_gallery_metabox_callback', 'post', 'side', 'default' );
}

add_action('add_meta_boxes', 'lahmacun_add_meta_boxes');
Buradaki her şeyi tek tek açıklamayacağım. Kısaca yaptığımız şeyi açıklayıp detaylar için link vereceğim. Her şeyden önce add_meta_box fonksiyonu hakkında detaylı bilgi için şuraya gidebilirsiniz. lahmacun_add_meta_boxes adında bir fonksiyon oluşturduk. Bunun içerisinde yeni bir meta box oluşturduk. Meta box'ımızın başlığı "Galeri", sadece yazı tipindeki gönderilerde görünecek ve içerik oluşturma ekranında sağ tarafta görünecek. Bu meta box'ın oluşturulması için fonksiyonumuzun çağırılması gerekiyor. Bu fonksiyonu kendimiz çağırmayacağız. Bunu bir kancanın ucuna ekleyeceğiz ve zamanı geldiğinde Wordpress tarafından çağırılacak. Tahmin edeceğiniz üzere kancamız da add_meta_boxes kancası. Eğer bu kanca (hook) sistemi hakkında yeteri kadar bilgi sahibi değilseniz Tayfun Erbilen tarafından hazırlanmış olan şu videoyu izlemenizi tavsiye ederim: Meta box oluşturan fonksiyonumuzu add_meta_boxes kancasına ekledik. Şimdi bu meta boxımız için callback fonksiyonumuzu yazmamız lazım. Parametremizde belirttiğimiz üzere callback fonksiyonumuzun ismi lahmacun_gallery_metabox_callback. Callback fonksiyonumuzda yapacağımız şey ortam kütüphanesini açmak için bir buton koymak.
function lahmacun_gallery_metabox_callback($post)
{
    ?>
    <button type="button" id="open-gallery">Görsel Seç</button>
    <?php
}
PHP etiketlerini açıp kapattığımız yer belki biraz kafa karıştırıcı olabilir. Direkt olarak PHP'nin echo komutuyla ekrana button etiketini basmak yerine php etiketlerini kapatıyoruz, button etiketimizi oluşturuyoruz ve tekrar PHP etiketlerimizi açıyoruz. Bildiğiniz üzere PHP'nin en önemli özelliklerinden birisi de HTML'in içine gömülebiliyor olmasıdır. Bu olayı anladığınızı varsayıyorum. Şimdi ufak bir Javascript koduna ihtiyacımız var. Ben tema klasörümün altında admin/js klasörüne gallery.js adında bir dosya oluşturmayı tercih ettim. İlk olarak sadece butona tıklandığı zaman ortam kütüphanesi penceresi açılmasını sağlayalım. Javascript dosyasının içeriği şimdilik şu şekilde olsun.
jQuery(document).ready(function ($) {
    var mediaFrame;

    mediaFrame = wp.media.frames.file_frame = wp.media({
        //button_text set by wp_localize_script()
        title: "Görselleri Seçin",
        button: {text: "Tamam"},
        multiple: true // Çoklu Seçime izin ver.
    });

    $('#open-gallery').on('click', function (e) {

        e.preventDefault();

        if (mediaFrame) {
            mediaFrame.open();
            return;
        }

    });
});
Kodlarımızın bir kısmı açıklayalım. Öncelikle mediaFrame adında bir değişken oluşturuyoruz ve bunu da wp.media.frames.file_frame'e eşitliyoruz ve onu da wp.media diyerek yeni bir objeye eşitliyoruz. wp.media fonksiyonu bize ortam kütüphanesi penceresi döndürüyor. Bunun içerisinde birkaç tane ufak ayar var. Birincisi title. Ortam kütüphanesinin sol üst tarafında görünen başlık kısmına tekabül ediyor bu kısım. İkincisi button. Button özelliği bir obje. İçerisindeki "text" anahtarı sağ aşağıda görünecek olan butonumuzun üzerindeki yazı oluyor. Butonun yazısını bu şekilde ayarlayabilirsiniz. Ve son olarak da multiple seçeneğimiz var. Eğer buna true derseniz kullanıcınız ortam kütüphanesinden çoklu resim seçebiliyor. Sonrasında #open-gallery butonuna tıklanma olayını yakaladık ve burada bir kontrol yaptık. Eğer mediaFrame değişkenimiz tanımlandıysa, yani bir ortam kütüphanesi penceremiz varsa eğer open metodu ile bu pencereyi açıyoruz. Şimdi tek yapmamız gereken bu Javascript dosyasını çağırmak. Admin panelinin kodlarını düzenlemeyeceğimize göre bu Javascript dosyasını çağırmak için de kancaları kullanmamız gerekiyor. Wordpress'te admin_enqueue_scripts adında bir kanca var. Admin panelinin Javascript dosyaları çağırılırken bu kancamız çalışıyor. Böylece siz de admin panelinde kendi Javascript dosyalarınızı çağırabiliyorsunuz. Yeni bir fonksiyon oluşturalım ve bu fonksiyon içerisinde wp_enqueue_script fonksiyonu ile bu oluşturduğumuz Javascript dosyasını çağıralım ve sonrasında da bu fonksiyonumuzu uygun kancaya ekleyelim.
function lahmacun_enqueue_meta_box_scripts() {
    wp_enqueue_script(
        'lahmacun_media_select',
        get_template_directory_uri() . '/admin/js/gallery.js',
        [ 'jquery' ],
        '',
        true
    );
}

add_action( 'admin_enqueue_scripts', 'lahmacun_enqueue_meta_box_scripts' );
Buradaki fonksiyonları ve parametreleri de tek tek açıklamayacağım. Bu kısımları zaten bildiğinizi varsayıyorum. Eğer bilmiyorsanız da şuradaki dokümantasyonu inceleyebilirsiniz. Böylece Javascript dosyamızı da çağırmış olduk. Şimdi ilk denememizi yapabiliriz. Şöyle bir görüntüyle karşılaşmış olmanız gerekiyor. Şimdi yapmamız gereken şey görsellerin seçilme olayını yakalayıp seçilen görsellerin ID'sini almak ve bunları bir gizli inputun içine atmak. Meta boxımız için oluşturduğumuz callback fonksiyonunu biraz değiştireceğiz. İçerisinde bir tane hidden input ve bir tane de ul etiketi koyacağız. Gizli inputumuz bizim görsellerimizin ID'lerini saklarken ul etiketimizin içerisine de görsellerimizi koyacağız ki kullanıcı hangilerini seçtiğini görebilsin. Düzenleme sonrasında fonksiyonumuz şu şekilde olmalı.
function lahmacun_gallery_metabox_callback($post)
{
    ?>
    <input type="hidden" name="gallery_images">
    <button type="button" id="open-gallery">Görsel Seç</button>
    <ul class="gallery-images"></ul>
    <?php
}
ismini gallery_images olarak ayarladık. Şimdi tekrar javascript dosyamıza gideceğiz ve şu satırları ekleyeceğiz.
mediaFrame.on('select', function() {
    var attachments = mediaFrame.state().get('selection').map(function (attachment) {
        attachment.toJSON();
        return attachment;
    });

    $("ul.gallery-images").html("");
    var galleryImageIds = [];

    for (var i = 0; i < attachments.length; ++i) {
        $('ul.gallery-images').append(
            '<li>' +
            '<img src="' +
            attachments[i].attributes.url + '" style="width: 150px; height: auto;" />' +
            '</li>'
        );
        galleryImageIds.push(attachments[i].attributes.id);
    }
    $("input[name=gallery_images]").val(galleryImageIds.join());
})
Burada biraz açıklama yapmamız lazım. Öncelikle daha önce oluşturduğumuz media çerçevemizin select olayını yakaladık. Yani bir resim seçme işlemi yapıldığında bizim burada yazdığımız kodlar çalışacak. Öncelikle mediaFrame değişkenimizin içerisindeki seçili olan bütün elemanları aldık ve bunları map fonksiyonu yardımıyla JSON formatına çevirdik. Artık her bir attachmentı bir obje olarak kullanabiliriz. Daha sonra bütün seçili görselleri arayüzden kaldırmak için ul'mizin içerisindeki bütün her şeyi temizliyoruz. Sonrasında eklerimizin idlerini koyacağımız değişkenimizi oluşturup bunu boş bir dizi olarak tanımlıyoruz. Hemen arkasından bütün eklerimizi bir for döngüsü yardımıyla bir döngüye sokuyoruz. Bu görsellerin bütün özellikleri attributes propertysi altında bulunuyor. Görselin URL'si veya ID'si gibi birçok veriyi buradan elde edebiliyoruz. ul etiketimizin içerisine bir li etiketi ekleyip onun içerisine de bir görsel ekliyoruz ve src özelliği olarak da ekimizin adresini yazıyoruz. Şu anda görselimiz ul'mizin içerisine bir liste elemanı olarak eklendi. Bundan sonra yapmamız gereken şey bu ekimizin id'sini alıp dizimize eklemek. Javascript'in push fonksiyonu yardımıyla id'mizi dizimize ekliyoruz. Döngüden çıktıktan sonra ise bu id'lerimizin bulunduğu diziyi join fonksiyonu yardımıyla virgüllerle ayrılmış bir string haline getiriyoruz ve gizli inputumuza değer olarak veriyoruz. Artık görsellerimizin id'lerini elde etmiş olduk. Bu işlemleri düzgün bir şekilde yaptıysak eğer şu şekilde bir çıktıyla karşılaşmamız lazım. Yapmamız gereken son bir adım kaldı. O da bu seçtimiz görselleri kaydetmek. Kaydetme işlemi için Wordpress'in update_post_meta fonksiyonunu ve edit_post kancasını kullanacağız. Hemen yeni bir fonksiyon oluşturalım. Bu fonksiyonumuzun ismi de lahmacun_save_meta_boxes olsun. Bu fonksiyonun içerisinde de POST metodu ile gelen galeri resimleri idlerini alıp gönderimize bir meta olarak ekleyeceğiz.
function lahmacun_save_meta_boxes( $post_id ) {
    if ( array_key_exists( "gallery_images", $_POST ) ) {
        $metaValue = $_POST["gallery_images"];
    } else {
        $metaValue = null;
    }
    update_post_meta(
        $post_id,
        "lahmacun_gallery_images",
        $metaValue
    );
}

add_action( 'edit_post', 'lahmacun_save_meta_boxes' );
Metamızı bu şekilde eklemiş olduk. Şimdi yapmamız gereken tek şey sayfamız yüklendiği zaman önceden seçilmiş görseller varsa bunları listelemek ve bu görselleri göstermek. Bunun için yine meta boxımızın callback fonksiyonunu biraz düzenlememiz gerekecek. Öncelikle get_post_meta ile görsellerimizin id'sini alalım ve bunu explode ile parçalayıp bir döngüye sokalım. Sonrasında da hepsini teker teker gösterelim. Fonksiyonumuzun yeni hali şu şekilde olacak.
function lahmacun_gallery_metabox_callback($post)
{
  $galleryImages = get_post_meta($post->ID, 'lahmacun_gallery_images', true);
    ?>
    <input type="hidden" name="gallery_images" value="<?php echo $galleryImages; ?>">
    <button type="button" id="open-gallery">Görsel Seç</button>
    <ul class="gallery-images">
    	<?php
    	$galleryImages = explode(",", $galleryImages);
    	foreach ($galleryImages as $imageId) {
    	?>
    		<img src="<?php echo wp_get_attachment_url($imageId); ?>" style="width: 150px; height: auto;">
    	<?php
    	}
    	?>
    </ul>
    <?php
}
Ufak bir inceleme yapalım. Burada lahmacun_gallery_images metasını çektik. Bu bize idlerin virgülle birleşmiş hali olan bir string verdi. Biz de bu stringi önce alip gizli inputumuza değer olarak verdik. Daha sonra ul'nin içerisinde bunu explode ile virgül karakterine göre parçaladık ve tek tek idleri elde ettik. Daha sonra da wp_get_attachment_url fonksiyonu yardımı ile bu görselleri çağırdık. Şu anda her şey yolunda. Şimdi tek yapmamız gereken tekrar görsel seç butonuna bastığımız zaman mevcut görsellerimizi seçili hale getirmek. Bundan sonra eksiksiz ve güzel bir meta boxımız olacak. Bunun için tekrar Javascript kodlarımızı düzenlememiz lazım. Bunun için yapmamız gereken de inputumuzun değerini alıp virgül ile parçalayıp daha sonra bu id'ye ait görselleri seçili hale getirmek.
mediaFrame.on('open', function() {
    var attachments = [];
    var attachmentsString = $("input[name=gallery_images]").val();
    attachments = attachmentsString.split(",");

    attachments.forEach(function(id) {
        attachment = wp.media.attachment(id);
        attachment.fetch();
        mediaFrame.state().get('selection').add(attachment ? [attachment] : []);
    });
});
Öncelikle attachments adında boş bir dizi oluşturduk. Daha sonra inputumuzun değerini alıp bir değişkene atadık. inputumuzun değerini split fonksiyonu ile virgül karakterine göre parçaladık ve bir dizi oluşturup bunu attachments dizisine atadık. Daha sonra attachments dizisindeki her bir eleman için wp.media.attachment diyerek görselin id'sini kullanarak attachmentımızı çağırdık. Sonrasında mediaFrame değişkenimizin state'indeki seçim kısmına tek tek bu attachmentları eklemiş olduk. Böylece mevcut seçili görsellerimiz varsa penceremiz açıldığında bunları göstermiş olduk. Buraya dosyalarımızın tam hallerini bırakıp bu yazıyı da burada sonlandırmak istiyorum. Öncelikle functions.php
<?php

function lahmacun_add_meta_boxes() {
  add_meta_box( 'lahmacun_gallery_metabox', __( 'Galeri', 'lahmacun' ), 'lahmacun_gallery_metabox_callback', 'post', 'side', 'default' );
}

add_action('add_meta_boxes', 'lahmacun_add_meta_boxes');

function lahmacun_gallery_metabox_callback($post)
{
  $galleryImages = get_post_meta($post->ID, 'lahmacun_gallery_images', true);
    ?>
    <input type="hidden" name="gallery_images" value="<?php echo $galleryImages; ?>">
    <button type="button" id="open-gallery">Görsel Seç</button>
    <ul class="gallery-images">
    	<?php
    	$galleryImages = explode(",", $galleryImages);
    	foreach ($galleryImages as $imageId) {
    	?>
    		<img src="<?php echo wp_get_attachment_url($imageId); ?>" style="width: 150px; height: auto;">
    	<?php
    	}
    	?>
    </ul>
    <?php
}

function lahmacun_enqueue_meta_box_scripts() {
    wp_enqueue_script(
        'lahmacun_media_select',
        get_template_directory_uri() . '/admin/js/gallery.js',
        [ 'jquery' ],
        '',
        true
    );
}

add_action( 'admin_enqueue_scripts', 'lahmacun_enqueue_meta_box_scripts' );

function lahmacun_save_meta_boxes( $post_id ) {
  if ( array_key_exists( "gallery_images", $_POST ) ) {
    $metaValue = $_POST["gallery_images"];
  } else {
    $metaValue = null;
  }
  update_post_meta(
    $post_id,
    "lahmacun_gallery_images",
    $metaValue
  );
}

add_action( 'edit_post', 'lahmacun_save_meta_boxes' );
gallery.js dosyamız:
jQuery(document).ready(function ($) {
    var mediaFrame;

    mediaFrame = wp.media.frames.file_frame = wp.media({
        //button_text set by wp_localize_script()
        title: "Görselleri Seçin",
        button: {text: "Tamam"},
        multiple: true // Çoklu Seçime izin ver.
    });

    $('#open-gallery').on('click', function (e) {

        e.preventDefault();

        if (mediaFrame) {
            mediaFrame.open();
            return;
        }

    });

    mediaFrame.on('select', function() {
    var attachments = mediaFrame.state().get('selection').map(function (attachment) {
                attachment.toJSON();
                return attachment;
        });

        $("ul.gallery-images").html("");
        var galleryImageIds = [];

        for (var i = 0; i < attachments.length; ++i) {
            $('ul.gallery-images').append(
                '<li>' +
                '<img src="' +
            	attachments[i].attributes.url + '" style="width: 150px; height: auto;" />' +
                '</li>'
            );
            galleryImageIds.push(attachments[i].attributes.id);
        }

        $("input[name=gallery_images]").val(galleryImageIds.join());
    })

    mediaFrame.on('open', function() {
        var attachments = [];
        var attachmentsString = $("input[name=gallery_images]").val();
        attachments = attachmentsString.split(",");

        attachments.forEach(function(id) {
            attachment = wp.media.attachment(id);
            attachment.fetch();
            mediaFrame.state().get('selection').add(attachment ? [attachment] : []);
        });
    });
});
Aklınıza takılan bir şeyler varsa bunları yorumlar bölümünden sorabilirsiniz. Umarım faydalı olmuştur. Herkese iyi çalışmalar dilerim.

1 Yorum

  1. canadian pharmacies shipping to usa
    Yanıtla
  2. canadian pharmacies shipping to usa
    Yanıtla
  3. canadian pharmacies shipping to usa
    Yanıtla
  4. canadian pharmacies shipping to usa
    Yanıtla
  5. top rated online canadian pharmacies
    Yanıtla
  6. canadian pharcharmy online
    Yanıtla
  7. canadian pharmacies shipping to usa
    Yanıtla
  8. cialis_generic
    Yanıtla
  9. canadian pharcharmy online
    Yanıtla
  10. canadian pharmacies shipping to usa
    Yanıtla
  11. canadian pharmacies shipping to usa
    Yanıtla
  12. canadian pharmacy no prescription
    Yanıtla
  13. canadian pharmacy no prescription
    Yanıtla
  14. canadian pharcharmy online
    Yanıtla
  15. canadian pharmacies shipping to usa
    Yanıtla
  16. canadian pharmacies shipping to usa
    Yanıtla
  17. www.bioshieldpill.com
    Yanıtla

    discount viagra online bioshieldpill.com viagra online generic [url=http://bioshieldpill.com/]best place to buy generic viagra online[/url]

  18. safe canadian online pharmacies
    Yanıtla
  19. highest rated canadian pharmacies
    Yanıtla
  20. canadian pharmacy no prescription
    Yanıtla
  21. canadian pharmacy no prescription
    Yanıtla
  22. canadian pharmacy no prescription
    Yanıtla
  23. canadian pharmacies shipping to usa
    Yanıtla
  24. canadian pharmacy no prescription
    Yanıtla
  25. canadian pharmacy no prescription
    Yanıtla
  26. canadian pharmacies shipping to usa
    Yanıtla
  27. canadian pharmacies shipping to usa
    Yanıtla
  28. international pharmacies that ship to the usa
    Yanıtla
  29. canadian pharcharmy online
    Yanıtla
  30. international pharmacies that ship to the usa
    Yanıtla
  31. canadian pharmacies
    Yanıtla
  32. canadian pharmacies shipping to usa
    Yanıtla
  33. canadian pharmacies
    Yanıtla
  34. canadian pharcharmy online
    Yanıtla
  35. viagra_cheap
    Yanıtla
  36. canadian pharmacy no prescription
    Yanıtla
  37. canadian pharmacy no prescription
    Yanıtla
  38. canadian pharmacies
    Yanıtla
  39. canadian pharmacies shipping to usa
    Yanıtla
  40. canadian pharmacy no prescription
    Yanıtla
  41. canadian pharmacy no prescription
    Yanıtla
  42. canadian pharmacy no prescription
    Yanıtla
  43. canadian pharmacies shipping to usa
    Yanıtla
  44. safe canadian online pharmacies
    Yanıtla
  45. safe canadian online pharmacies
    Yanıtla
  46. canadian pharmacies shipping to usa
    Yanıtla
  47. highest rated canadian pharmacies
    Yanıtla
  48. canadian pharmacies shipping to usa
    Yanıtla
  49. canadian pharmacies shipping to usa
    Yanıtla
  50. canadian pharmacy no prescription
    Yanıtla
  51. canadian pharmacies
    Yanıtla
  52. canadian pharcharmy online
    Yanıtla
  53. canadian pharmacy no prescription
    Yanıtla
  54. canadian pharmacies shipping to usa
    Yanıtla
  55. cialis prices
    Yanıtla

    thuốc tadalafil mua ở đâu [url=http://genericalis.com]generic cialis at walmart[/url] tadalafil and diazepam interactions

  56. sildenafil generic
    Yanıtla

    grapefruit sildenafil interaction buy viagra prescription online sildenafil antes de entrenar [url=http://viagrarow.com/]viagra online prescription[/url]

  57. discount cialis
    Yanıtla

    discount cialis discount cialis

  58. cialis on line
    Yanıtla

    cialis on line cialis on line

  59. cialis black
    Yanıtla

    cialis black cialis black

  60. tadalista vs cialis
    Yanıtla

    tadalista vs cialis tadalista vs cialis

  61. cost of cialis
    Yanıtla

    cost of cialis cost of cialis

  62. cialis medication
    Yanıtla

    cialis medication cialis medication

  63. cialis and alcohol
    Yanıtla

    cialis and alcohol cialis and alcohol

  64. otc cialis
    Yanıtla

    otc cialis otc cialis

  65. cialis without prescription
    Yanıtla

    cialis without prescription cialis without prescription

  66. cialis generic canada
    Yanıtla

    cialis generic canada cialis generic canada

  67. online cialis
    Yanıtla

    online cialis online cialis

  68. cialis wikipedia
    Yanıtla

    cialis wikipedia cialis wikipedia

  69. non prescription cialis
    Yanıtla

    non prescription cialis non prescription cialis

  70. cialis walmart
    Yanıtla

    cialis walmart cialis walmart

  71. cialis from canada
    Yanıtla

    cialis from canada cialis from canada

  72. cialis 5mg coupon
    Yanıtla

    cialis 5mg coupon cialis 5mg coupon

  73. no prescription cialis
    Yanıtla

    no prescription cialis no prescription cialis

  74. cialis 5mg
    Yanıtla

    cialis 5mg cialis 5mg

  75. natural cialis
    Yanıtla

    natural cialis natural cialis

  76. cialis soft
    Yanıtla

    cialis soft cialis soft

  77. cialis for women
    Yanıtla

    cialis for women cialis for women

  78. marley generics cialis
    Yanıtla

    marley generics cialis marley generics cialis

  79. cialis for sale
    Yanıtla

    cialis for sale cialis for sale

  80. liquid cialis
    Yanıtla

    liquid cialis liquid cialis

  81. cialis saving card
    Yanıtla

    cialis saving card cialis saving card

  82. cialis drug interactions
    Yanıtla

    cialis drug interactions cialis drug interactions

  83. cheap generic cialis
    Yanıtla

    cheap generic cialis cheap generic cialis

  84. cialis samples
    Yanıtla

    cialis samples cialis samples

  85. cialis dosage information
    Yanıtla

    cialis dosage information cialis dosage information

  86. cheap cialis generic
    Yanıtla

    cheap cialis generic cheap cialis generic

  87. generic for cialis
    Yanıtla

    generic for cialis generic for cialis

  88. cialis reviews
    Yanıtla

    cialis reviews cialis reviews

  89. cialis generic price
    Yanıtla

    comprar tadalafil 2.5 http://genericalis.com tadalafil 29 years old

  90. cialis professional
    Yanıtla

    cialis professional cialis professional

  91. cialis daily
    Yanıtla

    cialis daily cialis daily

  92. canadian pharmacy cialis
    Yanıtla

    canadian pharmacy cialis canadian pharmacy cialis

  93. generic cialis reviews
    Yanıtla

    generic cialis reviews generic cialis reviews

  94. cialis price
    Yanıtla

    cialis price cialis price

  95. cialis coupons printable
    Yanıtla

    cialis coupons printable cialis coupons printable

  96. canadian pharmacies shipping to usa
    Yanıtla
  97. cialis prices
    Yanıtla

    tadalafil and bph mechanism of action [url=http://www.cialislet.com/]cialis prices[/url] natural replacement cialis.

  98. canadian cialis
    Yanıtla

    canadian cialis canadian cialis

  99. generic cialis canada
    Yanıtla

    generic cialis canada generic cialis canada

  100. buying cialis online
    Yanıtla

    buying cialis online buying cialis online

  101. cialis patent expiration
    Yanıtla

    cialis patent expiration cialis patent expiration

  102. free cialis samples
    Yanıtla

    free cialis samples free cialis samples

  103. cialis copay card
    Yanıtla

    cialis copay card cialis copay card

  104. free cialis coupon
    Yanıtla

    free cialis coupon free cialis coupon

  105. 5mg cialis
    Yanıtla

    5mg cialis 5mg cialis

  106. free cialis
    Yanıtla

    free cialis free cialis

  107. canadian pharmacies shipping to usa
    Yanıtla
  108. cheap viagra
    Yanıtla

    can viagra treat performance anxiety http://viagragenupi.com welke zorgverzekeraar vergoed viagra

  109. canadian pharmacies shipping to usa
    Yanıtla
  110. canadian pharmacies shipping to usa
    Yanıtla
  111. canadian pharcharmy online
    Yanıtla
  112. viagra
    Yanıtla
  113. canadian pharmacies shipping to usa
    Yanıtla
  114. canadian pharmacies shipping to usa
    Yanıtla
  115. canadian pharmacy no prescription
    Yanıtla
  116. online drugstore
    Yanıtla
  117. canadian pharcharmy online
    Yanıtla
  118. canadian pharmacies shipping to usa
    Yanıtla
  119. canadian pharmacies
    Yanıtla
  120. online pharmacies
    Yanıtla
  121. highest rated canadian pharmacies
    Yanıtla
  122. safe canadian online pharmacies
    Yanıtla
  123. canadian pharcharmy online
    Yanıtla
  124. canadian pharmacy no prescription
    Yanıtla
  125. canadian pharmacies shipping to usa
    Yanıtla
  126. canadian pharcharmy online
    Yanıtla
  127. canadian pharmacy no prescription
    Yanıtla
  128. canadian pharcharmy online
    Yanıtla
  129. canadian pharmacies shipping to usa
    Yanıtla
  130. international pharmacies that ship to the usa
    Yanıtla
  131. tadalafila
    Yanıtla

    tadalafila tadalafila

  132. international pharmacies that ship to the usa
    Yanıtla
  133. canadian pharmacy no prescription
    Yanıtla
  134. canadian pharmacy no prescription
    Yanıtla
  135. canadian pharmacy no prescription
    Yanıtla
  136. canadian pharmacy no prescription
    Yanıtla
  137. canadian pharmacies
    Yanıtla
  138. canadian pharmacy no prescription
    Yanıtla
  139. canadian pharmacy no prescription
    Yanıtla
  140. canadian pharmacies shipping to usa
    Yanıtla
  141. highest rated canadian pharmacies
    Yanıtla
  142. top rated online canadian pharmacies
    Yanıtla
  143. canadian pharcharmy online
    Yanıtla
  144. highest rated canadian pharmacies
    Yanıtla
  145. online pharmacies
    Yanıtla
  146. canadian pharmacies shipping to usa
    Yanıtla
  147. canadian pharmacies shipping to usa
    Yanıtla
  148. canadian pharmacies shipping to usa
    Yanıtla
  149. canadian pharmacy no prescription
    Yanıtla
  150. canadian pharmacy no prescription
    Yanıtla
  151. online pharmacy
    Yanıtla
  152. canadian pharcharmy online
    Yanıtla
  153. triviagra.com
    Yanıtla

    sildenafil tablets for sale in uk http://triviagra.com/ does sildenafil help build muscle http://triviagra.com/ how to buy viagra in manila

  154. generic viagra usa
    Yanıtla

    buy sildenafil and cialis [url=http://viagragenupi.com]cheap viagra[/url] viagra over the counter bangkok

  155. canadian pharmacies shipping to usa
    Yanıtla
  156. online cheap cialis
    Yanıtla

    bjsfbhxl tadalafil quante volte a settimana http://cialissom.com/ lowest price for cialis 5 mg [url=http://cialissom.com]cheap cialis online[/url] cheapest tadalafil in australia

  157. cialis usa
    Yanıtla

    cialis prendre combien de temps avant [url=http://cialislet.com/]cialislet.com[/url] combien coute la boite de tadalafil.

  158. canadian pharmacies shipping to usa
    Yanıtla
  159. cialisle.com
    Yanıtla

    how to use tadalafil 10mg generic cialis online how do i take tadalafil

  160. canadian pharmacies shipping to usa
    Yanıtla
  161. top rated online canadian pharmacies
    Yanıtla
  162. canadian pharmacies shipping to usa
    Yanıtla
  163. canadian pharcharmy online
    Yanıtla
  164. viagra_cheap
    Yanıtla
  165. http://triviagra.com/
    Yanıtla

    foods alternative to sildenafil http://triviagra.com/ beta blocker and sildenafil triviagra.com viagra with ssri

  166. canadian pharcharmy online
    Yanıtla
  167. canadian pharmacies shipping to usa
    Yanıtla
  168. online drugstore
    Yanıtla
  169. canadian pharmacies shipping to usa
    Yanıtla
  170. canadian pharmacies shipping to usa
    Yanıtla
  171. canadian pharmacies shipping to usa
    Yanıtla
  172. canadian pharmacies
    Yanıtla
  173. online pharmacies
    Yanıtla
  174. canadian pharmacy no prescription
    Yanıtla
  175. canadian pharcharmy online
    Yanıtla
  176. canadian pharmacies shipping to usa
    Yanıtla
  177. canadian pharcharmy online
    Yanıtla
  178. canadian pharcharmy online
    Yanıtla
  179. international pharmacies that ship to the usa
    Yanıtla
  180. canadian pharmacies shipping to usa
    Yanıtla
  181. international pharmacies that ship to the usa
    Yanıtla
  182. canadian pharcharmy online
    Yanıtla
  183. canadian pharmacies shipping to usa
    Yanıtla
  184. canadian pharmacies shipping to usa
    Yanıtla
  185. canadian pharmacies shipping to usa
    Yanıtla
  186. canadian pharcharmy online
    Yanıtla
  187. canadian pharcharmy online
    Yanıtla
  188. canadian pharcharmy online
    Yanıtla
  189. canadian pharmacies shipping to usa
    Yanıtla
  190. top rated online canadian pharmacies
    Yanıtla
  191. canadian pharmacy no prescription
    Yanıtla
  192. highest rated canadian pharmacies
    Yanıtla
  193. canadian pharmacies shipping to usa
    Yanıtla
  194. canadian pharmacies shipping to usa
    Yanıtla
  195. canadian pharmacies shipping to usa
    Yanıtla
  196. canadian pharmacies shipping to usa
    Yanıtla
  197. canadian pharcharmy online
    Yanıtla
  198. generic viagra online
    Yanıtla

    where does the name sildenafil come from [url=http://www.viagrauga.com/]generic for viagra[/url] does taking sildenafil feel good

  199. http://cialisle.com
    Yanıtla

    dosage of tadalafil generic cialis cialis tadalafil hap

  200. http://viagrauga.com/
    Yanıtla

    utiliser sildenafil premiere fois viagra prices http://www.viagrauga.com/ www.viagrauga.com taking more than 100 mg sildenafil

  201. canadian pharmacies shipping to usa
    Yanıtla
  202. canadian pharcharmy online
    Yanıtla
  203. buy brand cialis online canada
    Yanıtla

    Hi! Quick question that's completely off topic. Do you know how to make your site mobile friendly? My web site looks weird when browsing from my apple iphone. I'm trying to find a template or plugin that might be able to correct this issue. If you have any recommendations, please share. With thanks! buy brand cialis online canada generic cialis online tadalafil

  204. canadian pharmacies shipping to usa
    Yanıtla
  205. top rated online canadian pharmacies
    Yanıtla
  206. viagra.com
    Yanıtla

    how long will the effect of viagra last [url=http://www.doctor7online.com/]cheap viagra[/url] how to buy viagra in abu dhabi

  207. online pharmacy
    Yanıtla
  208. canadian pharcharmy online
    Yanıtla
  209. canadian pharmacies shipping to usa
    Yanıtla
  210. canadian pharmacies shipping to usa
    Yanıtla
  211. canadian pharmacies shipping to usa
    Yanıtla
  212. canadian pharmacy no prescription
    Yanıtla
  213. canadian pharmacies shipping to usa
    Yanıtla
  214. online pharmacy
    Yanıtla
  215. safe canadian online pharmacies
    Yanıtla
  216. highest rated canadian pharmacies
    Yanıtla
  217. highest rated canadian pharmacies
    Yanıtla
  218. highest rated canadian pharmacies
    Yanıtla
  219. canadian pharmacy no prescription
    Yanıtla
  220. canadian pharmacy no prescription
    Yanıtla
  221. canadian pharmacy no prescription
    Yanıtla
  222. canadian pharcharmy online
    Yanıtla
  223. canadian pharmacy no prescription
    Yanıtla
  224. canadian pharmacies shipping to usa
    Yanıtla
  225. canadian pharcharmy online
    Yanıtla
  226. international pharmacies that ship to the usa
    Yanıtla
  227. canadian pharmacies shipping to usa
    Yanıtla
  228. canadian pharcharmy online
    Yanıtla
  229. international pharmacies that ship to the usa
    Yanıtla
  230. canadian pharcharmy online
    Yanıtla
  231. canadian pharmacy no prescription
    Yanıtla
  232. canadian pharmacies
    Yanıtla
  233. canadian pharmacies shipping to usa
    Yanıtla
  234. canadian pharmacy no prescription
    Yanıtla
  235. canadian pharmacies shipping to usa
    Yanıtla
  236. canadian pharmacy no prescription
    Yanıtla
  237. tadalafil without a doctor prescription
    Yanıtla

    tadalafil without a doctor prescription tadalafil without a doctor prescription

  238. buy_cialis
    Yanıtla
  239. canadian pharmacies shipping to usa
    Yanıtla
  240. highest rated canadian pharmacies
    Yanıtla
  241. highest rated canadian pharmacies
    Yanıtla
  242. canadian pharmacies shipping to usa
    Yanıtla
  243. canadian pharcharmy online
    Yanıtla
  244. canadian pharmacies
    Yanıtla
  245. canadian pharmacies shipping to usa
    Yanıtla
  246. canadian pharmacies shipping to usa
    Yanıtla
  247. canadian pharmacy no prescription
    Yanıtla
  248. tadalafil 20mg
    Yanıtla

    tadalafil 20mg tadalafil 20mg

  249. http://cialisle.com
    Yanıtla

    forum cialis tadalafil generic cialis tadalafil and dapoxetine tablets

  250. generic cialis tadalafil uk
    Yanıtla

    generic cialis tadalafil uk generic cialis tadalafil uk

  251. cialis patentablauf in deutschland
    Yanıtla

    Do you mind if I quote a few of your posts as long as I provide credit and sources back to your webpage? My website is in the exact same area of interest as yours and my users would genuinely benefit from some of the information you present here. Please let me know if this ok with you. Thanks! cialis patentablauf in deutschland cialis patentablauf in deutschland

  252. generic cialis available
    Yanıtla

    generic cialis available generic cialis available

  253. what is levitra
    Yanıtla

    what is levitra what is levitra

  254. cheap_viagra
    Yanıtla
  255. http://calisgenhea.org
    Yanıtla

    tadalafil name meaning http://calisgenhea.org che dose di tadalafil

  256. generic cialis 20mg
    Yanıtla

    generic cialis 20mg generic cialis 20mg

  257. vardenafil hcl 20mg
    Yanıtla

    vardenafil hcl 20mg vardenafil hcl 20mg

  258. vardenafil generic
    Yanıtla

    vardenafil generic vardenafil generic

  259. cialis without a doctor prescription
    Yanıtla

    cialis without a doctor prescription cialis without a doctor prescription

  260. cialis tablets australia
    Yanıtla

    cialis tablets australia cialis tablets australia

  261. www.vagragenericaar.org
    Yanıtla

    how long before sex should a woman take viagra cheap viagra online can you take sildenafil when on blood pressure tablets.

  262. cialis tablets
    Yanıtla

    cialis tablets cialis tablets

  263. viagra.com
    Yanıtla

    how soon after eating can i take viagra [url=http://www.doctor7online.com/]cheap viagra[/url] recept nélkül kapható viagra

  264. levitra vs cialis
    Yanıtla

    levitra vs cialis levitra vs cialis

  265. viagra without doctor prescription
    Yanıtla

    viagra without doctor prescription viagra without doctor prescription

  266. levitra side effects
    Yanıtla

    levitra side effects levitra side effects

  267. viagra without a doctor prescription
    Yanıtla

    viagra without a doctor prescription viagra without a doctor prescription

  268. http://cialisoni.com
    Yanıtla

    http://cialisoni.com/ cialis cialis

  269. cialis generika
    Yanıtla

    cialis generika cialis generika

  270. levitra recviews
    Yanıtla

    levitra recviews levitra recviews

  271. viagra tablets
    Yanıtla

    viagra tablets viagra tablets

  272. cialis generico
    Yanıtla

    cialis generico cialis generico

  273. canadian pharmacies shipping to usa
    Yanıtla
  274. canadian pharmacies shipping to usa
    Yanıtla
  275. viagra tablet
    Yanıtla

    viagra tablet viagra tablet

  276. cialis pharmacy
    Yanıtla

    cialis pharmacy cialis pharmacy

  277. canadian pharmacies shipping to usa
    Yanıtla
  278. levitra prices
    Yanıtla

    levitra prices levitra prices

  279. cialis generic pharmacy
    Yanıtla

    cialis generic pharmacy cialis generic pharmacy

  280. what is augmentin
    Yanıtla

    what is augmentin what is augmentin

  281. top rated online canadian pharmacies
    Yanıtla
  282. canadian pharcharmy online
    Yanıtla
  283. viagra pills
    Yanıtla

    viagra pills viagra pills

  284. cialis generic availability
    Yanıtla

    cialis generic availability cialis generic availability

  285. side effects augmentin
    Yanıtla

    side effects augmentin side effects augmentin

  286. levitra online
    Yanıtla

    levitra online levitra online

  287. canadian pharcharmy online
    Yanıtla
  288. canadian pharmacies shipping to usa
    Yanıtla
  289. viagra online
    Yanıtla

    viagra online viagra online

  290. augmentin vs amoxicillin
    Yanıtla

    augmentin vs amoxicillin augmentin vs amoxicillin

  291. canadian pharmacies
    Yanıtla
  292. what is levaquin
    Yanıtla

    what is levaquin what is levaquin

  293. canadian pharmacy no prescription
    Yanıtla
  294. canadian pharmacies shipping to usa
    Yanıtla
  295. canadian pharmacies shipping to usa
    Yanıtla
  296. canadian pharmacies shipping to usa
    Yanıtla
  297. viagra generic
    Yanıtla

    viagra generic viagra generic

  298. cialis coupon
    Yanıtla

    http://cialisoni.com/ cialis price cialis online