Я хочу выполнить некоторые операции с базой данных и получить / установить cookie перед загрузкой главной страницы. для какого события я бы сделал наблюдателя? Я еще не приступил к созданию файлов cookie в своих исследованиях, сейчас я хочу провести некоторые манипуляции с базой данных на этом мероприятии. У меня есть наблюдатель, который сейчас уходит в controller_front_send_response_before
, и это ошибка, которую я получаю.
Mage registry key "_singleton/" already exists
Trace:
#0 /var/www/html/app/Mage.php(192): Mage::throwException('Mage registry k...')
#1 /var/www/html/app/Mage.php(446): Mage::register('_singleton/', false)
#2 /var/www/html/app/code/core/Mage/Core/Model/App.php(1252): Mage::getSingleton(false)
#3 /var/www/html/app/Mage.php(416): Mage_Core_Model_App->dispatchEvent('controller_fron...', Array)
#4 /var/www/html/app/code/core/Mage/Core/Controller/Varien/Front.php(186): Mage::dispatchEvent('controller_fron...', Array)
#5 /var/www/html/app/code/core/Mage/Core/Model/App.php(340): Mage_Core_Controller_Varien_Front->dispatch()
#6 /var/www/html/app/Mage.php(627): Mage_Core_Model_App->run(Array)
#7 /var/www/html/index.php(86): Mage::run('', 'store')
#8 {main}
Это мой конфигурационный узел:
<frontend>
...
<events>
<controller_front_send_response_before>
<observers>
<type>singleton</type>
<class>Foo_Bar_Model_Observer</class>
<method>controllerFrontSendResponseBefore</method>
</observers>
</controller_front_send_response_before>
</events>
</frontend>
А это моя модель наблюдателя
class Foo_Bar_Model_Observer
{
public function controllerFrontSendResponseBefore(Varien_Event_Observer $observer)
{
$id = 1;
$theVisitors = Mage::getModel('visitors/visitor');
$theVisitors->load($id);
$numVisits = (int)$theVisitors->getNumvisits();
++$numVisits;
$theVisitors->setNumvisits($numVisits);
$theVisitors->save();
}
}