Новости 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 для атрибута addfieldprefix namespace 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 #разработка

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

minibelka

  • Осваиваюсь на форуме
  • 47
  • 3 / 0
В последнее время идет повышенная нагрузка на сайт. Идет превышение лимита хостера по оперативной памяти.

По логам посмотрела и заблокировала все подозрительные активности. Но, не получается заблокировать один IP - 95.167.189.67
Кто знает что это за зверь и как с ним бороться?

Блокировала внесением в черный список Securitycheck и прописала в htaccess.php

Код
[spoiler]
##
# @package Joomla
# @copyright Copyright (C) 2005 - 2014 Open Source Matters. All rights reserved.
# @license GNU General Public License version 2 or later; see LICENSE.txt
##

##
# 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.
##

<Limit GET POST PUT>
order allow,deny
allow from all
deny from 109.162.42.
deny from 134.249.49.
deny from 135.196.116.
deny from 157.55.39.
deny from 164.73.66.
deny from 173.13.41.
deny from 178.137.95.
deny from 183.90.189.
deny from 185.50.250.
deny from 188.165.15.
deny from 188.190.125.
deny from 189.209.78.
deny from 193.105.154.
deny from 193.176.147.
deny from 195.16.88.
deny from 195.3.144.
deny from 208.99.113.
deny from 31.7.187.
deny from 37.139.50.
deny from 46.118.152.
deny from 5.45.64.
deny from 64.120.216.
deny from 66.85.142.
deny from 70.39.145.
deny from 77.40.81.
deny from 80.38.45.
deny from 89.163.166.
deny from 91.105.69.
deny from 91.200.13.
deny from 91.207.117.
deny from 93.171.217.
deny from 94.159.161.
deny from 95.167.189.
deny from 95.167.189.67
deny from 95.211.111.
</LIMIT>


## 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!
#
# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%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})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
#
## End - Rewrite rules to block out some common exploits.

## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
## End - Custom redirects

##
# 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.
#
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the request is for something within the component folder,
# or for the site root, or for an extensionless URL, or the
# requested URL ends with one of the listed extensions
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End - Joomla! core SEF Section.

[/spoiler]

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

minibelka

  • Осваиваюсь на форуме
  • 47
  • 3 / 0
И еще такой вопрос, какова норма использования оперативной памяти для небольшого сайта?
То есть, я смотрю, что даже когда к сайту почти нет обращений, нагрузка составляет примерно 100 Мб.
*

minibelka

  • Осваиваюсь на форуме
  • 47
  • 3 / 0
Продолжая свой монолог... Вчера внесла в htaccess.php код - антилич. Нагрузка упала. Но, здесь также, от этого назойливого обращения с одного и того же IP я уже не зная что делать, просто перевела сайт в режим тех обслуживания и обращения от него прекратились (естественно как временная мера). Так что пока рано судить что именно являлось причиной повышенной нагрузки... Тем более с моим уровнем знаний. :)
*

minibelka

  • Осваиваюсь на форуме
  • 47
  • 3 / 0
Этот наглый IP вернулся, вместе с проблемой повышенной нагрузки. Помогите, что делать? Что не так прописала в файле?
*

ChaosHead

  • Гуру
  • 5242
  • 451 / 13
Вроде Ростелеком http://whois.domaintools.com/95.167.189.67

Цитировать
И еще такой вопрос, какова норма использования оперативной памяти для небольшого сайта?
На 1 посетителя каждая открываемая страничка от 10 до 30мб.

Не люблю я такие суровые хостинги на самом деле, где 3 калеки зайдёт, а уже лимиты срабатывают.
*

minibelka

  • Осваиваюсь на форуме
  • 47
  • 3 / 0
Вот в том и дело, что посещаемость на уровне плинтуса. Сейчас и 10 человек нет в сутки, просто некогда заниматься. А вот отдельные обращения гасят сайт. В частности этот IP.

Да и обращается всегда по каким-то странным url (откуда только берет).

Всего выделяется при текущем тарифном плане 128 Мб оперативки. В целом сайт держится, но некоторое время назад сайт отключал хостер из-за повышенной нагрузки... Причины тогда удалила. Вот теперь боюсь, что опять заблокируют.  :o
*

prostak1

  • Осваиваюсь на форуме
  • 34
  • 2 / 0
Этот наглый IP вернулся, вместе с проблемой повышенной нагрузки. Помогите, что делать? Что не так прописала в файле?
блокировка в .htaccess

Текст файла:

Order deny,allow
deny from all

# Вся подсеть
Allow from 95.167.189.
*

minibelka

  • Осваиваюсь на форуме
  • 47
  • 3 / 0
Заблокировать получилось. Вот только вопрос в том, нагрузка на память все равно довольно большая. При том, что посещаемость на сайте не более 10 человек в сутки + поисковые боты. Или я не права?


Вот график нагрузки на память:
Спойлер
[свернуть]

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

wishlight

  • Гуру
  • 5051
  • 314 / 1
  • От 300 руб быстрый хостинг. Сервера.
На ник ру? Отключите лишние расширения php не нужные для сайта.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
*

minibelka

  • Осваиваюсь на форуме
  • 47
  • 3 / 0
Да, на ник ру. Вроде, уже все лишнее отключила. Из неосновных только реврайт мод - чтобы убрать index.php в адреcе.

А доступ к /administrator по IP закрыть?
*

minibelka

  • Осваиваюсь на форуме
  • 47
  • 3 / 0
Думается мне, раз были советы, то нагрузка большевата. Надо чистить плагины.
*

draff

  • Гуру
  • 5801
  • 434 / 7
  • ищу работу
А доступ к /administrator по IP закрыть?
Обычно закрывают для всех, а открывают для своих. Наверно потому что своих меньше, чем ботсеть. Немного подправил правило, именно для закрытия папки /administrator . Этот файл ложишь в папку /administrator
блокировка в .htaccess
Order deny,allow
deny from all

# Указываешь свой IP
Allow from твой IP

Можно также закрыть http авторизацией. В ПУ хостинга, ISP Manger, CPanel функционал запрета доступа на уровне кнопок.
« Последнее редактирование: 11.03.2015, 16:22:26 от draff »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Автоматическое сжатие фото при загрузке на сайт

Автор Amerikana

Ответов: 13
Просмотров: 4536
Последний ответ 30.06.2022, 11:52:23
от Nikita2705
Мультиязычность. При включении плагина "система - фильтр языков" сайт падает

Автор yuraok

Ответов: 10
Просмотров: 6252
Последний ответ 25.06.2022, 14:23:49
от ecolora
Сайт на Joomla 2.5.28 долго грузится - 1-2 минуты

Автор DanPel

Ответов: 5
Просмотров: 2152
Последний ответ 22.01.2020, 11:15:34
от SeBun
Неправильно открывается сайт

Автор totalcolor

Ответов: 4
Просмотров: 1471
Последний ответ 20.04.2019, 12:54:20
от draff
Прыгает/дергается/скачет сайт при внутренних переходах

Автор vegastk

Ответов: 7
Просмотров: 3512
Последний ответ 16.06.2018, 13:07:49
от voras