Daniel Rudolf
2ce422d907
PicoTwigExtension: Refactor error handling
2015-11-29 22:18:41 +01:00
Daniel Rudolf
9aaab5de1a
Refactor Pico::parseFileMeta()
2015-11-29 21:58:30 +01:00
Daniel Rudolf
5ea94d06e6
Catch YAML parse errors
2015-11-29 20:58:41 +01:00
Daniel Rudolf
2d9b5aa1a2
Fix operators
2015-11-29 16:39:03 +01:00
Daniel Rudolf
698a249d45
Force Pico::$requestUrl to have no leading/trailing slash
...
Fixes #291
2015-11-27 22:52:45 +01:00
Daniel Rudolf
2761f8b751
Refactor Pico::isUrlRewritingEnabled()
2015-11-27 20:13:17 +01:00
Daniel Rudolf
86d1f713f2
Move PHP version check to index.php
2015-11-27 19:45:21 +01:00
Daniel Rudolf
81138ce06a
Merge branch 'master' of github.com:picocms/Pico
2015-11-27 19:43:47 +01:00
Daniel Rudolf
81821e7811
Improve Pico::getBaseUrl() code styling
2015-11-27 19:28:48 +01:00
theshka
1fae7ab3df
* [New] added PHP_VERSION check to Pico::run()
2015-11-27 12:27:45 -06:00
Daniel Rudolf
840d41bca5
Improve type hinting
2015-11-25 04:07:46 +01:00
Daniel Rudolf
c34afad4af
Fix typo
2015-11-22 14:08:35 +01:00
Daniel Rudolf
d252df4b98
Throw RuntimeException on invalid content dirs
2015-11-19 04:48:22 +01:00
Daniel Rudolf
f5006c036a
Prevent double slashes in base_url when installed to document root
...
Fixes #274
2015-11-13 22:29:58 +01:00
Daniel Rudolf
c72ea0ecec
PicoDeprecated: Sanitize content_dir and base_url options when reading config.php in Picos root dir
2015-11-13 19:10:30 +01:00
Daniel Rudolf
10de8efa11
Move markdown filter to PicoTwigExtension
2015-11-13 16:49:53 +01:00
Daniel Rudolf
f19adc64b9
Add PicoTwigExtension with map and sort_by filters
2015-11-13 16:48:01 +01:00
Daniel Rudolf
78ceabe878
Various improvements
...
- Reuse ParsedownExtra object
- Add new markdown Twig filter
- Improve class docs in general
- Document plugin number prefix usage
2015-11-12 15:34:56 +01:00
Daniel Rudolf
f9e9642c22
Fix Pico::getPageUrl()
...
With enabled URL rewriting we must call rawurlencode() on the file path parts rather the whole path
2015-11-08 14:01:35 +01:00
Daniel Rudolf
2ca711ad59
Add missing rawurlencode() to Pico::getPageUrl()
...
Replace urldecode() in Pico::evaluateRequestUrl() with rawurldecode()
See #272 for details, thanks @smcdougall for spotting!
2015-11-08 03:12:18 +01:00
Daniel Rudolf
cd7cd374bb
Add content filter to get the parsed contents of a page (lazy loading)
2015-11-06 01:08:31 +01:00
Daniel Rudolf
af8de56512
Fix typos
2015-11-04 19:50:44 +01:00
Daniel Rudolf
ccac8dd4d3
Force trailing slash of $config['base_url'] and force existance of $config['timezone']
2015-11-04 19:43:54 +01:00
Daniel Rudolf
90128f4946
Fix possible foreach on null errors
2015-11-03 23:49:34 +01:00
Daniel Rudolf
ebe007bd78
Guess content directory
...
As pointed out by @Lomanic (see https://github.com/picocms/Pico/pull/260#issuecomment-153091890 ; thank you btw\!) we actually have to explain users how to change the content directory. This runs contrary to our "stupidly simple" claim. So Pico now simply uses the `content` directory when it exists...
2015-11-02 19:48:58 +01:00
Daniel Rudolf
9a702415fb
Remove return $config
in config/config.php
...
I always thought that doing this is pretty unusual... But now it simply breaks BC - please refer to @Lomanic's [comment](https://github.com/picocms/Pico/pull/260#issuecomment-152610857 ). Using a return statement has no advantages, but increases the probability that something goes wrong (e.g. a clueless user removes the return statement). It was introduced with 23b90e2
, but we never released it ([v0.9.1](4cb2b24fae/lib/pico.php (L188-L189)
)). Removing the return statement shouldn't cause any problems even for users which installed Pico in the meantime. As a result we don't break BC and moreover remove a prior BC break 😃
2015-10-31 00:32:08 +01:00
Daniel Rudolf
afb55b9cb6
Improve class docs
2015-10-29 18:13:35 +01:00
Daniel Rudolf
e6681ea903
Improve class docs
...
Also add some ToDos to inline docs
2015-10-29 18:07:45 +01:00
Daniel Rudolf
54ce5b9699
Various small improvements
...
- Improve class docs for phpDocumentor
- Add missing onPagesLoading() event to DummyPlugin
- Add some TODOs to the UPGRADE section of the docs
2015-10-29 02:55:30 +01:00
Daniel Rudolf
647a7b5bb7
Trap empty $requestFileParts
2015-10-28 01:41:26 +01:00
Daniel Rudolf
9e2604af85
Prevent content_dir breakouts using malicious request URLs
...
It's appalling that nobody (including me!) thought about that!
2015-10-28 01:36:28 +01:00
Daniel Rudolf
de6b3a7c28
Fix Markdown %meta.*% replacement
...
Don't even try to use arrays here...
2015-10-28 01:08:45 +01:00
Daniel Rudolf
a654b1585b
phpDocumentor 2.8.5 currently doesn't support the Generic notations
...
This will likely be implemented as soon as the proposed PSR-5: PHPDoc is accepted
2015-10-27 01:48:58 +01:00
Daniel Rudolf
92af554d14
Improve inline code comments; preparing use of phpDocumentor
2015-10-27 01:39:28 +01:00
theshka
01122f2901
fix spelling
2015-10-09 20:41:00 +02:00
theshka
fe83d1fa7f
fix spelling
2015-10-09 20:41:00 +02:00
Daniel Rudolf
b09433a37b
Allow multiple calls to Pico::setConfig()
2015-10-06 20:38:34 +02:00
Daniel Rudolf
1419cf1636
Add Pico::setConfig() method
...
Thanks @dav-m85
2015-10-06 20:23:28 +02:00
Daniel Rudolf
7537159868
Remove the need to register headers during onMetaHeaders()
...
Why? I'm currently writing the user docs and I really have no idea how to explain this whole process in a non-technical way... It is very likely that a normal user wants to use custom tags and it would be absurd to tell him,that he should learn a programming language to do so. On the other hand, providing a copy-and-paste template makes the whole idea of explicitly registering headers worthless. The only reasonable solution is to remove the need to register headers.
Anyway, I think @PontusHorn is right to say that registering headers makes the whole system more predictable. So plugin developers are still instructed to register their meta headers during . We actually can't check and ensure this, but that's imho the best solution.
2015-10-05 01:50:55 +02:00
Daniel Rudolf
46ef63186a
Support $config['<plugin name>']['enabled'] option
...
... as a alternative to $config['<plugin name>.enabled']; Thanks @theshka for giving this hint
2015-10-04 22:52:08 +02:00
Daniel Rudolf
9d518fd722
Move sorting of $pages from Pico::getPages() to Pico::sortPages()
2015-10-04 22:39:38 +02:00
Daniel Rudolf
4f1e8667c3
Cast AbstractPicoPlugin::$dependsOn to array
...
Plugin devs could come up with the idea of setting AbstractPicoPlugin::$dependsOn to a string (single dependency) or null (no dependencies)
2015-10-04 22:30:35 +02:00
Daniel Rudolf
27d694697f
Fix code formatting
2015-10-04 21:34:37 +02:00
Daniel Rudolf
9aa62b4b44
Improve method docs of Pico::load404Content()
2015-10-04 16:57:57 +02:00
Daniel Rudolf
77f939028c
Support per-directory 404.md files
2015-10-04 15:24:38 +02:00
Daniel Rudolf
3a4721a20c
SCANDIR_SORT_* constants are available since PHP 5.4
...
Thanks @Lomanic
2015-10-04 14:15:11 +02:00
Daniel Rudolf
241a52907e
Update inline code comments
2015-10-01 22:52:10 +02:00
Daniel Rudolf
fd64e4fa5e
Add a exception to alpha sorting: List index files first
...
This guarantees that e.g. sub/index.md is listed before sub/foo.md
2015-10-01 21:54:30 +02:00
Daniel Rudolf
45815e2c6d
Don't read file contents of inaccessible pages
2015-10-01 17:22:14 +02:00
Daniel Rudolf
95db5ba1a1
Drop inaccessible pages
...
e.g. drop sub.md if sub/index.md exists
2015-10-01 15:59:47 +02:00
Daniel Rudolf
cdef7a6324
Explicitly treat relative paths to be relative to Picos root dir
...
This tempers the BC break, we can now recommend to simply remove the ROOT_DIR part
2015-10-01 15:14:45 +02:00
Daniel Rudolf
fc7632b0ac
Overhaul init of Pico
...
This may break BC if you're using one of the now deprecated constants (e.g. ROOT_DIR)
2015-10-01 15:05:50 +02:00
Daniel Rudolf
5e77d862bf
Remove twig cache dir
2015-09-29 00:42:04 +02:00
Daniel Rudolf
5533b07531
Re-add lost PicoPluginInterface
2015-09-15 13:20:52 +02:00
Daniel Rudolf
70f187fb45
Rename IPicoPlugin to PicoPluginInterface
2015-09-15 13:15:45 +02:00
Daniel Rudolf
5731ede297
Allow omitting config/config.php; Fix write context on return value
...
Thanks @Lomanic for reporting
2015-09-14 23:01:08 +02:00
Daniel Rudolf
71e7da28cc
Various fixes
...
Thanks @PontusHorn for spotting!
2015-09-13 20:46:09 +02:00
Daniel Rudolf
a83b01ef4f
Access plugins by class name, not file name
...
Class name and file name can differ regarding case sensitivity
2015-09-06 14:35:23 +02:00
Daniel Rudolf
533822320e
Workaround for webservers omitting QUERY_STRING
...
Thanks @theshka for spotting
2015-08-30 21:31:47 +02:00
Daniel Rudolf
07ae26789c
Add AbstractPicoPlugin
...
The plugin magic takes place here...
2015-08-28 18:26:56 +02:00
Daniel Rudolf
43a7540f46
Add IPicoPlugin
2015-08-28 18:25:54 +02:00
Daniel Rudolf
cd145821ba
Remove pull request message
2015-08-28 18:24:06 +02:00
Daniel Rudolf
92c307d8be
Pico 1.0
...
I unfortunately messed up my repo so this is just a single commit... :(
2015-08-28 18:22:32 +02:00
Daniel Rudolf
c496297c44
Class files should exactly match the class name
2015-08-28 18:13:50 +02:00
Daniel Rudolf
adc356251e
Remove index.html
...
A empty index.html is a solution for nothing...
2015-08-28 18:11:45 +02:00
Tyler Heshka
2fdcacc14b
Merge pull request #244 from muja/scandir
...
Use scandir instead of opendir to ensure alphabetical order.
2015-08-04 11:21:18 -06:00
Daniel Rudolf
399b73aa3b
Move config.php to config/; Add CONFIG_DIR and VENDOR_DIR constants
2015-08-01 22:03:54 +02:00
Danyel Bayraktar
8d82cde120
Use scandir instead of opendir to ensure alphabetical order.
2015-07-14 13:31:51 +02:00
theshka
f4cc9727ff
Fix call on method of an object just created with new/PHP 5.3.10 compatibility error.
2015-06-23 19:06:53 -04:00
Wojciech Grzebieniowski
577160b109
Apply PSR1/PSR2 coding standards.
...
Mostly - use consistent indentation. Currently some methods in Pico
class are indented with space ( get_files() ), some with tabs.
2015-06-10 11:40:26 +02:00
Wojciech Grzebieniowski
83a3313e53
Fixed indent
2015-06-10 09:10:25 +02:00
Wojciech Grzebieniowski
23b90e2a92
Avoid using global config variable.
...
Instead config is keeped in Pico::$config private variable, and the
config.php returns $config.
2015-06-09 12:01:11 +02:00
theshka
eb368d31e1
fix date_formatted issue
2015-05-29 13:22:52 -04:00
theshka
529e268d5b
fix namespace error
2015-05-20 20:44:26 -04:00
theshka
968dc183db
Upgrade to Parsedown-extra
2015-04-29 07:09:08 -07:00
theshka
483334170f
Merge pull request #131 from Frodox/devel-chris
...
Don't remove all comments while parse content
2015-04-28 18:47:49 -04:00
theshka
b586c9fd5f
Merge pull request #137 from sergeweyland/patch-1
...
Update pico.php
2015-04-28 18:28:18 -04:00
gregfedorov
d6df89ad2c
Typo causes error on php 5.6.7
2015-04-21 22:46:32 +03:00
picocms
275d975ad8
Merge pull request #162 from cmattoon/patch-1
...
Update pico.php
2015-04-21 14:32:07 +01:00
picocms
eb494c072c
Merge pull request #150 from pschmitt/master
...
Localize date meta
2015-04-21 14:30:34 +01:00
picocms
80fa39769c
Merge pull request #113 from Snip1/master
...
Update pico.php
2015-04-21 14:28:42 +01:00
picocms
fdd60d8f98
Merge pull request #207 from raptorz/master
...
fix get_protocol bug.
2015-04-21 14:26:30 +01:00
Diogo Oliveira de Melo
196d3cf283
Move content to content-sample
...
- move the directory content to content-sample
- remove CONTENT_DIR as a define on index.php
- create config value "content_dir" and replace all CONTENT_DIR by it's
correspondent $config['content_dir']
- add the content_dir config on config.php.template
2015-03-18 06:32:00 -03:00
raptor
8efa97accc
fix get_protocol bug.
...
$_SERVER['HTTPS'] == '' on nginx http
2015-02-21 23:03:05 +08:00
Curtis Mattoon
dfb5900835
Update pico.php
...
Added ignore for tmp file extensions in the get_files() method. When editing plugins with emacs, the get_files() method also grabs the temp files, which leads to a "Can't redclare class [PluginName]" error.
Side note: Would these arrays be better in a property (ala DRY)?
2014-04-22 19:44:37 -04:00
picocms
364a395226
Update pico.php
...
Updated link
2014-03-25 15:10:19 +00:00
Philipp Schmitt
a2331c1b53
UTF-8 encoding for date meta
2014-02-27 13:47:35 +01:00
Philipp Schmitt
553a5ea010
Localize date meta
...
Use strftime() instead of date() so that non-english websites can
display the date meta in their locale. The locale can be set with
setLocale(LC_ALL, 'YOURLOCALE').
Please note that this changes the date format.
More information: http://php.net/strftime
2014-02-27 12:48:56 +01:00
sergeweyland
aea6779195
Update pico.php
...
Fixes an issue wherein the alphabetical sorting of pages did not happen, because array key was not, in fact, the page's filename.
2014-01-17 19:05:10 +01:00
Cristian
2194dd1bdb
Fix comment
2014-01-05 17:42:41 +04:00
Snip1
395011c770
Update pico.php
...
Adding 'description' => isset($page_meta['description']) ? $page_meta['description'] : '',
to $data=array allows for use of the description meta in place of the excerpt.
2013-11-17 20:36:27 -05:00
Christopher
b136780988
Dont remove all comments from *.md. Only first one (other may be code)
2013-11-01 01:37:20 +04:00
Gilbert Pellegrom
aa59661ff8
v0.8
...
Added ability to set template in content meta
2013-10-23 10:39:23 +01:00
Gilbert Pellegrom
b2fa0a4abe
Changed Pico methods to protected.
2013-10-23 10:23:11 +01:00
Gilbert Pellegrom
022334ff13
Added before_parse_content & after_parse_content hooks. content_parsed
...
hook is depreciated. Updated get_protocol() method.
2013-10-23 10:19:24 +01:00
Gilbert Pellegrom
9616d902e0
Merge pull request #88 from NeoBlack/feature/moveConfigLoading
...
[BUGFIX] load config and call hook before the other hooks
2013-10-23 02:07:07 -07:00
Benedict Etzel
f665564a79
only append ellipsis in limit_words when string was actually limited
2013-10-21 13:04:02 +02:00
Frank Nägler
3d91c03979
[BUGFIX] load config and call hook before the other hooks
...
this bugfix is very important, because other hooks like "after_load_content" can not use the config.
2013-10-14 20:26:02 +02:00
Gilbert Pellegrom
45cd4ca5b7
v0.7
...
* [New] Added before_read_file_meta and get_page_data plugin hooks to
customize page meta data
* [Changed] Make get_files() ignore dotfiles
* [Changed] Make get_pages() ignore Emacs and temp files
* [Changed] Use composer version of Markdown
* [Changed] Other small tweaks
* [Fixed] Date warnings and other small bugs
2013-09-04 12:10:26 +01:00
Gilbert Pellegrom
69d67b2b71
Merge pull request #61 from cmattoon/master
...
Modified Pico::get_pages() to ignore Emacs (~) and (#) temp files
2013-09-04 03:33:04 -07:00
Gilbert Pellegrom
b3c7648e3a
Merge pull request #36 from ibr/master
...
Using composer version of Markdown
2013-09-04 03:23:16 -07:00
Gilbert Pellegrom
41bfe9ab49
Merge pull request #31 from cochrandv/master
...
Make get_files ignore dotfiles.
2013-09-04 03:21:19 -07:00
Curtis Mattoon
2e26edaa13
Replaced spaces with tabs... d'oh
2013-08-06 21:51:03 -04:00
Curtis Mattoon
8141ccaeb5
Merge branch 'master' of https://github.com/cmattoon/Pico
...
Conflicts:
lib/pico.php
2013-08-06 21:43:49 -04:00
Curtis Mattoon
10eeea80c1
Modified Pico::get_pages() to ignore Emacs (~) and Nano (#) temp files
2013-08-06 21:40:13 -04:00
Konrad Riedel
145915346c
using composer for markdown
2013-07-10 15:12:44 +02:00
David Cochran
adf440a9dd
get_files() will ignore dotfiles now
2013-07-07 21:48:04 -05:00
David Street
51b46c89de
Minor fixes
2013-07-07 22:31:19 -04:00
David Street
0458c857c1
Added two new plugin hooks allowing better customization of page meta data.
2013-07-07 22:09:39 -04:00
KIKIJIKI
fc9409e5a1
Fixed the problem with pages having the same date.
...
If the order is by date and some pages have the same date, only one will
be added to the array because it uses the date as the key.
By adding an auto-incrementing id the key is guaranteed to be unique.
2013-05-12 19:52:27 +09:00
Gilbert Pellegrom
b145ea7d23
v0.6.2
...
[Changed] Replaced glob_recursive with get_files
2013-05-07 16:27:39 +01:00
Gilbert Pellegrom
f9ebb4d75c
v0.6.2
...
[New] Added "content" and "excerpt" fields to pages
[New] Added excerpt_length config setting
2013-05-07 10:09:03 +01:00
Gilbert Pellegrom
2416172ba7
v0.6
...
[New] Added plugin functionality
[Changed] Other small cleanup
2013-05-06 16:38:38 +01:00
Gilbert Pellegrom
842c05824a
v0.5
...
[New] Added ability to order pages by "alpha" or "date" (asc or desc)
[New] Added prev_page, current_page, next_page and is_front_page
template vars
[New] Added "Author" and "Date" title meta fields
[Changed] Added "twig_config" to settings
[Changed] Updated documentation
[Fixed] Query string 404 bug
2013-05-03 15:45:42 +01:00
Gilbert Pellegrom
8cebbb51f8
v0.4.1
...
[New] Added CONTENT_EXT global
[Changed] Use .md files instead of .txt
2013-05-01 15:52:18 +01:00
Gilbert Pellegrom
cc7ceafc1e
v0.4
...
[New] Add get_pages() function for listing content
[New] Added changelog.txt
[Changed] Updated default theme
[Changed] Updated documentation
2013-05-01 14:34:24 +01:00
Gilbert Pellegrom
585a39a800
v0.3
2013-04-27 17:23:17 +01:00
Gilbert Pellegrom
ac055a715a
Fix get_config() function #13 .
2013-04-27 17:17:08 +01:00
Gilbert Pellegrom
c88f8e7967
v0.2
...
Added some inline docs.
2013-04-26 17:38:10 +01:00
Gilbert Pellegrom
7d2f97f2f6
Update Twig (now uses composer) and add composer.json.
2013-04-26 17:22:30 +01:00
Gilbert Pellegrom
070cb92661
Merge pull request #11 from purplefish32/master
...
Fixes multicase URLs
2013-04-26 08:59:12 -07:00
Gilbert Pellegrom
f43efaa2bd
Merge pull request #10 from mathroc/feature/404-status-code
...
Answer with a 404 status code when the page is not found
2013-04-26 08:57:08 -07:00
Donovan Tengblad
cae36cb3b3
Remove strtolower
...
fixes : #3
2012-11-21 13:35:53 +01:00
Mathieu Rochette
776ceb2ef6
Answer with a 404 status code when the page is not found
2012-10-26 14:08:13 +02:00
Mathieu Rochette
76e4b9d519
ignore cache files
...
but keep lib/cache/ directory
2012-10-23 16:21:10 +02:00
Bill Ortell
ce55a6543b
replaced error-proned wierd HTTPS server var call in Pico->base_url
2012-04-17 22:14:19 -04:00
Gilbert Pellegrom
fd23b10740
Cleanup.
2012-04-04 14:57:34 +01:00
Gilbert Pellegrom
92b792e8f2
Initial commit.
2012-04-04 14:45:09 +01:00