bigo Posted January 17, 2025 at 10:36 PM Share Posted January 17, 2025 at 10:36 PM Здравствуйте. Подскажите пожалуйста нужно добавить чекбокс при редактировании товара с включением блока. Стоит Opencart 3 club edition. За ранее спасибо 0 Quote Link to comment Share on other sites More sharing options...
bigo Posted January 18, 2025 at 04:00 PM Author Share Posted January 18, 2025 at 04:00 PM Набросал такое но чё то не работает <?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; 0 Quote Link to comment Share on other sites More sharing options...
Solution Tom Posted January 18, 2025 at 05:42 PM Solution Share Posted January 18, 2025 at 05:42 PM В опенкарт любой версии полно неиспользуемых полей. Берите любое , например 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 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.