Joomla будет устанавливать _JEXEC только когда вы просматриваете свой сайт через index.php.Другими словами, Joomla не будет ничего делать с файлами, которые находятся «вне» Joomla._JEXEC не будет установлен и база данных не будет подключена.
Чтобы решить эту проблему, я бы добавил страницу Joomla, чтобы база данных была загружена:
<?php
ob_start();
require 'index.php';
ob_end_clean();
// Rating code
?>
Этот кодвключает домашнюю страницу вашего сайта и использует буферизацию вывода , чтобы фактически не выводить ваш сайт.Вам не нужно проверять _JEXEC, потому что единственная причина, по которой он используется, - убедиться, что кто-то не имеет прямого доступа к файлу, не пройдя через Joomla.В вашем случае _JEXEC не имеет значения.
Чтобы сделать ваш скрипт быстрее, замените index.php ссылкой на внутреннюю страницу с минимальным содержанием.Домашние страницы, как правило, медленнее, чем внутренняя страница.
Я не проверял этот код, но он должен работать.