$this->statement = $connection->prepare($query);
if (!$this->statement)
{
throw new PrepareStatementFailureException($this->connection->error, $this->connection->errno);
}
}
/**
* Replace named parameters with numbered parameters
* @since 2.0.0
* @throws PrepareStatementFailureException
*/
protected function prepareStatement(string $query): StatementInterface
{
return new MysqliStatement($this->connection, $query);
}
/**
* Unlocks tables in the database.
*
$query->setLimit($limit, $offset);
$sql = $this->replacePrefix((string) $query);
$this->statement = $this->prepareStatement($sql);
$this->sql = $query;
$this->limit = (int) max(0, $limit);
$this->offset = (int) max(0, $offset);
)
->bind(':currentDate2', $currentDate)
->order($this->db->quoteName('m.lft'));
$items = [];
$iterator = $this->db->setQuery($query)->getIterator();
foreach ($iterator as $item) {
$items[$item->id] = new MenuItem((array) $item);
}
$referenceArgs = &$args;
}
// Just execute the callback if caching is disabled.
if (empty($this->options['caching'])) {
return \call_user_func_array($callback, $referenceArgs);
}
if (!$id) {
// Generate an ID
$id = $this->_makeId($callback, $args);
try {
/** @var CallbackController $cache */
$cache = $this->getCacheControllerFactory()->createCacheController('callback', ['defaultgroup' => 'com_menus']);
$this->items = $cache->get($loader, [], md5(\get_class($this)), false);
} catch (CacheExceptionInterface $e) {
try {
$this->items = $loader();
} catch (ExecutionFailureException $databaseException) {
$this->app->enqueueMessage(Text::sprintf('JERROR_LOADING_MENUS', $databaseException->getMessage()), 'warning');
* @since 1.5
*/
public function getMenu()
{
if (!$this->itemsLoaded) {
$this->load();
foreach ($this->items as $item) {
if ($item->home) {
$this->default[trim($item->language)] = $item->id;
}
*/
public function getItem($id)
{
$result = null;
if (isset($this->getMenu()[$id])) {
$result = &$this->getMenu()[$id];
}
return $result;
}
// Get the id of the active menu item
$menu = $this->getMenu();
$item = $menu->getActive();
if (!$item) {
$item = $menu->getItem($this->input->getInt('Itemid', null));
}
$id = 0;
if (\is_object($item)) {
public function render(\Throwable $error): string
{
$app = Factory::getApplication();
// Get the current template from the application
$template = $app->getTemplate(true);
// Push the error object into the document
$this->getDocument()->setError($error);
// Add registry file for the template asset
// Reset the document object in the factory, this gives us a clean slate and lets everything render properly
Factory::$document = $renderer->getDocument();
Factory::getApplication()->loadDocument(Factory::$document);
$data = $renderer->render($error);
// If nothing was rendered, just use the message from the Exception
if (empty($data)) {
$data = $error->getMessage();
}
* @since 3.10.0
*/
public static function handleException(\Throwable $error)
{
static::logException($error);
static::render($error);
}
/**
* Render the error page based on an exception.
*
);
// Trigger the onError event.
$this->triggerEvent('onError', $event);
ExceptionHandler::handleException($event->getError());
}
// Trigger the onBeforeRespond event.
$this->getDispatcher()->dispatch('onBeforeRespond');
// Set the application as global app
\Joomla\CMS\Factory::$application = $app;
// Execute the application.
$app->execute();
* define() is used rather than "const" to not error for PHP 5.2 and lower
*/
define('_JEXEC', 1);
// Run the application - All executable code should be triggered through this file
require_once dirname(__FILE__) . '/includes/app.php';
$this->statement = $connection->prepare($query);
if (!$this->statement)
{
throw new PrepareStatementFailureException($this->connection->error, $this->connection->errno);
}
}
/**
* Replace named parameters with numbered parameters
* @since 2.0.0
* @throws PrepareStatementFailureException
*/
protected function prepareStatement(string $query): StatementInterface
{
return new MysqliStatement($this->connection, $query);
}
/**
* Unlocks tables in the database.
*
$query->setLimit($limit, $offset);
$sql = $this->replacePrefix((string) $query);
$this->statement = $this->prepareStatement($sql);
$this->sql = $query;
$this->limit = (int) max(0, $limit);
$this->offset = (int) max(0, $offset);
)
->bind(':currentDate2', $currentDate)
->order($this->db->quoteName('m.lft'));
$items = [];
$iterator = $this->db->setQuery($query)->getIterator();
foreach ($iterator as $item) {
$items[$item->id] = new MenuItem((array) $item);
}
$referenceArgs = &$args;
}
// Just execute the callback if caching is disabled.
if (empty($this->options['caching'])) {
return \call_user_func_array($callback, $referenceArgs);
}
if (!$id) {
// Generate an ID
$id = $this->_makeId($callback, $args);
try {
/** @var CallbackController $cache */
$cache = $this->getCacheControllerFactory()->createCacheController('callback', ['defaultgroup' => 'com_menus']);
$this->items = $cache->get($loader, [], md5(\get_class($this)), false);
} catch (CacheExceptionInterface $e) {
try {
$this->items = $loader();
} catch (ExecutionFailureException $databaseException) {
$this->app->enqueueMessage(Text::sprintf('JERROR_LOADING_MENUS', $databaseException->getMessage()), 'warning');
* @since 1.5
*/
public function getMenu()
{
if (!$this->itemsLoaded) {
$this->load();
foreach ($this->items as $item) {
if ($item->home) {
$this->default[trim($item->language)] = $item->id;
}
$items = [];
$attributes = (array) $attributes;
$values = (array) $values;
$count = \count($attributes);
foreach ($this->getMenu() as $item) {
if (!\is_object($item)) {
continue;
}
$test = true;
// Reset arrays or we get a notice if some values were unset
$attributes = array_values($attributes);
$values = array_values($values);
return parent::getItems($attributes, $values, $firstonly);
}
/**
* Get menu item by id
*
{
$attributes[] = 'language';
$values[] = [$language, '*'];
}
self::$items[$language] = Factory::getApplication()->getMenu('site')->getItems($attributes, $values);
}
return self::$items[$language];
}
}
// Prepare the reverse lookup array.
if (!isset(self::$lookup[$language]))
{
self::$lookup[$language] = [];
$items = self::getMenuItems($language);
foreach ($items as $item)
{
if (!empty($item->query['view']))
{
*/
public static function findItem($needles = [], $itemId = 0)
{
$language = $needles['language'] ?? '*';
self::buildLookup($language);
foreach ($needles as $view => $ids)
{
if (isset(self::$lookup[$language][$view]))
{
if (count($needles))
{
require_once JPATH_ROOT . '/components/com_osmembership/helper/route.php';
$menuItemId = OSMembershipHelperRoute::findItem($needles);
if ($menuItemId)
{
return Route::_('index.php?Itemid=' . $menuItemId);
}
foreach (array_reverse($callableMethods) as $callable)
{
if (is_callable($callable))
{
return call_user_func_array($callable, $methodArgs);
}
}
throw new Exception(sprintf('Method %s does not exist in the helper %s', $method, $helper));
}
* @return string
*/
public static function getPluginRestrictionRedirectUrl($params, $planIds)
{
// Try to find the best redirect URL
$redirectUrl = OSMembershipHelper::callOverridableHelperMethod('Helper', 'getRestrictionRedirectUrl', [$planIds]);
if (empty($redirectUrl))
{
$redirectUrl = $params->get('redirect_url', OSMembershipHelper::getViewUrl(['categories', 'plans', 'plan', 'register']));
}
foreach (array_reverse($callableMethods) as $callable)
{
if (is_callable($callable))
{
return call_user_func_array($callable, $methodArgs);
}
}
throw new Exception(sprintf('Method %s does not exist in the helper %s', $method, $helper));
}
// Try to find the best redirect URL
$redirectUrl = OSMembershipHelper::callOverridableHelperMethod(
'Helper',
'getPluginRestrictionRedirectUrl',
[$this->params, $planIds]
);
// Store URL of this page to redirect user back after user logged in if they have active subscription of this plan
$session = $this->app->getSession();
$session->set('osm_return_url', Uri::getInstance()->toString());
}
// Convert to indexed array for unpacking.
$arguments = \array_values($arguments);
$result = $this->{$methodName}(...$arguments);
// Ignore null results
if ($result === null) {
return;
}
if ($event->isStopped())
{
return $event;
}
$listener($event);
}
}
return $event;
}
$event = new $className($eventName, $args);
} else {
throw new \InvalidArgumentException('The arguments must either be an event or an array');
}
$result = $dispatcher->dispatch($eventName, $event);
// @todo - There are still test cases where the result isn't defined, temporarily leave the isset check in place
return !isset($result['result']) || \is_null($result['result']) ? [] : $result['result'];
}
}
// Load the behaviour plugins
PluginHelper::importPlugin('behaviour');
// Trigger the onAfterInitialise event.
PluginHelper::importPlugin('system');
$this->triggerEvent('onAfterInitialise');
}
/**
* Checks if HTTPS is forced in the client configuration.
*
$options['language'] = 'en-GB';
}
}
// Finish initialisation
parent::initialiseApp($options);
}
/**
* Load the library language files for the application
*
* @since 3.2
*/
protected function doExecute()
{
// Initialise the application
$this->initialiseApp();
// Mark afterInitialise in the profiler.
JDEBUG ? $this->profiler->mark('afterInitialise') : null;
// Route the application
$this->sanityCheckSystemVariables();
$this->setupLogging();
$this->createExtensionNamespaceMap();
// Perform application routines.
$this->doExecute();
// If we have an application document object, render it.
if ($this->document instanceof \Joomla\CMS\Document\Document) {
// Render the application output.
$this->render();
// Set the application as global app
\Joomla\CMS\Factory::$application = $app;
// Execute the application.
$app->execute();
* define() is used rather than "const" to not error for PHP 5.2 and lower
*/
define('_JEXEC', 1);
// Run the application - All executable code should be triggered through this file
require_once dirname(__FILE__) . '/includes/app.php';
[2/2]
PrepareStatementFailureException
|
---|
Joomla\Database\Exception\PrepareStatementFailureException: Unknown column 'm.publish_up' in 'where clause' at /home/phasmids/public_html/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:141 at Joomla\Database\Mysqli\MysqliStatement->__construct(object(mysqli), 'SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component`FROM `j54f3_menu` AS `m`LEFT JOIN `j54f3_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id`WHERE ((`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= ?)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= ?)ORDER BY `m`.`lft`') (/home/phasmids/public_html/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:1089) at Joomla\Database\Mysqli\MysqliDriver->prepareStatement('SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component`FROM `j54f3_menu` AS `m`LEFT JOIN `j54f3_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id`WHERE ((`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2)ORDER BY `m`.`lft`') (/home/phasmids/public_html/libraries/vendor/joomla/database/src/DatabaseDriver.php:1900) at Joomla\Database\DatabaseDriver->setQuery(object(MysqliQuery)) (/home/phasmids/public_html/libraries/src/Menu/SiteMenu.php:166) at Joomla\CMS\Menu\SiteMenu->Joomla\CMS\Menu\{closure}() (/home/phasmids/public_html/libraries/src/Cache/Controller/CallbackController.php:51) at Joomla\CMS\Cache\Controller\CallbackController->get(object(Closure), array(), 'd17e8e13b99b4d9bf23a7d0b83a466c3', false) (/home/phasmids/public_html/libraries/src/Menu/SiteMenu.php:179) at Joomla\CMS\Menu\SiteMenu->load() (/home/phasmids/public_html/libraries/src/Menu/AbstractMenu.php:333) at Joomla\CMS\Menu\AbstractMenu->getMenu() (/home/phasmids/public_html/libraries/src/Menu/AbstractMenu.php:164) at Joomla\CMS\Menu\AbstractMenu->getItem(null) (/home/phasmids/public_html/libraries/src/Application/SiteApplication.php:422) at Joomla\CMS\Application\SiteApplication->getTemplate(true) (/home/phasmids/public_html/libraries/src/Error/Renderer/HtmlRenderer.php:50) at Joomla\CMS\Error\Renderer\HtmlRenderer->render(object(PrepareStatementFailureException)) (/home/phasmids/public_html/libraries/src/Exception/ExceptionHandler.php:126) at Joomla\CMS\Exception\ExceptionHandler::render(object(PrepareStatementFailureException)) (/home/phasmids/public_html/libraries/src/Exception/ExceptionHandler.php:72) at Joomla\CMS\Exception\ExceptionHandler::handleException(object(PrepareStatementFailureException)) (/home/phasmids/public_html/libraries/src/Application/CMSApplication.php:322) at Joomla\CMS\Application\CMSApplication->execute() (/home/phasmids/public_html/includes/app.php:61) at require_once('/home/phasmids/public_html/includes/app.php') (/home/phasmids/public_html/index.php:32) |
[1/2]
PrepareStatementFailureException
|
---|
Joomla\Database\Exception\PrepareStatementFailureException: Unknown column 'm.publish_up' in 'where clause' at /home/phasmids/public_html/libraries/vendor/joomla/database/src/Mysqli/MysqliStatement.php:141 at Joomla\Database\Mysqli\MysqliStatement->__construct(object(mysqli), 'SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component`FROM `j54f3_menu` AS `m`LEFT JOIN `j54f3_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id`WHERE ((`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= ?)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= ?)ORDER BY `m`.`lft`') (/home/phasmids/public_html/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:1089) at Joomla\Database\Mysqli\MysqliDriver->prepareStatement('SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component`FROM `j54f3_menu` AS `m`LEFT JOIN `j54f3_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id`WHERE ((`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2)ORDER BY `m`.`lft`') (/home/phasmids/public_html/libraries/vendor/joomla/database/src/DatabaseDriver.php:1900) at Joomla\Database\DatabaseDriver->setQuery(object(MysqliQuery)) (/home/phasmids/public_html/libraries/src/Menu/SiteMenu.php:166) at Joomla\CMS\Menu\SiteMenu->Joomla\CMS\Menu\{closure}() (/home/phasmids/public_html/libraries/src/Cache/Controller/CallbackController.php:51) at Joomla\CMS\Cache\Controller\CallbackController->get(object(Closure), array(), 'd17e8e13b99b4d9bf23a7d0b83a466c3', false) (/home/phasmids/public_html/libraries/src/Menu/SiteMenu.php:179) at Joomla\CMS\Menu\SiteMenu->load() (/home/phasmids/public_html/libraries/src/Menu/AbstractMenu.php:333) at Joomla\CMS\Menu\AbstractMenu->getMenu() (/home/phasmids/public_html/libraries/src/Menu/AbstractMenu.php:272) at Joomla\CMS\Menu\AbstractMenu->getItems(array('component_id', 'access'), array(10037, array(1, 5)), false) (/home/phasmids/public_html/libraries/src/Menu/SiteMenu.php:257) at Joomla\CMS\Menu\SiteMenu->getItems(array('component_id', 'access'), array(10037, array(1, 5))) (/home/phasmids/public_html/components/com_osmembership/helper/route.php:466) at OSMembershipHelperRoute::getMenuItems('*') (/home/phasmids/public_html/components/com_osmembership/helper/route.php:421) at OSMembershipHelperRoute::buildLookup('*') (/home/phasmids/public_html/components/com_osmembership/helper/route.php:353) at OSMembershipHelperRoute::findItem(array('plans' => array(1), 'categories' => array(1))) (/home/phasmids/public_html/components/com_osmembership/helper/helper.php:3888) at OSMembershipHelper::getRestrictionRedirectUrl(array(1, 2, 3)) (/home/phasmids/public_html/components/com_osmembership/helper/helper.php:158) at OSMembershipHelper::callOverridableHelperMethod('Helper', 'getRestrictionRedirectUrl', array(array(1, 2, 3))) (/home/phasmids/public_html/components/com_osmembership/helper/helper.php:3910) at OSMembershipHelper::getPluginRestrictionRedirectUrl(object(Registry), array(1, 2, 3)) (/home/phasmids/public_html/components/com_osmembership/helper/helper.php:158) at OSMembershipHelper::callOverridableHelperMethod('Helper', 'getPluginRestrictionRedirectUrl', array(object(Registry), array(1, 2, 3))) (/home/phasmids/public_html/plugins/system/osmembershipurls/osmembershipurls.php:239) at plgSystemOSMembershipUrls->onAfterInitialise() (/home/phasmids/public_html/libraries/src/Plugin/CMSPlugin.php:289) at Joomla\CMS\Plugin\CMSPlugin->Joomla\CMS\Plugin\{closure}(object(Event)) (/home/phasmids/public_html/libraries/vendor/joomla/event/src/Dispatcher.php:486) at Joomla\Event\Dispatcher->dispatch('onAfterInitialise', object(Event)) (/home/phasmids/public_html/libraries/src/Application/EventAware.php:111) at Joomla\CMS\Application\WebApplication->triggerEvent('onAfterInitialise') (/home/phasmids/public_html/libraries/src/Application/CMSApplication.php:745) at Joomla\CMS\Application\CMSApplication->initialiseApp(array('language' => 'en-GB')) (/home/phasmids/public_html/libraries/src/Application/SiteApplication.php:635) at Joomla\CMS\Application\SiteApplication->initialiseApp() (/home/phasmids/public_html/libraries/src/Application/SiteApplication.php:226) at Joomla\CMS\Application\SiteApplication->doExecute() (/home/phasmids/public_html/libraries/src/Application/CMSApplication.php:293) at Joomla\CMS\Application\CMSApplication->execute() (/home/phasmids/public_html/includes/app.php:61) at require_once('/home/phasmids/public_html/includes/app.php') (/home/phasmids/public_html/index.php:32) |