Jump to content
Sign in to follow this  
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>

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


Link to post
Share on other sites

 

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

 

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

 

 

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

Edited by Yano4ka

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.