Новости 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 Гость просматривают эту тему.
  • 375 Ответов
  • 178154 Просмотров
*

era

  • Администратор
  • 1588
  • 392 / 5
  • В туалете лучше быть пользователем, чем админом.
Re: Документация по компонентам
« Ответ #180 : 26.05.2006, 07:44:48 »
Что-то вроде:
SELECT
  ID,
  NOW() - POLE_V_TABLICE as RAZNICA,
  chto-to eshe
FROM
  TABLE
WHERE
  katoe-to uzstovie
ORDER BY
  POLE_V_TABLICE


И получица что разница будет записана в поле RAZNICA

Re: Документация по компонентам
« Ответ #181 : 26.05.2006, 08:19:25 »
Что-то вроде:
SELECT
  ID,
  NOW() - POLE_V_TABLICE as RAZNICA,
  chto-to eshe
FROM
  TABLE
WHERE
  katoe-to uzstovie
ORDER BY
  POLE_V_TABLICE


И получица что разница будет записана в поле RAZNICA

Угу, хороший пример! Спасибо пригодится. Только вот Это без PERIOD_DIFF. И дата в секундах ее потом править все равно на рхр придется)) Можно конечно и в самом запросе как-нибудь указать..вывод дней..месяцев. Только вот у меня в Джумле не проходит такой запрос: SELECT DATE_FORMAT, я уже сталкивался с такой проблемой, о ней писал где-то выше. А так пример мне понравился...сам бы еще не скоро доехал..))

Re: Документация по компонентам
« Ответ #182 : 26.05.2006, 08:47:03 »
Да так и есть, и память вам не изменяет, именно в днях я и хотел. Вот тогда зачем Вы мне предложили PERIOD_DIFF? Ну не в этом суть я же говорил что сравнить нужно более 300 строк в которых не одна и таже дата, а все разные и получается что текущую дату нужно сравнить с тремя сотнями разных дат. Вот покажите мне пример запроса в базу (SELECT PERIOD_DIFF), без помощи рнр чтобы запрос вернул 300 значений - разностей дат.
Вам нужен с PERIOD_DIFF или DATEDIFF? Вы определились?
а так запрсо пройтейший:

SELECT *, DATEDIFF(NOW(),datefield) AS different
FROM sometable
WHERE 1

Вернет хоть 3000 результирующих записей ;)

Re: Документация по компонентам
« Ответ #183 : 26.05.2006, 09:15:25 »
Вам нужен с PERIOD_DIFF или DATEDIFF? Вы определились?
а так запрсо пройтейший:

SELECT *, DATEDIFF(NOW(),datefield) AS different
FROM sometable
WHERE 1

Вернет хоть 3000 результирующих записей ;)

А тут и определятся нечего. Я ж написал..вот так и есть. Я возьму этот запрос на заметку, спасибо. Просто DATEDIFF не понимает мой мускуть..очевидно его добавили в поздних версиях. На сайте так и написано:
Цитировать
Added new ADDTIME(), DATE(), DATEDIFF(), LAST_DAY(), MAKEDATE(), MAKETIME(), MICROSECOND(), SUBTIME(), TIME(), TIMEDIFF(), TIMESTAMP(), UTC_DATE(), UTC_TIME(), UTC_TIMESTAMP(), and WEEKOFYEAR() functions.

Просто..теперь буду знать, что и таким запросом можно вывести разницу))

А запрос вида SELECT PERIOD_DIFF( NOW(  ) ,  dropdate)  AS different
FROM table выводит действительно все поля..., просто нужно было записывать как другое поле. Разобрался..))) Еще раз 10Х))

Re: Документация по компонентам
« Ответ #184 : 02.06.2006, 16:00:10 »
Понадобилось в компонент добавить немного статистики. Вопрос таков:
Как можно взять ссылку сайта с которого ко мне пришли, и "носить" ее по страницам, до тех пор пока пользователь не выполнит определенные действия? Эта ссылка будет добавлятся в базу данных, только если этот пришедший пользователь размещает какое либо оъявление. Если я использую getenv [$HTTP_REFERER], то ссылка записывается с той страницы, с которой отправил пользователь объявление. Если использую $_SERVER['HTTP_REFERER'], то поле в базе вообще пустое...даже вроде как не передает ссылку с другого сайта (выводил эхом - на главной странице пусто). Или быть может..вообще что-то не так делаю? Подозреваю, что нужно каким то образом создавать сессию юзера..и в ней все носить..Вроде как уже создаются сессии пользователей и хранятся в БД...но вот каким образом это можно увязать с моим компонентом?

Re: Документация по компонентам
« Ответ #185 : 02.06.2006, 18:34:44 »
Может есть какие идеи? С чего хотяб начать-то? А то я деже и не знаю в какую сторону глядеть..

Re: Документация по компонентам
« Ответ #186 : 04.06.2006, 02:13:24 »
Помоему все просто при пером посещении пользователя брать у него $_SERVER['HTTP_REFERER'] и записовать в сессию (setUserState) после чего в нужный момент просто брать данные о реферере из сессии (getUserState).
Тоесть сам процесс забора реферера выглядит так:
Код
if (!eregi($_SERVER['HTTP_HOST'], $_SERVER['HTTP_REFERER']))
   $mainframe->setUserState('referer',$_SERVER['HTTP_REFERER']);
*

Pirx

  • Осваиваюсь на форуме
  • 18
  • 2 / 1
  • Too smart to be stupid
Re: Документация по компонентам
« Ответ #187 : 30.06.2006, 21:14:31 »
Хочу задать уточняющий вопрос - где в компоненте искать имя/id залогиненного юзера, в каком объекте оно находится и как получить к нему доступ?

Спасибо.
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #188 : 30.06.2006, 21:45:32 »
$my->id
$my->username
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Pirx

  • Осваиваюсь на форуме
  • 18
  • 2 / 1
  • Too smart to be stupid
Re: Документация по компонентам
« Ответ #189 : 30.06.2006, 21:58:47 »
$my->id
$my->username

Спасибо, хоть пока ждал ответа - сам разобрался :)

На будущее (если у себя бумажку потеряю) есть объект $my
В файле /includes/joomla.php есть такая функция:
Код
function getUser() {
global $database;

$user = new mosUser( $this->_db );

$user->id = intval( $this->_session->userid );
$user->username = $this->_session->username;
$user->usertype = $this->_session->usertype;
$user->gid = intval( $this->_session->gid );

if ($user->id) {
$query = "SELECT params"
. "\n FROM #__users"
. "\n WHERE id = ". intval( $user->id )
;
$database->setQuery( $query );
$params = $database->loadResult();
} else {
$params = '';
}
$user->params = $params;

return $user;
}

В ней определяются все свойства объекта $my, например:
$my->id - ID пользователя
$my->gid - ID группы
$my->usertype - Тип доступа (Registered, Manager, Administrator, SuperAdministrator)
$my->username - Имя пользователя

Для себя добавил следующие фишки, чтобы получить имя пользователя (не логин, а имя) и е-мейл:
Код
		//VXG - added retrieval of name of the user
if ($user->id) {
$query = "SELECT name"
. "\n FROM #__users"
. "\n WHERE id = ". intval( $user->id )
;
$database->setQuery( $query );
$usr_name = $database->loadResult();
} else {
$usr_name = 'Not specified';
}
$user->name = $usr_name;

// VXG - added retrieval of e-mail from DB
if ($user->id) {
$query = "SELECT email"
. "\n FROM #__users"
. "\n WHERE id = ". intval( $user->id )
;
$database->setQuery( $query );
$email = $database->loadResult();
} else {
$email = '';
}
$user->email = $email;

Код вставлять перед строчкой return $user;

Re: Документация по компонентам
« Ответ #190 : 07.07.2006, 07:15:06 »
В моем компоненте есть возможность с данными загружать изображение. Изображение загружается как в AkoGallery. Хочу сделать чтобы пользователь мог загружать 2 или 3 фотки с данными. Подскажите как это можно сделать базируясь на AkoGallery.
И подскажите как можно сделать загрузку фоток как на мейле, то есть там пользователь сначала цепляет фотки а потом отправляет данные (письмо)? Вот как бы сделать чтобы пользователь тоже сначала прицеплял фотки, а потом вводил данные какие ему нужно и отправлял..? У меня есть идея, которая может и не будет работать, добавить 3 поля для выбора фоток, для каждой фотки сделать функцию которая будет уменьшать изображение и тд. Но тогда получается что пользователь вводит данные потом выбирает одну за другой фотки и все это отправляет на сервер. Так я думаю он замучается ждать пока функции обработают фотки, вообщем долго будут уходить данные на сервер. А вот думется если сделать как на мейле, то после загрузки первой фотки, юзер сам будет решать цеплять ему еще фотки или ограничится одной.
Подскажите как и с чего начать? Может кто уже что-нибудь подобное делал?

Re: Документация по компонентам
« Ответ #191 : 20.07.2006, 08:18:13 »
Ребят, подскажите мне вот что: Как устроен механизм сессии, а именно как стартуется сессия, как в нее записать что-либо, как в нужный момент забрать из нее, и все что известно о механизме сессий в Джумле? Хочу разобраться с сессиями, а то боюсь изобрести велосипед)) Заранее спасибо!

Re: Документация по компонентам
« Ответ #192 : 20.07.2006, 14:04:59 »
Никто не знает как работает механизм сессий? Хочу сделать что-то вроде корзины инет-магаза, но не знаю как в Джумле устроен механизм сессий, Выручайте, кто что знает...поделитесь))
*

PyKaB

  • Захожу иногда
  • 88
  • 19 / 13
Re: Документация по компонентам
« Ответ #193 : 20.07.2006, 14:46:32 »
не знаю, но рискну предположить, что все просто, т.к. класс mosSession простой.
class mosSession extends mosDBTable {
        /*** @param database A database connector object */
        function mosSession( &$db )

        /*** @param string Key search for @param mixed Default value if not set @return mixed  */
        function get( $key, $default=null )

        /*** @param string Key to set @param mixed Value to set @return mixed The new value  */
        function set( $key, $value )

        /*** Sets a key from a REQUEST variable, otherwise uses the default @param string The variable key @param string The REQUEST variable name @param mixed The default value @return mixed  */
        function setFromRequest( $key, $varName, $default=null )

        /*** Insert a new row @return boolean  */
        function insert()

        /*** Update an existing row @return boolean    */
        function update( $updateNulls=false ) {

        /*** Generate a unique session id @return string  */
        function generateId()

        /*** @return string The name of the session cookie   */
        function getCookie()

        /*** Purge lapsed sessions @return boolean   */
        function purge( $inc=1800, $and='' )

Re: Документация по компонентам
« Ответ #194 : 20.07.2006, 14:49:08 »
если взглянуть на код класса mosSession можно прейти к выводу что чтобы манипулировать данными сессий в джумле лече станадартынми средствами. Большенство методов mosSession  являются просто обвертками стандартынх пхп функций. За подробностями обратитесь к joomla.php ;)

Re: Документация по компонентам
« Ответ #195 : 20.07.2006, 14:54:09 »
Оке..спасибо!!)) С енглишь у меня туговато..., но как бы не совсем...поэтому думаю, что разберусь..)) В случае чего переспрошу!)
*

PyKaB

  • Захожу иногда
  • 88
  • 19 / 13
Re: Документация по компонентам
« Ответ #196 : 20.07.2006, 15:03:14 »
если взглянуть на код класса mosSession можно прейти к выводу что чтобы манипулировать данными сессий в джумле лече станадартынми средствами. Большенство методов mosSession  являются просто обвертками стандартынх пхп функций. За подробностями обратитесь к joomla.php ;)
ну да - там большинство функций по строчке-две

Re: Документация по компонентам
« Ответ #197 : 23.07.2006, 19:33:33 »
PHPIns!de #16, Декабрь'2005

Тема с обложки
  • Ошибки при использовании Ajax
  • Sajax - реализация Ajax в PHP
  • Ajax и PHP без использования XmlHttpRequest
Идеи
  • Ошибки начинающих TDD-практиков
  • Основы использования PHP для работы с FTP
  • Сборка PHP 5 с драйверами mysql и mysqli одновременно
+Бонус
  • Учебник по созданию компонент Joomla!



Качаем тут: http://phpclub.ru/detail/magazine/2005/12/

Re: Документация по компонентам
« Ответ #198 : 24.07.2006, 01:09:20 »
Если не лень выложите ктонибудь именно эту статейку в любом виде. Буду безмерно благодарен (;
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Документация по компонентам
« Ответ #199 : 24.07.2006, 01:22:47 »
Если не лень выложите ктонибудь именно эту статейку в любом виде. Буду безмерно благодарен (;
если не ошибаюсь, там перевод руководства Joseph L. LeBlanc "The Daily Message Joomla Component Tutorial". и мне кажется, что лучше читать оригинал, чем переводы... Более полезен этого руководства может быть раздел документации на оф. сайте Joomla: http://help.joomla.org/content/section/12/125/ Потому что в нем, уже рассматривается использование шаблонов patTemplate и прочих новшеств, появившихся уже после выхода руководства LeBlanc'а, которое писалось во времена Mambo 4.5.1-4.5.2
« Последнее редактирование: 24.07.2006, 01:26:30 от smart »

Re: Документация по компонентам
« Ответ #200 : 24.07.2006, 02:56:05 »
А ну если это то тотуриал по Daily Mess то я его читал... вышенаписанная просьба больше недействительна.
*

PyKaB

  • Захожу иногда
  • 88
  • 19 / 13
Re: Документация по компонентам
« Ответ #201 : 24.07.2006, 12:05:16 »
А ну если это то тотуриал по Daily Mess то я его читал... вышенаписанная просьба больше недействительна.
именно он

Re: Документация по компонентам
« Ответ #202 : 25.07.2006, 16:03:03 »
Подскажите как заставить работать такую конструкцию, те работать в цикле:

require_once($mosConfig_absolute_path "/administrator/components/com_mycomp/class.mycomp.php");
$a=4;
for (
$s=1$s<=$a$s++) {       
       
$row = new qwery_two ($database);
       if (!
$row->bind($_POST"fig vam!")) {
          echo 
"<script> alert('" $row->getError() . "'); window.history.go(-1); </script>\n";
          exit();
       }
        
$row->ideal=$s;
        
$row->mydate;
        
$row->dropdate;
}

В базу добавляется только последнее значение $s, а нужно чтобы записи добавлялись по порядку от 1 до 4, возможно такое? Или это не так делается? Скрипт приведен примерный, но суть та же)

Re: Документация по компонентам
« Ответ #203 : 25.07.2006, 17:05:53 »
Код
$row->store() 
Невижу... он наверное после цикла у вас стоит...
Вероятно надо слелать так:
Код
require_once($mosConfig_absolute_path . "/administrator/components/com_mycomp/class.mycomp.php");
$a=4;
for ($s=1; $s<=$a; $s++) {       
       $row = new qwery_two ($database);
       if (!$row->bind($_POST, "fig vam!")) {
          echo "<script> alert('" . $row->getError() . "'); window.history.go(-1); </script>\n";
          exit();
       }
        $row->ideal=$s;
        $row->mydate;
        $row->dropdate;
if (!$row->store()) {
mosErrorAlert( $row->getError() );
exit();
}
}
« Последнее редактирование: 25.07.2006, 17:13:32 от smart »

Re: Документация по компонентам
« Ответ #204 : 25.07.2006, 17:17:20 »
Код
$row->store() 
Невижу... он наверное после цикла у вас стоит...
Вероятно надо слелать так:
Хмм..а вот почему-то я без него обходился..Хорошо спасибо, попробую. О результатах дам знать.))

Re: Документация по компонентам
« Ответ #205 : 26.07.2006, 06:32:33 »
pav, спасибо!! Работает! +  ;)
*

oppo

  • Захожу иногда
  • 365
  • 82 / 8
  • ΨΨΨ я - УКРАЇНЕЦЬ
Re: Документация по компонентам
« Ответ #206 : 02.08.2006, 02:33:27 »
значит по выборке значений из базы. у объекта $database есть следующие методы:

$database->query();

$database->loadObject(объект);
$database->loadObjectList();
$database->loadResult();

$database->loadResultArray();

еще есть полезный метод  $database->query_batch(); который позволяет выполнять сразу несколько запросов, разделенных точкой с запятой.

Очень полезная инф. сохранил себе ..
Еще:
$database->getNumRows(); возвращает количество рядов (только для SELECT )

А $database->query_batch(); что то не встречал в примерах ..
*

oppo

  • Захожу иногда
  • 365
  • 82 / 8
  • ΨΨΨ я - УКРАЇНЕЦЬ
Re: Документация по компонентам
« Ответ #207 : 05.08.2006, 22:58:02 »
 
Код
   
$query = "SELECT  `name`,`pass` FROM #__op  WHERE id='".$id."' AND  catid='".$catid."'
........
$acses = $database->loadResultArray();
print_r(array_values ($acses))."<BR>";
Решил попробывать loadResultArray(); - странно печатает из базы только одно значение
тоесть работает как $database->loadResult(); так что должно ?
получается чтоб взять несчастные 2 значения и не гонять foreach нужно использовать
$database->loadObject ($acses)  ;
$name=$acses->name;
« Последнее редактирование: 05.08.2006, 23:22:59 от oppo »

Re: Документация по компонентам
« Ответ #208 : 06.08.2006, 00:38:48 »
А может запрос действительно только одну запись возвращает вы не проверяли?
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Документация по компонентам
« Ответ #209 : 06.08.2006, 12:17:59 »
Если запрос SELECT field1, field2, field3 ...
то $arr = $database->loadResultArray() вернёт массив

строка 1
$arr[0][0] - field1
$arr[0][1] - field2
$arr[0][2] - field3
...
строка 2
$arr[1][0] - field1
$arr[1][1] - field2
$arr[1][2] - field3
...
и т.д.
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Документация по созданию user profile плагина для Joomla 1.6

Автор n_drey

Ответов: 13
Просмотров: 3022
Последний ответ 05.10.2011, 21:03:46
от n_drey