Рекомендуемые сообщения

ocstore 1.5.5. С php дружу месяц, так что прошу не пинать. Пишу доработку кеширования страниц целиком. Суть: цены меняются на start2544end, где 2544 - id товара. Затем страница кешируется. После этого производится подмена start2544end на цену товара.

Подмену решил сделать в response.php(для новых страниц) и потом скопировать в модуль pagecache.php(для кешированных страниц), но когда пытаюсь оттуда вызвать sql запрос, то выдает ошибку Fatal error: Call to a member function get() on a non-object in C:\Webserver\domains\git.venlamp.ru\system\library\response.php on line 56.

Как сделать чтобы работал стандартный класс по обработке sql запроса?

Возможно у меня вообще неверный подход и нужно делать новый класс, а его как-то вызывать из response.php и из pagecache.php?

    public function output() {

        if ($this->output) {
            $this->output = str_replace('&page=1"', '"', $this->output);

..................................пропущено.........................................................

                        if (preg_match_all('/pr_id_start(.*?)pr_id_end/', $this->output, $ids)) {
                            $sql="SELECT product_id, price FROM " . DB_PREFIX . "product WHERE product_id IN (" . implode (", ",$ids[1]). ")";
                            
                            $query = $this->db->query($sql); //Это не работает.
//                            if ($query->num_rows) {
//                                foreach ($query as $row) {
//                                    $this->output = str_replace ($this->output;"pr_id_start".$row['product_id']."pr_id_end",$row['price']);
//                                }
//                            }
                        }
 

И второй вопрос. Нужно поменять 20-100 id товара на цены. Есть ли смысл 100 раз вызывать str_replace или можно как-то стандартными функциями сделать замену за один проход? Типа str_replace_arr(строка, массив что на что меняем).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу