Prestashop 1.4 - Как выполнить начальный запрос MySQL на каждый запрос
Вид старой версии Prestashop, я знаю, но мне нужно выполнить начальный запрос MySQL на каждый запрос .
Где мне нужно поместить логику, чтобы always
выполнялась?
Вид точки инициализации приложение всегда выполняет, независимо от того, какой URL запрашивается.
Заранее спасибо.
У вопроса есть решение - Посмотреть?
Ответы - Prestashop 1.4 - Как выполнить начальный запрос MySQL на каждый запрос / Prestashop 1.4 - How to execute an initial MySQL query on every request
Является ответом!

26.07.2019 06:59:17
Наконец-то нашел решение (и умно, я думаю). И я также думаю, что этот подход может быть применим к другим версиям Prestashop (1.5, 1.6, 1.7...).
В classes/MySQL.php
-файл, в функции connect
, я добавляю свой запрос непосредственно перед возвращением $this->_link
:
public function connect()
{
if (!defined('_PS_DEBUG_SQL_'))
define('_PS_DEBUG_SQL_', false);
if ($this->_link = mysql_connect($this->_server, $this->_user, $this->_password))
{
if (!$this->set_db($this->_database))
die('The database selection cannot be made.');
}
else
die('Link to database cannot be established.');
/* UTF-8 support */
if (!mysql_query('SET NAMES \'utf8\'', $this->_link))
die(Tools::displayError('PrestaShop Fatal error: no utf-8 support. Please check your server configuration.'));
// removed SET GLOBAL SQL_MODE : we can't do that (see PSCFI-1548)
/** MY QUERY IS INSERTED HERE, USING $this->_link BY THE WAY **/
mysql_query('...', $this->_link);
return $this->_link;
}
Таким образом, возникают 2 Преимущества:
- Мне не нужно поддерживать копию учетных данных базы данных, отличных от Prestashop
- Запрос выполняется в каждом запросе, как фронт-офиса и бэк-офиса пользовательских интерфейсов.
Я надеюсь, что это может помочь кому-нибудь.
Помочь в развитии проекта: