Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Yano4ka

Recommended Posts

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

 

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

 

Есть хороший модуль "напоминалка для менеджеров". Когда я его ставила раньше, то все работало. Поставила сейчас все тоже самое, движок 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

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

 

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

 

 

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

Змінено користувачем Yano4ka
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.