Перейти к содержанию
Yano4ka

ошибка при авторизации

Рекомендуемые сообщения

Помогите, пожалуйста, разобраться с ошибкой.

 

Ситуация такая:

 

Есть хороший модуль "напоминалка для менеджеров". Когда я его ставила раньше, то все работало. Поставила сейчас все тоже самое, движок OcStore 1.5.5.1.2, тот же vqmod, тот же хостинг, тот же модуль... но когда я его загружаю теперь в папку xml, то вылетает админка, выдавая ошибку:

 

 

Notice: Error: Unknown column 'action_date' in 'field list'
Error No: 1054
SELECT o.order_id,action_date, action_note, action_checkbox, CONCAT( o.lastname, ' ', o.firstname ) AS customer, (SELECT os.name FROM oc_order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '1') AS status, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified, o.telephone, o.shipping_country, o.shipping_zone, o.shipping_address_1, o.shipping_city, o.email, o.comment, o.payment_postcode, o.payment_method, o.shipping_method FROM `oc_order` o WHERE o.order_status_id > '0' ORDER BY o.date_added DESC LIMIT 0,10 in /***/system/database/mysql.php on line 50

 

Из-за чего это может быть? Как это вылечить, кроме удаления файла?

 

 

скрипт модуля:

<?xml version="1.0" encoding="UTF-8"?>
<modification>
        <id>to do reminder</id>
        <version>1.0</version>
        <vqmver>2.0</vqmver>
        <author>Dj+MLK18102014</author>

        <file name="admin/view/template/sale/order_list.tpl">
                <operation>
                        <search position="after" offset="1"><![CDATA[
                        	<a href="<?php echo $sort_status; ?>"><?php echo $column_status; ?></a>
                        ]]></search>
                        <add><![CDATA[
              			<td class="left">Напомнить</br>на EMAIL</td>
                        ]]></add>
                </operation>

                <operation>
                        <search position="before"><![CDATA[
							<td align="right"><input type="text" name="filter_total" value="<?php echo $filter_total; ?>" size="4" style="text-align: right;" /></td>
                        ]]></search>
                        <add><![CDATA[
				<td align="right"></td>
                        ]]></add>
                </operation>

                <operation>
                        <search position="after"><![CDATA[
				<td class="left"><?php echo $order['status']; ?></td>
                        ]]></search>
                        <add><![CDATA[
				<td class="left">
					<input class="datetime" type="text" id='action_date_<?php echo $order['order_id']; ?>' size="15" value="<?php echo $order['action_date']; ?>" contenteditable="true" onChange="$('#action_checkbox_<?php echo $order['order_id']; ?>').prop('checked', true); saveNote2(<?php echo $order['order_id']; ?>);" />
					<input type="checkbox" id='action_checkbox_<?php echo $order['order_id']; ?>' contenteditable="true" style="cursor:pointer;" onChange="saveNote2(<?php echo $order['order_id']; ?>);" <?php if ($order['action_checkbox']==1) echo 'checked="checked"'; ?> />
					<br / >
					<input id='action_note_<?php echo $order['order_id']; ?>' type="text" size="20" value="<?php echo $order['action_note']; ?>" contenteditable="true" onBlur="saveNote2(<?php echo $order['order_id']; ?>);" />
				</td>
                        ]]></add>
                </operation>
				
				<operation>
                        <search position="after"><![CDATA[
							$('.date').datepicker({dateFormat: 'yy-mm-dd'});
                        ]]></search>
                        <add><![CDATA[
							$('.datetime').datepicker({dateFormat: 'yy-mm-dd 00:00:00'});
                        ]]></add>
                </operation>
				
				<operation info="Adding ajax query to update notes">
                        <search position="before"><![CDATA[
				<?php echo $footer; ?>
                        ]]></search>
                        <add><![CDATA[
				<script type="text/javascript"><!--

				function saveNote2(orderId) {
					var action_date = $('#action_date_' + orderId).val();
					var action_checkbox = $('#action_checkbox_' + orderId).prop('checked');
					if (action_checkbox==true) action_checkbox=1;
					else action_checkbox=0;
					var action_note = $('#action_note_' + orderId).val();
					
					$.ajax({
						url: 'index.php?route=sale/order/saveNotes2&token=<?php echo $token; ?>',
						type: 'post',
						data: '&order_id=' + orderId + '&action_date=' + action_date + '&action_checkbox=' + action_checkbox + '&action_note=' + action_note,
						dataType: 'json',
						success: function(json) {
				//			$('.success, .warning, .attention, .information, .error').remove();
							if (json['success']) {
//								alert(json['success']);
							}	
						}
					});
				}
				//--></script> 
                        ]]></add>
                </operation>


        </file>


 	<file name="admin/controller/sale/order.php">
		<operation>
			 <search position="after"><![CDATA[
			 	public function index() {
			 ]]></search>
			 <add trim="true"><![CDATA[
				 $query = $this->db->query("DESC `".DB_PREFIX."order` action_date");
				 if (!$query->num_rows) { 
				     $this->db->query("ALTER TABLE `" . DB_PREFIX . "order` ADD `action_date` TIMESTAMP default 0");
				 }
				 $query = $this->db->query("DESC `".DB_PREFIX."order` action_note");
				 if (!$query->num_rows) { 
				     $this->db->query("ALTER TABLE `" . DB_PREFIX . "order` ADD `action_note` varchar(255) default ''");
				 }
				 $query = $this->db->query("DESC `".DB_PREFIX."order` action_checkbox");
				 if (!$query->num_rows) {
				     $this->db->query("ALTER TABLE `" . DB_PREFIX . "order` ADD `action_checkbox` int(2) default 0");
				 }
			]]></add>
		</operation>

                <operation>
                        <search position="after" index="1"><![CDATA[
				'order_id'      => $result['order_id'],
                        ]]></search>
                        <add><![CDATA[
				'action_date'      => $result['action_date'],
				'action_note'      => $result['action_note'],
				'action_checkbox'      => $result['action_checkbox'],
                        ]]></add>
                </operation>

                <operation>
                        <search position="before"><![CDATA[
				function invoice()
                        ]]></search>
                        <add><![CDATA[
				public function saveNotes2() {
					
					$json = array();
					$order_id = null;
					$action_date = null;
					$action_note = "";
					$action_checkbox = "";
					$note_3 = "";
					$note_4 = "";
		
					if (isset($this->request->post['order_id'])) {
						$order_id = $this->request->post['order_id'];
					} else {
						$order_id = null;
					}
			
					if (isset($this->request->post['action_date'])) {
						$action_date = $this->request->post['action_date'];
					} else {
						$action_date = null;
					}
			
					if (isset($this->request->post['action_note'])) {
						$action_note = $this->request->post['action_note'];
					} else {
						$action_note = "";
					}
			
					if (isset($this->request->post['action_checkbox'])) {
						$action_checkbox = $this->request->post['action_checkbox'];
					} else {
						$action_checkbox = "";
					}
					
					$this->load->model('sale/order');
									
					$this->model_sale_order->updateNotes2($order_id, $action_date, $action_note, $action_checkbox);
					
					if (!$json) {
						$json['success'] = sprintf($order_id);
					} else {
						$json['redirect'] = "bad";
					}
		
					$this->response->setOutput(json_encode($json));		
				}
                        ]]></add>
                </operation>
        </file>


        <file name="admin/model/sale/order.php">
                <operation>
                        <search position="replace"><![CDATA[SELECT o.order_id,]]></search>

                        <add><![CDATA[SELECT o.order_id,action_date, action_note, action_checkbox,]]>
			</add>
                </operation>

                <operation>
                        <search position="before"><![CDATA[
				function addOrder(
                        ]]></search>

                        <add><![CDATA[
				public function updateNotes2($order_id, $action_date, $action_note, $action_checkbox) {
					if($action_date) 
						$timestamp = mysql_real_escape_string($action_date);
					else
						$timestamp = mysql_real_escape_string(Date());
			
					$this->db->query("UPDATE `" . DB_PREFIX . "order` SET action_date = '" . $timestamp . "', action_note = '" . $action_note . "', action_checkbox = '" . $action_checkbox . "' WHERE order_id = '" . (int) $order_id . "'");
				}
			]]>
			</add>
                </operation>
        </file>
		
        <file name="catalog/controller/checkout/checkout.php">
				<operation>
					<search position="before"><![CDATA[
							public function country() {
						]]></search>
						<add><![CDATA[
							public function cron_order() {
								$query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "order` o WHERE o.action_date<NOW() AND o.action_checkbox=1");
								
								foreach ($query->rows as $row)
								{
									$text = $this->config->get('config_name').'    № Заказа: '.$row['order_id'].'     Комментарий: '.$row['action_note'];
									$mail = new Mail(); 
									$mail->protocol = $this->config->get('config_mail_protocol');
									$mail->parameter = $this->config->get('config_mail_parameter');
									$mail->hostname = $this->config->get('config_smtp_host');
									$mail->username = $this->config->get('config_smtp_username');
									$mail->password = $this->config->get('config_smtp_password');
									$mail->port = $this->config->get('config_smtp_port');
									$mail->timeout = $this->config->get('config_smtp_timeout');			
									$mail->setTo($this->config->get('config_email'));
									$mail->setFrom($this->config->get('config_email'));
									$mail->setSender($this->config->get('config_name'));
									$mail->setSubject(html_entity_decode($text, ENT_QUOTES, 'UTF-8'));
									$mail->setText(html_entity_decode($text, ENT_QUOTES, 'UTF-8'));
									$mail->send();
									$query_check = $this->db->query("UPDATE `" . DB_PREFIX . "order` o SET o.action_checkbox=0 WHERE o.order_id='". $row['order_id'] ."'");
								}
							}
						]]>
					</add>
				</operation>
		</file>
</modification>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) смотреть логи vqmod

2) задать вопрос автору модуля, если самостоятельно разобраться не в состоянии

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

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

Скажите, как отредактировать свое сообщение в соответствии с Вашими рекомендациями?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

создать в таблице  order поле 'action_date'  с типом order.date_add

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

создать в таблице  order поле 'action_date'  с типом order.date_add

СПАСИБО ОГРОМНОЕ!!!

 

там немного другие значения, но спасибо за подсказку, где именно копать!!!!!

 

 

P.S.: если можно, выскажите, пожалуйста, предположение, почему при установке одних и тех же файлов, на один и тот же сервер...в общем все тоже самое,... но поля раньше создавались сами, а сейчас не создаются?

Изменено пользователем Yano4ka

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.