Новости Joomla

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

Яндекс выпустил инструмент Видимость сайта в Алисе AI.

Яндекс выпустил инструмент Видимость сайта в Алисе AI.

С тех пор, как в поисковиках появились нейроответы ИИ, трафик на сайты стал гораздо меньше, так как пользователь стал получать информацию непосредственно на странице поисковика без перехода на сайт. Но при генерации ответа ИИ указывает источники - ссылки на сайты, информация которых была использована для генерации ответа.

Долгое время у всех был немой вопрос: "Как же теперь оценивать эффективность сайта?". Теперь этот на этот вопрос отчасти отвечает новый инструмент аналитики.
Процитируем справку Яндекса по инструменту:
На запросы пользователей в Поиске может отвечать Алиса AI. Ответы появляются в поисковой выдаче, в объектных ответах и на отдельной вкладке Поиска. В них чаще всего упоминаются страницы сайтов, на которые Алиса AI опиралась при подготовке ответа.

С помощью инструмента Видимость сайта в Алисе AI в Яндекс Вебмастере вы можете:
- узнать долю упоминаний сайта среди источников в ответах Алисы AI в Поиске и отследить динамику изменений;
- посмотреть примеры запросов, по которым страницы сайта показываются в ответах Алисы AI;
- посмотреть примеры сайтов той же тематики, которые часто упоминаются в генеративной выдаче.
Данные отображаются за последние 3 месяца и обновляются каждую неделю.

Статистика собирается только по тем запросам, по которым ваш сайт уже находится достаточно высоко в поисковой выдаче. Это позволяет анализировать видимость именно в той нише, где вы заинтересованы в продвижении, и избегать «размытия» по малозначимым для вас запросам.

Кроме того, такой подход обусловлен работой Алисы AI: она строит ответ с опорой на самые релевантные, информативные и качественные страницы, которые обычно занимают высокие позиции в Поиске.

Чтобы увидеть статистику вашего сайта в меню Яндекс.Вебмастера перейдите в раздел "Эффективность" и далее в "Показы сайта в Алисе AI".

В начале февраля 2026г. был вебинар с Михаилом Сливинским - амбассадором Поиска Яндекса, и в рамках вебинара была озвучена просьба сделать такой инструмент. Скорее всего разработка на тот момент уже велась, потому что от просьбы до релиза прошло около 2-х месяцев. В любом случае хорошо, что такая статистика появилась.

Показы сайта в Алисе AI в вашем Яндекс,Вебмастере.

@joomlafeed

👩‍💻 ИИ-админ для Joomla ближе, чем вы думаете: Joomla MCP.

👩‍💻 ИИ-админ для Joomla ближе, чем вы думаете: Joomla MCP.

В февральском номере Joomla Community Magazine в статье Evolving Joomla - Joomla CMS MCP Server: Opening the Door to AI-Powered Administration рассказывается о работе команды разработчиков над внедрением в ядро Joomla MCP-сервера.

Что такое MCP-сервер?
Последние годы всех захватывает бум ИИ-технологий. Появились ИИ-агенты - программы, устанавливаемые на сервер или компьютер, которые получают от вас запрос или задачу в человеческом виде и могут выполнять действия с файлами, ходить по сайтам, создавать сайты, программировать и т.д. Люди используют ИИ-агентов в самых разных ситуациях: от написания и проверки кода (даже там, где язык программирования не знаете совсем) до планирования путешествий и бронирования гостиницы.

ИИ-агенты могут использовать различные программные инструменты по протоколу Model Context Protocol (MCP). Для этого разработчик программы должен внедрить MCP в свой продукт или сервис. Так, например, ваш ИИ-агент может ходить по сайтам через браузер и собирать нужную информацию, управляя браузером через MCP-сервер. Или использовать функционал IDE PHP Storm для написания кода, сбора и отладки ошибок, использовать поиск PHP Storm по кодовой базе, а не простой текстовый поиск по файлам. MCP предоставляет набор функций для полноценного управления программным обеспечением.

В случае с Joomla, сервер MCP может предоставить администраторам следующие возможности:
- Автоматическое создание категорий, материалов и меню на основе карты сайта или PDF-файла.
- Создавайть SEO-оптимизированные заголовки и метаописания в пакетном режиме.
- Обновлять расширения на нескольких сайтах одновременно
- Создание посадочные страницы.

Важно отметить, что сервер MCP не задумывался как функция, доступная только «супер-администраторам». Цель инициативы — создать решение, которое будет простым в настройке, маломощным и доступным для широкого круга пользователей.

В процессе разработки точка входа Joomla (аналогично Site, Administrator, Api, Cli), которая будет работать с Streamable HTTP, необходимым для MCP. Аутентификация пока что предполагается на токенах, но затем планируется создание универсального OAuth-сервера для Joomla.
Фактические возможности MCP — инструменты, ресурсы и подсказки — реализованы в виде плагинов для обеспечения расширяемости. Таким образом ожидаем, что и сторонние разработчики смогут создавать MCP-плагины для внедрения поддержки своих расширений Joomla для работы с ИИ.

@joomlafeed

0 Пользователей и 1 Гость просматривают эту тему.
  • 33 Ответов
  • 70999 Просмотров
*

Mirotvoretz

  • Захожу иногда
  • 65
  • 0 / 0
Вот такая ошибка вылетает при установке нового шаблона. Версия Joomla - 2.5.4.

Цитировать
Fatal error: Call to a member function setDebug() on a non-object in Z:\home\localhost\www\sitename\libraries\joomla\installer\adapters\template.php on line 543

Уже и денвер переустановил и саму CMS - ума не приложу, в чём проблема... Если кто-нить сталкивался с аналогичным, подскажите куда копать..
*

VIPxaker

  • Новичок
  • 1
  • 0 / 0
*

Mirotvoretz

  • Захожу иногда
  • 65
  • 0 / 0
Тоже думаю, что дело в обновлённой версии Joomla - ведь шаблончик прекрасно ставился на 2.5.3. Интересно, когда исправят эту ошибку? А сайт пока что развернул на сандартном шаблоне, что не есть гуд.

..... И ведь всё-таки должно же быть решение?

P.S.  :o А можно ли откатить Joomla 2.5.4 до 2.5.3?  
« Последнее редактирование: 12.04.2012, 17:27:25 от Mirotvoretz »
*

dinox

  • Захожу иногда
  • 235
  • 42 / 0
  • Чего-то здесь не хватает...
Есть такое простое как двери решение :)

в файле site.ru\libraries\joomla\installer\adapters\template.php сразу после:
Код
public function discover_install()
{
Добавить:
Код
$lang = JFactory::getLanguage();

И будет всем счастье))))
« Последнее редактирование: 12.04.2012, 20:11:28 от dinox »
Дай каждому дню шанс стать самым прекрасным в твоей жизни!
Ждем когда microsoft.com перейдет на Joomla!
*

Mirotvoretz

  • Захожу иногда
  • 65
  • 0 / 0
ААА! Есс!!
dinox, спасибище огромное! Шаблончик встал - как родной)

Не пояснишь ещё смысл этого кода?
Цитировать
$lang = JFactory::getLanguage();
Это недоработка Joomla? Ведь шаблоны должны устанавливаться по идее без правки исходного кода.
*

dinox

  • Захожу иногда
  • 235
  • 42 / 0
  • Чего-то здесь не хватает...
ААА! Есс!!
dinox, спасибище огромное! Шаблончик встал - как родной)

Не пояснишь ещё смысл этого кода?  Это недоработка Joomla? Ведь шаблоны должны устанавливаться по идее без правки исходного кода.
Если интересно посмотри различия этого файла в версиях 2.5.3 и 2.5.4

В файле версии 2.5.4 в строке 543 идет присвоение переменной:  $debug = $lang->setDebug(false); но переменная $lang не объявлена в данной функции и вот строкой $lang = JFactory::getLanguage(); мы объявляем данную переменную. Да я бы сказал это недоработка новой версии)))
Дай каждому дню шанс стать самым прекрасным в твоей жизни!
Ждем когда microsoft.com перейдет на Joomla!
*

Mirotvoretz

  • Захожу иногда
  • 65
  • 0 / 0
Да уж, чтобы вылавливать такие нюансы, нужно обладать большими знаниями, чем есть у меня. Зато есть к чему стремиться) Ещё раз спасибо!
*

SK

  • Живу я здесь
  • 2155
  • 164 / 0
Наткнулся на эту тему и не понял.
По этим сообщениям понял, что на версию 2.5.4 нельзя поставить новый шаблон - сильно озадачился и решил проверить.
Скачал из инета один из фришных шаблонов, т.е. некоммерческих.
Поставил его через Менеджер расширений - все нормально, ни каких ошибок.
Или речь здесь идет о другом?
*

dinox

  • Захожу иногда
  • 235
  • 42 / 0
  • Чего-то здесь не хватает...
Речь идет об установке шаблона через Менеджер расширений: Поиск и при нахождении шаблона начинаешь его устанавливать и вот тогда и ошибочка :)
Дай каждому дню шанс стать самым прекрасным в твоей жизни!
Ждем когда microsoft.com перейдет на Joomla!
*

skitskis

  • Захожу иногда
  • 62
  • 0 / 0
Может кому поможет!
Я решил эту проблему следующим образом.
Взял код из Joomla 2.5.3 по пути   имя_сайта\libraries\joomla\installer\adapters\template.php
и вставил его по аналогичному пути в Joomla 2.5.4
все встало сразу нормально!

Вот сам код:
Код
<?php
/**
 * @package     Joomla.Platform
 * @subpackage  Installer
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

jimport('joomla.installer.extension');
jimport('joomla.base.adapterinstance');

/**
 * Template installer
 *
 * @package     Joomla.Platform
 * @subpackage  Installer
 * @since       11.1
 */
class JInstallerTemplate extends JAdapterInstance
{
protected $name = null;

protected $element = null;

protected $route = 'install';

/**
* Custom loadLanguage method
*
* @param   string  $path  The path where to find language files.
*
* @return  JInstallerTemplate
*
* @since   11.1
*/
public function loadLanguage($path = null)
{
$source = $this->parent->getPath('source');

if (!$source)
{
$this->parent
->setPath(
'source',
($this->parent->extension->client_id ? JPATH_ADMINISTRATOR : JPATH_SITE). '/templates/' . $this->parent->extension->element
);
}

$clientId = isset($this->parent->extension)? $this->parent->extension->client_id : 0;
$this->manifest = $this->parent->getManifest();
$name = strtolower(JFilterInput::getInstance()->clean((string) $this->manifest->name, 'cmd'));
$client = (string) $this->manifest->attributes()->client;

// Load administrator language if not set.
if (!$client)
{
$client = 'ADMINISTRATOR';
}

$extension = "tpl_$name";
$lang = JFactory::getLanguage();
$source = $path ? $path : ($this->parent->extension->client_id ? JPATH_ADMINISTRATOR : JPATH_SITE). '/templates/' . $name;
$lang->load($extension . '.sys', $source, null, false, false)
|| $lang->load($extension . '.sys', constant('JPATH_' . strtoupper($client)), null, false, false)
|| $lang->load($extension . '.sys', $source, $lang->getDefault(), false, false)
|| $lang->load($extension . '.sys', constant('JPATH_' . strtoupper($client)), $lang->getDefault(), false, false);
}

/**
* Custom install method
*
* @return  boolean  True on success
*
* @since   11.1
*/
public function install()
{
$lang = JFactory::getLanguage();
$xml = $this->parent->getManifest();

// Get the client application target
if ($cname = (string) $xml->attributes()->client)
{
// Attempt to map the client to a base path
$client = JApplicationHelper::getClientInfo($cname, true);
if ($client === false)
{
$this->parent->abort(JText::sprintf('JLIB_INSTALLER_ABORT_TPL_INSTALL_UNKNOWN_CLIENT', $cname));
return false;
}
$basePath = $client->path;
$clientId = $client->id;
}
else
{
// No client attribute was found so we assume the site as the client
$cname = 'site';
$basePath = JPATH_SITE;
$clientId = 0;
}

// Set the extension's name
$name = JFilterInput::getInstance()->clean((string) $xml->name, 'cmd');

$element = strtolower(str_replace(" ", "_", $name));
$this->set('name', $name);
$this->set('element', $element);

$db = $this->parent->getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName('extension_id'));
$query->from($db->quoteName('#__extensions'));
$query->where($db->quoteName('type'). ' = ' . $db->quote('template'));
$query->where($db->quoteName('element'). ' = ' . $element);
$id = $db->loadResult();

// Set the template root path
$this->parent->setPath('extension_root', $basePath . '/templates/' . $element);

// if it's on the fs...
if (file_exists($this->parent->getPath('extension_root')) && (!$this->parent->getOverwrite() || $this->parent->getUpgrade()))
{
$updateElement = $xml->update;
// Upgrade manually set or
// Update function available or
// Update tag detected
if ($this->parent->getUpgrade() || ($this->parent->manifestClass && method_exists($this->parent->manifestClass, 'update'))
|| is_a($updateElement, 'JXMLElement'))
{
// Force this one
$this->parent->setOverwrite(true);
$this->parent->setUpgrade(true);
if ($id)
{
// if there is a matching extension mark this as an update; semantics really
$this->route = 'update';
}
}
elseif (!$this->parent->getOverwrite())
{
// Overwrite is not set
// If we didn't have overwrite set, find an update function or find an update tag so let's call it safe
$this->parent
->abort(
JText::sprintf(
'JLIB_INSTALLER_ABORT_PLG_INSTALL_DIRECTORY', JText::_('JLIB_INSTALLER_' . $this->route),
$this->parent->getPath('extension_root')
)
);
return false;
}
}

/*
* If the template directory already exists, then we will assume that the template is already
* installed or another template is using that directory.
*/
if (file_exists($this->parent->getPath('extension_root')) && !$this->parent->getOverwrite())
{
JError::raiseWarning(
100,
JText::sprintf('JLIB_INSTALLER_ABORT_TPL_INSTALL_ANOTHER_TEMPLATE_USING_DIRECTORY', $this->parent->getPath('extension_root'))
);
return false;
}

// If the template directory does not exist, let's create it
$created = false;
if (!file_exists($this->parent->getPath('extension_root')))
{
if (!$created = JFolder::create($this->parent->getPath('extension_root')))
{
$this->parent
->abort(JText::sprintf('JLIB_INSTALLER_ABORT_TPL_INSTALL_FAILED_CREATE_DIRECTORY', $this->parent->getPath('extension_root')));

return false;
}
}

// If we created the template directory and will want to remove it if we have to roll back
// the installation, let's add it to the installation step stack
if ($created)
{
$this->parent->pushStep(array('type' => 'folder', 'path' => $this->parent->getPath('extension_root')));
}

// Copy all the necessary files
if ($this->parent->parseFiles($xml->files, -1) === false)
{
// Install failed, rollback changes
$this->parent->abort();

return false;
}

if ($this->parent->parseFiles($xml->images, -1) === false)
{
// Install failed, rollback changes
$this->parent->abort();

return false;
}

if ($this->parent->parseFiles($xml->css, -1) === false)
{
// Install failed, rollback changes
$this->parent->abort();

return false;
}

// Parse optional tags
$this->parent->parseMedia($xml->media);
$this->parent->parseLanguages($xml->languages, $clientId);

// Get the template description
$this->parent->set('message', JText::_((string) $xml->description));

// Lastly, we will copy the manifest file to its appropriate place.
if (!$this->parent->copyManifest(-1))
{
// Install failed, rollback changes
$this->parent->abort(JText::_('JLIB_INSTALLER_ABORT_TPL_INSTALL_COPY_SETUP'));

return false;
}

// Extension Registration

$row = JTable::getInstance('extension');

if ($this->route == 'update' && $id)
{
$row->load($id);
}
else
{
$row->type = 'template';
$row->element = $this->get('element');
// There is no folder for templates
$row->folder = '';
$row->enabled = 1;
$row->protected = 0;
$row->access = 1;
$row->client_id = $clientId;
$row->params = $this->parent->getParams();
$row->custom_data = ''; // custom data
}
$row->name = $this->get('name'); // name might change in an update
$row->manifest_cache = $this->parent->generateManifestCache();

if (!$row->store())
{
// Install failed, roll back changes
$this->parent->abort(JText::sprintf('JLIB_INSTALLER_ABORT_TPL_INSTALL_ROLLBACK', $db->stderr(true)));

return false;
}

if ($this->route == 'install')
{
//insert record in #__template_styles
$query = $db->getQuery(true);
$query->insert('#__template_styles');
$query->set('template=' . $db->Quote($row->element));
$query->set('client_id=' . $db->Quote($clientId));
$query->set('home=0');
$debug = $lang->setDebug(false);
$query->set('title=' . $db->Quote(JText::sprintf('JLIB_INSTALLER_DEFAULT_STYLE', JText::_($this->get('name')))));
$lang->setDebug($debug);
$query->set('params=' . $db->Quote($row->params));
$db->setQuery($query);
// There is a chance this could fail but we don't care...
$db->query();
}

return $row->get('extension_id');
}

/**
* Custom update method for components
*
* @return  boolean  True on success
*
* @since   11.1
*/
public function update()
{
return $this->install();
}

/**
* Custom uninstall method
*
* @param   integer  $id  The extension ID
*
* @return  boolean  True on success
*
* @since   11.1
*/
public function uninstall($id)
{
// Initialise variables.
$retval = true;

// First order of business will be to load the template object table from the database.
// This should give us the necessary information to proceed.
$row = JTable::getInstance('extension');

if (!$row->load((int) $id) || !strlen($row->element))
{
JError::raiseWarning(100, JText::_('JLIB_INSTALLER_ERROR_TPL_UNINSTALL_ERRORUNKOWNEXTENSION'));
return false;
}

// Is the template we are trying to uninstall a core one?
// Because that is not a good idea...
if ($row->protected)
{
JError::raiseWarning(100, JText::sprintf('JLIB_INSTALLER_ERROR_TPL_UNINSTALL_WARNCORETEMPLATE', $row->name));
return false;
}

$name = $row->element;
$clientId = $row->client_id;

// For a template the id will be the template name which represents the subfolder of the templates folder that the template resides in.
if (!$name)
{
JError::raiseWarning(100, JText::_('JLIB_INSTALLER_ERROR_TPL_UNINSTALL_TEMPLATE_ID_EMPTY'));

return false;
}

// Deny remove default template
$db = $this->parent->getDbo();
$query = 'SELECT COUNT(*) FROM #__template_styles' . ' WHERE home = 1 AND template = ' . $db->Quote($name);
$db->setQuery($query);

if ($db->loadResult()!= 0)
{
JError::raiseWarning(100, JText::_('JLIB_INSTALLER_ERROR_TPL_UNINSTALL_TEMPLATE_DEFAULT'));

return false;
}

// Get the template root path
$client = JApplicationHelper::getClientInfo($clientId);

if (!$client)
{
JError::raiseWarning(100, JText::_('JLIB_INSTALLER_ERROR_TPL_UNINSTALL_INVALID_CLIENT'));
return false;
}

$this->parent->setPath('extension_root', $client->path . '/templates/' . strtolower($name));
$this->parent->setPath('source', $this->parent->getPath('extension_root'));

// We do findManifest to avoid problem when uninstalling a list of extensions: getManifest cache its manifest file
$this->parent->findManifest();
$manifest = $this->parent->getManifest();
if (!($manifest instanceof JXMLElement))
{
// Kill the extension entry
$row->delete($row->extension_id);
unset($row);
// Make sure we delete the folders
JFolder::delete($this->parent->getPath('extension_root'));
JError::raiseWarning(100, JText::_('JLIB_INSTALLER_ERROR_TPL_UNINSTALL_INVALID_NOTFOUND_MANIFEST'));

return false;
}

// Remove files
$this->parent->removeFiles($manifest->media);
$this->parent->removeFiles($manifest->languages, $clientId);

// Delete the template directory
if (JFolder::exists($this->parent->getPath('extension_root')))
{
$retval = JFolder::delete($this->parent->getPath('extension_root'));
}
else
{
JError::raiseWarning(100, JText::_('JLIB_INSTALLER_ERROR_TPL_UNINSTALL_TEMPLATE_DIRECTORY'));
$retval = false;
}

// Set menu that assigned to the template back to default template
$query = 'UPDATE #__menu INNER JOIN #__template_styles' . ' ON #__template_styles.id = #__menu.template_style_id'
. ' SET #__menu.template_style_id = 0' . ' WHERE #__template_styles.template = ' . $db->Quote(strtolower($name))
. ' AND #__template_styles.client_id = ' . $db->Quote($clientId);
$db->setQuery($query);
$db->Query();

$query = 'DELETE FROM #__template_styles' . ' WHERE template = ' . $db->Quote($name). ' AND client_id = ' . $db->Quote($clientId);
$db->setQuery($query);
$db->Query();

$row->delete($row->extension_id);
unset($row);

return $retval;
}

/**
* Discover existing but uninstalled templates
*
* @return  array  JExtensionTable list
*/
public function discover()
{
$results = array();
$site_list = JFolder::folders(JPATH_SITE . '/templates');
$admin_list = JFolder::folders(JPATH_ADMINISTRATOR . '/templates');
$site_info = JApplicationHelper::getClientInfo('site', true);
$admin_info = JApplicationHelper::getClientInfo('administrator', true);

foreach ($site_list as $template)
{
if ($template == 'system')
{
continue;

// Ignore special system template
}
$manifest_details = JApplicationHelper::parseXMLInstallFile(JPATH_SITE . "/templates/$template/templateDetails.xml");
$extension = JTable::getInstance('extension');
$extension->set('type', 'template');
$extension->set('client_id', $site_info->id);
$extension->set('element', $template);
$extension->set('name', $template);
$extension->set('state', -1);
$extension->set('manifest_cache', json_encode($manifest_details));
$results[] = $extension;
}

foreach ($admin_list as $template)
{
if ($template == 'system')
{
continue;

// Ignore special system template
}

$manifest_details = JApplicationHelper::parseXMLInstallFile(JPATH_ADMINISTRATOR . "/templates/$template/templateDetails.xml");
$extension = JTable::getInstance('extension');
$extension->set('type', 'template');
$extension->set('client_id', $admin_info->id);
$extension->set('element', $template);
$extension->set('name', $template);
$extension->set('state', -1);
$extension->set('manifest_cache', json_encode($manifest_details));
$results[] = $extension;
}

return $results;
}

/**
* Discover_install
* Perform an install for a discovered extension
*
* @return boolean
*
* @since 11.1
*/
public function discover_install()
{
// Templates are one of the easiest
// If its not in the extensions table we just add it
$client = JApplicationHelper::getClientInfo($this->parent->extension->client_id);
$manifestPath = $client->path . '/templates/' . $this->parent->extension->element . '/templateDetails.xml';
$this->parent->manifest = $this->parent->isManifest($manifestPath);
$description = (string) $this->parent->manifest->description;

if ($description)
{
$this->parent->set('message', JText::_($description));
}
else
{
$this->parent->set('message', '');
}

$this->parent->setPath('manifest', $manifestPath);
$manifest_details = JApplicationHelper::parseXMLInstallFile($this->parent->getPath('manifest'));
$this->parent->extension->manifest_cache = json_encode($manifest_details);
$this->parent->extension->state = 0;
$this->parent->extension->name = $manifest_details['name'];
$this->parent->extension->enabled = 1;

$data = new JObject;

foreach ($manifest_details as $key => $value)
{
$data->set($key, $value);
}

$this->parent->extension->params = $this->parent->getParams();

if ($this->parent->extension->store())
{
//insert record in #__template_styles
$db = $this->parent->getDbo();
$query = $db->getQuery(true);
$query->insert('#__template_styles');
$query->set('template=' . $db->Quote($this->parent->extension->element));
$query->set('client_id=' . $db->Quote($this->parent->extension->client_id));
$query->set('home=0');
$query->set('title=' . $db->Quote(JText::sprintf('JLIB_INSTALLER_DEFAULT_STYLE', $this->parent->extension->name)));
$query->set('params=' . $db->Quote($this->parent->extension->params));
$db->setQuery($query);
$db->query();

return $this->parent->extension->get('extension_id');
}
else
{
JError::raiseWarning(101, JText::_('JLIB_INSTALLER_ERROR_TPL_DISCOVER_STORE_DETAILS'));

return false;
}
}

/**
* Refreshes the extension table cache
*
* @return  boolean  Result of operation, true if updated, false on failure
*
* @since   11.1
*/
public function refreshManifestCache()
{
// Need to find to find where the XML file is since we don't store this normally.
$client = JApplicationHelper::getClientInfo($this->parent->extension->client_id);
$manifestPath = $client->path . '/templates/' . $this->parent->extension->element . '/templateDetails.xml';
$this->parent->manifest = $this->parent->isManifest($manifestPath);
$this->parent->setPath('manifest', $manifestPath);

$manifest_details = JApplicationHelper::parseXMLInstallFile($this->parent->getPath('manifest'));
$this->parent->extension->manifest_cache = json_encode($manifest_details);
$this->parent->extension->name = $manifest_details['name'];

try
{
return $this->parent->extension->store();
}
catch (JException $e)
{
JError::raiseWarning(101, JText::_('JLIB_INSTALLER_ERROR_TPL_REFRESH_MANIFEST_CACHE'));
return false;
}
}
}

*

Kintim

  • Осваиваюсь на форуме
  • 39
  • 1 / 0
Респект тебе!!  :D
Помогло... а то долго ни чего сделать не мог!
СПАСИБО ! *DRINK*
*

dinox

  • Захожу иногда
  • 235
  • 42 / 0
  • Чего-то здесь не хватает...
Может кому поможет!
Я решил эту проблему следующим образом.
Взял код из Joomla 2.5.3 по пути   имя_сайта\libraries\joomla\installer\adapters\template.php
и вставил его по аналогичному пути в Joomla 2.5.4
все встало сразу нормально!
Может и помогло но ты скорее всего убил те наработки которые были добавлены разработчиками в этот файл в версии 2.5.4 и когда-нибудь это может создать дополнительные ошибки
Дай каждому дню шанс стать самым прекрасным в твоей жизни!
Ждем когда microsoft.com перейдет на Joomla!
*

skitskis

  • Захожу иногда
  • 62
  • 0 / 0
Может и помогло но ты скорее всего убил те наработки которые были добавлены разработчиками в этот файл в версии 2.5.4 и когда-нибудь это может создать дополнительные ошибки

Я не пробовал, но можно попробовать обратно вставить код из Joomla 2.5.4.... я уверен на 70% что работа не измениться.
Ну а так при обновление код должен встать на место...)
*

xchesh

  • Захожу иногда
  • 277
  • 10 / 1
Код
Fatal error: Call to a member function attributes() on a non-object in W:\domains\test\libraries\joomla\installer\adapters\template.php on line 55

Не могу понять в чем проблема. М.б. подскажете?

З.Ы.: привожу код 55 строки, если у "гуру" нету под рукой template.php

Код
$client = (string) $this->manifest->attributes()->client;

Приятно поговорить с умным человеком, не поверите  ;D
Вопрос уже решен, самостоятельно. Оказывается это ошибка из-за шаблона возникала.
Вывод: внимательно следите за тем, что творите и проверяйте уже сделанное.
« Последнее редактирование: 28.05.2012, 14:39:25 от xchesh »
*

zir05

  • Новичок
  • 1
  • 0 / 0
Спасибо! Работает - помогло!
*

xchesh

  • Захожу иногда
  • 277
  • 10 / 1
У меня появился интересный баг. Сначала попытался ставить шаблон, без исправления template.php. Никак не мог понять почему выбивает FATAL ERROR. И тут вспомнил что видел где-то тему такую.
Исправил строку как нужно в template.php. Обновил страницу. Очистил кэш. Нашел шаблон. Установил. Установка прошла успешно. НО!
Появилось две строчки в менеджере шаблонов с одним и тем же шаблоном! :) id одинаковые, все одинаковое, а когда ставлю один из них по-умолчанию - ставятся оба.
Собственно мне не мешает это, но все равно интересно как получилось.
P.S:Удалить соответственно ни один из них так же не удается.
P.S.S:Если дублировать - так же происходит двойное дублирование :)
P.S.S.S: В менеждере шаблонов: шаблоны отображаются все попытки установить шаблончики до изменения template.php. Как-то немного они мешают. М.б. что-то нужно удалить, дабы они там не отображались?
« Последнее редактирование: 07.06.2012, 17:46:32 от xchesh »
*

Валерий35

  • Новичок
  • 1
  • 0 / 0
Попытался  сегодня поставить в Joomla 2.5 шаблон ZAARA  по инстукции на сайте, после распаковки шаблона в директорию Templates уже не могу войти в панель управления, сообщение страница отсуттствует код 404, понимаю что наверно надо прописать что-то, но где и что не знаю, помогите начинающему
*

djoni007

  • Новичок
  • 1
  • 0 / 0
Ребят! аналогичный вариант развития событий только у меня судя по всему другая ошибка, подскажите пожалуйста как решить!
Вот сама ошибка: Fatal error: Call to a member function get() on a non-object in Z:\home\localhost\www\best\templates\beez_20\index.php on line 121

А когда просто пытаюсь установить через стандартный установщик, то почему то все надписи на тестовой страничке меняются на иероглифы

Warning: POST Content-Length of 12172314 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent in Z:\home\localhost\www\test\libraries\joomla\session\session.php on line 532
« Последнее редактирование: 28.06.2013, 17:04:25 от djoni007 »
*

Валентин

  • Новичок
  • 1
  • 0 / 0
Помогите пожалуйста.На какую именно строчку вставлять $client = (string) $this->manifest->attributes()->client;
Или скиньте мне пожалуйста готовый файл template.php с прописанной строчкой.спасибо
*

ATHEDGE

  • Новичок
  • 1
  • 0 / 0
Доброго времени суток! Востанавливал сайт из бэкапа, появилась ошибка - Call to a member function loadMenu() on a non-object in /home/cp013843/public_html/imperiadveri/templates/gk_yourshop/layouts/blocks/nav.php Я новичок, ну ни как не могу решить задачу! Помогите пожалуйстазз!
*

SVETLANAM

  • Новичок
  • 9
  • 0 / 0
здравствуйте. при загрузки шаблона выбивает ошибка
POST Content-Length of 19074220 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent in Z:\home\mansyur\www\libraries\joomla\session\session.php on line 658

я мало в этом разбираюсь........... подскажите что делать
*

taco3

  • Осваиваюсь на форуме
  • 12
  • 0 / 0
 Joomla!, 3.2.2.  ставлю шаблон  JS_Shaper_MegaDeal_J25_J3x    все установился смотрю позиции выдает такую ошибку  Fatal error: Call to a member function Header() on a non-object in Z:\home\localhost\www\akwas\templates\shaper_megadeal\index.php on line 24
*

juvemen

  • Захожу иногда
  • 97
  • 0 / 0
Помогите решить проблему Joomla 2.5.9
При установки шаблона выдает такие ошибки см. скрин   http://floomby.ru/s2/T4V77q/full/     http://floomby.ru/s2/T4V7yU/full/
Как решить проблему помогите!
*

alexandr2000

  • Новичок
  • 2
  • 0 / 0
А что может быть вот это, версия PHP нормальная 5.3 Fatal error: Call to a member function attributes() on a non-object in /home/users/___/___/domains/uisun.americanmoto.ru/libraries/joomla/installer/adapters/template.php on line 55
Помогите с этим - уже хотелось бы понять...
*

alexandr2000

  • Новичок
  • 2
  • 0 / 0
Может я не знаю - просто синтаксис у 5.3 другой?
*

Rumanu

  • Новичок
  • 3
  • 0 / 0
Joomla!, 3.2.2.  ставлю шаблон  JS_Shaper_MegaDeal_J25_J3x    все установился смотрю позиции выдает такую ошибку  Fatal error: Call to a member function Header() on a non-object in Z:\home\localhost\www\akwas\templates\shaper_megadeal\index.php on line 24

Уже нашел решение данной проблемы? ато аналогичная ситуация. :(
*

Garantovsk

  • Новичок
  • 3
  • 0 / 0
Приветствую.
Запустил Денвер. Установил Joomla 3.4.3. Нашёл шаблон
Спойлер
[свернуть]
(совместим с J. 2.5-3.x).
Получил на сайте: Fatal error: Call to a member function Header() on a non-object in Z:\home\localhost\www\мойсайт\templates\shaper_megadeal\index.php on line 22
Собственно зашёл/про4ёл эту строку
$this->helix->Header()
Весь index.php
Спойлер
[свернуть]
Помощи прошу.
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Судя по коду index.php там должен подключаться какой-то системный плагин этого самого helix framework.

Зайдите в менеджер плагинов, группу system - посмотрите, может его надо опубликовать.
А может его и нет совсем.


UPD: Понятно что шаблон бесплатный, но

Код
<div style="position:absolute;top:0;left:-9999px;">
    <a href="http://joomla4ever.ru/joomshaper/2131-js-shaper-megadeal.html" title="JS MegaDeal - шаблон joomla" target="_blank">JS MegaDeal - шаблон joomla</a>
    <a href="http://paper-life.ru/" title="Оригами" target="_blank">Оригами</a>
</div>

А потом народ спрашивает что за Оригами у меня на сайте
« Последнее редактирование: 29.08.2015, 19:24:34 от SDKiller »
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
UPD: Понятно что шаблон бесплатный, но

Код
<div style="position:absolute;top:0;left:-9999px;">
    <a href="http://joomla4ever.ru/joomshaper/2131-js-shaper-megadeal.html" title="JS MegaDeal - шаблон joomla" target="_blank">JS MegaDeal - шаблон joomla</a>
    <a href="http://paper-life.ru/" title="Оригами" target="_blank">Оригами</a>
</div>

А потом народ спрашивает что за Оригами у меня на сайте

UPD2

А, он даже и не бесплатный оказывается )
Кнопка download ведет на подписку.
*

Garantovsk

  • Новичок
  • 3
  • 0 / 0
А, он даже и не бесплатный оказывается )
Кнопка download ведет на подписку.
Скачал с левого сайта (фанатов оригами по-ходу). Ссылку с официального сбросил   дабы сторонний ресурс не рекламировать.
Проще другой шаблон  найти.  Спасибо.
ПС   ну почему нет кнопки "сохранить" в Joomla..
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

На локал сервере страницы сайта без шаблона, CSS и картинок

Автор Fati

Ответов: 0
Просмотров: 3025
Последний ответ 15.06.2025, 11:57:45
от Fati
Изменение шаблона Joomla! 2.5.24

Автор SecondPC

Ответов: 0
Просмотров: 6631
Последний ответ 26.03.2021, 18:09:33
от SecondPC
Руководство - создание шаблона для Joomla 2.5

Автор dynamit

Ответов: 6
Просмотров: 33756
Последний ответ 02.02.2020, 22:28:15
от AlinaBut
Ошибка в админке шаблоны

Автор ValeryL

Ответов: 6
Просмотров: 3607
Последний ответ 04.07.2017, 17:31:13
от 55677@
При установки шаблона ошибка <<HTTP 500 (Internal Server Error)>>

Автор nekitko

Ответов: 16
Просмотров: 17799
Последний ответ 21.06.2017, 20:39:11
от bonny