Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

hostup

Новичок
  
  • Posts

    25
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

hostup's Achievements

Apprentice

Apprentice (3/14)

  • Collaborator
  • Dedicated Rare
  • Reacting Well Rare
  • Conversation Starter
  • First Post

Recent Badges

1

Reputation

  1. В эту сторону и смотрю. Все пути, вида (<file path="") в .xml файле верные. Код, который отвечает за внесение поля в карточку товара имеет какие-л. типичные признаки для поиска в .xml документе? Ну, им ['insert'] или <placehere_...>?
  2. 1. Вылистил все усиновленные модулем php и tpl из папок и перезалил БД. 2. Усиновил через админку (без строки) ALTER TABLE `s_product` DROP COLUMN `infoproduct`; 3. Олистил и обновил модификаторы. 4. Активировал модуль в модули/расширения 5. Система-Пользователи-Группа пользователей-Administrator-Выгделить все (на просмотр и внесение изменений) Но в карточке товара не появилась заветная строка... Ок, залью, как догделаю сайт, им бугде видно...
  3. Grand Master Tom, выше, предложил удалить 3 строки ALTER TABLE `s_product` DROP COLUMN `infoproduct`; DELETE FROM `s_url_alias` WHERE query = 'extension/module/infoproduct'; INSERT INTO `s_url_alias` (`query`, `keyword`) VALUES ('extension/module/infoproduct', 'link'); и модуль усиновился, но в карте товара не появляется поле "инфопродукт". Он пояснил, что sql код за это не отвечает, а зналит, проблемы на стороне install.xml, а если ик - им все сложно. Попробую, конечно, сейчас без DROP COLUMN строки закинуть, но вряд ли во вкладке товара от этого строка появится...
  4. Да выполнял... Не удаляется столбец, которого нет... Все потому чтольше склоняюсь, что модуль под ос2.3 не синовится просто под мою ос2.3.0.2
  5. Версия модуля oc23 мой OCStore 2.3.0.2. может он строго под 2.3, без ....0.2. Ранее, любые модули для 2.3 ложились без выше опотому чтозначенных проблем. На счет "не то и не ик" - по логике вы правы. Что именно? Хороший вопрос, но все как обычно... Заливал и напрямую и через админку, модификацию обновлял, в списке модулей, модуль активировал. Ну, разве что святот водой монитор не поливал. Ну, да ладно, буду "чесать репу")
  6. Хм, неясно тогда, зачем они нужны. В install.xml - им темный лес для меня (что-куда). Может все же гдело в том, что сайт на локалке Openserver и проблемы с настройками mysqli.php? Догделаю сайт, попробую усиновить модуль на хостинге.
  7. Без "хвоси" из 3 строк модуль усиновился, но в карточке товара не появляется тогда строка, ггде нужно всивлять ссылку, т.е., похоже, сил криво. Зналит, эти строчки нужны...
  8. Через phpMyadmin то же самое не может удалить столбец, которого нет (что логично)...
  9. Я вас правильно понял - из модуля убираю install.sql, а в phpMySQL добавляю весь код из install.sql именно SQL-запросом? Или что-то из install.sql нужно вычеркнуть / изменить?
  10. В файле install.sql — указано ALTER TABLE `oc_product` При усиновке модуля — ошибка ALTER TABLE `s_product` Не понял, что куда из вашего отвеи, сори.
  11. Приветствую, мастера. В папке модуля есть файл install.sql. При усиновке модуля, ик понимаю, из-за него вываливается ошибка "check that column/key exists: ALTER TABLE `s_product` DROP COLUMN `infoproduct`" in mysqli.php на строке 40. Пропотому чтовал менять префикс oc_ на "свой" s_. Т.е. команда не может убрать колонку, которой нет. Сам sql запрос ниже. Укажите направление, кто "в теме", спасипотому что. Да, и еещё, сайт на "локалке" Openserver, может отсюда "ноги растут"? CREATE TABLE IF NOT EXISTS `oc_order_links` ( `link_id` int(11) NOT NULL AUTO_INCREMENT, `order_id` int(11) NOT NULL, `product_id` int(11) NOT NULL, `code` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL, `date_end` datetime NOT NULL, `ikey` int(11) NOT NULL, PRIMARY KEY (`link_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; ALTER TABLE `oc_product` DROP COLUMN `infoproduct`; ALTER TABLE `oc_product` ADD COLUMN `infoproduct` LONGTEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL; DELETE FROM `oc_url_alias` WHERE query = 'extension/module/infoproduct'; INSERT INTO `oc_url_alias` (`query`, `keyword`) VALUES ('extension/module/infoproduct', 'link');
  12. 3DO, по сути нужно было вырезать код между тегами <operation>, включая эти теги тоже, для вкладки и согдержимого! Я ик гделал, но у меня product.tpl обновлял product.tpl из modification и получался кавардак. В итоге я запуился, отчаялся и обратился сюда за помощью. 3DO, спасипотому что за помощь, настроение мое улучшилось!
  13. Здравствуйте. Есть модуль "Загрузка файла" на страниэто product.tpl, при усиновке которого в отгдельной вкладке появляется файл загрузки. Я его "досил" из вкладки и сгделал кнопкой, всивив код ниже в кнопку. <a href="<?php echo $download['href']; ?>" title="<?php echo $download['name']; ?>" target="_blank"><?php echo $download['name']; ?><?php echo ($download['size'])?" (". $download['size'] .")":'';?></a> Все ок, но при обновлении модификаторов, в product.tpl снова прописывается вкладка: <?php if ($downloads) { ?> <li><a href="#tab-documentation" data-toggle="tab"><?php echo $tab_documentation; ?></a></li> <?php } ?> И согдержимое вкладки: <div class="tab-pane tab-content" id="tab-documentation"> <?php if ($downloads){ ?> <ul style="list-style:none;"> <?php foreach($downloads as $download){ ?> <li><i class="<?php echo $download['icon']; ?>"></i> <a href="<?php echo $download['href']; ?>" title="<?php echo $download['name']; ?>" target="_blank"><?php echo $download['name']; ?><?php echo ($download['size'])?" (". $download['size'] .")":'';?></a></li> <?php } ?> </ul> <?php } ?> </div> Что из файла install.xml нужно убрать, чтобы вкладка и ее согдержимое снова не прописывались в product.tpl? <?xml version="1.0" encoding="utf-8"?> <modification> <name>Загружаемые файлы во вкладке</name> <code>downloadable_files</code> <version>1.3</version> <author>https://ocmod.net</author> <link>https://ocmod.net</link> <file path="admin/controller/catalog/download.php"> <operation> <search index="0"><![CDATA[128]]></search> <add position="replace"><![CDATA[255]]></add> </operation> <operation> <search trim="true"><![CDATA[if (!is_file(DIR_DOWNLOAD . $this->request->post['filename'])) {]]></search> <add position="replace"><![CDATA[ if (!is_file(DIR_DOWNLOAD . $this->request->post['filename']) AND !preg_match('/^http/',$this->request->post['filename'])) {]]></add> </operation> </file> <file path="catalog/language/*/product/product.php"> <operation> <search index="0"><![CDATA[$_['tab_description']]]></search> <add position="before"><![CDATA[$_['tab_documentation'] = 'Файлы для скаливания';]]></add> </operation> </file> <file path="catalog/model/catalog/product.php"> <operation> <search index="0" trim="true"><![CDATA[public function getTotalProductSpecials() {]]></search> <add position="before"><![CDATA[ public function getDownloads($product_id) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_to_download pd LEFT JOIN " . DB_PREFIX . "download d ON(pd.download_id=d.download_id) LEFT JOIN " . DB_PREFIX . "download_description dd ON(pd.download_id=dd.download_id) WHERE product_id = '" . (int)$product_id . "' AND dd.language_id = '" . (int)$this->config->get('config_language_id')."'"); return $query->rows; } public function getDownload($product_id, $download_id) { $download=""; if($download_id!=0)$download=" AND d.download_id=".(int)$download_id; $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_to_download pd LEFT JOIN " . DB_PREFIX . "download d ON(pd.download_id=d.download_id) LEFT JOIN " . DB_PREFIX . "download_description dd ON(pd.download_id=dd.download_id) WHERE product_id = '" . (int)$product_id . "' ".$download." AND dd.language_id = '" . (int)$this->config->get('config_language_id')."'"); return $query->row; } ]]></add> </operation> </file> <file path="catalog/controller/product/product.php"> <operation error="skip"> <search index="0" trim="true"><![CDATA[$data['tab_description'] = $this->language->get('tab_description');]]></search> <add position="before"><![CDATA[ $data['tab_documentation'] = $this->language->get('tab_documentation');]]></add> </operation> <operation> <search index="0" trim="true"><![CDATA[public function review() {]]></search> <add position="before"><![CDATA[ public function download() { $this->load->model('catalog/product'); if (isset($this->request->get['download_id'])) { $download_id = $this->request->get['download_id']; } else { $download_id = 0; } if (isset($this->request->get['product_id'])) { $product_id = $this->request->get['product_id']; } else { $product_id = 0; } $download_info = $this->model_catalog_product->getDownload($product_id, $download_id); if ($download_info) { $file = DIR_DOWNLOAD . $download_info['filename']; $mask = basename($download_info['mask']); if (!headers_sent()) { if (file_exists($file)) { //$finfo = new finfo(FILEINFO_MIME); //$mime_type = $finfo->file($file); $mime_type = 'application/octet-stream'; header('Content-Description: File Transfer'); header('Content-Type: '.$mime_type); //application/octet-stream header('Content-Disposition: inline; filename="' . ($mask ? $mask : basename($file)) . '"'); //attachment header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); readfile($file, 'rb'); //$this->model_account_download->updateRemaining($this->request->get['download_id']); exit; } else { exit('Error: Could not find file ' . $file . '!'); } } else { exit('Error: Headers already sent out!'); } } else { $this->redirect(HTTP_SERVER . 'index.php?route=account/download'); } } ]]> </add> </operation> <operation> <search index="0" trim="true"><![CDATA[$this->model_catalog_product->updateViewed($this->request->get['product_id']);]]></search> <add position="before"><![CDATA[ $data['downloads'] = array(); $results = $this->model_catalog_product->getDownloads($this->request->get['product_id']); foreach ($results as $result) { $size = false; $file_exists = file_exists(DIR_DOWNLOAD . $result['filename']); $http = preg_match('/^http/',$result['filename']); if ($file_exists OR $http) { if ($file_exists) { $size = filesize(DIR_DOWNLOAD . $result['filename']); $i = 0; $suffix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB' ); while (($size / 1024) > 1) { $size = $size / 1024; $i++; } } $data['downloads'][] = array( 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])), 'name' => $result['name'], 'size' => ($size)?round(substr($size, 0, strpos($size, '.') + 4), 2) . $suffix[$i]:false, 'href' => ($http)?$result['filename']:$this->url->link('product/product/download', 'product_id='. $this->request->get['product_id']. '&download_id=' . $result['download_id']), 'icon' => ($http)?'fa fa-external-link-square text-primary':'fa fa-download text-success' ); } } ]]> </add> </operation> </file> <file path="catalog/view/theme/*/template/product/product.tpl"> <operation error="skip"> <search index="0" trim="true"><![CDATA[<?php if ($review_status) { ?>]]></search> <add position="before"><![CDATA[ <?php if ($downloads) { ?> <li><a href="#tab-documentation" data-toggle="tab"><?php echo $tab_documentation; ?></a></li> <?php } ?> ]]> </add> </operation> <operation error="skip"> <search index="1" trim="true"><![CDATA[<?php if ($review_status) { ?>]]></search> <add position="before"><![CDATA[ <div class="tab-pane tab-content" id="tab-documentation"> <?php if ($downloads){ ?> <ul style="list-style:none;"> <?php foreach($downloads as $download){ ?> <li><i class="<?php echo $download['icon']; ?>"></i> <a href="<?php echo $download['href']; ?>" title="<?php echo $download['name']; ?>" target="_blank"><?php echo $download['name']; ?><?php echo ($download['size'])?" (". $download['size'] .")":'';?></a></li> <?php } ?> </ul> <?php } ?> </div> ]]> </add> </operation> </file> <!-- For SEO PRO: --> <file path="catalog/controller/*/seo_pro.php"> <operation error="skip"> <search><![CDATA[case 'information_id':]]></search> <add position="after"><![CDATA[ case 'download_id': ]]></add> </operation> </file> <file path="system/library/seopro.php"> <operation error="skip"> <search><![CDATA[case 'information_id':]]></search> <add position="after"><![CDATA[ case 'download_id': ]]></add> </operation> </file> </modification>
  14. Зналит, казалось проещё, чем оказалось)
×
×
  • Create New...

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.