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

MaxFarSeer

  • Захожу иногда
  • 384
  • 29 / 0
  • http://ru.ah.fm:80
Добрый день, понадобилось решить такую проблему.
Есть несколько сайтов:
http://greenwoodhouse.ru/
http://1greenwoodhouse.ru/
http://1greenwoodhouse.com/

Соответственно, материал может быть доступен например по таким ссылкам:
http://greenwoodhouse.ru/index.php/passivnyj-dom/92-tehnologii-stroitelstva-effektivnaya-teploizolyaciya/stroitelstvo-c/88-siti-ugol
http://1greenwoodhouse.ru/index.php/passivnyj-dom/92-tehnologii-stroitelstva-effektivnaya-teploizolyaciya/stroitelstvo-c/88-siti-ugol
http://1greenwoodhouse.com/index.php/passivnyj-dom/92-tehnologii-stroitelstva-effektivnaya-teploizolyaciya/stroitelstvo-c/88-siti-ugol

И там еще другие домены вроде есть.

Подскажите как написать, чтобы сайт был доступен на этом домене - http://greenwoodhouse.ru/ , и следовательно, чтобы все материалы открывались только по этому адресу (например, http://greenwoodhouse.ru/index.php/passivnyj-dom/92-tehnologii-stroitelstva-effektivnaya-teploizolyaciya/stroitelstvo-c/88-siti-ugol)

Я так понял, нужно править .htaccess , но что написать - не понял.
Не можете найти, где редактировать код? Читаем:
Быстрый и легкий поиск нужных файлов для редактирования чего-либо

Я много времени потратил на изменение готовых шаблонов, раскуривание чего и как там у буржуев, менял код вложенный в 100500 дивов, да они неплохи эти T3 и Warp (YOO), но стоит начать делать свой шаблон...Ребята!!! Всем советую! Свое - так легко настраивать!
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Если у вашего сайта несколько имен, но вы хотите, чтобы пользователи всегда видели в адресной строке основное имя сайта, добавьте в файл .htaccess в корне вашего сайта следующие строки:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^example.com$
RewriteRule ^(.*) http://example.com/$1 [R=301,L]
*

MaxFarSeer

  • Захожу иногда
  • 384
  • 29 / 0
  • http://ru.ah.fm:80
у меня проблема в том, что в индексе некоторые сайты выходят выше, а основной greenwoodhouse при это теряет, я так понимаю. Мне бы хотелось чтобы с поиска яндекса, люди редиректились всегда на greenwoodhouse , потом и Яндекс поймет че к чему
Не можете найти, где редактировать код? Читаем:
Быстрый и легкий поиск нужных файлов для редактирования чего-либо

Я много времени потратил на изменение готовых шаблонов, раскуривание чего и как там у буржуев, менял код вложенный в 100500 дивов, да они неплохи эти T3 и Warp (YOO), но стоит начать делать свой шаблон...Ребята!!! Всем советую! Свое - так легко настраивать!
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
код для .htaccess выше работает или нет?
и откуда бы не пришел пользователь он всегда попадет на основной домен
к чему было создавать несколько сайтов?
*

MaxFarSeer

  • Захожу иногда
  • 384
  • 29 / 0
  • http://ru.ah.fm:80
какой то волшебный вебмастер создал кучу доменов. Код выше попробую ближе к ночи, отпишусь.
Не можете найти, где редактировать код? Читаем:
Быстрый и легкий поиск нужных файлов для редактирования чего-либо

Я много времени потратил на изменение готовых шаблонов, раскуривание чего и как там у буржуев, менял код вложенный в 100500 дивов, да они неплохи эти T3 и Warp (YOO), но стоит начать делать свой шаблон...Ребята!!! Всем советую! Свое - так легко настраивать!
*

MaxFarSeer

  • Захожу иногда
  • 384
  • 29 / 0
  • http://ru.ah.fm:80
Ситуация следующая:
на фтп, есть одна папка, на нее ссылаются все 3 (1greenwoodhouse.com, 1greenwoodhouse.ru и greenwoodhouse.ru)
в корне в htaccess дописал, и вот что там получилось:

Код
##
# @version $Id: htaccess.txt 14401 2010-01-26 14:10:00Z louis $
# @package Joomla
# @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
# Joomla! is Free Software
##


#####################################################
#  READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE
#
# The line just below this section: 'Options +FollowSymLinks' may cause problems
# with some server configurations.  It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file.  If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your SEF url's.  If they work,
# it has been set by your server administrator and you do not need it set here.
#
#####################################################

##  Can be commented out if causes errors, see notes above.
Options +FollowSymLinks

#
#  mod_rewrite in use

RewriteEngine On

########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
## Deny access to extension XML files (uncomment out to activate)
#<Files ~ "\.xml$">
#Order allow,deny
#Deny from all
#Satisfy all
#</Files>
## End of deny access to extension XML files
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^(.*)$ index.php [F,L]
#
########## End - Rewrite rules to block out some common exploits

#  Uncomment following line if your webserver's URL
#  is not directly related to physical file paths.
#  Update Your Joomla! Directory (just / for root)

# RewriteBase /


########## Begin - Joomla! core SEF Section
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
#
########## End - Joomla! core SEF Section

RewriteEngine on
RewriteCond %{HTTP_HOST} !^1greenwoodhouse.com$
RewriteCond %{HTTP_HOST} !^1greenwoodhouse.ru$
RewriteRule ^(.*) http://greenwoodhouse.ru/$1 [R=301,L]

если пишу в браузере 1greenwoodhouse.com или 1greenwoodhouse.ru - не попадаю на greenwoodhouse.ru Может ошибся где?
пойду еще у хостера спрошу.
Не можете найти, где редактировать код? Читаем:
Быстрый и легкий поиск нужных файлов для редактирования чего-либо

Я много времени потратил на изменение готовых шаблонов, раскуривание чего и как там у буржуев, менял код вложенный в 100500 дивов, да они неплохи эти T3 и Warp (YOO), но стоит начать делать свой шаблон...Ребята!!! Всем советую! Свое - так легко настраивать!
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
не туда вставил
Код: php
##  Can be commented out if causes errors, see notes above.
Options +FollowSymLinks

#
#  mod_rewrite in use

RewriteEngine On  <<<<вот здесь реврайт включается, ниже строчки надо добавить

########## Begin - Rewrite rules to block out some common exploits
*

MaxFarSeer

  • Захожу иногда
  • 384
  • 29 / 0
  • http://ru.ah.fm:80
Поставил.
Сейчас открывается 1greenwoodhouse.com и 1greenwoodhouse.ru без редиректа. Как и было.

А адрес http://greenwoodhouse.ru/ не открывается, пишет "Неверное перенаправление на странице"

кстати, вот еще парочка нашлась. Это последние)

зеленыедеревянныедома.com
зеленыедеревянныедома.рф
« Последнее редактирование: 13.05.2012, 22:01:02 от MaxFarSeer »
Не можете найти, где редактировать код? Читаем:
Быстрый и легкий поиск нужных файлов для редактирования чего-либо

Я много времени потратил на изменение готовых шаблонов, раскуривание чего и как там у буржуев, менял код вложенный в 100500 дивов, да они неплохи эти T3 и Warp (YOO), но стоит начать делать свой шаблон...Ребята!!! Всем советую! Свое - так легко настраивать!
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
MaxFarSeer, посмотреть надо в панели хостера - там должно быть что-то вроде перенаправления (301/302 редирект) всех(нужных) доменов на один.
или в корне каждого сайта в .htaccess прописать эти строки
RewriteCond %{HTTP_HOST} !^example.com$
RewriteRule ^(.*) http://greenwoodhouse.ru/$1 [R=301,L]
*

MaxFarSeer

  • Захожу иногда
  • 384
  • 29 / 0
  • http://ru.ah.fm:80
да они все ссылаются на одну папку, поэтому я хостеру написал тоже, по поводу этой проблемы. Но видать ночь, спят) как решится вопрос - напишу. Спасибо, за помощь! Если будут вопросы по синтаксису, тоже черкну сюда.
Не можете найти, где редактировать код? Читаем:
Быстрый и легкий поиск нужных файлов для редактирования чего-либо

Я много времени потратил на изменение готовых шаблонов, раскуривание чего и как там у буржуев, менял код вложенный в 100500 дивов, да они неплохи эти T3 и Warp (YOO), но стоит начать делать свой шаблон...Ребята!!! Всем советую! Свое - так легко настраивать!
*

MaxFarSeer

  • Захожу иногда
  • 384
  • 29 / 0
  • http://ru.ah.fm:80
Re: Как настроить постоянный редирект?
« Ответ #10 : 16.05.2012, 19:18:00 »
хостер ничего толком не ответил. Так и не могу редирект настроить.
Скажите, а как определяется - нужно смотреть .htaccess или нет? вот кинул я в папку index.html и .htaccess и... надо где то прописать, что перед загрузкой индекс.хтмл посмотри в .htaccess ?

p.s. перенаправления через панель хостера - тоже не оказалось. Заговор!)
Не можете найти, где редактировать код? Читаем:
Быстрый и легкий поиск нужных файлов для редактирования чего-либо

Я много времени потратил на изменение готовых шаблонов, раскуривание чего и как там у буржуев, менял код вложенный в 100500 дивов, да они неплохи эти T3 и Warp (YOO), но стоит начать делать свой шаблон...Ребята!!! Всем советую! Свое - так легко настраивать!
*

tefun

  • Живу я здесь
  • 2540
  • 130 / 1
  • Легче всего обмануть себя
Re: Как настроить постоянный редирект?
« Ответ #11 : 16.05.2012, 19:21:46 »
хостер ничего толком не ответил.
мне знаешь, что он сегодня ответил? воть:
Код
Здравствуйте. Это не проблема, и не дубли страниц, это одна и та же страница, открывающаяся 3-мя способами. 


MaxFarSeer Попробуй так
то что постится на фОруме, не вырубается тапОрами
_______________________________________________
Мысли и женщины вместе не приходят М.Ж.
*

MaxFarSeer

  • Захожу иногда
  • 384
  • 29 / 0
  • http://ru.ah.fm:80
Re: Как настроить постоянный редирект?
« Ответ #12 : 19.05.2012, 11:59:45 »
Всем спасибо за ответы, ситуация следующая. Сейчас есть для каждого домена своя папка. Если я просто кидаю в папку .htaccess то ничего не происходит. При обращении к сайту пишет что нет index.html и ошибка 403. Если положить туда любой index.html - то будет грузится эта страница. Может надо как то "включить обращение к htaccess" ?)
Не можете найти, где редактировать код? Читаем:
Быстрый и легкий поиск нужных файлов для редактирования чего-либо

Я много времени потратил на изменение готовых шаблонов, раскуривание чего и как там у буржуев, менял код вложенный в 100500 дивов, да они неплохи эти T3 и Warp (YOO), но стоит начать делать свой шаблон...Ребята!!! Всем советую! Свое - так легко настраивать!
*

ELLE

  • Глобальный модератор
  • 4506
  • 893 / 0
Re: Как настроить постоянный редирект?
« Ответ #13 : 19.05.2012, 17:54:37 »
тогда может быть закинуть не index.html а index.php и написать в нем редирект на php
и в топку такого хостера..
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Как настроить постоянный редирект?
« Ответ #14 : 19.05.2012, 18:07:37 »
MaxFarSeer попробуйте добавить строку в .htaccess
DirectoryIndex index.php index.html
Можно указать несколько индексных страниц. При запросе каталога они будут искаться в том порядке, в котором перечислены в директиве DirectoryIndex. Если не будет найден файл  index.php, то будет произведен поиск файла index.html и т.д.
*

MaxFarSeer

  • Захожу иногда
  • 384
  • 29 / 0
  • http://ru.ah.fm:80
Re: Как настроить постоянный редирект?
« Ответ #15 : 20.05.2012, 12:11:48 »
В общем, пообщался я с яндексом. На основе переписки, решил что самым простым вариантом будет прописать в роботс.тхт главное зеркало (host: bla bla) и робот в будущем склеит все домены как надо. Всем спасибо за ответы еще раз.
Не можете найти, где редактировать код? Читаем:
Быстрый и легкий поиск нужных файлов для редактирования чего-либо

Я много времени потратил на изменение готовых шаблонов, раскуривание чего и как там у буржуев, менял код вложенный в 100500 дивов, да они неплохи эти T3 и Warp (YOO), но стоит начать делать свой шаблон...Ребята!!! Всем советую! Свое - так легко настраивать!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Редирект для страницы с добавлением кода языка

Автор zeus07

Ответов: 0
Просмотров: 2171
Последний ответ 26.06.2023, 11:25:10
от zeus07
Htaccess и редирект с index.php на без index.php

Автор PavelK

Ответов: 2
Просмотров: 4427
Последний ответ 11.05.2023, 14:31:40
от PaLyCH
Как настроить редирект через маску содержащую часть пути?

Автор Slava77

Ответов: 0
Просмотров: 2844
Последний ответ 18.01.2023, 03:17:15
от Slava77
Редирект - исключение из правил (слэш)

Автор darkghost

Ответов: 0
Просмотров: 2665
Последний ответ 26.08.2022, 12:54:19
от darkghost
Редирект - JShop - слеш в конце URL

Автор darkghost

Ответов: 17
Просмотров: 3338
Последний ответ 16.08.2022, 15:18:30
от darkghost