Textpattern CMS support forum

You are not logged in. Register | Login | Help

#151 2018-01-09 12:54:16

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 8,760
Website

Re: Textpattern themes: a plan

Sounds good. I’ll make Nicolas aware of this and we’ll figure something out with regards getting the content of the relative path pref so it can be used.


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

#152 2018-01-09 15:16:31

michaelkpate
Moderator
From: Avon Park, FL
Registered: 2004-02-24
Posts: 1,194
Website

Re: Textpattern themes: a plan

philwareham wrote #308582:

Probably all themes I’d make would have at least some assets within the bundle that need to be public-facing. The default theme (in setup) is the exception to the rule since I implicitly designed that to not have any JavaScript or external assets (apart from the Google font).

I’ve been working on doing a Textpattern version of HTML5 Up’s Massively. You can see my current progress.

And it includes an assets folder, which I think is pretty standard in third-party html themes these days.

Bloke wrote #308578:

Not sure what would happen if the themes path wasn’t web accessible though. Fail I guess.

I don’t really see the point of making a .css or .js file inaccessible.

<link rel="stylesheet" href="<txp:site_url />assets/css/main.css" />

<txp:assets type="css" name="main" />

It depends on how far you want to go.

<script src="<txp:site_url />assets/js/jquery.min.js"></script>

<txp:assets type="js" name="jquery" min="y" />

Offline

#153 2018-01-09 15:34:10

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 8,760
Website

Re: Textpattern themes: a plan

michaelkpate wrote #308586:

You can see my current progress.

Nice!

it includes an assets folder, which I think is pretty standard

Yeah, I think we’re going to go with an enforced web-accessible themes directory (which you can rename in prefs) but it’ll be a relative path like the images pref. For anyone wanting more security, we can look into being able to split a theme into private/public sections in multi-site setups.

It depends on how far you want to go.

Exactly:

<txp:asset_list type="styles, js">
    <txp:asset format="link" />
</txp:asset_list>

OR how about:

<txp:asset theme="my-other-theme" type="form/article" name="shared-form" />
<txp:asset theme="base-theme" type="js" name="jquery" />

OR:

<txp:site_url /><txp:pref name="skin_dir" />/<txp:page_url type="skin" />/js/my-library.js

:-)

The question is whether we want to permit disk-based access to content that is usually served from the DB (Pages, Forms and Styles in this case). Currently, we can’t output Pages unless they are associated with a Section, whereby they are served automatically. Does it make sense to permit a Page template to be output from disk inside your Theme? Maybe a Page from another Theme?

Since we need to permit Stylesheets to be output as well as other assets like images and javascript, why not Pages and Forms too? Conceptually, Pages are no different to a Form, it’s just that Txp ties them to Sections in the database by convention. Exporting your Theme to disk would open up more functionality, but would it make it more confusing to have two ‘assets’ – one served from the DB and one from disk that may or may not be in sync? <txp:output_form form="article_list" /> (DB) vs <txp:asset type="form" name="article_list" /> (disk).

Not sure. Thoughts welcome from all, as always.

Last edited by Bloke (2018-01-09 15:35:27)


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

#154 2018-01-09 16:09:51

philwareham
Core designer
From: Farnham, Surrey, UK
Registered: 2009-06-11
Posts: 3,197
Website

Re: Textpattern themes: a plan

Bloke wrote #308587:

The question is whether we want to permit disk-based access to content that is usually served from the DB (Pages, Forms and Styles in this case). Currently, we can’t output Pages unless they are associated with a Section, whereby they are served automatically. Does it make sense to permit a Page template to be output from disk inside your Theme? Maybe a Page from another Theme?

Not really IMO. Pages and Forms templates (and Styles if you wish to use them – although I won’t be, in favour of proper file-based CSS) should be stored and then accessed only in the database.

And we have already prevented public access to .txp files in the .htaccess.

Otherwise everything becomes needlessly over-complicated and very breakable.

Offline

#155 2018-01-09 16:14:44

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 8,760
Website

Re: Textpattern themes: a plan

philwareham wrote #308588:

Pages and Forms templates (and Styles if you wish to use them – although I won’t be, in favour of proper file-based CSS) should be stored and then accessed only in the database.

That’s fine by me. Nice and simple.

So what’s best? An asset tag (and possible container for looping over assets) of some description to output additional stuff that automatically takes the path into account and spits out valid URLs? Or something that allows you to build the URLs by hand by exposing the prefs and relevant theme settings? Or is there some bit of both we can offer?


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

#156 2018-01-09 16:30:13

philwareham
Core designer
From: Farnham, Surrey, UK
Registered: 2009-06-11
Posts: 3,197
Website

Re: Textpattern themes: a plan

Can we extend the <txp:site_url /> tag with theme directory via an attribute maybe. I don’t want to make it too complex by declaring asset types.

<txp:site_url theme="my-theme-name" />assets/css/main.css

Which would dynamically output both the themes path and the skin name, e.g.

https://example.com/my-theme-folder/my-theme-name/assets/css/main.css

Don’t know – just thinking aloud.

Offline

#157 2018-01-09 16:51:02

bici
Member
From: vancouver
Registered: 2004-02-24
Posts: 1,494
Website

Re: Textpattern themes: a plan

Curious: is there any roadmap wish list that would include a preference to output all files to a flat directory? i.e. not having to rely on rah_flat plugin ? It seems that with Themes this preference would be another useful feature.


…. texted postive

Offline

#158 2018-01-09 17:02:01

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 8,760
Website

Re: Textpattern themes: a plan

We could probably extend it so that it outputs the current theme path instead of just the theme name (although that’s available anyway).

<txp:site_url type="theme_path" />

Or something like that? It’d probably need a special condition to handle it, but then it’s high time we allowed it to output the path to files and images too, so the effort wouldn’t be entirely wasted.


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

#159 2018-01-09 17:05:19

philwareham
Core designer
From: Farnham, Surrey, UK
Registered: 2009-06-11
Posts: 3,197
Website

Re: Textpattern themes: a plan

OK, that sounds viable. Let’s do that :)

Offline

#160 2018-01-09 17:57:00

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 8,760
Website

Re: Textpattern themes: a plan

bici wrote #308591:

is there any roadmap wish list that would include a preference to output all files to a flat directory? i.e. not having to rely on rah_flat plugin ?

You shouldn’t have to rely on rah_flat anyway from 4.7.0 onwards, unless you’re wanting to import prefs and Sections too. No plans to introduce an auto-output in core. From what I hear of rah_flat (other than it’s good) is that it can be quite devastating if the production status is flipped and you forget something. Wouldn’t want to do that in core!

Plugins will be able to do so easily though. All a plugin really needs is a bunch of hooks to also call the ‘export’ routine whenever you do some UI action. A handful of lines of code, I expect. Otherwise, you’ll just have to remember to click ‘export’ every now and again to dump the DB to the file system.

(unless by ‘flat directory’ you mean not in a pages/forms/styles directory structure. In which case, no plans for this at all).

Last edited by Bloke (2018-01-09 17:57:21)


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

Board footer

Powered by FluxBB