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

ocStore 3.0.2.0b1 версия для тестирования


dinox

Recommended Posts

В 21.11.2018 в 13:46, Landistore сказал:

Да и в самой админка тоже особых изменений нету. Единственное это бутстрап обновили и добавили пару кнопок. Ещё фильтр тут более привлекателен. А в целом не думаю что стоит переезжать с 2.3. Именно 2.3 ещё будет актуальной долгое время

ну я уже присматриваюсь к коду, собираюсь все наработки понемногу переносить, точнее подготавливаю свою голову к этому, а уже на рейлизе буду вносить правки, я просто уже хочу так сказать почистить код от мусора, концы от модулей всяких галимых почисить, а так же базу..сам на 2.1 сижу, на 2.3 даже рыпаться не хочу, влом потом еще и с 2.3 на 3.1 прыгать

Надіслати
Поділитися на інших сайтах


Я правильно понял что SEO_PRO не работает ещё? (если искать по этой тему на "seo_pro", то находятся только жалобы на его неработоспособность)

 

Я когда включил seopro у себя на тестовом сайте, то сразу в журнале ошибки появились, а сам сайт больше не загружается.

С простым чпу работает...

 

Тестирую на локалке, опыт большой, так что глупых ошибок не допускал. Всё что надо в .htaccess поправил

Надіслати
Поділитися на інших сайтах

1 час назад, OldAine сказал:

Я правильно понял что SEO_PRO не работает ещё? (если искать по этой тему на "seo_pro", то находятся только жалобы на его неработоспособность)

 

Я когда включил seopro у себя на тестовом сайте, то сразу в журнале ошибки появились, а сам сайт больше не загружается.

С простым чпу работает...

 

Тестирую на локалке, опыт большой, так что глупых ошибок не допускал. Всё что надо в .htaccess поправил

отсюда перекачайте https://github.com/ocstore/ocstore/tree/ocstore-3-0-2-0

и если ошибки будут скопируйте их потом сюда

Надіслати
Поділитися на інших сайтах

1 минуту назад, snastik сказал:

отсюда перекачайте https://github.com/ocstore/ocstore/tree/ocstore-3-0-2-0

и если ошибки будут скопируйте их потом сюда

Ок, спасибо, на днях протестирую.

Надіслати
Поділитися на інших сайтах

  • 2 weeks later...

Скачал последнюю бета версию с гитхаба...

Установил на openserver:

  1. создал папку ocstore3020 и одноименную базу
  2. в .htaccess изменил путь на RewriteRule ^([^?]*) ocstore3020/index.php?_route_=$1 [L,QSA]
  3. Далее, в настройках, включил чпу и всё, что связано с сео-про...

wufhb31.png

 

 

 

Первое - С включенным seo_pro не работает главная страница (её просто нет, она не прогружается) (вот фото)

Второе - Почему-то не работает категория "Компоненты"...

8DCbfoP.png

Третье - В описание пустых страниц, попадает содержимое пустой корзины :)

 

3ZWfmB1.png

 

 

Вот журнал ошибок: 

2018-12-09 22:41:50 - PHP Warning:  fopen(D:/Work/OpenServer-528-basic/OSPanel/domains/localhost/ocstore3020/admin/view/stylesheet/bootstrap.css): failed to open stream: Invalid argument in D:\Work\OpenServer-528-basic\OSPanel\domains\localhost\ocstore3020\admin\controller\startup\sass.php on line 14
2018-12-09 22:41:50 - PHP Warning:  flock() expects parameter 1 to be resource, boolean given in D:\Work\OpenServer-528-basic\OSPanel\domains\localhost\ocstore3020\admin\controller\startup\sass.php on line 16
2018-12-09 22:41:50 - PHP Warning:  fwrite() expects parameter 1 to be resource, boolean given in D:\Work\OpenServer-528-basic\OSPanel\domains\localhost\ocstore3020\admin\controller\startup\sass.php on line 18
2018-12-09 22:41:50 - PHP Warning:  fflush() expects parameter 1 to be resource, boolean given in D:\Work\OpenServer-528-basic\OSPanel\domains\localhost\ocstore3020\admin\controller\startup\sass.php on line 20
2018-12-09 22:41:50 - PHP Warning:  flock() expects parameter 1 to be resource, boolean given in D:\Work\OpenServer-528-basic\OSPanel\domains\localhost\ocstore3020\admin\controller\startup\sass.php on line 22
2018-12-09 22:41:50 - PHP Warning:  fclose() expects parameter 1 to be resource, boolean given in D:\Work\OpenServer-528-basic\OSPanel\domains\localhost\ocstore3020\admin\controller\startup\sass.php on line 24

 

А вот проблемы с невозможностью установить движок без префикса больше нет)))

Надіслати
Поділитися на інших сайтах

9 часов назад, OldAine сказал:

Второе - Почему-то не работает категория "Компоненты"...

 

потому что косяк seopro , решение здесь

 

9 часов назад, OldAine сказал:

Третье - В описание пустых страниц, попадает содержимое пустой корзины

 

наследственное от оригинального движка, обсуждалось здесь

Надіслати
Поділитися на інших сайтах

16 минут назад, AlexDW сказал:

 

потому что косяк seopro ,

 

Потому что там один большой гкостыль который фрагментирует opencart и её производную ocStore
К моНАХам такие фарш костлыли

  • +1 1
Надіслати
Поділитися на інших сайтах

  • 5 weeks later...
  • 2 weeks later...

Я не знаю, кто писал seo pro для этой версии, но у меня для него новость.

private function getQueryByKeyword($keyword, $language_id = null) {
	$query = null;
	$store_id = (int)$this->config->get('config_store_id');
		
	if (!$language_id) 
		$language_id = (int)$this->config->get('config_language_id');
		
	if ($this->config->get('config_seo_url_cache')){
		if (isset($this->queries[$keyword][$store_id][$language_id])) 
			$query = $this->queries[$keyword][$store_id][$language_id];
	} else {
		$_query = $this->db->query("SELECT query FROM " . DB_PREFIX . "seo_url WHERE keyword = '" . $this->db->escape($keyword) . "' AND store_id = '" . $store_id . "' AND language_id = '" . $language_id . "' LIMIT 1");	
		$query = !empty($_query->row) ? (string)$_query->row['query'] : null;
	}
	return $query;
}

В этом методе парсятся $_GET - параметры.

Так вот, новость: в $_GET, как и в $_POST могут быть не только строки, а ещё и МАССИВЫ!!!

И вот на этом моменте:

$_query = $this->db->query("SELECT query FROM " . DB_PREFIX . "seo_url WHERE keyword = '" . $this->db->escape($keyword) . "' AND store_id = '" . $store_id . "' AND language_id = '" . $language_id . "' LIMIT 1");

при попытке escape'нуть массив мы получаем:

Warning: mysqli::real_escape_string() expects parameter 1 to be string, array given in .../system/library/db/mysqli.php on line 45

Надіслати
Поділитися на інших сайтах

5 часов назад, AlexDW сказал:

а на кой чОрт в функцию, ожидающую строку в качестве аргумента, пихать массив?


так это у писателей данного SEO_PRO нужно спросить, или подсказать (открыть новость), как сказал @reDream , что данная переменная может быть не только строкой.

Надіслати
Поділитися на інших сайтах

1 час назад, vier сказал:

данная переменная может быть не только строкой. 

в какой момент
Приведите пример

Надіслати
Поділитися на інших сайтах

6 часов назад, AlexDW сказал:

а на кой чОрт в функцию, ожидающую строку в качестве аргумента, пихать массив?

А на кой чёрт она ожидает строку? В этот метод попадают все get-параметры..

Надіслати
Поділитися на інших сайтах

9 минут назад, chukcha сказал:

Приведите пример

http://oc.redream.ru/phones/?rdrf[man][0]=8&rdrf[man][1]=11

 

Я в основном работаю с фреймворком yii, там это очень распространённая практика и встречается настолько часто, что привыкаешь на раз

Надіслати
Поділитися на інших сайтах

8 минут назад, reDream сказал:

Вот именно что. Метод ожидает строку и, если приходит массив, никак это не проверяет и шлёт запрос в базу

а еще доки нет.... да и проверки переменной..эх

Надіслати
Поділитися на інших сайтах


1 смотрим в гит сюда:

https://github.com/opencart/opencart/blob/master/upload/catalog/controller/startup/seo_url.php

строка 26.

Даниэль Керр знать не знает ни про какие массивы.

 

 

2. Следим за руками...

 

// Decode URL
        if (isset($this->request->get['_route_'])) {
            $parts = explode('/', $this->request->get['_route_']);
            
        //seopro prepare route
        if($this->config->get('config_seo_pro')){        
            $parts = $this->seo_pro->prepareRoute($parts);
        }

В контроллер seo_url попадает не параметр  $_GET а  строка $this->request->get['_route_'], которая в нативном классе превращается в одномерный массив $parts.

 

Который в свою очередь в seo_pro уже обрабатывается методом baseRewrite, в котором для каждого строковой части урла, разбитого на куски через разделитель '/' ищутся соответствия, в базе, которые могут указывать на тот или иной роут, соответствующий урлу.

В каком месте туда может попасть массив?

3. С каких пор opencart стал YII и в CodeStyle стало принято передавать post-get данные многомерными массивами?

4. Если вы такие умные-кричащие, где вы уже два года с вашими коммитами на GIT?

5. Даже если вы отошли от принятого CodeStyle - кто мешает вам сделать исключения для ваших поделок в код ?

6. Смотрим в сео про 1.5

 

    public function __construct($registry) {
        parent::__construct($registry);
        $this->cache_data = $this->cache->get('seo_pro');
        if (!$this->cache_data) {
            $query = $this->db->query("SELECT LOWER(`keyword`) as 'keyword', `query` FROM " . DB_PREFIX . "url_alias");
            $this->cache_data = array();
            foreach ($query->rows as $row) {
                $this->cache_data['keywords'][$row['keyword']] = $row['query'];
                $this->cache_data['queries'][$row['query']] = $row['keyword'];
            }
            $this->cache->set('seo_pro', $this->cache_data);
        }
    } 

Смотрим в 2.3


 

   public function __construct($registry) {
        parent::__construct($registry);
        $this->cache_data = $this->cache->get('seo_pro');
        if (!$this->cache_data) {
            $query = $this->db->query("SELECT LOWER(`keyword`) as 'keyword', `query` FROM " . DB_PREFIX . "url_alias ORDER BY url_alias_id");
            $this->cache_data = array();
            foreach ($query->rows as $row) {
                if (isset($this->cache_data['keywords'][$row['keyword']])){
                    $this->cache_data['keywords'][$row['query']] = $this->cache_data['keywords'][$row['keyword']];
                    continue;
                }
                $this->cache_data['keywords'][$row['keyword']] = $row['query'];
                $this->cache_data['queries'][$row['query']] = $row['keyword'];
            }
            $this->cache->set('seo_pro', $this->cache_data);
        }
    }

Как то вы оба два не очень замечали, что здесь тоже про ваши массивы ни слова.

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

 

  • +1 1
Надіслати
Поділитися на інших сайтах


@Yoda Да зачем напрягаться показывать, то что люди не видят
 

54 минуты назад, vier сказал:

пример:


site.local/kompyuteri/?manufs[1]=8-14&attrb[2]=2-6&attrb[4]=5

 

Гдe здесь  keyword?

В _route_ нет GET, он сам get

@reDream @vier учите матчасть

 

$query = $this->getQueryByKeyword($parts[$id]);

Где здесь массив?

 

prepareRoute($parts) {

ага массив
 

$parts = $parts = explode('/', $this->request->get['_route_']);

ГДЕ МАссив?????

Надіслати
Поділитися на інших сайтах

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

Меня аж выворачивает от этого всего. Мы такие умные. Мы тут баг нашли. Как можно. Нам же теперь чтобы наживать. Надо код переписывать. А то что никто из этих персонажей для развития темы пальцем не пошевелил. Так это же пусть лохи парятся. Мы гавномодулей   напишем и будет нам покушать.

Надіслати
Поділитися на інших сайтах


Ох как громки слова, все вокруг танцуют с бубном от написанного Yavesik, если не ошибаюсь, а самим то решение предложить на пользу сообщества религия мешает ?

Надіслати
Поділитися на інших сайтах

15 минут назад, Yoda сказал:

Мы тут баг нашли.

Был бы баг..

Баг там есть и он был озвучен..
Но не в этом месте.

А "баг" найден фильтро писателями.. ..
Ну так научитесь писать свои преобразователи, это не сложно..
И не лезьте в системный..
Это на порядок проще..

Надіслати
Поділитися на інших сайтах

  • dinox unpinned та unfeatured this topic

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

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

Important Information

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