Новости Joomla

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много

👩‍💻 Свои типы полей в Joomla.Это большая тема, о которой можно говорить очень много. Самое главное, что возможности применения ограничиваются только вашей больной фантазией. Вы строите интерфейс своего модуля или плагина и вам нужно подтянуть данные из сторонней системы (список чего-нибудь по какому-нибудь API), чтобы сохранить выбранный id в Joomla. Или сделать какую-то проверку и в зависимости от неё показать то или иное сообщение пользователю. Для этого подойдут свои пользовательские типы полей. Интерфейс Joomla по большей части описан в XML-файлах. У каждого из них свои параметры. Некоторые не описаны в документации (manual.joomla.org), поэтому самым любопытным будет полезно заглянуть в собственно файлы фреймворка по пути

libraries/src/Form/FormField.php, а так же в
libraries/src/Form/Fields. У каждого класса поля перечислены его специфические свойства, которые можно описывать в XML. А в своём типе поля вы можете устанавливать эти значения программно. В моём модуле WT Quick links под капотом происходят изменения. Теперь для работы (в админке) ему нужен вспомогательный плагин. А в самом модуле нам бы проверить, а не выключен ли он? В Joomla есть тип поля Note - заметка. Его можно использовать для вывода примечаний.

<field type="note"     name="your_note_for_user"     label="Заголовок примечания"     title="Альтернативный способ для заголовка"     description="Текст примечания"     class="col-12 alert alert-info"     heading="h1"     close="true"/>
heading - указывать уровень заголовка.
close - позволяет закрыть это примечание. В классе поля
libraries/src/Form/Field/NoteField.php описана логика вывода. И в принципе оно нам подходит для нашей задачи. Но оно будет выводить сообщение всегда, а нам нужно только тогда, когда плагин отключён.Поэтому берём и создаём свой класс поля, который мы унаследуем от
NoteField. Это значит, что у нас в руках будет весь инструментарий стандартного поля
Note + то, что мы сами добавим. В XML-манифест добавляем наше поле
<field type="systempluginstatus"      name="systempluginstatus"     addfieldprefix="Joomla\Module\Wtquicklinks\Site\Fields"/>
-
type - имя файла и класса,-
addfieldprefix - указываем namespace к нашему классу, может быть любой нам нужный-
name - нельзя полю без имени...Это означает, что Joomla будет использовать класс поля из файла
modules/mod_wt_quick_links/src/Fields/SystempluginstatusField.php.А в классе поля будет написано следующее:
<?php// namespace для атрибута addfieldprefixnamespace Joomla\Module\Wtquicklinks\Site\Fields;// нельзя напрямую обращаться к этому файлуdefined('_JEXEC') or die;// подключаем родительский класс для переопределенияuse Joomla\CMS\Form\Field\NoteField;use Joomla\CMS\Language\Text;use Joomla\CMS\Plugin\PluginHelper;// имя класса и имя файла точь-в-точьclass SystempluginstatusField extends NoteField{     protected $type = 'Systempluginstatus';     protected function getLabel()          {               // если плагин не включён               if(PluginHelper::isEnabled('system','wtquicklinks')) {                    // меняем свойства родительского класса                    $this->class = 'alert alert-danger w-100';                    $this->element['label'] = '⚠️ А-а-а-а!';                    $this->element['description'] = 'Плагин не включён!!';                    // и просто рендерим его с нашими свойствами                    return parent::getLabel();               }          // А иначе всё хорошо, скрываем поле из виду.          $this->parentclass = 'd-none';          return '';     }}
Просто и удобно. И людям приятно, что о них позаботились и рассказали почему что-то не работает.@webtolkru#joomla #php #webdev #разработка

Обновлена информация в Плане развития Joomla

👩‍💻 Обновлена информация в Плане развития Joomla.Здесь собрана информация о датах релизов, описаны принципы версионирования, указаны ответственные за релизы, а так же даты окончания поддержки релизов. Опираясь на эту информацию вы можете планировать развитие ваших интернет-проектов.👩‍💻 Что нового?⛔️ Joomla 4.Дата окончания исправления ошибок безопасности в версии 4.x - 14 октября 2025г. ⚠️ После этой даты Joomla 4 прекратит получать какие-либо обновления, в том числе безопасности - вообще. Рекомендуем обновить ваши сайты до актуальной Joomla 5.✅ Joomla 5.- Дата окончания исправления ошибок в версии 5.x - 13 октября 2026г.- Дата окончания исправления ошибок безопасности в версии 5.x - 12 октября 2027 года.- Текущая актуальная (на момент написания заметки) версия - 5.3.1.- Опубликовано расписание выхода релизов Joomla 5.4. Стабильный релиз ожидается 14 октября 2025 года.✅ Joomla 6.- Дата окончания исправления ошибок в версии 6.x - 17 октября 2028г.- Дата окончания исправления ошибок безопасности в версии 6.x - 16 октября 2029г.- Опубликовано расписание выхода релизов Joomla 6.0. Стабильный релиз ожидается 14 октября 2025 года.- Для разработчиков уже доступна Joomla 6.0.0-alpha1.✅ Joomla! Framework.Обновлена информация о Joomla! Framework - полноценном PHP-фреймворке для разработки. Он в версиях 1.х и 2.х был самостоятельным параллельным проектом, однако начиная с версии Joomla 4.0 стал её основой. Добавлена информация о Joomla! Framework 3.x, который вышел 6 октября 2023 года. Его можно использовать в тех случаях, когда вам в проекте не нужна CMS Joomla целиком.Подробнее на сайте Joomla-сообщества Joomlaportal.ru#joomla #community

Компания JetBrains рассказала о своей поддержке Joomla

Компания JetBrains рассказала о своей поддержке Joomla

JetBrains - один из мировых лидеров в разработке программного обеспечения для разработчиков. Её программные продукты - это IDE - профессиональные среды разработки, которые отличаются от простого блокнота/редактора с плагинами набором всевозможных инструментов для разработчиков, глубоким анализом кодовой базы, подсказками по ней и по языку программирования, отладкой ошибок и многим-многим другим. Одним из самых известных продуктов компании является IDE PHP Storm, который можно назвать отраслевым стандартом PHP-разработчика.

В статье How PhpStorm Helps Maintain PHP Open-Source Projects: Interviews and Real-World Examples в блоге компании описываются Open Source проекты, которым JetBrains оказывает поддержку (это могут быть бесплатные лицензии для разработчиков для некоммерческих проектов).

В список попали:

  • PHPUnit - фреймворк для unit-тестирования в PHP
  • Doctrine DBAL - библиотека для PHP, которая предоставляет лёгкий и гибкий слой для коммуникации с базой данных. Она поддерживает различные базы данных через единый и согласованный API.
  • CodeIgniter — популярный MVC-фреймворк для разработки на PHP
  • Joomla! - наша любимая CMS.

Эти названия (кроме "Joomla") чаще всего не слышат вебмастера и разработчики обычных сайтов и интернет-магазинов. Но эти названия хорошо знакомы PHP-разработчикам, которые создают сложные и высоконагруженные проекты и микросервисы. То, что Joomla оказалась в одном ряду с такими программными инструментами - делает ей честь.

🙏 За ссылку спасибо участнику нашего сообщества Ринату Кажетову (@rkazhet).

Подпишитесь на @joomlafeed

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

hondamafia

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Пару лет назад его переписал и забыл где.. теперь нужно внести изменения, но нигде найти не могу.. файлы пересмотрел, модули тоже.. FireBug не показывает где конкретно это написано.. Помогите найти пожалуйста dveri-pol.com.ua
*

MartynovRussia

  • Осваиваюсь на форуме
  • 15
  • 4 / 0
День добрый!
Не глядя на сайт могу предположить два наиболее вероятных варианта:
1. Копирайт находиться в каком-то HTML модуле (обычно в позиции footertext или copyright) искать в соответствующем разделе панели администратора.
2. Копирайт находиться в тексте страницы основного шаблона (корень сайта\templates\название вашего шаблона\index.php) т.е. нужно открыть этот файл с помощью редактора кода, найти внизу код копирайта, заменить на необходимый, сохранить в соответствующей кодировке (обычно UTF-8 без BOM, но лучше на всякий случай сделать копию исходного файла без изменений, на случай если ошибётесь с кодировкой) загрузить с заменой файл index.php в соответствующий каталог (корень сайта\templates\название вашего шаблона\).

С уважением,
MartynovRussia
« Последнее редактирование: 04.05.2012, 19:16:40 от MartynovRussia »
*

hondamafia

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
День добрый!
Не глядя на сайт могу предположить два наиболее вероятных варианта:
1. Копирайт находиться в каком-то модуле (обычно в позиции footertext или copyright) искать в соответствующем разделе панели администратора.
2. Копирайт находиться в тексте страницы основного шаблона (корень сайта\templates\название вашего шаблона\index.php) т.е. нужно открыть этот файл с помощью редактора кода, найти внизу код копирайта, заменить на необходимый, сохранить в соответствующей кодировке (обычно UTF-8 без BOM, но лучше на всякий случай сделать копию исходного файла без изменений, на случай если ошибётесь с кодировкой) загрузить с заменой файл index.php в соответствующий каталог (корень сайта\templates\название вашего шаблона\).

С уважением,
MartynovRussia
Эти варианты пробовал в первую очередь.. результата не дало.. Пробовал посмотреть firebug-ом, но он не показывает на конкретный файл, а только class пишет, исходя из этого искал практически во всех возможных файлах путем поиска этого class-a.. Короче никак не получается отрыть.. но раньше же я его как-то сменил.. 
*

MartynovRussia

  • Осваиваюсь на форуме
  • 15
  • 4 / 0
Во-первых Вы немного не в тот раздел пишите, так как у вас 1.5.  ::)
Возможно, что этот параметр задается в настройках шаблона (где вы выбираете, например ширину, лого и т.п.)

Может быть, здесь Ваш_сайт/includes/footer.php (Joomla 1.5) или здесь Ваш_сайт/includes/version.php, хотя второе маловероятно и всё это может противоречить лицензии Joomla...
В version.php есть такие строчки (под спойлером то, что по умолчанию):
Спойлер
[свернуть]

Также похоже на то, что он берется автоматически исходя из названия сайта (общие настройки).

______________________________________________________________________________________

В файле помощи вашего шаблона написано следующее:

Спойлер
[свернуть]

Иными словами - необходимо создать HTML модуль в позиции "copyright" или изменить существующий.

_______________________________________________________________________________________________

Касательно вашего шаблона обратите внимание на позиции "syndicate", "banner6", "bottom1", "bottom2", "bottom3"
Вот как выглядит код файла Ваш_сайт/templates/herbstv1/index.php в версии 2.2
Жирным выделены строки, которые могут подойти в вашем случае, но согласно описанию нужно создавать модуль (так как в случае его отсутствия - <?php if (artxCountModules($document, 'copyright') == 0): ?> - будет показан копирайт из файла index.php, который под спойлером выделен жирным первым)
Спойлер
[свернуть]
« Последнее редактирование: 04.05.2012, 19:30:54 от MartynovRussia »
*

hondamafia

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Может быть, здесь Ваш_сайт/includes/version.php хотя маловероятно...
Ищите в version.php
у меня вообще нет там такого файла.. там есть footer.php но и в нем ничего нет..
В настройках и файлах шаблона тоже ничего нет.. Модуль только включает и выключает его, все его файлы перекопал, там нигде нет того что можно поправить.. Не получается даже найти тот текст по файлам, который сейчас прописан в копирайте.. и он точно не автоматом был создан, так как когда то я сам его где то прописал.. А теперь сижу тупею)
« Последнее редактирование: 04.05.2012, 18:03:03 от hondamafia »
*

MartynovRussia

  • Осваиваюсь на форуме
  • 15
  • 4 / 0
Прикрепите на форум конец вашего файла Ваш_сайт/templates/herbstv1/index.php
Я склоняюсь к тому, что именно там он и есть. Хотя я больше по 1.6-2.5, т.к. от 1.5 они отличны...
*

hondamafia

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Прикрепите на форум конец вашего файла Ваш_сайт/templates/herbstv1/index.php
Я склоняюсь к тому, что именно там он и есть. Хотя я больше по 1.6-2.5, т.к. от 1.5 они отличны...
<jdoc:include type="message" />

</div>
<div class="cleared"></div>

</div>

    </div>
</div>
<?php endif; ?>
<jdoc:include type="component" />

<?php echo artxModules($document, 'banner4', 'art-nostyle'); ?>
<?php echo artxPositions($document, array('user4', 'user5'), 'art-article'); ?>
<?php echo artxModules($document, 'banner5', 'art-nostyle'); ?>
</div>
<?php if (artxCountModules($document, 'right')) : ?>
<div class="art-sidebar2"><?php echo artxModules($document, 'right', 'art-block'); ?>
</div>
<?php endif; ?>

</div>
<div class="cleared"></div>

<?php echo artxPositions($document, array('bottom1', 'bottom2', 'bottom3'), 'art-block'); ?>
<jdoc:include type="modules" name="banner6" style="artstyle" artstyle="art-nostyle" />
<div class="art-Footer">
 <div class="art-Footer-inner">
  <?php echo artxModules($document, 'syndicate'); ?>
  <div class="art-Footer-text">
  <?php if (artxCountModules($document, 'copyright') == 0): ?>
<p>Copyright &copy; 2009 ---.<br/>
All Rights Reserved.</p>

  <?php else: ?>
  <?php echo artxModules($document, 'copyright', 'art-nostyle'); ?>
  <?php endif; ?>
  </div>
 </div>
 <div class="art-Footer-background"></div>
</div>

    </div>
</div>
<div class="cleared"></div>
<p class="art-page-footer"><a href="http://dveri-pol.com.ua">Doors & Floor</p>
</div>

</body>
</html>
*

MartynovRussia

  • Осваиваюсь на форуме
  • 15
  • 4 / 0
  <?php if (artxCountModules($document, 'copyright') == 0): ?>
<p>Copyright &copy; 2009 ---.<br/>
All Rights Reserved.</p>
<?php else: ?>
<?php echo artxModules($document, 'copyright', 'art-nostyle'); ?>
<?php endif; ?>

Два варианта:
1. Вы всё-таки меняете HTML содержимое модуля, который находиться в позиции "copyright".
2. Вы удаляете этот модуль, а этот код по адресу Ваш_сайт/templates/herbstv1/index.php
Код
<p>Copyright &copy; 2009 ---.<br/>
All Rights Reserved.</p>
правите на своё усмотрение и сохраняете файл, так как я писал  в самом первом посте – в нужной кодировке с перезагрузкой с заменой на сервер.

Обращаю внимание, что следует полностью обновлять страницу (сочетание клавиш Ctrl+R или F5), чтобы увидеть изменения.
*

hondamafia

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
вот содержимое модуля:
<?php
/**
* @version      $Id: mod_footer.php 14401 2010-01-26 14:10:00Z louis $
* @package      Joomla
* @copyright   Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
* @license      GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// no direct access
defined('_JEXEC') or die('Restricted access');

global $mainframe;

$date =& JFactory::getDate();
$cur_year   = $date->toFormat('%Y');
$csite_name   = $mainframe->getCfg('sitename');

if (JString::strpos(JText :: _('FOOTER_LINE1'), '%date%')) {
   $line1 = str_replace('%date%', $cur_year, JText :: _('FOOTER_LINE1'));
} else {
   $line1 = JText :: _('FOOTER_LINE1');
}

if (JString::strpos($line1, '%sitename%')) {
   $lineone = str_replace('%sitename%', $csite_name, $line1);
} else {
   $lineone = $line1;
}

require(JModuleHelper::getLayoutPath('mod_footer'));
*

hondamafia

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Уже догнал.. этот модуль взял и добавил в копирайт текст из названия сайта (которое выставлено в общих настройках Joomla) приставив впереди "2012", а сзади "все права защищены"
*

MartynovRussia

  • Осваиваюсь на форуме
  • 15
  • 4 / 0
вот содержимое модуля:
'FOOTER_LINE1'
%sitename%
Это файл mod_footer.php, я же имел в виду настройки в панели администратора, т.е. по адресу http://dveri-pol.com.ua/administrator/ ваш логин и пароль, далее в расширения / менеджер модулей находите HTML модуль в позиции "copyright" и изменяете его содержимое. По крайней мере так рекомендует производитель шаблона.

Если же вы используете mod_footer и позицию  footer то вам, вероятнее всего необходимо заменять содержимое в mod_footer.php или изменить название сайта и править языковые файлы содержащие 'FOOTER_LINE1'.  Возможно понадобиться правка в Ваш_сайт/includes/footer.php, но это может противоречить лицензии Joomla.
Поэтому я настоятельно советую сначала все же зайти в панель администратора и найти там или создать и отредактировать HTML модуль в позиции "copyright".

Модуль только включает и выключает его, все его файлы перекопал, там нигде нет того что можно поправить..
Сейчас вы используете стандартный модуль mod_footer!
Это значит, что вы и не создавали HTML модуль в позиции "copyright", что стоит сделать, так вы сможете просто менять содержимое копирайта не меняя название сайта, + сможете добавлять ссылки картинки  и т.п.
« Последнее редактирование: 04.05.2012, 19:30:10 от MartynovRussia »
*

hondamafia

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
этот модуль из админки не редактируется.. его там можно только включить либо выключить.. и выставить на каких страницах он отображается.. все
*

MartynovRussia

  • Осваиваюсь на форуме
  • 15
  • 4 / 0
этот модуль из админки не редактируется.. его там можно только включить либо выключить.. и выставить на каких страницах он отображается.. все

См. выше.
Вам нужно создать  новый HTML модуль в административной панели в позиции "copyright", в настройках выставить отображение на всех страницах, для общей категории пользователей, заполнить содержимое пустого поля желаемым копирайтом, опубликовать / включить модуль. А старый footer выключить.

Либо править mod_footer.php основное предназначение которого показывать простой копирайт сайта или самой Joomla... Но я за HTML модуль в позиции "copyright" ибо быстрее и легче!  *DRINK*
« Последнее редактирование: 05.05.2012, 14:56:57 от MartynovRussia »
*

hondamafia

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Ладно, спасибо большое.. пути решения понятны..))
*

MartynovRussia

  • Осваиваюсь на форуме
  • 15
  • 4 / 0
Ладно, спасибо большое.. пути решения понятны..))
Не забудьте поделиться с форумчанами подошедшим вам решением!  :D
« Последнее редактирование: 04.05.2012, 22:57:39 от MartynovRussia »
*

hondamafia

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
Теперь новая проблема.. И так сначала.. Старый модуль удалил, создал новый (произвольный html) поставил в копирайт, прописал то что мне нужно было.. хочу на отдельные слова поставить ссылку на главную - мне ее автоматом обрезает и ставит вместо нее undefined/
Если ставлю ссылку не на главную, а дальше - то нормально проходит.. Как сделать чтобы не обрезала? Редактор визуальный отключать пробовал, в html-e прописывать тоже..


...уже врулил..
« Последнее редактирование: 05.05.2012, 02:00:03 от hondamafia »
*

MartynovRussia

  • Осваиваюсь на форуме
  • 15
  • 4 / 0
...уже врулил..

А написать решение? =)

Предполагаю, что редактор не понимает ссылок типа "http://dveri-pol.com.ua", но понимает такие "http://dveri-pol.com.ua/" (слеш на конце, работает и просто ссылка вида "/" когда в редакторе включено относительное определение ссылок на сайт, это удобно когда у вас есть несколько доменов одного сайта)

Также можно воспользоваться такой ссылкой на главную http://dveri-pol.com.ua/index.php
*

hondamafia

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
А написать решение? =)

Предполагаю, что редактор не понимает ссылок типа "http://dveri-pol.com.ua", но понимает такие "http://dveri-pol.com.ua/" (слеш на конце, работает и просто ссылка вида "/" когда в редакторе включено относительное определение ссылок на сайт, это удобно когда у вас есть несколько доменов одного сайта)

Также можно воспользоваться такой ссылкой на главную http://dveri-pol.com.ua/index.php

Нет. оно обрезает все что до первого слеша стоит, то есть если просто в конце поставить слеш - изменений не будет.. А вот с /index.php надо попробовать..
*

MartynovRussia

  • Осваиваюсь на форуме
  • 15
  • 4 / 0
Нет. оно обрезает все, что до первого слеша стоит, то есть если просто в конце поставить слеш - изменений не будет.. А вот с /index.php надо попробовать..
Как же Вы решили это? На вашем сайте ссылки копирайта всё-таки имеют вид http://dveri-pol.com.ua/
*

hondamafia

  • Осваиваюсь на форуме
  • 11
  • 1 / 0
У меня в редакторе, в самом низу, есть кнопка "Link" (не помню откуда она там взялась, или в расширенных настройках когда то выставил или каким то расширением установил, но смотрел в админке моего второго сайта - там по умолчанию ее нет), так вот, можно выделить нужный текст или просто поставить в нужное место курсор, нажать на кнопку "Link" и в появившемся окне задать все необходимые параметры ссылки..
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как найти корни зловредов?

Автор skifbor

Ответов: 23
Просмотров: 1862
Последний ответ 29.04.2020, 22:07:07
от ProtectYourSite
Изменить информацию в шапке

Автор Bru095

Ответов: 3
Просмотров: 1512
Последний ответ 07.03.2019, 14:03:00
от khan-alex
Найти где внедряется ссылка

Автор archin_lin

Ответов: 1
Просмотров: 931
Последний ответ 13.02.2019, 18:16:59
от voland
Не могу добавить глобальный тег

Автор Hellboy4ik

Ответов: 14
Просмотров: 2651
Последний ответ 03.10.2018, 18:45:01
от NewUsers
Как изменить название сайта в шапке?

Автор Екатрина1986

Ответов: 4
Просмотров: 1943
Последний ответ 13.02.2018, 12:35:19
от Ilhom666