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

mario512

Користувачі
  • Публікації

    355
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем mario512

  1. Добрый день. Хотелось бы узнать о влиянии на лояльность поисковиков к сайтам, у которых динамический title? И в каких случаях их использовать?

     

  2. 11 часов назад, mario512 сказал:

    Открывается, модуль включен. Попробую подправить htaccess.

    Спасибо, за то что отозвались.

    Переделал. Google пишет, что сайтмап пустой.

    З.Ы. Если отключить SeoPro, то сайтмап открывается. OCStore 2.3.0.2

  3. 3 минуты назад, SiteMix сказал:

    А по адресу sitename/index.php?route=extension/feed/google_sitemap_fast открывается?

    Если нет, то модуль в настройках включен?

     

    Редиректы после RewriteEngine On обычно ставят. А есть рекомендации чтобы и после RewriteBase /

     

    Открывается, модуль включен. Попробую подправить htaccess.

    Спасибо, за то что отозвались.

  4. В 09.12.2018 в 11:36, SiteMix сказал:

    Ну, если без разницы, то модификатором удобней добавлять перед этим блоком, а не после.

     

    Сделал модификатор, может, кому пригодится. Наверное нужно было спросить сначала, но указал ваше авторство. Надеюсь, не вы не против.

    Sitemap.xml redirect disable for os23 when SEO Pro enabled

     

    Хотел добавить в модификатор от Toma, но не уверен в легитимности сего действа. Кому надо, может просто установить оба модификатора.

     

    И небольшой коммент для тех кто не в курсе. Чтобы по ссылке site.com/sitemap.xml открывался фид от данного модуля, нужно

    внести изменение в .htaccess, а именно закомментировать имеющуюся строку для встроенного sitemap и добавить для нового:

    
    RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap_fast [L]
    # RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]

    Сделал. По адресу: sitename/sitemap.xml пустая страница. Вываливаю .htaccess.

    Спойлер
    
    # Редирект c www на без www
    RewriteCond %{HTTP_HOST} ^caseroom.in.ua
    RewriteRule ^(.*)$ https://www.caseroom.in.ua/$1 [R=301,L]
    # Редирект для главной (с /index.php на /)
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/
    RewriteRule ^index\.html$ / [R=301,L]
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
    RewriteRule ^index\.php$ / [R=301,L]
    #RewriteBase /
    
    
    # 1.To use URL Alias you need to be running apache with mod_rewrite enabled.
    
    # 2. In your opencart directory rename htaccess.txt to .htaccess.
    
    # For any support issues please visit: http://www.opencart.com
    
    #Options +FollowSymlinks
    
    # Prevent Directoy listing
    Options -Indexes
    
    # Prevent Direct Access to files
    <FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
     Require all denied
    ## For apache 2.2 and older, replace "Require all denied" with these two lines :
    # Order deny,allow
    # Deny from all
    </FilesMatch>
    
    # SEO URL Settings
    RewriteEngine On
    # If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/
    
    
    RewriteBase /
    RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap_fast [L]
    # RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
    RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L]
    RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
    RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
    
    ### Additional Settings that may need to be enabled for some servers
    ### Uncomment the commands by removing the # sign in front of it.
    ### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.
    
    # 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
    # php_flag register_globals off
    
    # 2. If your cart has magic quotes enabled, This may work to disable it:
    # php_flag magic_quotes_gpc Off
    
    # 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
    # php_value upload_max_filesize 999M
    
    # 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
    # php_value post_max_size 999M
    
    # 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
    # php_value max_execution_time 200
    
    # 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
    # php_value max_input_time 200
    
    # 7. disable open_basedir limitations
    # php_admin_value open_basedir none
    
    ### Display PHP errors 
    ### Uncomment the commands by removing the # sign in front of it.
    # php_flag display_startup_errors on
    # php_flag display_errors on
    # php_flag html_errors on
    # php_flag track_errors on
    # php_value error_reporting "E_ALL"
    # Включаем кэш в браузерах посетителей
    
    <ifModule mod_headers.c>
    
        # Все html и htm файлы будут храниться в кэше браузера один день
    
        <FilesMatch "\.(html|htm)$">
    
            Header set Cache-Control "max-age=43200"
    
        </FilesMatch>
    
        # Все css, javascript и текстовые файлы будут храниться в кэше браузера одну неделю
    
        <FilesMatch "\.(js|css|txt)$">
    
            Header set Cache-Control "max-age=604800"
    
        </FilesMatch>
    
        # Все флэш файлы и изображения будут храниться в кэше браузера один месяц
    
        <FilesMatch "\.(flv|swf|ico|gif|png|jpg|jpeg)$">
    
            Header set Cache-Control "max-age=2592000"
    
        </FilesMatch>
    
        # Отключаем кеширование php и других служебных файлов
    
        <FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
    
            Header unset Cache-Control
    
        </FilesMatch>
    
    </IfModule>
    

     

    В чём я не прав?

  5.  

    37 минут назад, TeslaFeo сказал:

    Это попытка вывести JSON ?

    на будущее - это полный бред.

    Во первых в JSON не должно быть никаких тегов <br> для переноса строки.

    Во вторых JSON кодируется и раскодируется ВЫТОМАТОМ и в PHP и в JS

    для PHP это json_encode() и json_decode

    для JS это JSON.stringify() и JSON.parse()

     

    *для $.ajax dataType : 'JSON' и $.getJSON - JSON раскодируется автоматом. Т е в этих случаях парсить его не нужно

     

    Спасибо, уже вникаю...

  6. 27 минут назад, ibond сказал:

    product.tpl их так берет:

    
    $('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id; ?>');

     

    Да, видел. Хотелось бы реализовать задуманное на стороне сервера, посредством php. Насколько я понял, массив формируется в контроллере product.php Там есть процедура. Как мне  их получить из контроллера? 

  7. Добрый вечер. Пытаюсь разметить отзывы (ld+json) в карточке товара. Накидал такой набор символов в product.tpl (в php только начинаю вникать):

    <?php if(!empty($rating)){?>	
    <?php
    echo '"review":[</br>';
    $i = 0;
    foreach ($reviews as $review) {
    $i++;
    echo '{"@type":"Review",</br>
    		"author":"'.$review['author'].'",</br>
    		"datePublished":"'.$review['date_added'].'",</br>
    		"description":"'.$review['text'].'",</br>
    		"reviewRating":{</br>
    			"@type":"Rating",</br>
    			"bestRating":"'.$rating.'",</br>
    			"ratingValue":'.preg_replace('/.*(\d+).*/s', '$1', $reviews).',</br>
    			"worstRating":"0"}</br>
    		}';if(count($reviews)<>$i){echo ",";};
         echo "</br>";
    	 
    };
    echo '],';
    ?>
    	"aggregateRating":{
    		"ratingValue":"<?php echo $rating ?>",
    		"reviewCount":"<?php echo preg_replace('/.*(\d+).*/s', '$1', $reviews); ?>",
    		"@type":"AggregateRating"
    	},
    	<?php } ?>

    Вываливает:

    "review":[</br><b>Warning</b>: Invalid argument supplied for foreach() in <b>/home/caseroom/caseroom.in.ua/www/system/storage/modification/catalog/view/theme/default/template/product/product.tpl</b> on line <b>705</b>],	

    Я так понимаю, что массив reviews не доступен? Как его получить?

  8. В 22.12.2018 в 21:38, pashast сказал:

    Вставьте ваш код в product.php до загрузки шаблона

    
    $this->response->setOutput($this->load->view('product/product', $data));

    И перед вашим кодом нужно еще вызвать модель

    
    $this->load->model('catalog/review');

    Да это все присутствует в контроллере по дефолту. 

    public function review() {
    		$this->load->language('product/product');
    
    		$this->load->model('catalog/review');
    
    		$data['text_no_reviews'] = $this->language->get('text_no_reviews');
    
    		if (isset($this->request->get['page'])) {
    			$page = $this->request->get['page'];
    		} else {
    			$page = 1;
    		}
    
    		$data['reviews'] = array();
    
    		$review_total = $this->model_catalog_review->getTotalReviewsByProductId($this->request->get['product_id']);
    
    		
    		$results = $this->model_catalog_review->getReviewsByProductId($this->request->get['product_id'], ($page - 1) * 5, 5);
    
    		foreach ($results as $result) {
    			$data['reviews'][] = array(
    				'author'     => $result['author'],
    				'text'       => nl2br($result['text']),
    				'rating'     => (int)$result['rating'],
    				'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added']))
    			);
    		}
            
    		$pagination = new Pagination();
    		$pagination->total = $review_total;
    		$pagination->page = $page;
    		$pagination->limit = 5;
    		$pagination->url = $this->url->link('product/product/review', 'product_id=' . $this->request->get['product_id'] . '&page={page}');
    
    		$data['pagination'] = $pagination->render();
    
    		$data['results'] = sprintf($this->language->get('text_pagination'), ($review_total) ? (($page - 1) * 5) + 1 : 0, ((($page - 1) * 5) > ($review_total - 5)) ? $review_total : ((($page - 1) * 5) + 5), $review_total, ceil($review_total / 5));
    
    		$this->response->setOutput($this->load->view('product/review', $data));
    	}

    Спасибо, буду пробовать.

  9. В 22.12.2018 в 21:38, pashast сказал:

    Вставьте ваш код в product.php до загрузки шаблона

    
    $this->response->setOutput($this->load->view('product/product', $data));

    И перед вашим кодом нужно еще вызвать модель

    
    $this->load->model('catalog/review');

    Да это все присутствует в контроллере по дефолту. 

    public function review() {
    		$this->load->language('product/product');
    
    		$this->load->model('catalog/review');
    
    		$data['text_no_reviews'] = $this->language->get('text_no_reviews');
    
    		if (isset($this->request->get['page'])) {
    			$page = $this->request->get['page'];
    		} else {
    			$page = 1;
    		}
    
    		$data['reviews'] = array();
    
    		$review_total = $this->model_catalog_review->getTotalReviewsByProductId($this->request->get['product_id']);
    
    		
    		$results = $this->model_catalog_review->getReviewsByProductId($this->request->get['product_id'], ($page - 1) * 5, 5);
    
    		foreach ($results as $result) {
    			$data['reviews'][] = array(
    				'author'     => $result['author'],
    				'text'       => nl2br($result['text']),
    				'rating'     => (int)$result['rating'],
    				'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added']))
    			);
    		}
            
    		$pagination = new Pagination();
    		$pagination->total = $review_total;
    		$pagination->page = $page;
    		$pagination->limit = 5;
    		$pagination->url = $this->url->link('product/product/review', 'product_id=' . $this->request->get['product_id'] . '&page={page}');
    
    		$data['pagination'] = $pagination->render();
    
    		$data['results'] = sprintf($this->language->get('text_pagination'), ($review_total) ? (($page - 1) * 5) + 1 : 0, ((($page - 1) * 5) > ($review_total - 5)) ? $review_total : ((($page - 1) * 5) + 5), $review_total, ceil($review_total / 5));
    
    		$this->response->setOutput($this->load->view('product/review', $data));
    	}

     

  10. Я так понял, что сюда залетают отзывы:

    		$results = $this->model_catalog_review->getReviewsByProductId($this->request->get['product_id'], ($page - 1) * 5, 5);
    
    		foreach ($results as $result) {
    			$data['reviews'][] = array(
    				'author'     => $result['author'],
    				'text'       => nl2br($result['text']),
    				'rating'     => (int)$result['rating'],
    				'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added']))
    			);
    		}

    Как их передать в product.tpl? 

  11. В 07.12.2018 в 17:23, Bracula сказал:

    Как упростить  оформления заказа (OpenCart 2.3.0.2)? Про модули знаю (и симплу в том числе). Решение модулей не подходит. Нужно просто убрать ненужные шаги. Или убрать часть шагов и сделать остальные на одной странице.

    Посмотрите. Если устроит, скину файлы.

  12. Писал для семёрки модуль для выгрузки товаров и загрузки заказов из сайта в 1с. Модуль работает напрямую с базой данных из 1с. На сайте трогать ничего не пришлось. Могу скинуть. Может перепишите для 1с8.

  13. Ситуация в точности как у автора темы, письмо-просадка. После прочтения данной темы проверил в гуглп спид тест и средний результат для карточки товара: моб-26-29, пк-92-97. Старый тесть показывал, что все супер. После двух дней ковыряния результат для Карточки товара моб:

    Screenshot_2018-11-30-00-54-06-150_com.android.browser.thumb.png.22170c5877788fdc201184eb67b05503.png

    Карточка товара ПК:

    Screenshot_2018-11-30-00-54-09-939_com.android.browser.thumb.png.ee4948a8798de417c5716cb361bba8cd.png

    Для категории моб:

    Screenshot_2018-11-30-00-56-22-372_com.android.browser.thumb.png.a09a1717da46549476c9b2510be5b37f.png

    Для категории ПК:

    Screenshot_2018-11-30-00-56-26-495_com.android.browser.thumb.png.5b63092d29343ff91c0fe37221880fdc.png

     

    Есть еще возможность для категории поднять около 10 попугаев, но OCFilter перестает работать. Автор, к сожелению, не очень скор на помощь. 

     Наверное это практически предельная скорость для стандартного шаблона. Буду наблюдать за поведением страниц в поиске.

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

Important Information

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