Drupal + PhotoSwipe + CloudZoom

Making work together PhotoSwipe module and CloudZoom jquery script (v3.x) in Drupal 7.

What we get:

1. Image gallery with big one and small images at the bottom;

2. Big image will have magnifier (zoom, lens) and on click show original image as gallery for swiping;

3. Smalls at the bottom as slider of images - unlimit count;

4. These plugins have mobile support, and easily work on android/iphone;

5. I won't use Drupal CloudZoom module, since it's use the old version of CloudZoom plugin (but, of course it's free).

Let's start coding and setup:

1. I'll setup for article node type with image_field - multivalued image field.

2. Download and install PhotoSwipe module and it's jquery script into libraries from above links.

3. Create image style: "scale01" - scale 300x300. Important: cropping shouldn't applied to this style, otherwise zoom will work incorrectly. Also I use ready to use "thumbnail" for small images. You can use own styles, in this case rename style names in code (see comments).

4. Add to your theme downloaded CloudZoom files as next (v3.1, you can use trial, if no want to buy):

  • THEME/js/cloudzoom/ajax-loader.gif
  • THEME/js/cloudzoom/cloudzoom.css
  • THEME/js/cloudzoom/cloudzoom.js
  • THEME/js/cloudzoom/thumbelina.css
  • THEME/js/cloudzoom/thumbelina.js

5. Add to your theme template.php file next:


/**
 * Override or insert variables into the page template.
 */
function THEME_preprocess_page(&$variables) {
  // ...
  // I want to show for article node type. You can choose any rule...
  if (isset($variables['node']) && ($variables['node']->type == 'article')) {
    drupal_add_js(drupal_get_path('theme', 'YOURTHEME') . '/js/cloudzoom/cloudzoom.js');
    drupal_add_js(drupal_get_path('theme', 'YOURTHEME') . '/js/cloudzoom/thumbelina.js');
    drupal_add_css(drupal_get_path('theme', 'YOURTHEME') . '/js/cloudzoom/cloudzoom.css');
    drupal_add_css(drupal_get_path('theme', 'YOURTHEME') . '/js/cloudzoom/thumbelina.css');

    // Rename script.js to your own js file in next line, if you already have one 
    drupal_add_js(drupal_get_path('theme', 'YOURTHEME') . '/js/script.js');

    photoswipe_load_assets();
  }
  // ...
}

6. Add next big code to page--article.tpl.php. Create own if no one by copying node.tpl.php and renaming it to the page--article.tpl.php (or use own templates).

<div id="bigimg1" class="img">
<?php
  // We use wrapper
  $wrapper = entity_metadata_wrapper('node', $node);
  if (isset($wrapper->field_image[0]->file)) {
    // Make first image big one
    $file = $wrapper->field_image[0]->file->value();
    $title = isset($wrapper->field_image[0]->title) ? $wrapper->field_image[0]->title->value() : '';
    print theme('image_style', array(
      'style_name' => 'scale01', // Rename this to your own style.
      'path' => $file->uri,
      'attributes' => array(
        'title' => $title,
        'class' => 'cloudzoom',
        // next are zooming options, read CloudZoom documentation for additional info
        'data-cloudzoom' => "zoomSizeMode:'zoom', zoomPosition: 4, autoInside:550, captionPosition:'bottom', " . 
          "zoomImage:'" . file_create_url($file->uri) . "'",
      ),
    ));
  }

?>
</div>

<?php
  // Collect multivalued images into item list for thumbs
  $li = array();
  $inv = array();
  foreach ($wrapper->field_image->getIterator() as $delta => $item_wrapper) {
    $file = $item_wrapper->file->value();
    $title = isset($item_wrapper->title) ? $item_wrapper->title->value() : '';

    if (!isset($file->width) || !isset($file->height)) {
      $fs = image_get_info($file->uri);
      $file->width = $fs['width'];
      $file->height = $fs['height'];
    }

    $inv[] = l('', file_create_url($file->uri), array('attributes' => array('class' => 'photoswipe', 'data-size' => $file->width . 'x' . $file->height, 'data-overlay-title' => $title)));
    $midimg = image_style_url('scale01', $file->uri);
    $li[] = theme('image_style', array(
      'style_name' => 'thumbnail', // Rename, if you use own thumb style
      'path' => $file->uri,
      'attributes' => array(
        'title' => $title,
        'class' => 'cloudzoom-gallery',
        'data-cloudzoom' => "useZoom:'.cloudzoom', image:'" . $midimg . "', zoomImage:'" . file_create_url($file->uri) . "'",
      ),
    ));
  }

?>
<div id="slider1">
  <div class="thumbelina-but horiz left disabled">˂</div>
<?php
  print theme('item_list', array('items' => $li, 'attributes' => array('class' => 'thumbelina')));
?>
  <div class="thumbelina-but horiz right">˃</div>
</div>
<div class="photoswipe-gallery element-invisible">
  <?php
    // This is printing invisible links, for simulation PhotoSwipe click
    print implode('', $inv);
  ?>
</div>

7. Add script.js to your theme (or use own custom js):

(function($) {

/**
 * Custom js code.
 */
Drupal.behaviors.custom_bhvr = {
  attach: function (context, settings) {
    var active_tl = 0;
    if (jQuery().Thumbelina) {
      CloudZoom.quickStart();

      $('#slider1').Thumbelina({
        maxSpeed: 50,
        $bwdBut:$('#slider1 .left'), 
        $fwdBut:$('#slider1 .right')
      });

      $('#slider1 .cloudzoom-gallery').click(function() {
        active_tl = $('#slider1 .cloudzoom-gallery').index(this);
      });
    }

    if (Drupal.behaviors.photoswipe !== undefined) {
      $('.cloudzoom').bind('click',function() {
        var cloudZoom = $(this).data('CloudZoom');
        cloudZoom.closeZoom();
        $('a.photoswipe').eq(active_tl).click();
        return false;
      });
    }

  }
};

})(jQuery);

8. Add fixing CSS styles for fixing slider to the image styles:

#slider1 {
  width: 300px;
  position: relative;
  height: 100px;
  margin-left: 20px;
}
#slider1 img {
  cursor: pointer;
}
.thumbelina-but.horiz {
  height: 100px;
  line-height: 100px;
  top: 0;
}

Try click above images, slide and swipe...

Comments

This is a great resource, and is definitely what I have been looking for! Thanks, and keep up the good work!

Permalink

In reply to by faiz hariry (not verified)

<a href="https://mrdns.info/watch/PNFJeUvVJOE">Барбоскины - Мы верим в сказки. Сборник 2017 года - YouTube</a><br />Если сильно захотеть, то можно оказаться в сказке. Какие твои любимые сказки? Барбоскины выпуск 9 - http://bit.ly/barboskinynew_9 Барбоскины выпуск 8 - http:...<br /><a href="https://mrdns.info/watch/dzVsBmivQCg">Ми-ми-мишки - Сборник новых серий о приключениях Кеши и Тучки. - YouTube</a><br />Ми-ми-мишки и другие популярные мультгерои ждут тебя на &quot;Мультимире&quot;! Будут игры, конкурсы с призами, премьеры новых мультиков и многое другое. Приходи! Фест...<br /><a href="https://mrdns.info/watch/ZMB70xIEzMY">Маша и Медведь - Звезда с неба (Серия 70) - YouTube</a><br />Как вы думаете, сложно ли достать звезду с неба? Для наших героев нет ничего невозможного! Нужно только построить ракету и взять с собой парочку верных друзе...<br /><a href="https://mrdns.info/watch/-jkRUhxzbmo">Интересный сборник Барбоскины Сборник мультфильмов - YouTube</a><br />Новые серии 2018 года: Финал века http://bit.ly/2sWbJFb Через тернии к звездам http://bit.ly/2GUdOXb Собаки иных цивилизаций http://bit.ly/2ps0T7V Генина стр...<br /><a href="https://mrdns.info/watch/JJTWDXEMCB0">Барбоскины - Страшные серии к Хэллоуину Сборник 2017 - YouTube</a><br />Чего ты больше всего боишься? Смотрите все серии Барбоскиных подряд без остановки. Барбоскины выпуск 9 - http://bit.ly/barboskinynew_9 Барбоскины выпуск 8 - ...<br /><a href="https://mrdns.info/watch/deINxt1rs_w">Барбоскины - Удивительное рядом!? Сборник 2017 года - YouTube</a><br />Чудеса повсюду. Они окружают нас даже дома... Для малыша даже пчелка - чудо. Ну а что говорить про удивительные изобретения гены или уроки магии прямо у нас ...<br /><a href="https://mrdns.info/watch/iioic3RC-nY">Клуб Микки Мауса - Суперприключение! - Мультфильм Disney Узнавайка Спецвыпуск - YouTube</a><br />#disneyrussia #каналdisney #disneyrussia #каналdisney #микки #маус #миккимаус #мультик #мультфильм Клуб Микки Мауса - Суперприключение! Часть 2 - Мультфильм ...<br /><a href="https://mrdns.info/watch/YbJz-bchmcs">Три кота - Мама заболела + Папин телефон + Одежда для котят - YouTube</a><br />Три кота. Все серии: https://goo.gl/gLXMN1 Дракоша Тоша. Все серии по порядку: https://goo.gl/M9jA2N Шоу Мишки Гумми The Gummy Bear Show: https://goo.gl/uJ...<br /><a href="https://mrdns.info/watch/8c0M6eH4Fws/">Песни для детей - КУКУТИКИ - Веселые песенки про машинки, животных, семью - Мегасборник - YouTube</a><br />Веселые песенки для детей, малышей от Кукутиков, все серии, сборник для самых маленьких. Кукутики такие забавные - они поют детские песенки и веселят ребят! ...<br /><a href="https://mrdns.info/watch/Wj_GEGMDIjw">ЙоНаЛу - Принц Грязнуля - Мультики для детей - Танцуем и поем вместе! - YouTube</a><br />Развивающие мультики для детей 2018! Смотри все серии: http://bit.ly/JoNaLu Музыкальный мультфильм &quot;ЙоНаЛу&quot; расскажет малышам о множестве полезных и интересн...<br /><a href="https://mrdns.info/watch/r35_GvqvwV8">Друзья - Приключения медвежат - Не опаздывай - YouTube</a><br />В этой серии злой Мел решил переделать сказку про Золушку. Он уже посадил в волшебную клетку Золушку. Хорошо, что Джонни, Полли и Джет уже спешат на помощь! ...<br /><a href="https://mrdns.info/watch/22TqxoQKHyA">Друзья Приключения медвежат - Большой Мэл - YouTube</a><br />Пока Джонни и Джет соревновались кто больше надует шарик, Мэл сварил волшебное зелье, выпив которое становишься огромным. Теперь можно всех победить и захват...<br /><a href="https://mrdns.info/watch/QXfqTN_YtjE">Sunny Bunnies Glow in the Dark Bunny SUNNY BUNNIES COMPILATION Cartoons for Children - YouTube</a><br />--------------->>>Subscribe to Sunny Bunnies Cartoons for Children: http://bit.ly/2d0zfsM&lt; <<--------------- Kids are capable of coming up with the most un...<br /><a href="https://mrdns.info/watch/yDuSlV1Tpf0">Барбоскины - новые серии 161-165 подряд. Мультфильмы для детей - YouTube</a><br />БАРБОСКИНЫ - Новые серии Барбоскиных подряд без остановки 2016 на официальном канале. Барбоскины выпуск 9 - http://bit.ly/barboskinynew_9 Барбоскины выпуск 8...<br /><a href="https://mrdns.info/watch/Pn_k3UL-XVI">Сборник мультиков про медвежат - Друзья Приключения медвежат - часть 4 - YouTube</a><br />Все серии здесь: bit.ly/pawinpaw Медвежонок Джонни всегда мечтал найти волшебную страну, о которой он прочитал в дневнике своего дедушки. И вот однажды Джонн...<br /><a href="https://mrdns.info/watch/S12ko8bxA5E/">Learn Numbers &amp; Colors with Disney Cars and Wooden Racecar Toys - YouTube</a><br />Learn Numbers and Colors with Disney Cars Toys Mack Truck transforms Lightning McQueen diecast toy and his friends into Wooden racer to load a toddler transp...<br /><a href="https://mrdns.info/watch/GbB01tc8lKg/">Мультики для детей - Кротик и Панда - Большой арбуз + Спорт в лесу - Новые мультфильмы 2017! - YouTube</a><br />Премьера 2017! Новый мультик для детей про знаменитого Кротика! Смотрите новые серии в плейлисте на нашем канале мультиков: http://bit.ly/Krotik Серия 13. Кр...<br /><a href="https://mrdns.info/watch/RNCUJe89hvg">Мультики - Дуда и Дада - Все серии подряд - Лучшие серии 2 сезона! - YouTube</a><br />Дуда — маленький кротик. Дада — любопытная девочка. Вместе они познают мир вокруг себя и открывают тайны Неизведанного Леса. Дада много путешествует на своем...<br /><a href="https://mrdns.info/watch/5DXQe-gdyAY">Барбоскины - Самые интересные серии подряд. Мультики для детей 2017 - YouTube</a><br />БАРБОСКИНЫ - Самые интересеные серии Барбоскиных подряд без остановки 2017 на официальном канале. Барбоскины выпуск 9 - http://bit.ly/barboskinynew_9 Барбоск...<br /><a href="https://mrdns.info/watch/LjlkmaqvhLY">Холода Барбоскины Сборник мультфильмов 2018 - YouTube</a><br />Новые серии: Звёздная ночь Дружка http://bit.ly/2AiUkdR Есть контакт http://bit.ly/2ogkt6b Призрак справедливости http://bit.ly/2NffAJJ Спектакль для всей се...<br />

Permalink

In reply to by Jordan Hackerson (not verified)

<a href="https://jenskoe.info/watch/0VmVWxL6DNE">ВИКТОР БЛУД ХИМИК ИЛИ НАТУРАЛ? ВИКТОР БЛУД РАЗОБЛАЧЕНИЕ - YouTube</a><br />ВИКТОР БЛУД ХИМИК ИЛИ НАТУРАЛ? ВИКТОР БЛУД РАЗОБЛАЧЕНИЕ Поддержать меня за труд можно тут - http://www.donationalerts.ru/r/roadbattletoad Провожу консультаци...<br /><a href="https://jenskoe.info/watch/AliaPNTpgD8">СОБОЛЕВ VS. ЛАРИН Бургер - НАРОДНОЕ МНЕНИЕ - YouTube</a><br />СОБОЛЕВ Бургер VS. ЛАРИН Бургер - НАРОДНОЕ МНЕНИЕ Подписывайтесь на мой инстаграм, чтоб не пропускать движухи - https://instagram.com/dimagordey/ Сегодня у н...<br /><a href="https://jenskoe.info/watch/FM1Xdosch4w">Запрещенные Гонки на Tesla Model X P100D vs &quot;САМАЯ БЫСТРАЯ МАШИНА&quot; в Новокузнецке #ТеслаНамбаВан - YouTube</a><br />#ТеслаНамбаВан - Д О К А З А Н О > Instagram: http://instagram.com/warpath93 Разный вес автомобилей, классы, предназначения, но получилось круто! Видео созда...<br /><a href="https://jenskoe.info/watch/prKE-4zs_w8">SilverName. На расслабоне лучший контент. - YouTube</a><br />Вк SilverName - https://vk.com/silvernamehs Стрим SilverName - https://www.twitch.tv/silvername По вопросам рекламы: - https://vk.com/tugp_nonpblgyh ••••••••...<br /><a href="https://jenskoe.info/watch/ES52DDT_0No">GoPro BMX STREET #2 - ЧОКНУТЫЙ РУССКИЙ (Дима Гордей) - YouTube</a><br />Утром в день, когда на канале перевалило за 300 000 подписчиков... я взял свой BMX, GoPro и погнал катать STREET!!! Канал Вики - https://www.youtube.com/chan...<br /><a href="https://jenskoe.info/watch/Mw9X00VBCNI/">Asmongold Horde Mount Off! Second in the History of wow BFA! - YouTube</a><br />Asmongold has only done 2 Mount offs in wow bfa, and this is the second! More black proto drakes in one place than ever before! Asmongold was losing fate in ...<br /><a href="https://jenskoe.info/watch/NpSPzeqdd48">AUDI RS6 против LAMBORGHINI URUS - YouTube</a><br />Мой проект RaiseMoney: https://vk.com/raisebetmoney Сделать ставку в 1win: http://1wiwxt.xyz/ ------------------------------ Первые проблемы с Audi RS6! Merc...<br /><a href="https://jenskoe.info/watch/kWESE5RsdJE">Чеченский школьник - ХИМИК?! РАССЛЕДОВАНИЕ (АСХАБ ТАМАЕВ) - YouTube</a><br />Разоблачение чеченского школьника, настоящего ХАЛКА Асхаба Тамаева. Подписывайтесь на инсту - https://www.instagram.com/archomorris/ Мои программы тренировок...<br /><a href="https://jenskoe.info/watch/VNUjCAXvrPk">Смешные моменты с Куплиновым - Kingdom Come: Deliverance (со стрима) - YouTube</a><br />Лучшие моменты Куплинова со стрима по Kingdom Come: Deliverance Ссылки: Канал - https://www.youtube.com/user/KuplinovPlay/featured Instagram - https://www.in...<br /><a href="https://jenskoe.info/watch/236pUVIsgPI">SilverName. Чекирует SparkTV. Продолжаем расслабляться. - YouTube</a><br />Вк SilverName - https://vk.com/silvernamehs Стрим SilverName - https://www.twitch.tv/silvername Насчет рекламы - https://vk.com/tugp_nonpblgyh ••••••••••••••...<br /><a href="https://jenskoe.info/watch/D3wlC4Gmo8M">SilverName. Сильвер смотрит смешные нарезки по HS. - YouTube</a><br />Вк SilverName - https://vk.com/silvernamehs Стрим SilverName - https://www.twitch.tv/silvername Насчет рекламы - https://vk.com/tugp_nonpblgyh ••••••••••••••...<br /><a href="https://jenskoe.info/watch/vVF9ATBbGfk">SilverName. Позитив без негатива. Расслабляемся. - YouTube</a><br />Вк SilverName - https://vk.com/silvernamehs Стрим SilverName - https://www.twitch.tv/silvername Насчет рекламы - https://vk.com/tugp_nonpblgyh ••••••••••••••...<br /><a href="https://jenskoe.info/watch/VRmcRpbo088">СМЕШНЫЕ МОМЕНТЫ С КУПЛИНОВЫМ #30 - YouTube</a><br />Юбилейная нарезочка. Приятного просмотра :) Музыка из видео: 1) Валерий Ободзинский - Эти Глаза Напротив 2) Bruno Coulais - The Children's Choir Of Nice - En...<br /><a href="https://jenskoe.info/watch/8Qx8Ol7KtK8">ТОП-10 модов для Ведьмака 3 - YouTube</a><br />Из множества любительских работ мы выбрали десять модов, которые дадут по-новому взглянуть на Ведьмака 3. Ведьмак в Амино на Андроид: http://m.onelink.me/6a3...<br /><a href="https://jenskoe.info/watch/QzHlpPV25lg">Забавные BMX'еры / Funny BMXs - YouTube</a><br />Все самое смешное и новое. Подписывайся и тебя всегда ждет хорошее настроение. Осторожно, Ненормативная лексика.<br /><a href="https://jenskoe.info/watch/rmTrZqWHTTg">Как определить чистого эктоморфа?! (Наглядный пример) - YouTube</a><br />Канал Дениса- https://www.youtube.com/channel/UCg5glNfW_XXZ7c65ZdPizpQ В этом видео вы увидите то, как определить свой тип телосложения, в данном случае экто...<br /><a href="https://jenskoe.info/watch/BPEop2CffYo">SilverName vs Псарь: Накидал помойки в колоду - выиграл игру. Мат в 3 хода это нормально? - YouTube</a><br />Подпишись https://goo.gl/Q7AkNJ на канал прямо сейчас, не поленись :=) Третья часть PVE HearthStone - воюем на хантишке против &quot;Плешивого Волка&quot;, &quot;Доктора&quot;, ...<br /><a href="https://jenskoe.info/watch/9ax97DUk7mQ">СМЕШНЫЕ МОМЕНТЫ С КУПЛИНОВЫМ #18 - YouTube</a><br />Очередная нарезка смешных и забавных моментов с Куплиняшей. Приятного просмотра :) Музыка из интро в конце - xKore feat. Zoe &amp; Naomi – Need You (Centra Remix...<br /><a href="https://jenskoe.info/watch/Sq6Z6z6pFsk">SilverName. Кто сильнее Сильвер или Вечная Токи? Человек против Скриптов. - YouTube</a><br />Вк SilverName - https://vk.com/silvernamehs Стрим SilverName - https://www.twitch.tv/silvername Насчет рекламы - https://vk.com/tugp_nonpblgyh ••••••••••••••...<br /><a href="https://jenskoe.info/watch/qgX95zvQGyM">Смешные моменты с Куплиновым #7 - Транс - YouTube</a><br />Куплинов проходит The Witcher 3 Wild Hunt Куплинов - https://www.youtube.com/channel/UCdKuE7a2QZeHPhDntXVZ91w<br />

These kind of post are always keeping up and I need to take a gander at quality substance so I anxious to find another wonderful point here in the post, making it on a remarkably basic level stunning, thank you for the post. http://www.idpaq.com

Легальные casino оnline http://azino777online.ru.com/ имеют лавка прав и обязанностей. В таких казино отрицание проблем с выводом денег на карту. Сертифицированные заведения дают гарантию для безопасность личных данных и выполняют обязательства пред клиентами.
Для составления рейтинга казино обязательно создают оглавление с контролем честности. В нем находятся всегда проверенные игорные залы. Нормальные casino отвечают предъявленным требованиям и характеризуются якобы честные заведения, которые платят выигрыш.
Онлайн-казино открывают двери ради вас, авантюристы, искатели приключений и романтики! Воеже терпеть свою удачу и сорвать куш, не обязательно гнать в Лас-Вегас. Энтузиазм и успех ходят рядом. Давайте рассмотрим рейтинги лучших казино онлайн 2019.
Мы поможем вам разобраться, как работает система онлайн-казино, выбрать лучшие заведения с реальными возможностями получить выигрыш. Мы расскажем вам о правилах поведения в виртуальном казино и объясним его закон работы. В нашем обзоре собрана вся истина о моментах работы казино, здесь собраны ответы для все вопросы относительный гейминге. Описание каждого интересного казино и популярного игрового автомата поможет в расстановке приоритетов именно вашего пути.
Новичку крайне сложно исполнять выбор, в каком онлайн-казино начать играть для деньги. Ведь каждая вывеска беспричинно красива, предложения щедры и зрелище интересны. Для того для исполнять резонный выбор, надо просмотреть реальный обзор онлайн-казино.
Составлением таких обзоров занимается общество профи, которые изучают специфику работы виртуальных казино, основываясь на отзывах игроков. Форум является местом общения игроков только мира, благодаря чему о случае некачественной работы заведения или обмана разом же станет известно огромному числу пользователей сети.
Новичкам лучше забавлять на проверенных сайтах. Для этого следует ввести в поиск запрос о топ онлайн-казино 2019 и выбрать путь своего движения в пространстве и времени. Рейтинг заведений является главной направляющей в поиске честного онлайн-казино.
Для любителей программного обеспечения интересно довольно посетить казино с безупречной репутацией admiralxxx-online.ru. Самое честное онлайн-казино admiralxxx-online.ru гарантированно выплачивает выигрыши, все его отзывы положительны, а софт качественный.

Смех не только продлевает жизнь, но и положительно влияет на общее качество жизни. Но в современных реалиях сложно вызвать его, когда вокруг столько баянов и бородатых шуток. Поэтому на нашем сайте мы предлагаем Вам только фирменные, оригинальные забавности, написанные нами. Хотя наверняка сам юмор существовал ещё с древних пор, задолго до нашей эры. Ещё в древней Греции могли шутить про любовь оратора к мальчикам, а в пещерах первобытных людей вполне могла ходить шутка про «пещеру бывшей», пусть она и не могла быть произнесена, поскольку речи ещё не было. Но об этом мы можем только гадать. Юмор — это не математика, он далек от точных наук, и на способность хорошо шутить, не напрягаясь, могут уйти годы. При этом, чтобы воспринимать юмор, это совсем не обязательно, достаточно быть интеллектуальным человеком.
Шутки это наш самый любимый раздел. Здесь собраны прикольные истории, шутки с советских журналов. Самые новые анекдоты, которые были сочинены, юмористами из различных юмористических шоу. Можно быть уверенным, когда читаешь на этой странице смешные истории, будешь кататься по полу от смеха, так как здесь собран неудержимый юмор. Вам не будет скучно прокручивать страничку, и вдохновляться качественными шутками. Так же на сайте можно найти приколы, связанные с нашими милыми домашними животными, которые просто готовы вас взбудоражить.
анекдоты про педиков http://www.tut-smeshno.ru/

Discount Legally Pyridium 200mg Worldwide Pills. Mail Order Pyridium 200mg Secure Medication Shipped Ups <a href=http://achetercialisfr.com>ou trouver cialis sur le net</a> Is Amoxicillin A Monoamine Oxidase Inhibitor Cephalexin Pain When Urinating Best Erectile Dysfunction Drugs

Add new comment

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.