Топ 7. Скрытые возможности DevelNext

Итак, в этой статье мы расскажем о 7 скрытых возможностях DevelNext.

1. Копирование компонентов в txt

Вы когда-нибудь пробовали скопировать компонент в DevelNext и вставить его в текстовый файл или в сообщение на форуме? Если нет, то попробуйте. Перед вами возникнет XML код (похожий на HTML), внутри которого будет вся информация о скопированном компоненте и даже код его событий. Но это еще не все, если вы сохраните этот код в txt файл, а потом, когда-нибудь скопируете текст из этого файла, то легко сможете вставить этот текст как компонент в среде DevelNext.


2. Свой текст приветствия

Когда запускается DevelNext, то он приветствует какой-то фразой, цитатой или шуткой. В базе есть около 100 таких приветствий, но если вам хочется чего-то новенького, вы можете легко добавить свои, делается это просто. Открываете файл /languages/ru/tips  в директории DevelNext с помощью любого текстового редактора и добавляете в конец свою фразу-приветствие. Учтите, что пустые строки игнорируются.


3. Закрытие Splash заставки

В опциях к проекту вы можете добавить свою splash заставку в виде картинки, которая будет запускаться при старте проекта, еще до полной загрузки приложения. Однако, если вам необходимо показывать заставку вплоть до ваших каких-то условий, а не закрывать сразу, вы делаете следующее:

  1. Отключаете опцию “Автоматически скрывать заставку после старта”.
  2. В коде своего условия, пишите закрытие splash заставки:
1
app()->hideSplash();

4. Песочница для кода

Вот здесь, возможно не все поймут, для чего это нужно. Все дело в том, что в JPHP есть возможность выполнять код в песочнице, в изолированном режиме. В этом режиме из кода нет доступа к классам и функциям, которые были объявлены программистом ранее, а код выполняется как бы в чистом окружении, все с чистого листа. Это похоже на расширение runkit из оригинального php, только все работает из коробки и отлично поддерживается. А теперь, покажем – как это делать в коде:

1
2
3
4
5
6
// создаем конкурентное окружение, для поддержки многопоточности
$env = new Environment(null, Environment::CONCURRENT);
$env->execute(function () {
// код выполняется в изолированной системе, классы объявленные ранее - недоступны.
// все с чистого листа.
});

Такой режим выполнения может пригодиться, если вы хотите добавить скриптовую систему в свою программу или игру. Для безопасности, скриптовая система должна быть изолирована от кода приложения и выполняться отдельно. Вот вам и пригодится волшебный класс Environment. Кроме того, он многое умеет – импортировать и экспортировать классы/константы/функции из других окружений или в текущее окружение. И да, кстати, ваш код тоже выполняется в каком-то окружении Environment, его легко получить через специальный метод current():

1
2
// текущее окружение.
$env = Environment::current();

5. Скрытые поведения

Мы о поведениях для компонентов, о конкретных вещах. Многие и не догадываются, что есть такие поведения, которые недоступны в стандартном наборе, а появляются только для специальных типов компонентов. Иными словами, если поведение поддерживается только определенным типом компонентов, то только у них оно будет отображаться. Среди таких поведений есть, например,  Ограничение ввода символов – у текстовых полей для ввода. Не забывайте также, что после добавления пакета расширений 2D Game, появляется целый набор новых поведений во вкладке “Игра”. Тоже самое может происходить и при добавлении сторонних пакетов, если они реализуют новые поведения.


6. Хранение данных в компонентах

Иногда возникает необходимость хранить внутри компонента какие-то дополнительные данные, для какой-то дополнительной логики. Если вы начинающий, то поверьте на слово, возможность хранить данные связанные с конкретным компонентом – это очень удобно для многих случаев. Программисты на JS очень хорошо знают про data-атрибуты или метод data() из jQuery, все это применяется там для тех же целей.

В DevelNext у абсолютно всех компонентов, даже модульных, есть метод data(), он универсален, может как записывать данные, так и читать, похож на метод data() из jQuery:

1
2
3
4
5
// записываем данные.
$this->button->data("my-super-secret-data", "123456");

// читаем данные компонента в переменную.
$mySuperSecretData = $this->button->data("my-super-secret-data");

7. Скрытый HTML редактор


В DevelNext есть один интересный компонент, визуальный редактор html, однако, его нет на палитре компонентов в редакторе форм. Не добавлен он по одной причине – плохая поддержка кастомизации, т.е. авторы компонента совсем не предусмотрели гибкую настройку компонента, то какие кнопки показывать/скрывать, нет возможности добавить новый функционал. В итоге проще было бы написать свой компонент, нежели использовать этот. Но он все равно присутствует в ядре и его можно использовать, если вас все устраивает. Создать его можно с помощью кода, например, в событии появления формы:

1
2
3
4
5
6
7
8
9
10
11
/**
* @event show
*/

function doShow(UXWindowEvent $e = null)
{
$editor = new UXHtmlEditor();
$editor->id = 'htmlEditor';
$editor->size = $this->layout->size;
$editor->anchors = ['left' => true, 'top' => true, 'right' => true, 'bottom' => true];
$this->add($editor);
}

Получить итоговый html текст, того что пользователь наредактировал в компоненте, можно через свойство htmlText:

1
$htmlText = $editor->htmlText;

Читайте также:

комментариев 28

  1. Слушайте круто. Но теперь жду доки по dffi.

  2. Хотелось бы подробнее про копирование объекта в текст.

  3. Пользователям нужно больше информации , и подробнее с примерами .
    А так только много вопросов и нет ответов.

  1. 09.05.2020

    cialis over counter walmart

    cialis commercial black couple your profile – cialis and prostate – cialis reviews side effects community

  2. 16.05.2020

    viagra 100mg

    india drug manufacturers viagra – viagra offers – buy online shop female viagra

  3. 16.05.2020

    how long does cialis last

    buy affordable viagra,cialis online – buy cialis online no new posts – cialis generic 20 mg i forgot my password

  4. 26.05.2020

    cialis online pharmacy

    cialis pen – can women take cialis tablets – cialis pills canada log out

  5. 03.06.2020

    viagra pills

    viagra pills side effects positive 1 – viagra professional in london – viagra discount

  6. 10.06.2020

    tadalafil dosage

    buy generic cialis online – does cialis work more than once bbs.cgi?mode= – generic cialis tadafil

  7. 15.11.2020

    otc cialis

    otc cialis

  8. 15.11.2020

    cialis dosages

    cialis dosages

  9. 16.11.2020

    cialis for daily use

    cialis for daily use

  10. 16.11.2020

    viagra connect

    viagra connect

  11. 16.11.2020

    cialis samples request

    cialis samples request

  12. 17.11.2020

    buying cialis online

    buying cialis online

  13. 17.11.2020

    how to buy viagra

    how to buy viagra

  14. 18.11.2020

    cialis samples

    cialis samples

  15. 18.11.2020

    i took viagra mom

    i took viagra mom

  16. 19.11.2020

    sildenafil viagra

    sildenafil viagra

  17. 19.11.2020

    sildenafil results

    sildenafil results

  18. 19.11.2020

    effects of viagra

    effects of viagra

  19. 20.11.2020

    cenforce 100 vs viagra

    cenforce 100 vs viagra

  20. 21.11.2020

    how does viagra work

    how does viagra work

  21. 21.11.2020

    atorvastatin ph

    atorvastatin ph

  22. 25.11.2020

    viagra gold 800 mg

    viagra gold 800 mg

  23. 26.11.2020

    viagra 100 mg price

    viagra 100 mg price

  24. 26.11.2020

    sildenafil online

    sildenafil online

  25. 28.11.2020

    how to get viagra

    how to get viagra

Добавить комментарий

Specify Facebook App ID and Secret in Super Socializer > Social Login section in admin panel for Facebook Login to work

Specify Google Client ID and Secret in Super Socializer > Social Login section in admin panel for Google Login to work

Specify Vkontakte Application ID and Secret Key in Super Socializer > Social Login section in admin panel for Vkontakte Login to work

Specify Steam API Key in Super Socializer > Social Login section in admin panel for Steam Login to work