[Помогите] Не кэширует файлы vqmod

Тема в разделе "OpenCart", создана пользователем Matras, 14 янв 2013.

  1. Matras

    Matras

    Регистрация:
    27 окт 2012
    Сообщения:
    165
    Симпатии:
    27
    Добрый день, может быть кто сталкивался не могу найти причину, в xml файле указанны правильные пути до фалов с которыми нужно провести изменения, НО! он эти файлы не кэширует вообще, я беру файл кэш загружаю и начинаю сверять оригинальные строки файла, те на которые он должен был их поменять нету, в фале присутствуют только оригинальные строки с которыми как раз и должны были произойти изменения.
     
  2. Lion18

    Lion18

    Регистрация:
    3 дек 2012
    Сообщения:
    253
    Симпатии:
    30
    Логи молчат?Права выставлены?Сверяете оригинал с папкой "vqcache"?
     
  3. Matras

    Matras

    Регистрация:
    27 окт 2012
    Сообщения:
    165
    Симпатии:
    27
    Логи молчат, права выставлены. Как раз оригинал и сверяю, почему то некоторые файли меняются некоторые нет, у меня предположения может это происходит из за того что несколько файлов xml пытаются менять оригинальные файлы, но дело в том что строчки для замены не пересекаются с другими.
     
  4. cobalt

    cobalt Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    278
    Симпатии:
    127
    Какие конкретно файлы не меняются?
     
  5. Matras

    Matras

    Регистрация:
    27 окт 2012
    Сообщения:
    165
    Симпатии:
    27
    product.tpl
    Вот то что в xml
    PHP:
    <file name="catalog/view/theme/tuning/template/product/product.tpl">
            <operation>
                <search position="after">
                    <![CDATA[ <?php echo $header?> ]]></search>
                <add>
                    <![CDATA[ <?php if ($this->config->get('enabletdrating')==1) { ?>
                    <link rel="stylesheet" type="text/css" href="catalog/view/javascript/jquery/tdrating/tdrating.jquery.css" />
                    <script type="text/javascript" src="catalog/view/javascript/jquery/tdrating/tdrating.jquery.js"></script>
                        <?php ?>
                        ]]></add>
            </operation>
            <operation>
                <search position="replace">
                    <![CDATA[<img src="catalog/view/theme/default/image/stars-<?php echo $rating?>.png" alt="<?php echo $reviews?>" />]]></search>
                <add>
                    <![CDATA[
                    <?php if (!$tdrating) { ?>                             
                    <div><img src="catalog/view/theme/default/image/stars-<?php echo $rating?>.png" alt="<?php echo $rating?>" />  <?php ?> ]]></add>
            </operation>
    вот что получаю в кэше:
    PHP:
    <?php echo $header?><?php echo $column_left?><?php echo $column_right?>
     
             
                    <div itemscope itemtype="http://schema.org/Product" id="content">
             
                <?php echo $content_top?>
      <div class="breadcrumb">
        <?php foreach ($breadcrumbs as $breadcrumb) { ?>
        <?php echo $breadcrumb['separator']; ?>
             
                    <span itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
                        <a href="<?php echo $breadcrumb['href']; ?>" itemprop="url"><span itemprop="title"><?php echo $breadcrumb['text']; ?></span></a>
                    </span>
             
             
        <?php ?>
     
  6. cobalt

    cobalt Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    278
    Симпатии:
    127
    Теоретически должно бы работать. Давайте попробуйте вот этот блок
    Код:
    <operation>
    			<search position="after">
    				<![CDATA[ <?php echo $header; ?> ]]></search>
    			<add>
    				<![CDATA[ <?php if ($this->config->get('enabletdrating')==1) { ?>
    				<link rel="stylesheet" type="text/css" href="catalog/view/javascript/jquery/tdrating/tdrating.jquery.css" />
    				<script type="text/javascript" src="catalog/view/javascript/jquery/tdrating/tdrating.jquery.js"></script>
    					<?php } ?>
    					]]></add>
    		</operation>
    Заменить на
    Код:
    <operation>
    			<search position="replace">
    				<![CDATA[<?php echo $header; ?>]]></search>
    			<add>
    				<![CDATA[
    				<?php echo $header; ?>
    				<?php if ($this->config->get('enabletdrating')==1) { ?>
    				<link rel="stylesheet" type="text/css" href="catalog/view/javascript/jquery/tdrating/tdrating.jquery.css" />
    				<script type="text/javascript" src="catalog/view/javascript/jquery/tdrating/tdrating.jquery.js"></script>
    					<?php } ?>
    					]]></add>
    		</operation>
    Кстати, а вот эта строка
    <img src="catalog/view/theme/default/image/stars-<?php echo $rating; ?>.png" alt="<?php echo $reviews; ?>"
    есть в вашем файле product.tpl? Возможно нет какой-то строки, к которой привязывается vqmod, и поэтому оно абортится (отменяются внесённые изменения).
     
  7. Matras

    Matras

    Регистрация:
    27 окт 2012
    Сообщения:
    165
    Симпатии:
    27
    Он абортит все что ли изменения не взирая есть они или нет? я просто принцип этого кэширования до конца не понимаю
     
  8. cobalt

    cobalt Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    278
    Симпатии:
    127
    Я точно не помню, как оно работает по-умолчанию. Если указать <operation error="skip"> - оно скипнет (пропустит) именно эту замену, если не найдёт привязку. Если указать <operation error="abort"> - абортнет все изменения, вносимые в этот файл. А вот как работает по-умолчанию, когда не указано ни скип, ни аборт - я не помню. По-моему, таки абортит.
     
  9. Lion18

    Lion18

    Регистрация:
    3 дек 2012
    Сообщения:
    253
    Симпатии:
    30
    Я так понял для себя что изменённые файлы оно помещает в vqcache, которые уже являются рабочие для кмс, после чего в системе меняются пути к файлу.
     
  10. Matras

    Matras

    Регистрация:
    27 окт 2012
    Сообщения:
    165
    Симпатии:
    27
    Ну это я понимаю как раз, мне непонятно он абортит весь файл если не находит хотя бы одну замену?
     
  11. cobalt

    cobalt Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    278
    Симпатии:
    127
    Ну поставьте вместе <operation> - <operation error="skip">. Тогда точно не будет весь абортить. В вашем случае похоже, что что-то не находится и абортит весь файл. Правда, странно, что в логе ошибок нет ничего. Или вы не используете vqmod-менеджер?
    По большому счёту, нет ничего плохого, когда абортится весь файл. Это лучше, чем втихаря пропустит ошибку и будет работать с глюками.
     
  12. Matras

    Matras

    Регистрация:
    27 окт 2012
    Сообщения:
    165
    Симпатии:
    27
    Я щас проверил все строки есть в оригинальном файле...
     
  13. cobalt

    cobalt Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    278
    Симпатии:
    127
    Чудес не бывает. Что-то таки не так. Попробуйте изменения добавлять по-одному (или сделайте, как я писал: <operation error="skip">)
     
  14. Lion18

    Lion18

    Регистрация:
    3 дек 2012
    Сообщения:
    253
    Симпатии:
    30
    А версия модуля какая?Меня тоже сомнения терзают, почему в логах пусто....У меня если абортило или что еще, обязательно все в логах отображало.
     
  15. Bart

    Bart

    Регистрация:
    8 апр 2014
    Сообщения:
    1
    Симпатии:
    0
    Проверьте кодировку XML файла