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

Леха

  • Новичок
  • 8
  • 0 / 0
Вообще это реально ли быстро расставить права на файлы?
Я отталкивался от такой информации:

"На ВСЕ файлы и папки делайте CHMOD 644 и 755 соответственно. Если Joomla нужны будут права для записи/перезаписи, то она скажет об этом сама, подсветив нужные ей папки и файлы КРАСНЫМ цветом с сообщением Недоступно для записи."


То есть выходит нужно сперва расставить права на папки, а потом входить в каждую папку и подпапку чтобы поставить права на все файлы что внутри?.... Или это касается только файлов в корневой директории и папок в корневой директории? В таком случае все займет меньше минуты.
В первом же случае - это больше часа  :( Как-то не вяжется с очень быстрой разработкой сайта на Joomla. То есть сайт делаешь 2-3 часа, а потом час-два права на файлы раставляешь.  ;D :laugh:  Или есть какой-то быстрый способ.
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
Re: расставить права на файлы быстро
« Ответ #1 : 16.08.2010, 12:18:15 »
Вообще это реально ли быстро расставить права на файлы?
Я отталкивался от такой информации:

"На ВСЕ файлы и папки делайте CHMOD 644 и 755 соответственно. Если Joomla нужны будут права для записи/перезаписи, то она скажет об этом сама, подсветив нужные ей папки и файлы КРАСНЫМ цветом с сообщением Недоступно для записи."


То есть выходит нужно сперва расставить права на папки, а потом входить в каждую папку и подпапку чтобы поставить права на все файлы что внутри?.... Или это касается только файлов в корневой директории и папок в корневой директории? В таком случае все займет меньше минуты.
В первом же случае - это больше часа  :( Как-то не вяжется с очень быстрой разработкой сайта на Joomla. То есть сайт делаешь 2-3 часа, а потом час-два права на файлы раставляешь.  ;D :laugh:  Или есть какой-то быстрый способ.

галочку поставить "права ан все вложенные папки"."права ан все вложенные папки и файлы ". "права ан все вложенные файлы"
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

Леха

  • Новичок
  • 8
  • 0 / 0
Re: расставить права на файлы быстро
« Ответ #2 : 16.08.2010, 13:09:14 »
 ^-^
эт понятно!
но если нужно чтобы на папки были права 755, а на файлы 644 то так не сделаешь...
получится что права или 755 или 644 и на папки и на файлы.
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
Re: расставить права на файлы быстро
« Ответ #3 : 16.08.2010, 13:57:24 »
^-^
эт понятно!
но если нужно чтобы на папки были права 755, а на файлы 644 то так не сделаешь...
получится что права или 755 или 644 и на папки и на файлы.
ну да сначалавсе на папки 755 выставит..быстро..потом файлы..что чуть дольше
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

Леха

  • Новичок
  • 8
  • 0 / 0
Re: расставить права на файлы быстро
« Ответ #4 : 16.08.2010, 14:19:06 »
Ага! Вот именно. Чуть-чуть.  ;D 1 минута на папки и пол часа - час на файлы.
Выходит иначе никак?
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: расставить права на файлы быстро
« Ответ #5 : 16.08.2010, 14:26:40 »
"

Установка через скрипт PHP
Если под рукой нет этих файловых менеджеров, то можно это сделать используя встроенную функцию в php – chmod.
Её синтаксис такой: chmod (“полный путь к имени файла [или папки]”, режим [т.е права]); Возвращает TRUE в случае успешного завершения, FALSE в случае возникновения ошибки.
Например, чтобы установить права на папку /dir/somedir = 755, нужно создать php страничку вида:
<?
chmod ("/dir/somedir", 0755);
?>
Закинуть страничку на сервер и запустить.
"

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

fedya

  • Захожу иногда
  • 463
  • 50 / 1
Вместо того, чтобы доказывать истинность своих положений и опровергать аргументацию оппонента, демагог может обращаться к приёму ad hominem — критиковать не аргументы, а личность оппонента, пытаясь убедить зрителей, что оппонент — плохой, недостойный, не разбирающийся в вопросе, пристрастный или лицемерный человек.
*

Леха

  • Новичок
  • 8
  • 0 / 0
Re: расставить права на файлы быстро
« Ответ #7 : 16.08.2010, 14:30:29 »
А Joomla pack случайно не раставляет?

Re: расставить права на файлы быстро
« Ответ #8 : 23.08.2010, 12:45:55 »
Всем доброго времени суток. Не понятен один вопрос, может кто подскажет. Вот говорится что когда уже всё установлено, то нужно выставить права на файлы 644, а на папки 755. А кто при этом должен быть владельцем? Ведь подключаемся на хостинг под суперпользователем ROOT. Сервер Apache.
*

Леха

  • Новичок
  • 8
  • 0 / 0
Re: расставить права на файлы быстро
« Ответ #9 : 23.08.2010, 13:08:26 »
Насчет этого я не заморачивался. Если я захожу на хостинг и ставлю права, то значит владелец я.
Кстати разобрался как быстро поставить права. Через Cpanel. Я так понял этот элемент управления интерфейсом сайта сейчас популярен.
И можно сперва поставить права 644 на все папки и вкючая подпапки и файлы, а затем только на папки и подпапки 755
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
Re: расставить права на файлы быстро
« Ответ #10 : 23.08.2010, 13:10:52 »
Цитировать
И можно сперва поставить права 644 на все папки и вкючая подпапки и файлы, а затем только на папки и подпапки 755
а смысл двойную работу? папкам сначала 644, а потом 755..в принципе изначально у них стоят 750, что тоже допустимо в большинстве случаев.
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

Kolsat

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
Re: расставить права на файлы быстро
« Ответ #11 : 07.10.2011, 15:53:51 »
Здравствуйте! Уточнение по поводу все тех же папок... Вот, перелопатил форум, понял, что на папки ставлю 755, а то и 750. На файлы 644. Но! Joomla требует, скажем, на папку компонентс 777, а внутри этой папки оставляем старый принцип: 755 и 644? Или все надо устанавливать в 777? Тогда это самое небезопасное, что можно придумать:) Вот такой момент, а что, если я тупо оставлю и на папке компонентс 755, а менять буду только в случае обновлений и установок? Ну и что, что в сисинформ. Joomla ругается, что так нельзя. Это правильно? Есть ли обязательные для 777 папки, типа кеша?

И второй вопрос не по профилю, но может, кто знает. Есть ли синтаксис для убунту, который позволит одной коммандой выставить права на папку 755, а второй коммандой всем файлам установит права 644, а дальше я ручками подкорректирую те папки и файлы, что требуют иных прав?

Заранее благодарю за ответы!
*

SinBad

  • Завсегдатай
  • 1879
  • 187 / 0
  • Мнне 40 лет, мне 40 лет, ума так и не нажил!
Re: расставить права на файлы быстро
« Ответ #12 : 07.10.2011, 16:03:03 »
Здравствуйте! Уточнение по поводу все тех же папок... Вот, перелопатил форум, понял, что на папки ставлю 755, а то и 750. На файлы 644. Но! Joomla требует, скажем, на папку компонентс 777, а внутри этой папки оставляем старый принцип: 755 и 644? Или все надо устанавливать в 777? Тогда это самое небезопасное, что можно придумать:) Вот такой момент, а что, если я тупо оставлю и на папке компонентс 755, а менять буду только в случае обновлений и установок? Ну и что, что в сисинформ. Joomla ругается, что так нельзя. Это правильно? Есть ли обязательные для 777 папки, типа кеша?

И второй вопрос не по профилю, но может, кто знает. Есть ли синтаксис для убунту, который позволит одной коммандой выставить права на папку 755, а второй коммандой всем файлам установит права 644, а дальше я ручками подкорректирую те папки и файлы, что требуют иных прав?

Заранее благодарю за ответы!

777 выставляются в том случае когад необходимо ставить какие нибудь компоненты или плагины, модули.
То есть вы можете назначить права папкам, которые препятствуют устанвоке новых компонентов.

find -type d -exec chmod 755 {} \;
find -type f -exec chmod 644 {} \;
...Фет для них песни поёт. Фет не прикольный поэт - Фету никто не даёт.
*

Kolsat

  • Осваиваюсь на форуме
  • 38
  • 0 / 0
Re: расставить права на файлы быстро
« Ответ #13 : 07.10.2011, 16:27:13 »
SinBad, спасибо!  *DRINK*
*

Louing

  • Новичок
  • 2
  • 0 / 0
Re: Расставить права на файлы быстро
« Ответ #14 : 06.10.2013, 23:09:39 »
Доброго времени всем!

777 выставляются в том случае когад необходимо ставить какие нибудь компоненты или плагины, модули.
То есть вы можете назначить права папкам, которые препятствуют устанвоке новых компонентов.

find -type d -exec chmod 755 {} \;
find -type f -exec chmod 644 {} \;

Немного туплю видимо с этой же проблемой. Поднял вопрос тут ( http://joomlaforum.ru/index.php/topic,199884.msg1381694.html#msg1381694 ), насчет невозможности установить русскую локализацию через Extension Manager, процитирую:

Делаю все по инструкции топика. Выдает ошибку "Warning: Failed to move file!" Скрин: http://storage9.static.itmages.com/i/13/1006/h_1381081936_7731001_a9110572d1.png

ОС Ubuntu 12.10; LAMP и Joomla ставил по инструкции http://plutonit.ru/view_post.php?id=452
Версия Joomla: 2.5.14 Stable (скачал с http://joomlaportal.ru/content/view/2409/70/по ссылке http://joomlacode.org/gf/download/frsrelease/18624/83476/Joomla_2.5.14-Stable-Full_Package.tar.gz)

Пробовал установить локализацию несколько раз. Предполагаю, проблема может быть в правах на папку tmp?

udp: Зашел в меню Site->System Information->Directory Permissions и напротив всех пунктов стоят значения "Unwritable"

Полный список этих пунктов:
Спойлер
[свернуть]

Как я уже понял, нужно всем перечисленным папкам дать права 755 и файлам 644? У меня ОС Ubuntu.

find -type d -exec chmod 755 {} \;
find -type f -exec chmod 644 {} \;

Смысл команд вроде понятен: "найти типы папку/файл и назначить права 755 или соответственно 644". Только как и к какой папке нужно их применить?
Недопонял просто концовку вышеперечисленных команд  "{} \;", т.е. что подставлять вместо фигурных скобок, что значит обратный слеш и точка с запятой в данном случае. Как правильно написать команды для моих папок/файлов? Joomla в Убунте у меня лежит в папке /var/www/joomla

****
Еще попутно прочитал о том, что нельзя раздавать права "направо и налево" (где-то вроде даже советуют поставить права "777", что видимо не хорошо), и могу предположить, указанный здесь совет насчет прав для папок 755 и для файлов 644 оптимален в смысле безопасности? Т.е. сейчас сайт (Joomla) будет лежать у меня на локальном сервере LAMP на Убунте с соответствующими правами (для папок 755 и для файлов 644) и затем я перенесу файлы сайта (Joomla) на сервер с этими же правами?
****

Заранее благодарю за помощь!
« Последнее редактирование: 07.10.2013, 01:07:16 от Louing »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Какие права на папки и файлы после переноса на хостинг выставлять

Автор mvart

Ответов: 16
Просмотров: 26635
Последний ответ 12.01.2013, 17:49:21
от Chingis
Не видно (и не устанавливаются права доступа) к разделам, категориям и пр

Автор bishop1

Ответов: 0
Просмотров: 1556
Последний ответ 16.02.2012, 10:49:55
от bishop1
Права доступа на сервере

Автор sass

Ответов: 3
Просмотров: 1995
Последний ответ 23.11.2011, 00:06:12
от nightstalker
Залил на серер, разархивировал, права дал 777на public_html но сайт не запускается

Автор Chester13

Ответов: 5
Просмотров: 2863
Последний ответ 06.09.2011, 20:41:31
от Chester13
какие файлы и куда надо перемещать по ftp?

Автор gorgr

Ответов: 13
Просмотров: 2569
Последний ответ 29.08.2011, 15:24:48
от Taatshi