Examples Templates Store Pricing Docs Turbo CSS Blog Boomla WishList Introducing Turbo UI Named buckets Turbo CSS is Tailwind CSS on steroids Introducing Turbo CSS, the most advanced web-design language Calculate how much storage you use Better login system Collaboration settings Filesystem and Database are not cutting the problem space right What I'm working on 64bit File node IDs New how-to videos Creating buttons gets easier Introducing reusable components HTTPS by default Introducing the Boomla Theme CDN for faster pageloads Write your own website builder on top of Boomla On On composition Shared admin access A fresh config editor Building a multi-purpose theme A filesystem to replace your CMS New file link type: scope Mobile editing support Inline file wrapping changed Package sandboxing New PHP-like JavaScript engine [sjs-4e] Send emails to the website owner New JavaScript engine [sjs-4] A better editing experience New email service provider Glossary and other changes New panel changes Improved registration flow Boomla goes multiplayer Using local dev tools Why Boomla doesn't need Git File Panel Let's build a community Automatic updates Improved sjs-3 API New Frontend CSS modules Work offline with Boomla Faster page loads via caching Drag & drop supercharged Supporting CommonJS modules  Paranoid about loosing data IDE usability improvements Simple App install flow Meetups in Budapest Goodbye broken links Flow control from user space Customizing apps Contextmenu support for apps Deprecating the .Class file Hello Changelog Embedding 3rd party plugins Introducing Tools Installing apps just got amazing Public beta Host on our servers Simple deploy with push/pull Version Control for the Web 350M files on a 1TB disk 2 weeks in review
Control Panel

New file link type: scope

2019-10-11

This is a blog post aimed at developers.

Here is a scenario that keeps coming up. You install a package and want to tweak its code. If you do, you won’t be able to receive updates, but you don’t care. You are just experimenting something. You work on a throwaway project. You want to get shit done, now.

I’ve been there myself and have heard the question repeatedly on how to do this. The answer is to copy all the files from the package volume to your website and there you will be able to edit it. Except the package will have its own dependencies which will break, so make sure to copy those as well. Typically, it means you have to copy all files from /sys/packages/* within the package to the same place within your website. (And let’s hope you will have no conflicts among dependencies.)

It’s not too complicated but it is not a clean solution either. We can do better.

Boomla has landed a new file link type scope. Simply rewrite the package link to scope, save it, and baaam, the subtree is now editable.

The scope link is pretty much like a volume link except it establishes a new filesystem scope.

 

Example

Let’s say you installed the package gallery.boomla.net on the website example.com. It would be installed at:

//example.com/sys/packages/gallery.boomla.net

Now, the gallery package has its own installed packages, for example skyconfig.boomla.net:

//example.com/sys/packages/gallery.boomla.net/sys/packages/skyconfig.boomla.net

It provides several a configuration related apps, like skyconfig.boomla.net/attrStr. If the gallery package uses that as a file type, it will resolve to:

//example.com/sys/packages/gallery.boomla.net/sys/packages/skyconfig.boomla.net/attrStr

Note that skyconfig.boomla.net/attrStr is automatically searched for within /sys/packages within the current filesystem scope, that is, within:

//example.com/sys/packages/gallery.boomla.net/sys/packages

and not within:

//example.com/sys/packages

Turning the package link into a scope link will not change how paths are resolved within the mounted subtree.

This may also come handy for testing.


Cheers,

you can follow me on Twitter