Warning: include() [function.include]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/insert-images-popup/insert-images-popup.php(19) : eval()'d code on line 1

Warning: include_once() [function.include-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-settings.php on line 195

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/nextgen-gallery/nggallery.php on line 284

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/nextgen-gallery/nggallery.php on line 285

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/nextgen-gallery/nggallery.php on line 286

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/nextgen-gallery/nggallery.php on line 287

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/nextgen-gallery/nggallery.php on line 288

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/nextgen-gallery/nggallery.php on line 289

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/nextgen-gallery/widgets/widgets.php on line 7

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/nextgen-gallery/nggallery.php on line 290

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/nextgen-gallery/nggallery.php on line 291

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/nextgen-gallery/nggallery.php on line 294

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/nextgen-gallery/nggallery.php on line 295

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/nextgen-gallery/nggallery.php on line 296

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/nextgen-gallery/nggallery.php on line 306

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/nextgen-gallery/nggallery.php on line 307

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/nextgen-gallery/nggallery.php on line 308

Warning: include_once() [function.include-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/plugins/nextgen-gallery/nggallery.php on line 309

Warning: include_once() [function.include-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-settings.php on line 195

Warning: include_once() [function.include-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-settings.php on line 195

Warning: require() [function.require]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-settings.php on line 199

Warning: require() [function.require]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-settings.php on line 200

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-includes/functions.php on line 2675

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-settings.php on line 277

Warning: include() [function.include]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-settings.php on line 291

Warning: require() [function.require]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/themes/focused/functions.php on line 21

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/themes/focused/theme-options.php on line 18

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/themes/focused/theme-options.php on line 19

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/themes/focused/theme-options.php on line 20

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/themes/focused/theme-options.php on line 21

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/themes/focused/theme-options.php on line 22

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/themes/focused/theme-options.php on line 23

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/themes/focused/theme-options.php on line 24

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/themes/focused/theme-options.php on line 25

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/themes/focused/theme-options.php on line 28

Warning: require_once() [function.require-once]: Unable to allocate memory for pool. in /home/d/damon/damonlsd.ru/public_html/wp-content/themes/focused/admin/meta-box-class/meta-box-post-format.php on line 3
OpenCart 2.3.x — вывод ссылки на скачивание файла в карточке товара | Записная книжка
:::: МЕНЮ ::::

OpenCart 2.3.x — вывод ссылки на скачивание файла в карточке товара

Недавно пришлось модернизировать один инет-магазин на движке OpenCart 2.3.0.2 (rs.4).

Нужно было вывести ссылку на скачивание файла в карточке товара, например, инструкция в формате PDF.

Нашел в интернете инструкцию (автору, как обычно — респект), но мне ее пришлось немного поправить. По-этому предлагаю данный вариант, который я использовал на версии OpenCart 2.3.0.2.

1. Открываем файл catalog/model/catalog/product.php и ищем строку

public function getTotalProductSpecials() {

Перед ней размещаем код:

2. Теперь открываем файл catalog/controller/product/product.php и ищем строку

$this->model_catalog_product->updateViewed($this->request->get['product_id']);

Перед ней размещаем код:

3. В этом же файле, находим строку

public function review() {

И перед ней размещаем код:

4. Теперь, непосредственно в теме, открываем файл catalog/view/theme/default/template/product/product.tpl и в любом месте (я выбрал место перед ценой), вставляем код:

В итоге вот, что получилось

opencart-skachat-pdf

 

UPD 14/05/18: вывод прямой ссылки на скачивание.

Как говорится, по многочисленным просьбам — выводим прямую ссылку на скачивание.

Дописываем п.2 catalog/controller/product/product.php

Дописываем п.4 catalog/view/theme/default/template/product/product.tpl

 


41 Комментариев

  • Ответить Ростислав |

    Очень пригодился ваш код, спасибо!
    Только для seo pro изменил ссылку в контроллере такого вида
    ‘href’ => $this->url->link(‘account/download/download’. ‘&download_id=’ . $result['download_id'])
    и прописать в таблице url_alias account/download/download => downloads

  • Ответить Максим |

    А что значит и прописать в таблице url_alias account/download/download => downloads ? это где надо сделать не совсем понял

  • Ответить Максим |

    У меня формируется ссылка типа сайт/tufli_3/?download_id=1

    но скачивания не происходит. не пойму пока почему(

    • Ответить Damon |

      Смириться и принять OpenCart какой он есть — ужасный. Точнее, не он сам ужасен, а все те «дописки» и плагины, которые пишут вольные разработчики. Главное каждый обвиняет другого, но только не свой плагин, типа, «У вас же все работало, пока не установили новый плагин?!». Был у меня один сайт, на котором, я так и не смогу подружить три плагина. Один работает нормал. Добавил второй, пришлось подпилить первый. Ну а третий поломал первые два :))

  • Ответить Михаил |

    А как реализовать чтобы была не ссылка на скачивание того же PDF а просто путь до него? Хочу в fancybox в модальном окне открывалось для чтения.

      • Ответить Александр |

        Добрый вечер! Подскажите пожалуйста глупому человеку, где на странице создания товара мне можно прикреплять файлы. Все установил, версия опенкарта 2302?

        • Ответить Damon |

          1. Заходим в админку
          2. Создаем файл для загрузки: Каталог \ Загрузки \ Добавить. Даем имя и загружаем файл.
          3. Прикрепляем файл к товару: Каталог \ Товары \ Редактировать. Вкладка Связи. Пункт Загрузки. Кликаем в поле ввода и начинаем вводить имя из п.2. После того, как появились варианты с выбором, выбираем нужный файл.
          4. Готово.

  • Ответить Alexandr |

    Что то у меня ошибку бьет

    public function getTotalProductSpecials() {Warning: Cannot modify header information — headers already sent by (output started at /home/c/cd19979/test231/public_html/system/storage/modification/catalog/model/catalog/product.php:1) in /home/c/cd19979/test231/public_html/catalog/controller/extension/module/viewed.php on line 32

    вероятно это из за модуля Complete SEO, но честно говоря без понятия, еще протестирую на голом openart 2.3.0.2

  • Ответить Марианна |

    тот и тот вариант. у меня получился один, просто открывает пдф без возможности ее скачать.

    • Ответить Damon |

      Я подозреваю, что PDF у вас открывается в браузере, а не предлагает сохранить на диск, так?
      Если это так, то просто в браузере измените ассоциацию с PDF файлами. Выберите Открыть в приложении.

  • Ответить Марианна |

    по вашей ссылки где два варианта открыть или скачать без настройки этого в браузере работает. вот я и интересовалась как сделать ту ссылку при нажатии на которую идет сразу скачка.

    • Ответить Damon |

      Марианна, дайте ссылку на сайт, где можно посмотреть, что у вас там происходит не так.

  • Ответить Ирина |

    На сайте вы находитесь с помощью какого-то БРАУЗЕРА. Как он настроен, так и будет действовать. Какой-то сразу скачает, а какой-то (как в вашем случае) откроет для просмотра.
    В этом случае есть возможность скачать:
    - найти пиктограмму (типа дискетки), при наведении на которую всплывет подсказка «СКАЧАТЬ»
    - нажать Ctrl + s
    ——
    P.S. Это не я такая умная, а внуки рассказали, а им нянечка…Сохранить PDF Edge

  • Ответить Марианна |

    вы издевайтесь? на примере ссылке все работает без каких либо настроек браузера! я без вас знаю как сохранить, но это не каждому человеку объяснить который будет качать инструкцию с сайта.

  • Ответить Ирина |

    Может быть тогда файлы предоставлять архивом, а не PDF?
    Архивы сразу качаются.
    Это не проблема ОпенКарта / программирования / администрирования.

  • Ответить Павел |

    У Вас опубликовано решение для вывода ссылки на файл для скачивания в самой карточке товара. А как можно вывести ссылку для скачивания у товара, но уже на странице категории? Т..е на странице списка товаров?

          • Сергей |

            Подскажите, когда примерно ожидать инструкции по данному способу? :) Спасибо!

          • Damon |

            Сергей, пробуйте.
            Если не затруднит, отпишитесь потом, получилось ли

          • Сергей |

            Спасибо за реализацию, но, к сожалению, у меня не получилось. После внесения всех изменений, формируется ссылка вида site.ru/download/install.pdf.yQspqmahNa18No2A7MG4karZw4n2jORP но при попытке перейти по ней выдает ошибку 404. Вероятно потому, что фактически в коре сайта нет папки download и должен сработать редирект, но он не настроен. Может SEO PRO этому как-то мешает, но предыдущий формат ссылок работает…

        • Ответить Damon |

          Павел, Сергей, приветствую! Вы просили вывод ссылки на странице товаров.
          Сорри за ожидание. Конечно же можно все вывести. Вот, что получилось
          https://opencart.damonlsd.ru/opencart/index.php?route=product/category&path=20_27
          Это товары в категории
          У одного товара есть инструкция для скачивания, у другого товара ее нет.
          Ну и выводим ссылку на скачивание.

          Посмотрите, если подойдет, то будем в коде ковыряться :)

          • Сергей |

            Damon, наверное, не в ты ветку нажал ответ, извините :)

            У меня проблема возникла по части Вашей дополненной инструкции, чтобы файл был доступен по ссылке, вида site.ru/download/file.pdf

            Все сделал по новой инструкции, но не получилось. Ещё раз продублирую сообщение с описанием проблемы, заранее большое спасибо за ответ:
            «Спасибо за реализацию, но, к сожалению, у меня не получилось. После внесения всех изменений, формируется ссылка вида site.ru/download/install.pdf.yQspqmahNa18No2A7MG4karZw4n2jORP но при попытке перейти по ней выдает ошибку 404. Вероятно потому, что фактически в корне сайта нет папки download и должен сработать редирект, но он не работает. Может SEO PRO этому как-то мешает, но предыдущий формат ссылок работает…»

          • Damon |

            У вас точно в корне сайта нет папки download?
            А если не секрет, то куда у вас подобные файлы попадают?

          • Сергей |

            Посмотрел, файлы сохраняются в /system/storage/download

          • Damon |

            Поправил код из пункта «Дописываем п.2 catalog/controller/product/product.php».
            Можете брать из него код и заменить у себя на сервере.
            Дело в том, что в версии 1.5 был один путь до папки с файлами, а в версии 2.3 уже другой.

  • Ответить vikaharkov |

    У меня версия ОК 2.3.0.2
    Вставляю коды все, но ничего не вышло — белая страница открывается.
    Сначала никак не реагирует, а после добавления первой части
    «Дописываем п.2 catalog/controller/product/product.php»
    появляется белая страница при открытии карточки товара.

    Помогите разобраться пожалуйста

выбирайте алкоголь 24 часа в каталоге

Оставить комментарий

  • Вставить изображение