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

Пушистейший

  • Новичок
  • 3
  • 1 / 0
Есть шаблон для Joomla 2.5 http://files.mail.ru/6E24058BF43D4991B25961686F05790D
Никак не могу понять как мне расположить в шапке в одну строчку телефон и емейл,  добавив к ним слева следующий код звонка через Скайп:

Код
<script type="text/javascript" src="http://cdn.dev.skype.com/uri/skype-uri.js"></script>
<div id="genSkypeCall_01">
    <script type="text/javascript">
        Skype.ui({
            name: "call",
            element: "genSkypeCall_01",
            participants: ["echo123"],
            imageSize: 32,
            imageColor: "skype"
        });
    </script>

Уже всё перепробовал:
- и в сам шаблон код вставлял (файл index.php, перед или после строк 102-103),
- и в виде отдельного модуля Joomla создавал..
- и располагал во вроде бы описанной позиции шаблона position-1, position-29 (схема шаблона в файле /images/pozycje.jpg)

Итог один: картинка со значком Skype переносит текст после неё или перед ней на следующую строчку. И ничего сделать с этим не получается.

А надо, чтобы на том месте где сейчас выводится телефон и емейл (друг под другом) было так:

Эмблема Skype                     Телефон: 123-45678                 Емейл: aaa@bbb.ru

Помогите друже идиоту.. )

Вот на всякий случай код шаблона (строки 102-103):
Код
<?php
defined('_JEXEC') or die;
/**
 *-------------------------------------------
 * Szablon został wypalony w  Diablodesign.
 * www.diablodesign.eu
 * biuro@diablodesign.eu
 * tel.666-977-944
 *-------------------------------------------
 */

require_once dirname(__FILE__). DIRECTORY_SEPARATOR . 'functions.php';
$document = $this;
$templateUrl = $document->baseurl . '/templates/' . $document->template;
Artx::load("Artx_Page");
$view = $this->artx = new ArtxPage($this);
$view->componentWrapper();

JHtml::_('behavior.framework', true);
$app = JFactory::getApplication();
$tplparams = $app->getTemplate(true)->params;
$delte = htmlspecialchars($tplparams->get('delte'));
$left = htmlspecialchars($tplparams->get('left'));
$dtab1 = htmlspecialchars($tplparams->get('dtab1'));
$dtab2 = htmlspecialchars($tplparams->get('dtab2'));
$dtab3 = htmlspecialchars($tplparams->get('dtab3'));
$dtab4 = htmlspecialchars($tplparams->get('dtab4'));
$dtab5 = htmlspecialchars($tplparams->get('dtab5'));
$dtab6 = htmlspecialchars($tplparams->get('dtab6'));
$dtab7 = htmlspecialchars($tplparams->get('dtab7'));
$dtaball = htmlspecialchars($tplparams->get('dtaball'));
?>
<!DOCTYPE html>
<html dir="ltr" lang="<?php echo $document->language; ?>">
<head>
    <jdoc:include type="head" />
    <jdoc:include type="head" />
    <!--scroling head-->
<script src="<?php echo $templateUrl; ?>/js/scroling.js"></script>
<script type="text/javascript">
$(function() {
$(window).scroll(function() {
if($(this).scrollTop()!= 0) {
$('#toTop').fadeIn();
} else {
$('#toTop').fadeOut();
}
});
 
$('#toTop').click(function() {
$('body,html').animate({scrollTop:0},800);
});
});
</script>
<!--scroling koniec head-->
    <link rel="stylesheet" href="<?php echo $document->baseurl; ?>/templates/system/css/system.css" />
    <link rel="stylesheet" href="<?php echo $document->baseurl; ?>/templates/system/css/general.css" />


    
    
    <meta name="viewport" content="initial-scale = 1.0, maximum-scale = 1.0, user-scalable = no, width = device-width">

    <!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
    <link rel="stylesheet" href="<?php echo $templateUrl; ?>/css/template.css" media="screen">
    <!--[if lte IE 7]><link rel="stylesheet" href="<?php echo $templateUrl; ?>/css/template.ie7.css" media="screen" /><![endif]-->
    <link rel="stylesheet" href="<?php echo $templateUrl; ?>/css/template.responsive.css" media="all">

<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
    <script>if ('undefined' != typeof jQuery) document._artxJQueryBackup = jQuery;</script>
    <script src="<?php echo $templateUrl; ?>/jquery.js"></script>
    <script>jQuery.noConflict();</script>

    <script src="<?php echo $templateUrl; ?>/script.js"></script>
    <?php $view->includeInlineScripts()?>
    <script>if (document._artxJQueryBackup) jQuery = document._artxJQueryBackup;</script>
    <script src="<?php echo $templateUrl; ?>/script.responsive.js"></script>
       <!--tabs css-->
       <link rel="stylesheet" href="<?php echo $templateUrl; ?>/css/tabs.css" type="text/css" media="all" />
       <!--end tabs css-->
       <!-- slideshow -->
    <link rel="stylesheet" href="<?php echo $templateUrl; ?>/js/flex-slider/flexslider.css" type="text/css" media="all" />
<script src="<?php echo $templateUrl; ?>/js/jquery-1.7.1.min.js" type="text/javascript" charset="utf-8"></script>
<script src="<?php echo $templateUrl; ?>/js/flex-slider/jquery.flexslider-min.js" type="text/javascript" charset="utf-8"></script>
<script src="<?php echo $templateUrl; ?>/js/DD_belatedPNG-min.js" type="text/javascript" charset="utf-8"></script>
<script src="<?php echo $templateUrl; ?>/js/functions.js" type="text/javascript" charset="utf-8"></script>
    <!-- end slideshow -->
</head>
<body>
<!--scroling-->
<div id="toTop">^<?php echo $this->params->get('scroll'); ?></div>
<!--koniec scroling-->
<div id="dd-main">
<header class="dd-header clearfix"><?php echo $view->position('position-30', 'dd-nostyle'); ?>


    <div class="dd-shapes">
     <!--logo -->
 <div class="logo"><a href="index.php"><img src="<?php echo $this->params->get('logo'); ?>"></a></div>
<!--logo -->
<!--contact-->
<div class="contact">
<div class="email"><?php echo $this->params->get('telefon'); ?></div><br><div class="email"><?php echo $this->params->get('email'); ?></div></div>
<!--end contact-->
<div class="dd-object964560789" data-left="0%"></div>

<div class="dd-object1431017770" data-left="100%"></div>
<div class="animacja"><!--slideshow-->
 <!-- Begin Slider -->
 
<div id="slider">
<div class="shell">
<div class="flexslider">
<ul class="slides">
<li>
<img src="<?php echo $this->params->get('foto1'); ?>" />
<div class="slide-entry">

<h2><a href="<?php echo $this->params->get('lh1'); ?>"><?php echo $this->params->get('header1'); ?></a></h2>
<p><?php echo $this->params->get('info_txt1'); ?> </p>

</div>
</li>
<li>
<img src="<?php echo $this->params->get('foto2'); ?>" />
<div class="slide-entry">

<h3><a href="<?php echo $this->params->get('lh2'); ?>"><?php echo $this->params->get('header2'); ?></a></h23>

<p><?php echo $this->params->get('info_txt2'); ?>.</p>


</div>
</li>
<li>
<img src="<?php echo $this->params->get('foto3'); ?>" />
<div class="slide-entry">

<h2><a href="<?php echo $this->params->get('lh3'); ?>" ><?php echo $this->params->get('header3'); ?></a></h2>
<p><?php echo $this->params->get('info_txt3'); ?></p>

</div>
</li>
</ul>
</div>
</div>
</div>
<!-- End Slider --><!--hot info-->

<div class="dd-positioncontrol dd-positioncontrol-29720441" id="hotnews" data-left="93.79%"><div class="hotinfo"><marquee direction="left" scrollamount="2" scrolldelay="1" onmouseover="this.stop()" onmouseout="this.start()"><?php echo $view->position('hotinfo', 'dd-nostyle'); ?><a href="<?php echo $this->params->get('hl'); ?>"><?php echo $this->params->get('hotinfo'); ?></a>
</marquee></div>
</div>
<!--end hotinfo--></div>
            </div>
            
<h2 class="dd-slogan" data-left="2.93%"><?php echo $this->params->get('siteSlogan'); ?></h2>

<div class="dd-positioncontrol dd-positioncontrol-1091969238" id="MENU" data-left="46.3%">
<?php echo $view->position('position-31', 'dd-nostyle'); ?></div>

<div class="dd-textblock dd-object360920424" data-left="99.87%">
    <form class="dd-search" name="Search" action="<?php echo $document->baseurl; ?>/index.php" method="post">
    <input type="text" value="" name="searchword">
            <input type="hidden" name="task" value="search">
<input type="hidden" name="option" value="com_search">
<input type="submit" value="Search" name="search" class="dd-search-button">
    </form>
</div>

<?php if ($view->containsModules('position-1', 'position-28', 'position-29')) : ?>
<nav class="dd-nav clearfix">
    
<?php if ($view->containsModules('position-28')) : ?>
<div class="dd-hmenu-extra1"><?php echo $view->position('position-28'); ?></div>
<?php endif; ?>
<?php if ($view->containsModules('position-29')) : ?>
<div class="dd-hmenu-extra2"><?php echo $view->position('position-29'); ?></div>
<?php endif; ?>
<?php echo $view->position('position-1'); ?>
 
    </nav>
<?php endif; ?>

                    
</header>
<div class="dd-sheet clearfix">
            <?php echo $view->position('position-15', 'dd-nostyle'); ?>
<?php echo $view->positions(array('position-16' => 33, 'position-17' => 33, 'position-18' => 34), 'dd-block'); ?>
<div class="dd-layout-wrapper clearfix">
                <div class="dd-content-layout">
                    <div class="dd-content-layout-row">
                        <?php if ($view->containsModules('position-7', 'position-4', 'position-5')) : ?>
<?php if ($left == 1) { ?><div class="dd-layout-cell dd-sidebar1 clearfix">
<?php echo $view->position('position-7', 'dd-block'); ?>
<?php echo $view->position('position-4', 'dd-block'); ?>
<?php echo $view->position('position-5', 'dd-block'); ?>




                        </div><?php } ?>
<?php endif; ?>

                        <div class="dd-layout-cell dd-content clearfix">
                       <?php if ($dtaball == 1) { ?> <div class="partner"><ul id="tabs">
   <?php if ($dtab1 == 1) { ?> <li><a href="#" title="tab1"><?php echo $this->params->get('ttab1'); ?></a></li><?php } ?>
    <?php if ($dtab2 == 1) { ?> <li><a href="#" title="tab2"><?php echo $this->params->get('ttab2'); ?></a></li><?php } ?>
    <?php if ($dtab3 == 1) { ?> <li><a href="#" title="tab3"><?php echo $this->params->get('ttab3'); ?></a></li><?php } ?>
    <?php if ($dtab4 == 1) { ?> <li><a href="#" title="tab4"><?php echo $this->params->get('ttab4'); ?></a></li><?php } ?>
    <?php if ($dtab5 == 1) { ?> <li><a href="#" title="tab5"><?php echo $this->params->get('ttab5'); ?></a></li><?php } ?>
    <?php if ($dtab6 == 1) { ?> <li><a href="#" title="tab6"><?php echo $this->params->get('ttab6'); ?></a></li><?php } ?>
    <?php if ($dtab7 == 1) { ?> <li><a href="#" title="tab7"><?php echo $this->params->get('ttab7'); ?></a></li><?php } ?>      
</ul>

<div id="content">
    <div id="tab1">
 <img src="<?php echo $this->params->get('f1'); ?>" style="margin-right: 10px; float: left;" width="230" height="150" ><?php echo $this->params->get('itab1'); ?>
    </div>
    <div id="tab2">
       <img src="<?php echo $this->params->get('f2'); ?>" style="margin-right: 10px; float: left;" width="230" height="150" ><?php echo $this->params->get('itab2'); ?>
 </div>
    <div id="tab3">
       <img src="<?php echo $this->params->get('f3'); ?>" style="margin-right: 10px; float: left;" width="230" height="150" ><?php echo $this->params->get('itab3'); ?>
    </div>
    <div id="tab4">
<img src="<?php echo $this->params->get('f4'); ?>" style="margin-right: 10px; float: left;" width="230" height="150" ><?php echo $this->params->get('itab4'); ?>

    </div>
        <div id="tab5">
<img src="<?php echo $this->params->get('f5'); ?>" style="margin-right: 10px; float: left;" width="230" height="150" ><?php echo $this->params->get('itab5'); ?>

    </div>
        <div id="tab6">
<img src="<?php echo $this->params->get('f6'); ?>" style="margin-right: 10px; float: left;" width="230" height="150" ><?php echo $this->params->get('itab6'); ?>

    </div>
        <div id="tab7">
<img src="<?php echo $this->params->get('f7'); ?>" style="margin-right: 10px; float: left;" width="230" height="150" ><?php echo $this->params->get('itab7'); ?>

    </div>

</div></div><?php } ?>
<?php
  echo $view->position('position-19', 'dd-nostyle');
  if ($view->containsModules('position-2'))
    echo artxPost($view->position('position-2'));
  echo $view->positions(array('position-20' => 50, 'position-21' => 50), 'dd-article');
  echo $view->position('position-12', 'dd-nostyle');
  echo artxPost(array('content' => '<jdoc:include type="message" />', 'classes' => ' dd-messages'));
  echo '<jdoc:include type="component" />';
  echo $view->position('position-22', 'dd-nostyle');
  echo $view->positions(array('position-23' => 50, 'position-24' => 50), 'dd-article');
  echo $view->position('position-25', 'dd-nostyle');
?>



                        </div>
                    </div>
                </div>
            </div>
<?php echo $view->positions(array('position-9' => 33, 'position-10' => 33, 'position-11' => 34), 'dd-block'); ?>
<?php echo $view->position('position-26', 'dd-nostyle'); ?>

<footer class="dd-footer clearfix">
<?php if ($view->containsModules('position-27')) : ?>
    <?php echo $view->position('position-27', 'dd-nostyle'); ?>
<?php else: ?>
<div style="position:relative;padding-left:0px;padding-right:0px"><a title="RSS" class="dd-rss-tag-icon" style="position: absolute; bottom: 0px; right: 6px; line-height: 28px;" href="#"></a>Copyright © 2013. <?php echo $this->params->get('stopka'); ?> &nbsp;Rights Reserved.</div>
<?php endif; ?>
</footer>

    </div>
    <p class="dd-page-footer">
       <span id="dd-footnote-links">Designed by:<a href="http://www.diablodesign.eu" target="_blank">www.diablodesign.eu</a>.</span>
    </p>
</div>



<?php echo $view->position('debug'); ?>


<script>
$(document).ready(function() {
$("#content div").hide(); // Initially hide all content
$("#tabs li:first").attr("id","current"); // Activate first tab
$("#content div:first").fadeIn(); // Show first tab content
    
    $('#tabs a').click(function(e) {
        e.preventDefault();        
        $("#content div").hide(); //Hide all content
        $("#tabs li").attr("id",""); //Reset id's
        $(this).parent().attr("id","current"); // Activate this
        $('#' + $(this).attr('title')).fadeIn(); // Show content for current tab
    });
})();
</script>
</body>
</html>
« Последнее редактирование: 06.03.2013, 13:36:48 от Пушистейший »
*

falur

  • Осваиваюсь на форуме
  • 44
  • 4 / 0
Цитировать
<div class="contact">
<div class="email"><?php echo $this->params->get('telefon'); ?></div><br><div class="email"><?php echo $this->params->get('email'); ?></div></div>

вот ваша строка во первых все элементы блочные, во вторых у вас стоит <br> между ними.
Сделайте так:
<table>
<tr>
<td>
лого скайп
</td>
<td>
<?php echo $this->params->get('telefon'); ?>
</td>
<td>
<?php echo $this->params->get('email'); ?>
</td>
</tr>
</table>

 это если по быстрому,а лучше задать нормальные стили в CSS
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как загрузить шаблон, и сделать его только для одной страницы?

Автор Ирина Поехали

Ответов: 5
Просмотров: 3476
Последний ответ 05.06.2017, 21:15:42
от effrit
Не получается отредактировать шаблон

Автор pay

Ответов: 1
Просмотров: 1221
Последний ответ 25.01.2017, 13:25:13
от beliyadm
Как убрать в адресной строке сайта index.php/en/ ?

Автор ilves

Ответов: 3
Просмотров: 7242
Последний ответ 18.08.2016, 22:48:18
от Olga113
Вывод текста на одной строке в исходнике

Автор darkghost

Ответов: 7
Просмотров: 1311
Последний ответ 21.12.2015, 16:04:25
от Shustry
YOOtheme_organic настройка под телефон

Автор ramzes_g18

Ответов: 3
Просмотров: 1373
Последний ответ 28.06.2015, 18:02:30
от Viktop