Добрый день всем. Обновился с 3.0.2.0 до 3.0.3.1 (rs.1) делал дела, всё вроде работало как нужно, даже модули которые не хотели работать ранее. Но тут случайно вошел в контакты и мне выдало ERROR500. Включил отображение ошибок и вот что: Код: Fatal error: Uncaught Twig_Error_Syntax: Unexpected "else" tag (expecting closing tag for the "if" tag defined near line 159) in "butik/template/information/contact.twig" at line 174. in /var/www/p485060/data/www/pc-expert54.ru/system/library/template/Twig/Parser.php:172 Stack trace: #0 /var/www/p485060/data/www/pc-expert54.ru/system/library/template/Twig/TokenParser/If.php(43): Twig_Parser->subparse(Array) #1 /var/www/p485060/data/www/pc-expert54.ru/system/library/template/Twig/Parser.php(188): Twig_TokenParser_If->parse(Object(Twig_Token)) #2 /var/www/p485060/data/www/pc-expert54.ru/system/library/template/Twig/TokenParser/If.php(34): Twig_Parser->subparse(Array) #3 /var/www/p485060/data/www/pc-expert54.ru/system/library/template/Twig/Parser.php(188): Twig_TokenParser_If->parse(Object(Twig_Token)) #4 /var/www/p485060/data/www/pc-expert54.ru/system/library/template/Twig/Parser.php(100): Twig_Parser->subparse(NULL, false) #5 /var/www/p485060/data/www/pc-expert54.ru/system/library/template/Twig/Environment.php(619): Twig_P in /var/www/p485060/data/www/pc-expert54.ru/system/library/template/Twig/Parser.php on line 172 expecting closing tag for - указывает на незакрытый тег в файле, но там всего 30 строк. Или я не там ищу? форма: тык
Открываем \system\tweak.ocmod.xml и делаем кооректироваки после строки Код: <file path="catalog/view/theme/*/template/information/contact.twig"> И не забываем обновлять не на рабочем магазине!!!! Тщательно проверять и прочее.
А если быть точнее, то наверно просто изменить на Код: <file path="catalog/view/theme/default/template/information/contact.twig"> и не забыть обновить кеш модификаторов.
К сожалению ошибка осталась, можно эту часть вовсе удалить? Подготовку к 152 ФЗ, я могу добавить её отдельным патчем?
Удалил из патча код: HTML: <!-- Приводим немного сайт к 152 ФЗ --> <file path="catalog/controller/information/contact.php"> <operation> <search><![CDATA[ if (isset($this->error['name'])) { ]]></search> <add position="before"><![CDATA[ if (isset($this->error['warning'])) { $data['error_warning'] = $this->error['warning']; } else { $data['error_warning'] = ''; } ]]></add> </operation> <operation> <search><![CDATA[ $data['comment'] = $this->config->get('config_comment'); ]]></search> <add position="after"><![CDATA[ if ($this->config->get('config_account_id')) { $this->load->model('catalog/information'); $information_info = $this->model_catalog_information->getInformation($this->config->get('config_account_id')); if ($information_info) { $data['text_agree'] = sprintf($this->language->get('text_agree'), $this->url->link('information/information/agree', 'information_id=' . $this->config->get('config_account_id'), true), $information_info['title'], $information_info['title']); } else { $data['text_agree'] = ''; } } else { $data['text_agree'] = ''; } if (isset($this->request->post['agree'])) { $data['agree'] = $this->request->post['agree']; } else { $data['agree'] = false; } ]]></add> </operation> <operation> <search><![CDATA[ return !$this->error; ]]></search> <add position="before"><![CDATA[ // Agree to terms if ($this->config->get('config_account_id')) { $this->load->model('catalog/information'); $information_info = $this->model_catalog_information->getInformation($this->config->get('config_account_id')); if ($information_info && !isset($this->request->post['agree'])) { $this->error['warning'] = sprintf($this->language->get('error_agree'), $information_info['title']); } } ]]></add> </operation> </file> <file path="catalog/view/theme/*/template/information/contact.twig"> <operation> <search><![CDATA[ <div class="row">{{ column_left }} ]]></search> <add position="before"><![CDATA[ {% if error_warning %} <div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}</div> {% endif %} ]]></add> </operation> <operation> <search><![CDATA[ <div class="buttons"> ]]></search> <add position="before"><![CDATA[ {% if text_agree %} <div class="buttons"> <div class="pull-right">{{ text_agree }} {% if agree %} <input type="checkbox" name="agree" value="1" checked="checked" /> {% else %} <input type="checkbox" name="agree" value="1" /> {% endif %} <input type="submit" value="{{ button_submit }}" class="btn btn-primary" /> </div> </div> {% else %} ]]></add> </operation> <operation> <search><![CDATA[ </form> ]]></search> <add position="before"><![CDATA[ {% endif %} ]]></add> </operation> </file> Форма и раздел заработали, но появилась другая проблема: при сохранении товара ругается на БД: Код: Fatal error: Uncaught Exception: Error: Table 'p485060_shop.oc_product_addtab' doesn't exist<br />Error No: 1146<br />DELETE FROM oc_product_addtab WHERE product_id = '131' in /var/www/*/data/www/pc-expert54.ru/system/library/db/mysqli.php:40 Stack trace: #0 /var/www/*/data/www/pc-expert54.ru/system/library/db.php(45): DB\MySQLi->query('DELETE FROM oc_...') #1 /var/www/*/data/www/storage/modification/admin/model/catalog/product.php(155): DB->query('DELETE FROM oc_...') #2 /var/www/*/data/www/storage/modification/system/engine/loader.php(248): ModelCatalogProduct->editProduct('131', Array) #3 /var/www/*/data/www/pc-expert54.ru/system/engine/proxy.php(47): Loader->{closure}(Array, Array) #4 /var/www/*/data/www/storage/modification/admin/controller/catalog/product.php(75): Proxy->__call('editProduct', Array) #5 /var/www/*/data/www/storage/modification/system/engine/action.php(79): ControllerCatalogProduct->edit() #6 /var/www/*/data/www/pc-expert54.ru/admin/controller/startup/ro in /var/www/*/data/www/pc-expert54.ru/system/library/db/mysqli.php on line 40 Как быть с ним теперь?) уже хочу снести напрочь таблицы и восстановить старые, но очень много будет потеряно работы
Не может быть. Если обновили кеш, то ошибка должна была пропасть. Возможно кеш твиг включен у вас тоже. Тем самым, в шаблоне реализован функционал, но вы его вырезали, т.е форма опять не совсем рабочая, хоть видимо и отправляет письма. Ну вы посмотрите на ошибку? Ведь ругается на отсутствие таблицы! Как вы обновляли? Базу обновили? Или как?
Скачал обновление, закинул в корень, установил из директории /install, а был другой вариант? про базу не указано было к сожалению
Ну когда запустили инстал вы установили или обновили? Там же базу обновляет. Текущие таблицы не должны были удалится.
обновил Базу я не трогал, бекап старой базы до обновления естественно есть, отсюда и непонятки. Если я восстанавливаю бекап сайта но не трогаю базу - ошибка есть, а вот восстановить сразу с сайтом базу я вчера не додумался, а сегодня я за другим компом, дампа тут нет (не сохранял в облако, только локально). Так вот я думаю, что где-то что-то при обновлении удалилось или изменилось, но найти не могу, тупой слишком
Т.е получается при обновлении дополнительные таблицы удалились? Стандартные с товарами остались хоть?? ))) Можно конечно и дополнительные таблицы и вручную перенести потом если что. А вообще структура базы данных не сильно изменилась. Там пару таблиц добавилось для нового модуля, да и все вроде. Нужно сравнить... при необходимости
Да всё осталось, я даже могу создать новый товар, а вот отредактировать его после создания уже не выйдет)
В общем то решено! Этой таблицы и правда не было в базе, а всё потому, что при обновлении отключился модуль от шаблона Butik Theme который её собственно и создавал! Таблица oc_product_addtab а создает её модуль "Butik Theme: Дополнительные вкладки в карточке товара", посему запрос то остался а таблицы нема. После включения естественно таблица была добавлена (хоть я ей и не пользуюсь), и всё работает как нужно. Теперь остался нерешенным вопрос о добавлении вырезанного патча без последствий, не подскажешь?)
Пробовал, не помогло, а если учесть что у меня директория шаблона не default a butik я пробовал и так, и так же не помогло)
Не веррю. ))) Никакой бутик вместо дефайлт ставить не нужно. Путь меняется для того, чтобы изменения не трогали шаблон бутик. Можно вообще удалить участок в окмоде, который делает изменения в шаблоне contact.twig так как в бутике, все изменения уже есть изначально.
А я вам писал, что удалить нужно не все, а то что касается шаблона Код: <file path="catalog/view/theme/*/template/information/contact.twig"> <operation> <search><![CDATA[ <div class="row">{{ column_left }} ]]></search> <add position="before"><![CDATA[ {% if error_warning %} <div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }}</div> {% endif %} ]]></add> </operation> <operation> <search><![CDATA[ <div class="buttons"> ]]></search> <add position="before"><![CDATA[ {% if text_agree %} <div class="buttons"> <div class="pull-right">{{ text_agree }} {% if agree %} <input type="checkbox" name="agree" value="1" checked="checked" /> {% else %} <input type="checkbox" name="agree" value="1" /> {% endif %} <input type="submit" value="{{ button_submit }}" class="btn btn-primary" /> </div> </div> {% else %} ]]></add> </operation> <operation> <search><![CDATA[ </form> ]]></search> <add position="before"><![CDATA[ {% endif %} ]]></add> </operation> </file> Собственно если вас все устраивает, то можете махнуть рукой.."и так сойдет..."