Textpattern CMS support forum
You are not logged in. Register | Login | Help
- Topics: Active | Unanswered
Re: aks_header : Compress your pages on the fly. Strip white spaces + gzip
I have a section that outputs an ical file. Right now it just wants to save the file with the section name; “ical”. What I’d like it to do is save the file with the name “calendar.ics”.
Here’s my code.
<txp:aks_header file="1" name="Content-Type" value="text/calendar" strip="0" gzip="0" nodebug="0" />
I hacked the plugin to add the line 'ics' => 'text/calendar' in $ext=array(
Any ideas people?
Last edited by mrdale (2012-08-21 17:24:47)
Offline
Re: aks_header : Compress your pages on the fly. Strip white spaces + gzip
mrdale wrote:
I hacked the plugin to add the line ‘ics’ => ‘text/calendar’ in $ext=array(
I don’t think such hack is doing much of anything. Since you are already setting the content-type header in the tag itself, that addition will not add anything new to the game, and the extension to header mapping is deployed when the page’s URL ends with an extension.
While undocumented, it seems that the extension mapping only works for individual articles. The plugin uses article’s URL title field to get the requested locations “file extension”. Which is all fine, but this URL title is only available for articles. I’m not entirely sure if that is intentional behavior. I can say the regular expression that is used for picking the extension isn’t, and doesn’t seem right. The plugin would be better off with pathinfo which is also offers significantly better performance compared to a regular expression.
Any ideas people?
Most browsers use as or suggest as the file name either:
- Requested resource’s name which in your case is
ical(the name of the section). - Content-Disposition HTTP header’s filename field.
To offer a calendar.ics as the “file’s” name, set a Content-Disposition header’s filename field. You should be able to do that with aks_header as you did with the Content-type header. It’s just a header where the rest of them:
<txp:aks_header name="Content-Disposition" value="attachment; filename=""calendar.ics""" />
Note the quotes and the value escaping. Looks funky, but it’s intentional.
Alternatively you can set such headers and generate those files using other tools. Plain PHP is always an option, these thing are not impressively complicated and sending HTTP headers requires just a line of code. Since the code is simple it can be wrapped in rah_function too, offering very much XML like presentation. If you are already using rah_external_output’s, you could also use it’s form partial (snippet) to generate and deliver the iCal file:
; Content-Type: text/calendar
; Content-Disposition: attachment; filename="calendar.ics"
<txp:hide>
Any markup here that generates the iCal's calender file
</txp:hide>
Things are simple in raw PHP too. The following offers the same functionality as these plugins when used in the page template:
<txp:php>
header('Content-type: text/calendar');
header('Content-Disposition: attachment; filename="calendar.ics"');
</txp:php>
The above can be wrapped in a rah_function:
<txp:rah_function call="header" header="Content-type: text/calendar" />
<txp:rah_function call="header" header="Content-Disposition: attachment; filename=""calendar.ics""" />
Last edited by Gocom (2012-08-21 19:19:17)
Offline
Re: aks_header : Compress your pages on the fly. Strip white spaces + gzip
Thanks… does that mean I should do that in addition to my original call?
nevermind. I just used the php snippet.
Last edited by mrdale (2012-08-21 20:29:42)
Offline
#49 2012-10-24 04:21:33
- nardo
- Member

- From: tuvalahiti
- Registered: 2004-04-22
- Posts: 743
Re: aks_header : Compress your pages on the fly. Strip white spaces + gzip
How would you set “charset=UTF-8”?
Offline
#50 2012-10-25 09:18:13
- makss
- Plugin Author
- From: Ukraine
- Registered: 2008-10-21
- Posts: 355
Re: aks_header : Compress your pages on the fly. Strip white spaces + gzip
nardo wrote:
How would you set “charset=UTF-8”?
<txp:aks_header name="Content-Type" value="text/html; charset=utf-8" />
aks_cron : Cron inside Textpattern | aks_article : extended article_custom tag
aks_cache : cache for TxP | aks_dragdrop : Drag&Drop categories (article, link, image, file)
Offline
#51 2012-10-25 09:36:59
- nardo
- Member

- From: tuvalahiti
- Registered: 2004-04-22
- Posts: 743
Re: aks_header : Compress your pages on the fly. Strip white spaces + gzip
Too easy. Thank you.
Offline
Re: aks_header : Compress your pages on the fly. Strip white spaces + gzip
- Txp 4.6 beta
- mysql 5.7.13
- php 7.0.7
This error appears…
Tag error: <txp:aks_header strip="0" gzip="1" /> -> Textpattern Notice: unregistered_tag while parsing form tmpl-open on page articles
textpattern/lib/txplib_publish.php:518 trigger_error()
textpattern/lib/txplib_publish.php:463 processTags()
textpattern/lib/txplib_misc.php:4330 parse()
textpattern/publish/taghandlers.php:487 parse_form()
output_form()
textpattern/vendors/Textpattern/Tag/Registry.php:83 call_user_func()
textpattern/lib/txplib_publish.php:514 Textpattern\Tag\Registry->process()
textpattern/lib/txplib_publish.php:463 processTags()
textpattern/lib/txplib_misc.php:4391 parse()
textpattern/publish.php:559 parse_page()
Cuttlefish.
Offline
Re: aks_header : Compress your pages on the fly. Strip white spaces + gzip
Adding this to the top should clear at least some of that up.
// TXP 4.6 tag registration
if (class_exists('\Textpattern\Tag\Registry')) {
Txp::get('\Textpattern\Tag\Registry')
->register('aks_header')
;
}
Offline
Re: aks_header : Compress your pages on the fly. Strip white spaces + gzip
Thanks, for looking out, Michael!
I’ve decided to axe it entirely. 4.6 brings spring cleaning. ;)
Offline
#55 2016-07-02 14:00:28
- makss
- Plugin Author
- From: Ukraine
- Registered: 2008-10-21
- Posts: 355
Re: aks_header : Compress your pages on the fly. Strip white spaces + gzip
michaelkpate wrote #299938:
Adding this to the top should clear at least some of that up.
Thanks, fixed.
aks_cron : Cron inside Textpattern | aks_article : extended article_custom tag
aks_cache : cache for TxP | aks_dragdrop : Drag&Drop categories (article, link, image, file)
Offline