Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

вывод баннера без ссылки если ссылка не указана

Мне кажется, это очередная не доработка) вообщем, почему если не указываешь конкретному баннеру ссылку в админпанели Управление баннерами, то банер отображается ссылаясь помимо того, что ссылки нет на свой ID который никуда не ведет кроме как на пустую, белую страницу.

Вот кагбы не трудно разобраться стало в коде знающему кодеру и убрать вообще ссылку если она не была указана в Управление баннерами
и выводить саму картинку

      //вывод код баннера
        function display($action, $identifier)
        {
            if ($action == 'dynamic')
            {
                $banners_query = $this->query("select count(*) as count from " . TABLE_BANNERS . " where status = '1' and banners_group = '" . $identifier . "'");
                $banners = $this->fetch_array($banners_query);

                if ($banners['count'] > 0)
                {
                    $banner = os_random_select("select banners_id, banners_title, banners_image, banners_html_text from " . TABLE_BANNERS . " where status = '1' and banners_group = '" . $identifier . "'");
                }
                else
                {
                    return '<b>ShopOS ERROR! (os_display_banner(' . $action . ', ' . $identifier . ') -> No banners with group \'' . $identifier . '\' found!</b>';
                }
            }
            elseif ($action == 'static')
            {
                if (is_array($identifier))
                {
                    $banner = $identifier;
                }
                else
                {
                    $banner_query = $this->query("select banners_id, banners_title, banners_image, banners_html_text from " . TABLE_BANNERS . " where status = '1' and banners_id = '" . $identifier . "'");

                    if ( $this->num_rows($banner_query))
                    {
                        $banner = $this->fetch_array($banner_query);
                    }
                }
            }

            if (os_not_null($banner['banners_html_text']))
            {
                $banner_string = $banner['banners_html_text'];
            }
            else
            {
                $banner_string = '<a href="' . os_href_link(FILENAME_REDIRECT, 'action=banner&goto=' . $banner['banners_id']) . '" onclick="window.open(this.href); return false;">' . os_image(http_path('images').'banner/' . $banner['banners_image'], $banner['banners_title']) . '</a>';
            }

            $this->update_display_count($banner['banners_id']);

            return $banner_string;
        }


а то я что-то лазил, чудил целый день до реального времени так и не вьехал, что там и как  :)
за ранее спасибо!


файл modules\plugins\banner\banner.class.php

найти

$query = $this->query("select banners_id, banners_title, banners_image, banners_html_text, banners_group from " . TABLE_BANNERS . " where status = '1'");

заменить на
$query = $this->query("select banners_id, banners_title, banners_url, banners_image, banners_html_text, banners_group from " . TABLE_BANNERS . " where status = '1'");


найти
$banner_string = '<a href="' . os_href_link(FILENAME_REDIRECT, 'action=banner&goto=' . $banner['banners_id']) . '" onclick="window.open(this.href); return false;">' . os_image(http_path('images').'banner/' . $banner['banners_image'], $banner['banners_title']) . '</a>';

заменить на
if (!empty($banner['banners_url']))
$banner_string = '<a href="' . os_href_link(FILENAME_REDIRECT, 'action=banner&goto=' . $banner['banners_id']) . '" onclick="window.open(this.href); return false;">' . os_image(http_path('images').'banner/' . $banner['banners_image'], $banner['banners_title']) . '</a>';
else
$banner_string = os_image(http_path('images').'banner/' . $banner['banners_image'], $banner['banners_title']);


у меня вроде работает корректно


ооо, спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Источник



Если вы хотите работать в сети Интернет на стабильной операционной системе, которая не подвержена вируса, то следует установить линукс. Операционная система линукс имеет множество версий, вы сможете узнать как установить убунту на сайте myubuntu.ru и, конечно, безусловное преимущество перед виндовс у линукса в том, что он бесплатный.
Copyright ShopOS