Jump to content
Sign in to follow this  
MoHax22rus

[Решено] проверка наличие левой и правой колонок

Recommended Posts

Пробую переверстать стандартную тему с ипсользованием сетки от бутстрапа, столкнулся с тем что, если есть левая колонка, то она (к примеру) col-xs-3, а средняя тогда col-xs-9, а если есть еще и правая колонка, тогда средняя col-xs-6, а правая col-xs-3, соответственно если модулей в колонках нет, то и колонок нет, а соответственно, средняя тогда col-xs-12. Решил примерно так:

<?php echo $header; ?>
<?php if ( isset($leftcolumnmodule) ) { ?>
    <div class="col-xs-3">
        есть левая
        <?php echo $column_left; ?>
    </div>
    <?php if ( isset($rightcolumnmodule) ) { ?>
        <div class="col-xs-6">
            есть 6
    <?php }else { ?>
        <div class="col-xs-9">
            есть 9
    <?php } ?>
<?php } else { ?>
        <div class="col-xs-12">
            есть 12
<?php } ?>
    <div class="row">
        <div class="col-xs-12">
            <?php echo $content_top; ?>
        </div>
    </div>  
    <div class="row">
        <div class="col-xs-12">
            <?php echo $content_bottom; ?>
        </div>
    </div>
</div>
<?php if ( isset($rightcolumnmodule) ) { ?>
    <div class="col-xs-3">
        есть правая
        <?php echo $column_right; ?>
    </div>
<?php } ?> 
<?php echo $footer; ?>

на примере home, а $rightcolumnmodule и $leftcolumnmodule беру из контролера для этой tpl вот так:

$this->load->model('setting/extension');
	$extensions = $this->model_setting_extension->getExtensions('module');	
        foreach ($extensions as $extension) {
              $modules = $this->config->get($extension['code'] . '_module');
                  if ($modules) {
                     foreach ($modules as $module) {
                         if ($module['position'] == 'column_left'){
                              $this->data['leftcolumnmodule'] = 1;
                         } elseif ($module['position'] == 'column_right'){
                              $this->data['rightcolumnmodule'] = 1;
                         }
                     }
                 }
       }

и получается нужно в каждый контролер вставлять этот код, а это не лучшая идея, может кто сталкивался с подобным и есть более изящное решение?

 

Share this post


Link to post
Share on other sites

посмотрите как это реализовано в стандартной теме opencart 2.0

Share this post


Link to post
Share on other sites

спасибо, глянул, все проще :) в голове вопрос - а что так можно было? :)

Share this post


Link to post
Share on other sites

Все намного проще на примере information.tpl, без изменений контроллера

<?php echo $header; ?>


<?php echo $content_top; ?>


<div id="content">
<div class="container">
<div class="row">


<?php if ($column_left) { ?>
<div class="col-md-3">
<?php echo $column_left; ?>
</div>
<?php } ?>




<?php if ($column_left) { ?>
<?php if ($column_right) { ?>
        <div class="col-md-6">
    <?php }else { ?>
        <div class="col-md-9">
    <?php } ?>
<?php } else { ?>
<div class="col-md-12">
<?php } ?>


  <div class="breadcrumb">
    <?php foreach ($breadcrumbs as $breadcrumb) { ?>
    <?php echo $breadcrumb['separator']; ?><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a>
    <?php } ?>
  </div>
  <h1><?php echo $heading_title; ?></h1>
  <?php echo $description; ?>
  <div class="buttons">
    <div class="right"><a href="<?php echo $continue; ?>" class="button"><?php echo $button_continue; ?></a></div>
  </div>
  
  
</div>


<?php if ($column_right) { ?>
<div class="col-md-3">
<?php echo $column_right; ?>
</div>
<?php } ?>


</div>
</div>
</div>


<?php echo $content_bottom; ?>
  
<?php echo $footer; ?>
Edited by VladVisualDev

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By Sha
      Инструмент поможет провести системный анализ opencart страниц и расширений сайта!
       
      Модуль имеет два основных направления:
       
      1) Для пользователей:
         - Анализ модулей, расширений, дополнений сайта основываясь на архитектуре OpenCart
         - Построение наглядного timeline графика, с сортировкой по желаемому параметру
         это даст возможность выявить "узкие места" и предпринять меры по оптимизации сайта более точечно и направлено.

       
       
      DEMO
      логин: demo, пароль: demo
       
       
      2) Для разработчиков:
        - возможности описанные выше, плюс
        - построение расширенной таблицы структурированной по маршрутам, очерёдности или скорости выполнения,
        - время отработки model/view/controller каждого route, любой страницы сайта, с возможностью сортировки для сравнения,
        - простой debuger данных $data передаваемых в view каждого route. (экспериментально)

       


       
       
       
      Обратите внимание! Модуль является инструментом помогающим в работе с cms opencart/ocstore,
      и не является автоматическим бустером, компрессором, кешером и т.д. 
      так-же под оптимизацией сайта более направленно: не обязательно подразумевается полное избавление от "замедляющего" сайт функционала, вместо этого можно убрать его только в мобильной версии, заменить на более быстрый аналог, или оптимизировать, использовав inline css, уменьшив объём картинок, js кода, и тому подобное.
       
      используемые технологии:
      bootstrap.js,
      vue.js,
      opencart events.
       
      Спасибо, что дочитали до конца!) 
      разбирай пока дёшево!
    • By Sha
      700.00 руб
      Скачать/Купить дополнение


      Route debug board - системный аудит сайта, помощник в оптимизации сайта!
      Инструмент поможет провести системный анализ opencart страниц и расширений сайта!
       
      Модуль имеет два основных направления:
       
      1) Для пользователей:
         - Анализ модулей, расширений, дополнений сайта основываясь на архитектуре OpenCart
         - Построение наглядного timeline графика, с сортировкой по желаемому параметру
         это даст возможность выявить "узкие места" и предпринять меры по оптимизации сайта более точечно и направлено.

       
       
      DEMO
      логин: demo, пароль: demo
       
       
      2) Для разработчиков:
        - возможности описанные выше, плюс
        - построение расширенной таблицы структурированной по маршрутам, очерёдности или скорости выполнения,
        - время отработки model/view/controller каждого route, любой страницы сайта, с возможностью сортировки для сравнения,
        - простой debuger данных $data передаваемых в view каждого route. (экспериментально)

       


       
       
       
      Обратите внимание! Модуль является инструментом помогающим в работе с cms opencart/ocstore,
      и не является автоматическим бустером, компрессором, кешером и т.д. 
      так-же под оптимизацией сайта более направленно: не обязательно подразумевается полное избавление от "замедляющего" сайт функционала, вместо этого можно убрать его только в мобильной версии, заменить на более быстрый аналог, или оптимизировать, использовав inline css, уменьшив объём картинок, js кода, и тому подобное.
       
      используемые технологии:
      bootstrap.js,
      vue.js,
      opencart events.
       
      Спасибо, что дочитали до конца!) 
      разбирай пока дёшево!
      Добавил Sha Добавлено 25.04.2020 Категория Инструменты, утилиты Системные требования php 5.4 и выше Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет Старая цена 2000  
    • By futurolog
      1) Перенести меню в хэдере как показано на скрине (только десктоп)
      Сейчас так :http://prntscr.com/tubpfo
      Нужно так : http://prntscr.com/tubsuq
       
      2) Расширить контейнер до значений : container {width: 1486px;}, чтобы все варианты десктопов показывало с одинаковым размером как на скрине пример :
      http://prntscr.com/tubwwu плюс подравнять размеры слайдера и каруселей. (только десктоп)
       
      Подробности в личку
       
       
    • By MFSHOP
      Мне нужен хороший или отличный программист Opencart, со знанием Yii2. Цель - планомерный перенос нескольких сайтов с Yii2 на Opencart и дальнейшая их поддержка. Условия обсуждаются отдельно. Работа удалённая, оплата попроектная. Кому интересно, напишите мне в личку, пожалуйста.
       
      Требования, обязанности и условия прописаны ниже. Рассмотрю всех кандидатов. Указывайте цену за час работы, пожалуйста. Откликаться можно в телеграм @elizaveta_vasileva либо whatsapp/viber на номер 89821212982. Елизавета.
       
      Требуемый опыт работы: 1–3 года
      Полная занятость, удаленная работа
      Обязанности: Реализация утвержденной схемы взаимодействия систем
      "сайт cms - roistat - crm - 1c";
      Поддержка и разработка сайтов на OpenCart 2.3
      Перенос всех сайтов с Yii2 на единую платформу OpenCart 2.3
      Верстка контента
      Внедрение типовых модулей на сайт
      Доработка модулей, написание собственных по заказам службы маркетинга
      Обеспечение обмена данными сайта с другими системами (roistat, yandex, 1C)
      Разграничение прав пользователей, Обеспечение политики безопасности.
      Обучение пользователей возможностям системы.
      Установка обновлений программных компонентов
      Предоставление технической информации о размещенном контенте
      Визуализация рабочих схем, создание рабочих инструкций и регламентов
      Оптимизация расходов на ИТ
      Предложения по развитию ИТ для роста компании
      Требования: Высший уровень компетенции в области веб-программирования
      Понимание фреймворка Yii
      Знание фреймворка bootstrap Адаптивная верстка (HTML , CSS) по макетам (PSD) Базовый уровень работы с PHP включая ООП Умение разбираться и вносить изменения в существующий код (PHP, JS, CSS, HTML) Знание JavaScript Системы распределенного управления верcиями -GIT, базовый уровень с СУБД MySQL (приветствуется) Верстка под опенкарт 2.3 Умение работать с API (roistat, yandex, etc) Опыт работы в реальных проектах по поддержке сайтов на OpenCart, не менее 2-х лет
      Умение работать в команде и самостоятельно
      Орг. способности и умение координировать действия будут жирным плюсом
      Условия:
      Полностью "белая" заработная плата, официальное трудоустройство
      ЗП в зависимости от Ваших стартовых компетенций назначается индивидуально, от 40 до 60 т.р.
      Работа удалённо, из любой точки мира
      Просьба в отклике указывать уровень ЗП, на который рассчитываете.
    • By sashamaximiv
      Доброго времени суток.
      На странице оформления заказа, при выборе способа Самовывоз, у меня автоматом отметается скидка 10% вот таким способом:
      в файле: \catalog\model\extension\shipping\pickup.php
      добавлен код:
      $cost = $this->cart->getSubTotal() - ($this->cart->getSubTotal() * 0.9); перед: 
      $quote_data['pickup'] = array( полный код этого файла выглядит так:
      <?php class ModelExtensionShippingPickup extends Model {     function getQuote($address) {         $this->load->language('extension/shipping/pickup');         $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone_to_geo_zone WHERE geo_zone_id = '" . (int)$this->config->get('pickup_geo_zone_id') . "' AND country_id = '" . (int)$address['country_id'] . "' AND (zone_id = '" . (int)$address['zone_id'] . "' OR zone_id = '0')");         if (!$this->config->get('pickup_geo_zone_id')) {             $status = true;         } elseif ($query->num_rows) {             $status = true;         } else {             $status = false;         }         $method_data = array();         if ($status) {             $quote_data = array();             $cost = $this->cart->getSubTotal() - ($this->cart->getSubTotal() * 0.9);             $quote_data['pickup'] = array(                 'code'         => 'pickup.pickup',                 'title'        => $this->language->get('text_description'),                 'cost'         => -$cost,                 'tax_class_id' => $this->config->get('total_shipping_tax_class_id'),                 'text'         => '( - ' . $this->currency->format($cost, $this->session->data['currency']) . ')',             );             $method_data = array(                 'code'       => 'pickup',                 'title'      => $this->language->get('text_title'),                 'quote'      => $quote_data,                 'sort_order' => $this->config->get('pickup_sort_order'),                 'error'      => false             );         }         return $method_data;     } }  
      Вопрос: можно как то сделать проверку в этом файле, которая узнает активировал ли пользователь какой либо купон?
       
      чтобы можно было запихнуть код в условие:
      if (код активирован = да) {      $cost = $this->cart->getSubTotal() - ($this->cart->getSubTotal()); } else {      $cost = $this->cart->getSubTotal() - ($this->cart->getSubTotal() * 0.9); }  
      Как вы понимаете, если пользователь активировал какой либо купон, тогда нужно не применять скидку на самовывоз, и наоборот, если купон не применен, тогда активировать скидку 10% на самовывоз. Я не могу понять как можно сделать проверку на активацию купона, активирован какой то купон или нет...
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.