Новости Joomla

Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list

👩‍💻 Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list.При работе над плагином возникла необходимость указать стандартный набор из нескольких элементов стандартного поля списка. И хотелось указать их в стандартном же атрибуте default для полей. Когда это нужно?Когда Ваши пользователи устанавливают плагин и НЕ заходят в настройки - в коде вы можете использовать значения по умолчанию с помощью класса Registry (писал об этом ранее) и всегда быть уверенным, что хоть какие-то жизненно необходимые параметры к вам придут всегда. 🧐 Но как сделать то же самое для интерфейса админки?Пользователя нужно направлять, предлагать очевидный работоспособный сценарий для начала, а дальше он уже сам разберется. Когда человек заходит в параметры свежеустановленного плагина в Form ещё нет данных и параметры по умолчанию выставляются из атрибутов default в xml-полях.
<field name="showdesc" type="radio"                       label="PLG_CFI_PARAM_SHOWDESC"                       class="btn-group btn-group-yesno"                       default="1">                    <option value="0">JNO</option>                    <option value="1">JYES</option>                </field>
Здесь по умолчанию будет включено "Да". И если пользователь не переключит параметр, то при сохранении мы ожидаемо получим "да" в params плагина.Для поля списков type=&quot;list&quot; можно указать значение по умолчанию и многие знают, что его можно указать только одно.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default="id"                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
Но у нас поле с множественным выбором (атрибут multiple) и хотелось бы указать несколько значений по умолчанию...Оказывается, так можно сделать. Для этого в атрибуте default нужно указать json с нужными параметрами в виде {int}key : {string} value.Например, default='{"0":"id","1":"title"}'.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default='{"0":"id","1":"title"}'                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
⚠️ Обратите внимание на кавычки! Поскольку json_decode не понимает одинарные кавычки собственно json нужно писать с двойными, а значение для атрибута default писать в одинарные.🙏 За подсказанное решение огромное спасибо участникам нашего сообщества - разработчикам Дмитрию Васюкову (@fictionlabs) и Игорю Бердичевскому (@septdir).@joomlafeed#joomla #разработка #webdev #development

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

Леон

  • Захожу иногда
  • 333
  • 5 / 0
Здравствуйте. Посоветуйте как лучше делать бекапы. На хостинге имеется порядка 90 сайтов, на каждом стоит компонент akeeba backup. В ручную заходить на каждый сайт и делать бекап, потом скачивать его на компьютер и удалять с сервера (для экономии места), выходит довольно долго.
В компоненте разрешил удаленный запуск бекапов, и в ISP панели хостинга, в планировщик, добавил строку и задал ежедневный повтор в 0:00:

Код
wget --max-redirect=10000 "http://сайт1/index.php?option=com_akeeba&view=backup&key=********" -O - 1>/dev/null 2>/dev/null
Метод отлично сработал. В указанное время планировщик запустил и создал бекап сайта.

Далее решил сделать для еще одного сайта, добавил в планировщик еще точно такое же задание только для сайта2. - Результат также отличный.

После добавил в планировщик еще 5 строк, для следующих 5 сайтов, с точно такими же настройками. И что я вижу на утро, 2 бекапа которые запускались первыми рабочие, остальные размером по 0КБ.

Я так подозреваю, что сервер не справляется с запуском в одно время стольких команд планировщика. Можно ли как-то объединить все задания планировщика в одно? Чтобы они шли друг за другом, как только завершился бекап первого сайта, начинался делаться второго...

Либо есть вариант начинать играться с временем, для первого задания 0:00, для второго 0:05... Но сайты разные, одни бекапы делаются за минуту, другие за 10 минут.

Вот строки из моих пока 5-ти задач планировщика, все запускаются в 0:00: (естественно я в них скрыл адрес сайта и ключ)
Код
wget --max-redirect=10000 "http://сайт1/index.php?option=com_akeeba&view=backup&key=********" -O - 1>/dev/null 2>/dev/null
wget --max-redirect=10000 "http://сайт2/index.php?option=com_akeeba&view=backup&key=********" -O - 1>/dev/null 2>/dev/null
wget --max-redirect=10000 "http://сайт3/index.php?option=com_akeeba&view=backup&key=********" -O - 1>/dev/null 2>/dev/null
wget --max-redirect=10000 "http://сайт4/index.php?option=com_akeeba&view=backup&key=********" -O - 1>/dev/null 2>/dev/null
wget --max-redirect=10000 "http://сайт5/index.php?option=com_akeeba&view=backup&key=********" -O - 1>/dev/null 2>/dev/null
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Совет по созданию бекапов
« Ответ #1 : 13.11.2015, 10:38:00 »
Попробуйте договорится с хостингом оффициально для систематически в указанное время/день делать бекап полный.
Понятно, что платно вам это будет.Пусть сами бекапят, а вы проверяйте переодически.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: Совет по созданию бекапов
« Ответ #2 : 13.11.2015, 10:38:38 »
Рассчитайте время так, что по окончании одного бекапа запускался следующий, но не сразу, а мин через 5 - со временем сайт растет и время бекапа увеличивается
*

Леон

  • Захожу иногда
  • 333
  • 5 / 0
Re: Совет по созданию бекапов
« Ответ #3 : 13.11.2015, 10:44:14 »
Попробуйте договорится с хостингом оффициально для систематически в указанное время/день делать бекап полный.
Понятно, что платно вам это будет.Пусть сами бекапят, а вы проверяйте переодически.

На хостинге есть такая функция, наш адмиинстратор ее испытал. Она делает полный бекап ISP панели и всех сайтов на ней в один большой файл. Это не совсем подойдет если мне нужно будет восстановить только 1 сайт. Или восстановить его на другом хостинге который не поддерживает данный вид архивов.

Рассчитайте время так, что по окончании одного бекапа запускался следующий, но не сразу, а мин через 5 - со временем сайт растет и время бекапа увеличивается

Про это я уже подумал, 90 сайтов, если я на каждый буду ставить 15 минут, это займет примерно 22.5 часов, будет складываться ощущение что бекапы делаются постоянно)) Но наверное это пока реальный выход.
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Совет по созданию бекапов
« Ответ #4 : 13.11.2015, 10:47:25 »
Но у хостинга есть другое:они могут в планировку ставить определённые вещи, например, бекапы ваших сайтов "поштучно", и тогда вы сможете потребовать любой бекап.
Ну в линуксе вроде есть такая программа, вот не помню точно, поговорите с ними, они же лучше посоветуют.
Если хотите-могу у своего спросить, как лучше в данной ситуации, у меня тоже ИСП панель и линукс у них, и очень мощный хост.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Леон

  • Захожу иногда
  • 333
  • 5 / 0
Re: Совет по созданию бекапов
« Ответ #5 : 13.11.2015, 10:55:56 »
vipiusss, у нас не совсем хостинг) Это виртуальный сервер, и хостер это наш администратор, поэтому спросить про бекапы у него не получится)

Скажите, а если купить про версию акебы, там как я понял смогу из админки сайта настроить время запуска бекапов, это по сути тоже самое что я делаю в планировщике или это будет лучше работать?
« Последнее редактирование: 13.11.2015, 11:01:12 от Леон »
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Совет по созданию бекапов
« Ответ #6 : 13.11.2015, 11:02:37 »
ну про акебу незнаю, думаю вам лучше с тех поддержкой акебы пообщаться.
ещё как вариант, можно иной хост купить(для полной уверенности) и там с ними настроить бекапы, чтобы к ним копии шли, а они подскажут, как правильно.
///
лучше технически обезопаситься и делать физические копии, нежели на компоненты или код расчитывать.
думаю лучше с помощью хостинга нового или физ.диска.имхо.
« Последнее редактирование: 13.11.2015, 11:07:39 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Леон

  • Захожу иногда
  • 333
  • 5 / 0
Re: Совет по созданию бекапов
« Ответ #7 : 13.11.2015, 11:14:34 »
У нас есть 1ТБ на Яндекс диске, в планах настроить чтобы бекапы шли сразу туда, или написание какого-то скрипта который будет также планировщиком или другим способом запускаться и копировать уже созданные бекапы на Яндекс диск. (видели примеры скриптов в сети, но еще не разбирались с этим).
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Совет по созданию бекапов
« Ответ #8 : 13.11.2015, 11:24:46 »
Ну Яндекс вы не сможете контролировать и в случае чего-никаких к ним претензий вы не сможете.
А если хост купите и договоритесь-тут уже хост никуда не денется и будет вам делать и отвечать юридически за бекапы.
///
И кстати:посмотрел у себя в ИСП панели:можно восстановление делать, указывая домен полный(я имею ввиду весь бекап сайта),БД и папки по отдельности.
У меня месяц бекапы хост заявляет на хранение.
« Последнее редактирование: 13.11.2015, 11:28:30 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

flyingspook

  • Живу я здесь
  • 3590
  • 247 / 9
Re: Совет по созданию бекапов
« Ответ #9 : 13.11.2015, 12:11:00 »
В ISP панели есть возможность создавать бэкапы файлов баз и даже отправлять их куда надо для хранения. Вам надо просто все настроить правильно по времени, по папкам/файлам и бд для каждого сайта. Там даже под каждым пользователем настраивается бэкапирование.
Вы выбрали неправильное направление с akeeba backup. Все настраивается и работает в ispmanager только время надо будет указывать свое для каждого бэкапа иначе сервер нагружаться будет.
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Re: Совет по созданию бекапов
« Ответ #10 : 13.11.2015, 12:14:52 »
В ISP панели есть возможность создавать бэкапы файлов баз и даже отправлять их куда надо для хранения.
Вот и я выше написал, что такое в ИСП есть по отдельности, как захочешь, просто ТСу нужно панель лучше поизучать.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Леон

  • Захожу иногда
  • 333
  • 5 / 0
Re: Совет по созданию бекапов
« Ответ #11 : 13.11.2015, 12:18:53 »
Спасибо за советы. Действительно, нужно лучше изучить панель.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Нужен совет. На чем лучше реализовать это

Автор FitMe

Ответов: 6
Просмотров: 1454
Последний ответ 14.04.2016, 16:46:16
от flyingspook