Jump to content

As part of our commitment to encourage 3rd party development and extension, we have given our Developer Center a much needed makeover. A picture is worth a thousand words, but how about a video?

 

Highlights

  • The Developer Center now has its own dedicated tab in the ACP.
  • What were previously tabs are now displayed on individual screens, making for a far less cluttered UI.
  • You can easily switch from one application to another using the main menu or the button at the top right of the screen.
  • We've implemented UI for some JSON files that previously had to be manually created; specifically acpsearch.json and furl.json
  • We've replaced the "Support" button at the top of the ACP with a more helpful "Quick Links" dropdown menu. While this is not specific to developers, with easy access to things like the Task Manager and clearing caches, it's very handy for troubleshooting!

 

Application Landing Page

When you open the Developer Center for a particular application, the landing page is designed to help you quickly access common functions, and to help you find any potential issues within your code.

Could contain: Page, Text, File, Webpage

 

The Application Scanner currently checks for:

  • Missing Admin CP Language Strings
  • Missing Front-End Language Strings
  • Missing EditorLocations extensions
  • Missing FileStorage extensions
  • Missing FrontNavigation extensions
  • Missing FURLs
  • Missing Email Templates

 

Language strings are grouped so that can you easily see where the missing strings were detected.

Could contain: Page, Text, White Board

 

We will continue to expand the scanners over the course of the next few months.

 

Thoughts?

What do you think? Are there any other useful features you'd like to see added to the Dev Center? What kind of scans can we implement on the landing page?

User Feedback

Recommended Comments

teraßyte

Clients

I'm not sure how the scanner works right now, but I guess it scans the used language strings and checks if they exist in the lang.php file? If so, it should also check for required language strings that the system expects when you add a specific extension/feature/node/etc.

For example, when you add a Node/Item that supports search, you need to add specific language strings for the quick search menu, contextual search menu, etc. All those language strings are not documented anywhere. Another thing to check are the required language string for admin/moderator restrictions in ACP.

There are a few more areas, but I can't remember them now.

14 minutes ago, teraßyte said:

I'm not sure how the scanner works right now, but I guess it scans the used language strings and checks if they exist in the lang.php file? If so, it should also check for required language strings that the system expects when you add a specific extension/feature/node/etc.

For example, when you add a Node/Item that supports search, you need to add specific language strings for the quick search menu, contextual search menu, etc. All those language strings are not documented anywhere. Another thing to check are the required language string for admin/moderator restrictions in ACP.

There are a few more areas, but I can't remember them now.

Yes, it checks all of those things.

To clarify: It actually does NOT scan for used language strings. It scans for required/suggested language strings. So for example, it reads your acpmenu.json and makes sure that you have all the 'menu__' strings set up.

Kirill Gromov

Clients
(edited)

@Esther E., @Matt, will we be able to develop our own custom fields for Pages?

Edited by Kirill Gromov

3 hours ago, Kirill Gromov said:

@Esther E., @Matt, will we be able to develop our own custom fields for Pages?

Good question. As of this moment, I'm not sure that would be possible, but that just means we need to think about how to allow that. 

Thank you for bringing that up. 

Kirill Gromov

Clients
4 hours ago, Esther E. said:

Good question. As of this moment, I'm not sure that would be possible, but that just means we need to think about how to allow that. 

Thank you for bringing that up. 

Please consider this opportunity! This would be very, very useful!

Kirill Gromov

Clients
11 hours ago, Esther E. said:

Request granted. I've been working on this today.

Can't wait to try this out, thanks!

chopin

Clients

Will my custom applications work out of the box? I hope so, if not, I have a lot of work to do.

Adriano Faria

Clients
14 minutes ago, chopin said:

Will my custom applications work out of the box? I hope so, if not, I have a lot of work to do.

It isn't a full rewrite, but all PHP files and templates will require edits. PHP is easy and faster if you use PHPStorm, for example.

chopin

Clients

Oh man, ok, lol. Will have to put aside a few days for this then. Any chance I can get my hands on the new sdk so I can get started on this?

41 minutes ago, chopin said:

Oh man, ok, lol. Will have to put aside a few days for this then. Any chance I can get my hands on the new sdk so I can get started on this?

You can download the dev files from the same modal where you can download IC5

CleanShot 2025-04-08 at 15.57.22.png

chopin

Clients

One more question (possibly a follow up). In order to update custom apps, do you suggest "creating a new app" from scratch in dev tools. Then create all modules, or other files through dev. Then copy over the logic from the old app file by file? I tried installing my app just to see if it works, but it doesn't. Something about a namespace.

Or is the method even easier? Should I just change the namespaces (by following the patterns in the forum app, etc)?

The problem is that if I copy over my app in the applications folder, it says its out of date and must be reinstalled. But I can't reinstall it via the tar file because its out of date.

Adriano Faria

Clients
2 minutes ago, chopin said:

In order to update custom apps, do you suggest "creating a new app" from scratch in dev tools. Then create all modules, or other files through dev. Then copy over the logic from the old app file by file?

Definitely, no.

2 minutes ago, chopin said:

I tried installing my app just to see if it works, but it doesn't. Something about a namespace.

Before installing it, you need to change all “class _“ to “class “ (remove the _). If it has a front navigation extension, you has to cast all variables and pass the right return type for each method. Better if you open an extension from an existing app.

If you make these two changes, you’ll be able to install your app but you will be requested to change all other files when try to access them.

chopin

Clients

Ok perfect, this definitely is working out well. I have a follow-up question about hooks. My old code looks like this:

class player_hook_attachedFile extends HOOKCLASS_

{

public static function hookData() { ... }

}

Is there anything I have to change here? I'm assuming you renamed hooks to theme editor?

Adriano Faria

Clients
(edited)
8 minutes ago, chopin said:

Is there anything I have to change here?

Forget about hooks. IPS removed Monkey Patch on IPS5. No way to extend classes anymore. Now you can use listeners (based on hook points), some new extensions and template hooks. It works for a lot of things but not for everything.

I suggest you to read this entry and its comments:

Edited by Adriano Faria

chopin

Clients
(edited)

Thanks! Read through it, and posted a question there.

Edited by chopin