Новости Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

👩‍💻 SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla.Компонент - менеджер цифровых проектов для Joomla! CMS. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.👩‍💻 v.2.5.0. Что нового?Схемы структур данных для серверов обновлений. Теперь с SW JProjects вы может создавать сервер обновлений не только для расширений Joomla, но и свои собственные. Например, вам нужно, чтобы структура данных сервера обновлений была другая и формат должен быть, например, не XML, а JSON. Формирование структуры данных для сервера обновлений расширений Joomla вынесено в отдельный плагин. Вы можете создать свой собственный плагин и реализовать в нём нужную вам структуру данных, добавив или наоборот исключив отображаемые данные. Сервер обновлений в компоненте по-прежнему отображает информацию о списке проектов и их версиях, о конкретном проекте и его changelog.Можно выбрать схему данных сервера обновлений глобально для всего компонента, выбрать другую схему данных для категории проектов, а так же выбрать схему в каждом проекте.

Разработчикам в качестве образца можно посмотреть плагин схемы данных для Joomla в составе компонента или же плагин-образец JSON-схемы на GitHub.
Группа плагинов swjprojects. Для нужд компонента создана группа плагинов swjprojects. В частности, в этой группе находится плагин структуры данных Joomla расширений для сервера обновлений.Изменение языковых констант. Изменены некоторые языковые константы в панели администратора. Если вы делали переопределение констант - переопределите их снова.👩‍💻 Joomla 6. Внесены изменения для корректной установки и работы компонента на Joomla 6. Компонент успешно протестирован на Joomla 6-beta2.Минимальная версия Joomla - 5. Подняты минимальные системные требования: Joomla 5.0.0 и PHP 8.1.
- Страница расширения👉 Плагин-образец кастомной JSON-схемы данных для сервера обновлений на GitHub.- GitHub расширения- Документация на GitHub- Joomla Extensions Directory#joomla #расширения

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод...

👩‍💻 Как триггерить события для плагинов на манер Joomla 5+?В Joomla 6 должны удалить метод triggerEvent(), с помощью которого раньше вызывались события для плагинов. Теперь чтобы в своём коде вызвать событие для плагина и получить от него результаты нужно:- создать объект класса события- передать в него параметры

use Joomla\CMS\Event\AbstractEvent;use Joomla\CMS\Factory;use Joomla\CMS\Plugin\PluginHelper;// Грузим плагины нужных группPluginHelper::importPlugin('system');// Создаём объект события$event = AbstractEvent::create('onAfterInitUniverse', [    'subject' => $this,    'data'    => $data, // какие-то данные    'article' => $article, // ещё материал вдовесок    'product' => $product, // и товаров подвезли]);// Триггерим событиеFactory::getApplication()->getDispatcher()->dispatch(    $event->getName(), // Тут можно строку передать 'onAfterInitUniverse'    $event);// Получаем результаты// В случае с AbstractEvent это может быть не 'result',// а что-то ещё - куда сами отдадите данные.// 2-й аргумент - значение по умолчанию, // если не получены результаты$results = $event->getArgument('result', []);
Плюсы такого подхода - вам не нужно запоминать порядок аргументов и проверять их наличие. Если вы написали свой класс события, то в плагине можно получать аргументы с помощью методов $event->getArticle(), $event->getData(), $event->getProduct() и подобными - реализуете сами под свои нужды. Если такой класс события написали, то создаёте экземпляр своего класса события и укажите его явно в аргументе eventClass
use Joomla\Component\MyComponent\Administrator\Event\MyCoolEvent;$event = MyCoolEvent::create('onAfterInitUniverse', [    'subject'    => $this,    'eventClass' => MyCoolEvent::class, // ваш класс события    'data'       => $data, // какие-то данные    'article'    => $article, // ещё материал вдовесок    'product'    => $product, // и товаров подвезли]);
Ожидаемо, что класс вашего события будет расширять AbsractEvent или другие классы событий Joomla.🙁 Есть неприятный нюанс - нельзя просто так вызывать событие и ничего не передать в аргументы. Аргумент subject обязательный. Но если вы всё-таки не хотите туда ничего передавать - передайте туда пустой stdClass или объект Joomla\registry\Registry.
@joomlafeed#joomla #php #webdev

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

tysson

  • Захожу иногда
  • 263
  • 2 / 0
Добрый день!

у меня на сайте будет возможность пользователям размещать новости. скажите как сделать так, чтобы у них не было возможности нажать кнопку опубликовать, т.е. новость не может быть размещена без можерации администратором.
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
почитайте ФАК и поюзайте поиск. неоднократно обсуждалось :)
*

tysson

  • Захожу иногда
  • 263
  • 2 / 0
Дело в том, что обсуждалось как сделать чтобы они сразу могли размещеть без модерации! а у меня проблема наоборот!
я хочу сначала смотреть, и только потом самому размещать! а то у юзера в форме "Разместить материал" появляется вкладка опубликовать! мне это не надо!

ну не могу я найти этого в FAQ.
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
у авторов (с правами author) даже по-умолчанию нет возможности опубликовать материал, а у зарегистрированного пользователя тем-более


*

tysson

  • Захожу иногда
  • 263
  • 2 / 0
, user menu -разместить новость. получите форму, вбиваете текст, прокручиваете форму вниз, там вкладки, одна из них публикация! нажимаете опубликовано на главную, и опа она на главной! проверьте! только без фанатизма! :)
« Последнее редактирование: 28.12.2009, 15:56:24 от tysson »
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
в content.php ищите функцию saveContent
в ней ищите строки $row->state они вписаны в условия

можно после этих условий вписать $row->state =0;
$row->frontpage=0;
*

tysson

  • Захожу иногда
  • 263
  • 2 / 0
cделал в таком виде:
   // Publishing state hardening for Authors
   if ( !$access->canPublish ) {
      if ( $isNew ) {
      // For new items - author is not allowed to publish - prevent them from doing so
         $row->frontpage=0;
      } else {
      // For existing items keep existing state - author is not allowed to change status
         $query = "SELECT state"
         . "\n FROM #__content"
         . "\n WHERE id = " . (int) $row->id
         ;
         $database->setQuery( $query);
         $state = $database->loadResult();

         if ( $state ) {
            $row->state = 1;
         } else {
            $row->state = 0;

итог: новость размещена сразу же , хотя надпись "Спасибо за Ваш материал. Теперь материал будет просмотрен  администратором перед размещением на сайте." появляется!
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
надо поесле закрытия условия  if ( !$access->canPublish ) {
пропустить одну строку и поставить
$row->state = 0;
$row->frontpage=0;
*

tysson

  • Захожу иногда
  • 263
  • 2 / 0
сделал так. но материал все равно публикуется, если автор ставит "Опубликовать" в редакторе добавления новостей. наверное я что то не так делаю.

// Publishing state hardening for Authors
   if ( !$access->canPublish ) {
      if ( $isNew ) {
             $row->state = 0;
             $row->frontpage=0;
      // For new items - author is not allowed to publish - prevent them from doing so
         $row->frontpage=0;
      } else {
      // For existing items keep existing state - author is not allowed to change status
         $query = "SELECT state"
         . "\n FROM #__content"
         . "\n WHERE id = " . (int) $row->id
         ;
         $database->setQuery( $query);
         $state = $database->loadResult();

         if ( $state ) {
            $row->state = 1;
         } else {
            $row->state = 0;
         }
      }
   }

*

tysson

  • Захожу иногда
  • 263
  • 2 / 0
ФЕЙ ты где? :) Народ, кто знает подключитесь к проблеме! проект стынет!
*

Фей

  • Давно я тут
  • 743
  • 86 / 3
  • Истина в вине!
находим этот кусок кода
Код
	// Publishing state hardening for Authors
if(!$access->canPublish) {
if($isNew) {
// For new items - author is not allowed to publish - prevent them from doing so
$row->state = 0;
} else {
// For existing items keep existing state - author is not allowed to change status
$query = "SELECT state FROM #__content WHERE id = ".(int)$row->id;
$database->setQuery($query);
$state = $database->loadResult();

if($state) {
$row->state = 1;
} else {
$row->state = 0;
}
}

}


после него пишем $row->state = 0;

находим далее кусок
Код
	// manage frontpage items
require_once ($mainframe->getPath('class','com_frontpage'));
$fp = new mosFrontPage($database);

if(intval(mosGetParam($_REQUEST,'frontpage',0))) {
// toggles go to first place
if(!$fp->load((int)$row->id)) {
// new entry
$query = "INSERT INTO #__content_frontpage VALUES ( ".(int)$row->id.", 1 )";
$database->setQuery($query);
if(!$database->query()) {
echo "<script> alert('".$database->stderr()."');</script>\n";
exit();
}
$fp->ordering = 1;
}
} else {
// no frontpage mask
if(!$fp->delete((int)$row->id)) {
$msg .= $fp->stderr();
}
$fp->ordering = 0;
}
$fp->updateOrder();

и его ремим весь с помощью //

и все!

skladoiskatel.ru  пользователь user пароль 4342123 , user menu -разместить новость. получите форму, вбиваете текст, прокручиваете форму вниз, там вкладки, одна из них публикация! нажимаете опубликовано на главную, и опа она на главной! проверьте! только без фанатизма! :)

Хотел попробовать, но видимо вы уже отключили добавление новости :) Подскажите, пожалуйста, что за плагин для добавления новости?
А что за плагин для меню пользователя? (там где Профиль, Ваши данные, Галерея объектов)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как реализовать рассылку новостей с сайта?

Автор mystique

Ответов: 6
Просмотров: 6045
Последний ответ 08.01.2017, 16:16:51
от vipiusss
[download] Модуль новостей NewsFader v.1.0.1.1 (fixed)

Автор yunoshev

Ответов: 73
Просмотров: 50688
Последний ответ 03.02.2012, 13:25:51
от yunoshev
Добавление новостей пользователями

Автор ParaNoid_

Ответов: 2
Просмотров: 4042
Последний ответ 22.05.2010, 09:56:46
от BULA
Размещение картинок в статьях

Автор alex_bell

Ответов: 11
Просмотров: 3828
Последний ответ 27.01.2010, 20:00:52
от text
Как добавить ленту новостей

Автор Леся

Ответов: 2
Просмотров: 2587
Последний ответ 17.12.2009, 19:53:49
от Леся