Jump to content

Как добавить в редактирование товара чекбокс?


bigo
Go to solution Solved by Tom,

Recommended Posts

Набросал такое но чё то не работает 

 

<?xml version="1.0" encoding="UTF-8"?>
<modification>
  <name>Product Block Status</name>
  <code>product_block_status</code>
  <version>1.0</version>
  <author>Your Name</author>
  <link>https://www.yoursite.com</link>

  <!-- Изменение модели для добавления метода получения состояния -->
  <file path="catalog/model/catalog/product.php">
    <operation>
      <search><![CDATA[
        public function getProduct($product_id) {
      ]]></search>
      <add position="after"><![CDATA[
        public function getProductBlockStatus($product_id) {
            $query = $this->db->query("SELECT is_block_enabled FROM " . DB_PREFIX . "product WHERE product_id = '" . (int)$product_id . "'");
            return $query->row['is_block_enabled'];
        }
      ]]></add>
    </operation>
  </file>

  <!-- Изменение контроллера для передачи состояния блока в шаблон -->
  <file path="catalog/controller/product/product.php">
    <operation>
      <search><![CDATA[
      public function index() {
      ]]></search>
      <add position="after"><![CDATA[
        // Получаем состояние блока для товара
        $product_id = $this->request->get['product_id']; // или получите ID товара каким-то другим способом
        $is_block_enabled = $this->model_catalog_product->getProductBlockStatus($product_id);

        // Передаем в шаблон
        $data['is_block_enabled'] = $is_block_enabled;
      ]]></add>
    </operation>
  </file>

  <!-- Изменение шаблона для вывода состояния блока -->
  <file path="catalog/view/theme/default/template/product/product.twig">
    <operation>
      <search><![CDATA[
        <div class="col-sm-12">
      ]]></search>
      <add position="before"><![CDATA[
        {% if is_block_enabled %}
            <div class="product-block-enabled">
                <!-- Контент для активированного блока -->
                <p>Этот блок включен для данного товара.</p>
            </div>
        {% else %}
            <div class="product-block-disabled">
                <!-- Контент для деактивированного блока -->
                <p>Этот блок отключен для данного товара.</p>
            </div>
        {% endif %}
      ]]></add>
    </operation>
  </file>

</modification>
 

Ну и в базе прописал 

ALTER TABLE `oc_product` ADD `is_block_enabled` TINYINT(1) NOT NULL DEFAULT 0;

 

Link to comment
Share on other sites

  • Solution

В опенкарт любой версии полно неиспользуемых полей. Берите любое , например mpn и замените в админке вывод текстового инпута на переключатель Да-Нет.

 

<?xml version="1.0" encoding="UTF-8"?>
<modification>
  <name>Change MPN to Yes-No and Display in Frontend</name>
  <code>change_mpn_to_yes_no_and_display</code>
  <version>1.0</version>
  <author>Tom</author>
  <link>https://www.yoursite.com</link>

  <file path="admin/view/template/catalog/product_form.twig">
    <operation>
      <search><![CDATA[<input type="text" name="mpn" value="{{ mpn }}" placeholder="{{ entry_mpn }}" id="input-mpn" class="form-control"/>]]></search>
      <add position="replace"><![CDATA[
        <select name="mpn" id="input-mpn" class="form-control">
          <option value="1" {{ mpn == '1' ? 'selected' : '' }}>Да</option>
          <option value="0" {{ mpn == '0' ? 'selected' : '' }}>Нет</option>
        </select>
      ]]></add>
    </operation>
  </file>

  <file path="catalog/controller/product/product.php">
    <operation>
      <search><![CDATA[$data['points'] = $product_info['points'];]]></search>
      <add position="after"><![CDATA[$data['mpn'] = $product_info['mpn'];]]></add>
    </operation>
  </file>

  <file path="catalog/view/theme/default/template/product/product.twig">
    <operation>
      <search><![CDATA[{% if price %}]]></search>
      <add position="before"><![CDATA[
        {% if mpn == '1' %}
          <div class="product-mpn-enabled">
            <!-- Контент для активации MPN -->
            <p>Этот блок включен для данного товара.</p>
          </div>
        {% elseif mpn == '0' %}
          <div class="product-mpn-disabled">
            <!-- Контент для деактивации MPN -->
            <p>Этот блок отключен для данного товара.</p>
          </div>
        {% endif %}
      ]]></add>
    </operation>
  </file>
</modification>


Нет возможности использовать mpn, заменяйте на любое иное существующее значение типа jan, isbn, upc, location

Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

Guest
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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...