-
Публікації
355 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем mario512
-
-
ок, в таком случае тема закрыта!
-
@chukcha, перефразировал вопрос)))
-
Добрый день. Хотелось бы узнать о влиянии на лояльность поисковиков к сайтам, у которых динамический title? И в каких случаях их использовать?
-
11 часов назад, mario512 сказал:
Открывается, модуль включен. Попробую подправить htaccess.
Спасибо, за то что отозвались.
Переделал. Google пишет, что сайтмап пустой.
З.Ы. Если отключить SeoPro, то сайтмап открывается. OCStore 2.3.0.2
-
3 минуты назад, SiteMix сказал:
А по адресу sitename/index.php?route=extension/feed/google_sitemap_fast открывается?
Если нет, то модуль в настройках включен?
Редиректы после RewriteEngine On обычно ставят. А есть рекомендации чтобы и после RewriteBase /
Открывается, модуль включен. Попробую подправить htaccess.
Спасибо, за то что отозвались.
-
В 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>
В чём я не прав?
-
-
37 минут назад, TeslaFeo сказал:
Это попытка вывести JSON ?
на будущее - это полный бред.
Во первых в JSON не должно быть никаких тегов <br> для переноса строки.
Во вторых JSON кодируется и раскодируется ВЫТОМАТОМ и в PHP и в JS
для PHP это json_encode() и json_decode
для JS это JSON.stringify() и JSON.parse()
*для $.ajax dataType : 'JSON' и $.getJSON - JSON раскодируется автоматом. Т е в этих случаях парсить его не нужно
Спасибо, уже вникаю...
-
18 минут назад, Vetroff сказал:
перенеси массив с отзывами в функцию index, аналогично массиву опций или доп.картинок, и вызывай их в шаблоне тоже по аналогии.
Спасибо, попробую.
-
27 минут назад, ibond сказал:
product.tpl их так берет:
$('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id; ?>');
Да, видел. Хотелось бы реализовать задуманное на стороне сервера, посредством php. Насколько я понял, массив формируется в контроллере product.php Там есть процедура. Как мне их получить из контроллера?
-
Добрый вечер. Пытаюсь разметить отзывы (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 не доступен? Как его получить?
-
-
В 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)); }
Спасибо, буду пробовать.
-
В 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)); }
-
Я так понял, что сюда залетают отзывы:
$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?
-
@anboza <?php echo $review['author']; ?> и еще несколько...
-
Добрый вечер. Подскажите, как протащить <?php echo $review['author']; ?> из review.tpl в product.tpl. Пробовал разные варианты, ничего не выходит.
-
@SooR Отписался в ЛС
-
Подскажите, как можно включить поддержку html в описании посадочных страниц!
-
В 07.12.2018 в 17:23, Bracula сказал:
Как упростить оформления заказа (OpenCart 2.3.0.2)? Про модули знаю (и симплу в том числе). Решение модулей не подходит. Нужно просто убрать ненужные шаги. Или убрать часть шагов и сделать остальные на одной странице.
Посмотрите. Если устроит, скину файлы.
-
Писал для семёрки модуль для выгрузки товаров и загрузки заказов из сайта в 1с. Модуль работает напрямую с базой данных из 1с. На сайте трогать ничего не пришлось. Могу скинуть. Может перепишите для 1с8.
-
Я не работал с @fanatic, но он несколько раз помогал мне в темах, котарые мне приходилось создавать для решения разных проблем. Спасибо.
-
-
Ситуация в точности как у автора темы, письмо-просадка. После прочтения данной темы проверил в гуглп спид тест и средний результат для карточки товара: моб-26-29, пк-92-97. Старый тесть показывал, что все супер. После двух дней ковыряния результат для Карточки товара моб:
Карточка товара ПК:
Для категории моб:
Для категории ПК:
Есть еще возможность для категории поднять около 10 попугаев, но OCFilter перестает работать. Автор, к сожелению, не очень скор на помощь.
Наверное это практически предельная скорость для стандартного шаблона. Буду наблюдать за поведением страниц в поиске.
Динамический <title>, стоит ли заморачиваться?
в SEO-питання (оптимізація та просування магазину)
Опубліковано:
@chukcha Спасибо, загуглю.