Топ 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;

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

комментария 64

  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

  26. 05.12.2020

    sildenafil coupon

    sildenafil coupon

  27. 05.12.2020

    augmentin dose for sinusitis

    augmentin dose for sinusitis

  28. 06.12.2020

    cialis tadalafil 20 mg

    cialis tadalafil 20 mg

  29. 07.12.2020

    viagra sales

    viagra sales

  30. 07.12.2020

    viagra overdose

    viagra overdose

  31. 08.12.2020

    wallgreens price for keflex

    wallgreens price for keflex

  32. 09.12.2020

    ciprofloxacin hcl 250 mg

    ciprofloxacin hcl 250 mg

  33. 09.12.2020

    10 mg oxybutynin

    10 mg oxybutynin

  34. 10.12.2020

    tizanidine flexeril

    tizanidine flexeril

  35. 11.12.2020

    aripiprazole 5mg tablets

    aripiprazole 5mg tablets

  36. 11.12.2020

    allopurinol uses

    allopurinol uses

  37. 12.12.2020

    icd 10 code for use of amiodarone

    icd 10 code for use of amiodarone

  38. 12.12.2020

    amitriptyline for dogs

    amitriptyline for dogs

  39. 13.12.2020

    norvasc

    norvasc

  40. 14.12.2020

    amoxicillin dosis

    amoxicillin dosis

  41. 15.12.2020

    side affects of aripiprazole

    side affects of aripiprazole

  42. 16.12.2020

    atorvastatin 180

    atorvastatin 180

  43. 16.12.2020

    medication azithromycin

    medication azithromycin

  44. 17.12.2020

    baclofen to phenibut conversion

    baclofen to phenibut conversion

  45. 18.12.2020

    would adivan interfere with baclofen

    would adivan interfere with baclofen

  46. 18.12.2020

    bupropion dosage forms

    bupropion dosage forms

  47. 19.12.2020

    buspirone interactions

    buspirone interactions

  48. 20.12.2020

    cost of buspirone

    cost of buspirone

  49. 21.12.2020

    coreg minimum efficacious dose

    coreg minimum efficacious dose

  50. 22.12.2020

    celebrex erectile dysfunction

    celebrex erectile dysfunction

  51. 22.12.2020

    celexa for anxiety

    celexa for anxiety

  52. 23.12.2020

    what is sildenafil

    what is sildenafil

  53. 24.12.2020

    sildenafil dosage

    sildenafil dosage

  54. 25.12.2020

    cheapest viagra

    cheapest viagra

  55. 25.12.2020

    viagra prices

    viagra prices

  56. 26.12.2020

    cialis savings card

    cialis savings card

  57. 26.12.2020

    viagra meaning

    viagra meaning

  58. 30.12.2020

    +”generic cialis”

    +”generic cialis”

  59. 31.12.2020

    viagra coupons for cvs

    viagra coupons for cvs

  60. 11.01.2021

    lilly free one month cialis

    lilly free one month cialis

  61. 11.01.2021

    viagra substitute that works

    viagra substitute that works

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

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