[Помогите] Модуль Статусы Товара 1.0 (syntax error)

Тема в разделе "OpenCart", создана пользователем perepela21, 19 дек 2014.

  1. perepela21

    perepela21

    Регистрация:
    9 ноя 2012
    Сообщения:
    252
    Симпатии:
    87
    Здравствуйте.
    Установил модуль статусы товаров 1.0 при закидывании файла vqmod главная не открывается ошибка вот такая
    PHP Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in vqmod/vqcache/vq2-catalog_model_catalog_product.php on line 187
    нашел строку но скорее всего не она 'p.model',
    чуть выше вот это
    Код:
    } else {
    return array();
    }

    просмотрев vqmod файл product_statuses.xml нашел строку со знаком '=>'
    Код:
    <operation>
    <search position="after"><![CDATA[
    return array(
    ]]></search>
    <add><![CDATA[
    'statuses' => $this->model_catalog_product_status->getHTMLProductStatuses($query->row['product_id']);
    ]]></add>
    </operation>
    

    подскажите пожалуйста как можно решить проблему.

     
  2. OpenCart

    OpenCart

    Регистрация:
    11 дек 2014
    Сообщения:
    61
    Симпатии:
    26
    В коде лишних или недостающих символов не заметил. vqmod последней версии? модуль совместим с версией движка? Как на счет версии php на сервере? Мне кажется что это проблема совместительства. Я устанавливал этот модуль. Никаких проблем не было.
     
  3. nix

    nix php, MySQL, UNIX, MikroTik ROSAPI

    Регистрация:
    16 янв 2013
    Сообщения:
    1.000
    Симпатии:
    889
    заменить на
    Код:
    <operation>
    <search position="after"><![CDATA[
    return array(
    ]]></search>
    <add><![CDATA[
    'statuses' => $this->model_catalog_product_status->getHTMLProductStatuses($query->row['product_id']),
    ]]></add>
    </operation>
     
    perepela21 нравится это.
  4. perepela21

    perepela21

    Регистрация:
    9 ноя 2012
    Сообщения:
    252
    Симпатии:
    87
    vqmod последняя. а какую лучше версию php выставить т.к. есть возможность выбрать любой
    --- Добавлено, 19 дек 2014 ---
    не чего не изменилось таже ошибка
     
  5. nix

    nix php, MySQL, UNIX, MikroTik ROSAPI

    Регистрация:
    16 янв 2013
    Сообщения:
    1.000
    Симпатии:
    889
    покажи вкмод
     
  6. perepela21

    perepela21

    Регистрация:
    9 ноя 2012
    Сообщения:
    252
    Симпатии:
    87
    Код:
    <modification>
    <id>Product statuses</id>
    <version>1.0</version>
    <vqmver>2.1.6</vqmver>
    <author>sv2109</author>
    
    <file name="catalog/controller/product/product.php">
    <operation>
    <search position="after"><![CDATA[
    if ($product_info) {
    ]]></search>
    <add><![CDATA[
    $this->data['statuses'] = $product_info['statuses']['product'];
    ]]></add>
    </operation>
    </file>
    
    <file name="catalog/controller/product/category.php">
    <operation>
    <search position="after"><![CDATA[
    $this->data['products'][] = array(
    ]]></search>
    <add><![CDATA[
    'statuses' => $result['statuses']['category'],
    ]]></add>
    </operation>
    </file>
    
    <file name="catalog/model/catalog/product.php">
    <operation>
    <search position="after"><![CDATA[
    public function getProduct($product_id) {
    ]]></search>
    <add><![CDATA[
    $this->load->model('catalog/product_status');
    ]]></add>
    </operation>
    <operation>
    <search position="after"><![CDATA[
    return array(
    ]]></search>
    <add><![CDATA[
    'statuses' => $this->model_catalog_product_status->getHTMLProductStatuses($query->row['product_id']),
    ]]></add>
    </operation>
    </file>
    
    <file name="admin/controller/catalog/product.php">
    <operation>
    <search position="before"><![CDATA[
    $this->template = 'catalog/product_form.tpl';
    ]]></search>
    <add><![CDATA[
    
    $this->load->language('module/product_status');
    $this->data['status_show_in_category'] = $this->language->get('status_show_in_category');
    $this->data['status_show_in_product'] = $this->language->get('status_show_in_product');
    $this->data['tab_statuses'] = $this->language->get('tab_statuses');
    $this->data['status_image'] = $this->language->get('status_image');
    $this->data['status_name'] = $this->language->get('status_name');
    $this->data['button_add_status'] = $this->language->get('button_add_status');
    
    $this->load->model('catalog/product_status');
    if (isset($this->request->get['product_id'])) {
    $this->data['product_statuses'] = $this->model_catalog_product_status->getProductStatuses($this->request->get['product_id']);
    } else {
    $this->data['product_statuses'] = array();
    }
    
    ]]></add>
    </operation>
    </file>
    
    <file name="admin/model/catalog/product.php">
    <operation>
    <search position="after"><![CDATA[
    public function editProduct($product_id, $data) {
    ]]></search>
    <add><![CDATA[
    
    $this->load->model('catalog/product_status');
    $this->model_catalog_product_status->addProductStatuses($product_id, $data);
    
    ]]></add>
    </operation>
    <operation>
    <search position="after"><![CDATA[
    public function deleteProduct($product_id) {
    ]]></search>
    <add><![CDATA[
    
    $this->load->model('catalog/product_status');
    $this->model_catalog_product_status->deleteProductStatuses($product_id);
    
    ]]></add>
    </operation>
    <operation>
    <search position="after"><![CDATA[
    $product_id = $this->db->getLastId();
    ]]></search>
    <add><![CDATA[
    
    $this->load->model('catalog/product_status');
    $this->model_catalog_product_status->addProductStatuses($product_id, $data);
    
    ]]></add>
    </operation>
    </file>
    
    <file name="admin/view/template/catalog/product_form.tpl">
    <operation>
    <search position="before"><![CDATA[
    <div id="tab-discount">
    ]]></search>
    <add><![CDATA[
    <div id="tab-statuses">
    
    <table id="status" class="list">
    <thead>
    <tr>
    <td></td>
    <td class="left"><?php echo $status_image; ?></td>
    <td class="left"><?php echo $status_show_in_category; ?></td>
    <td class="left"><?php echo $status_show_in_product; ?></td>
    <td class="left"><?php echo $entry_sort_order; ?></td>
    <td></td>
    </tr>
    </thead>
    <?php $status_row = 0; ?>
    <?php foreach ($product_statuses as $product_status) { ?>
    <tbody id="status-row<?php echo $status_row; ?>">
    <tr>
    <td class="left">
    <input type="text" name="product_status[<?php echo $status_row; ?>][name]" value="<?php echo $product_status['name']; ?>" />
    <input type="hidden" name="product_status[<?php echo $status_row; ?>][status_id]" value="<?php echo $product_status['status_id']; ?>" />
    </td>
    <td class="left status-image">
    <img src='<?php echo $product_status['thumb']; ?>' ?>
    </td>
    <td class="left status-category">
    <input type="checkbox" name="product_status[<?php echo $status_row; ?>][category_show]" value="1" <?php echo isset($product_status['category_show']) && $product_status['category_show'] ? "checked='checked'" : ''; ?>/>
    </td>
    <td class="left status-product">
    <input type="checkbox" name="product_status[<?php echo $status_row; ?>][product_show]" value="1" <?php echo isset($product_status['product_show']) && $product_status['product_show'] ? "checked='checked'" : ''; ?>/>
    </td>
    <td class="left sort-order">
    <input type="text" name="product_status[<?php echo $status_row; ?>][sort_order]" value="<?php echo isset($product_status['sort_order']) ? $product_status['sort_order'] : ''; ?>"/>
    </td>
    <td class="left"><a onclick="$('#status-row<?php echo $status_row; ?>').remove();" class="button"><?php echo $button_remove; ?></a></td>
    </tr>
    </tbody>
    <?php $status_row++; ?>
    <?php } ?>
    <tfoot>
    <tr>
    <td colspan="5"></td>
    <td class="left"><a onclick="addStatus();" class="button"><?php echo $button_add_status; ?></a></td>
    </tr>
    </tfoot>
    </table>
    <style>
    .status-autocomplete-list {
    height: 44px;
    }
    .status-autocomplete-list .image {
    float: left;
    padding: 0;
    margin-right: 3px;
    }
    .status-autocomplete-list .image img {
    width: 40px;
    height: 35px;
    margin-bottom: 0;
    }
    .status-autocomplete-list .name {
    margin-top: 2px;
    }
    </style>
    <script type="text/javascript"><!--
    $(document).ready(function() {
    $('#tabs a[href="#tab-option"]').after('<a href="#tab-statuses"><?php echo $tab_statuses; ?></a>');
    $('#tabs a').tabs();
    });
    
    var status_row = <?php echo $status_row; ?>;
    
    function addStatus() {
    html = '<tbody id="status-row' + status_row + '">';
    html += ' <tr>';
    html += ' <td class="left"><input type="text" name="product_status[' + status_row + '][name]" value="" /><input type="hidden" name="product_status[' + status_row + '][status_id]" value="" /></td>';
    html += ' <td class="left status-image"></td>';
    html += ' <td class="left status-category"><input type="checkbox" name="product_status[' + status_row + '][category_show]" value="1" checked="checked"/></td>';
    html += ' <td class="left status-product"><input type="checkbox" name="product_status[' + status_row + '][product_show]" value="1" checked="checked"/></td>';
    html += ' <td class="left sort-order"><input type="text" name="product_status[' + status_row + '][sort_order]" value="" /></td>';
    html += ' <td class="left"><a onclick="$(\'#status-row' + status_row + '\').remove();" class="button"><?php echo $button_remove; ?></a></td>';
    html += ' </tr>';
    html += '</tbody>';
    
    $('#status tfoot').before(html);
    
    statusautocomplete(status_row);
    
    status_row++;
    }
    
    function statusautocomplete(status_row) {
    $('input[name=\'product_status[' + status_row + '][name]\']').autocomplete({
    delay: 500,
    source: function(request, response) {
    $.ajax({
    url: 'index.php?route=module/product_status/autocomplete&token=<?php echo $token; ?>&filter_name=' + encodeURIComponent(request.term),
    dataType: 'json',
    success: function(json) {
    response($.map(json, function(item) {
    return {
    url: item.url,
    thumb: item.thumb,
    label: item.name,
    value: item.status_id
    }
    }));
    }
    });
    },
    select: function(event, ui) {
    $('input[name=\'product_status[' + status_row + '][name]\']').attr('value', ui.item.label);
    $('input[name=\'product_status[' + status_row + '][status_id]\']').attr('value', ui.item.value);
    $('#status-row' + status_row + ' td.status-image').html('<img src="' + ui.item.thumb + '"/>');
    //var name = ui.item.url ? '<a href="' + ui.item.url + '">' + ui.item.label + '</a>' : ui.item.label;
    //$('#status-row' + status_row + ' td.status-name').html(name);
    
    return false;
    },
    focus: function(event, ui) {
    return false;
    }
    }).data( "autocomplete" )._renderItem = function( ul, item ) {
    var thumb = item.thumb ? '<img src="' + item.thumb + '">' : '';
    var attributes = item.attributes ? '<div class="attributes">' + item.attributes + '</div>' : '';
    return $( "<li></li>" )
    .data( "item.autocomplete", item )
    .append( '<a class="status-autocomplete-list"><div class="image">' + thumb + '</div><div class="name">' + item.label + '</div></a>' )
    .appendTo( ul );
    };
    }
    
    $('#status tbody').each(function(index, element) {
    statusautocomplete(index);
    });
    //--></script>
    
    </div>
    
    ]]></add>
    </operation>
    </file>
    
    </modification>