-
Notifications
You must be signed in to change notification settings - Fork 7
/
CHANGES
948 lines (831 loc) · 46.2 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
========================
Changes Ariadne 9.1
========================
- sessions are no longer cached, even if it is a public session, unless
you manually ar::putvar('arDoCachePrivate', true);
- refactored SVN support, updated to latest SVN format
- made backend UI more responsive, more touch friendly and added better support for https
- added onbeforeclearprivatecache and onclearprivatecache events
- onbeforecall can now set the return value of the call
- added muze.bus.js, a cross browser window application bus, used by Helene
- removed support for output compression in Ariadne, use your favourite
webserver plugin to do this from now on
- improved password hashing, auto-updates to newest version
- added support for cover image in mod_wkhtmltopdf
- added geo, tags and number properties
- added scope to all properties
- added support for simpler webserver config files by rewriting the URL in the loader
- ar::error() now also prints the code and messages of previous exceptions
- made numerous performance and disk usage improvements
- ariadne now sends correct mimetype headers by default, depending on the extension of a template. You no longer need to send these manually.
ar('html/form') Improvements
----------------------------
- added form validation for fieldsets
- added support for conditional form fields
- form input names now follow PHP when special characters are rewritten
Vedor Editor Improvements
-------------------------
- allow inserting and editing active gadgets, e.g. RSS feeds.
- added support for custom properties, not visible on the page
- improved support for FireFox (missing onSelectionChange event)
- improved visibility of empty editable fields
- improved performance and positioning of hovering toolbars
- added a language select toolbar, if more than one language is available
- browse dialog now follows the UI language
- browse dialog is now relative to the current site
- added option to dock hovering toolbars
- option settings are now stored in localStorage
Muze libraries
--------------
- muze.cms/base
- added priority to base.menu-item.html, to allow sorting the menu
- removed vedor editor attributes in the content templates, when not in edit mode
- muze.cms/gadgets/image-gallery
- fixed layout on mobile devices
- added muze.cms/gadgets/search, shows items matching a given query
- moved muze.cms/vedor to seperate library tree
-muze.dev/helene
- improved styling of warnings and errors to make them more visible
- added merge dialog to prevent overwriting changes by others
- fixed collapse toggle
- improved crossbrowser layout
- added cross window application bus to update the debugger live
- templates are now listed alphabetically
- added dutch translations
- templates now use \r\n line endings, to conform with the form submit standard
- added an 'add template' link in each template list block
- muze.dev/docify
- made code more re-usable and less likely to conflict with layout templates
- muze.dev/debugger
- debugger now live reloads on each template save
- muze.layout/base-layout:
- added support for nice 404 pages
- added manifest to better manage loading of plugins and dependencies
- added muze.layout/stub-layout to start from 'scratch' while using muze.cms layout plugins
- added muze.layout/plugins/image-gallery/
- added muze.layout/plugins/fancybox/
- added muze.layout/plugins/jquery/
- added muze.rad/router/
- simple application router for use in user.notfound.html / onnotfound event handler
Vedor libraries
---------------
This is a new set of libraries specifically made to improve / enhance the Vedor Editor. It includes:
- vedor/editor/ - the integration code to start using the editor
- vedor/editor-plugins/base-form/ - formbuilder toolkit
- vedor/editor-plugins/sortable/ - drag/drop ordering of menu items, forms, etc.
- vedor/editor-plugins/browsable/ - changing images or other content using the browse dialog
- vedor/editor-plugins/objectlist/ - making editable lists of styled content
- vedor/editor-plugins/gadgets/ - inserting and managing ariadne gadgets
- vedor/editor-plugins/fixes/ - a set of browser specific workarounds and fixes
Scaffolds
---------
- Added Coffeehouse scaffold, showing off a modern responsive design, sortable repeating content items, formmanagement in the vedor editor and more.
- Added Sublime scaffold
- Added Empty project scaffold, to ease starting from 'scratch'
bugfixes
--------
- fixed cache being too eager to cache in active sessions
- fixed attribute parsing in mod_htmlparser and mod_htmlcleaner
- fixed string code support for ar::error, as PHP \Exception forces int
- fixed session cookie handling when hideSessionIDFromURL is active
- fixed relative path handling of parents() call
- added missing methods in ar('connect/soap'), now fully compatible with PHP's SoapClient
- fixed arIsNewObject flag in the onbeforesave event
- fixed ar('http/cookie') getting/setting complex values
========================
Changes in Ariadne 9.0
========================
Upgrade notes
- all loaders now use lib/bootstrap.php for global initialisation
if you have custom loaders look at the bin/skeleton.php for how to adapt your loaders
- minimal php version is now 5.4
- installing php5-mcrypt is recommended
- after upgrading the code, you must run the upgrade script or some sites may have broken files/images
- we removed the "persistent connections by default" for the mysqlstore, this can be reenabled by adding 'p:' in front of the database server name in lib/configs/ariadne.phtml
- to reenable persistent connections for mysql add 'p:' infront of the database hostname
Features
- new inline WYSIWYG editor by Vedor
- added closure support in pinp templates, added numerous php functions to the whitelist that use callbacks, though we support only closures as a callback method
- added ar/files api for interaction with the filestore
- reworked the caching layer, this makes it possible to clear all cache images interacting with a template or object
this also installs another store in the current database data storage
- added ar\formats\markdown
- added ar\formats\less, supercedes ar\beta\lessc which is now deprecated
- the muze.js libraries now have support for dynamic loading of dependencies using muze.require()
- parse errors in templates are correctly shown when using xdebug
- Upgraded ace library for chrome >=38 support
- added parsing and minimal function support for cache-control request headers,
- added seperate client-side and server-side caching options in the cache dialog
- ar('pinp') allows you to check if a library is loaded and/or if a template exists.
- added scaffolds to quickly start new projects.
- added the muze CMS libraries in /system/lib/muze/
- added onbeforecall/oncall events
- added target object and path to all events by default, as $event->target and $event->path
- ARnls id now initialized in bootstrap.php, and is thus always an object
Changes
- Introduced a new Ariadne logo
- files are no longer stored in duplicate: the _file entry in the filestore is removed, just the _$defaultnls_file is left.
- properties are now quoted by the store instead by the caller of save
- added php-unit and a first set of unit-tests
- session cookies now use json encoding. To prevent upgrade problems we also renamed the session cookie
- added optional cookie encryption for, enabled by default for new installs
running 'php www/install/conf/session.conf' will give you a config snippet with a random generated encryption key
- the MySQL store now uses mysqli internally.
- added a 'fixed' scenario and display for newspaper articles
- added array_column and key_exists to allowed function calls in pinp
- the default typetree.ini template now keeps any typetree information already set
- tidy is renamed to ARtidy
- removed the persistent connections by default for the mysqlstore
Bugfixes
- fixed support for sub-method calling of xmlrpc methods ( method name is x.y or x.y.z )
- synced function definitions between loaders
- fixed typo in error reporting when running an ax import from the commandline
- made mfu.save.html overrideable by pinp templates
- fixed ar\html\menu menubar links to point to the correct parent
- fixed formSecret handling
- fixed saving user/groups where the group isn't a pgroup but implements it
- set the responseheader in ar/http/Client even when the result of the request is empty
- fixed loadtext(): now correctly supports 'current:template.nls' where multiple libraries provide the same template.nls
- fixed a parse error in mod_pinp
- fixed a usecase where psite would lose it's site url
- typo fixes in im/export.wddx
- fixed a timing issue in the backend with the fade-in / fade-out code
- synced/corrected function definitions between loaders
- Fixed buttons in dialog.browse.php
- Automatic formsecrets in ar/html/form have been improved
- improved handling of relative paths in dialog.browse.php
- corrected check for implements user/group it now also support subtypes
- added saving of an emailadres in mod_rcas
- You don't need add rights to display the userinterface of the add dialog anymore
- Private templates in libraries are now actually private, no longer accessiable through the browser.
- fixed saving of properties in the workspace store
- fixed incorrect cleaning of HTML in the YUI WYSIWYG editor which turned <iframe> into <emframe>
- fixed error display for SVN updates, errors from previous files were displayed again for each next file
- fixed event listeners which filter on specific subtypes
- break template lookup's on psection subtypes
- also reset pinpcache when calling resetconfig
========================
Changes in Ariadne 8.3
========================
Features
- Added file upload error detection
- Added support for CSRF protection in backend dialogs
- Added support for CSRF protection in ar_html_form
- Added dragdrop support for file uploads
- Added support for selections in Ariadne backend
- Updated ar_connect_twitter for the new Twitter Api
- Added svn diff against server support for templates
- Switched to composer for external dependicies
- cleanup will now also cleanup the public and private cache
- Added system.get.template.php to retrieve template code
- Added filter option to ar_html_menu
- Added experimental firephp logging to mod_debug
- Session cookies are now restricted to http only and in https mode to secure.
- Default admin user may now be disabled by another user in the admin group
Bugfixes
- Removed all php short tags
- empty cache images are no longer considered an error
- config.ini is more robust, now allows calls to templates on child objects
- group edit dialog now supports more than 100 groups
- Fixed typo in ar_connect_rss
- Fixed caching of ariadnwe.load.js
- onbeforeview event can now also prevent the default view action
- onbeforeview event now also fires for system templates: *.phtml or *.php
- Fixed installer for postgresql with unix sockets
- Fixed postgres store for passwordless configurations
Update
- A lot of small fixes and cleanup
- Updated German translations
- renamed contructor functions to __construct
- the mysql4 store is fully integrated in the default mysqlstore
- On various places in the backend redirect browser to the right place after move or delete operations
- Removed defunct virus scanner support
- Default image quality for convert is now 92 instead of 75
- ESI now has loop prevention , '$AR->ESI' is now a int for configuring the amount of loops
- the 'magic' Admin grants are now checked against the admin group
- optimized ar_storeFind::count
========================
Changes in Ariadne 8.2
========================
This release is an replacement for the 8.1 release because we managed to release a bad build.
Bugfixes
- reverted 2 commits which should not have been in the 8.1 release. This broke
the backend in some special ways. This was related to multiple select and
filtering in the backend and dialogs
========================
Changes in Ariadne 8.1
========================
Bugfixes
- parent path stored in an object is now calculated by the store instead depending on user input
- added dummy functions in all loaders for ldGetRequestedHost
- adding object to store with non-existing parent now returns an error
- installer now also adds an root node to the session store
- the session module will now insert an rootnode in the store if it doesn't exists.
- Fix escaping of textarea's in ar/html
- Added deleting compiled templates when a templates is deleted
- Fixed date widgets in calander items
- Ontimeout in muze.js didn't call setTimeout correctly
- in the ariadne config file the class_exists call doesn't trigger the autoloader anymore.
- fixed summary cleaning with htmltidy
- Removed a racecondition in creating cache images resulting in empty cache images
- force saving session objects on creation
- force images right way up otherwise iphones rotate the image in the webpage
- fix importing grants when the src and destination path are not the same
- use implements instead of classname matching in dialog.grants
- force IE in Edge mode for dialogs, the dialogs do not render correctly in compatibility mode in IE
- ldObjectNotFound now remembers the original arguments
- the filestore doesn't return files without leading _ in ls anymore it couldn't open the files anyway
- added error checking in export for files it could not open
- import doesn't use an global variable for storing which objects where imported, this makes it possible to import more then 1 ax files in 1 run. this is used by the installer
New features
- ESI support in ariadne
- add filtering in browsedialog
Changes
- output buffering is now always on. When you need direct output without waiting for the request to complete you need to call ldDisablePostProcessing()
- added htmlcleaner for summary fields
- changed error_reporting level in the ariadne config file, this should make it future proof against changes in E_ALL
- added visual feedback for uploading files
- removed compatibilty functions for php 4.0.6
- ar/http client now returns the status code as seperated return value
========================
Changes in Ariadne 8.0
========================
This Changes list is not complete. We changed the version numbering from 2.X.Y to X.Y so 2.8.0 will now be tagged as 8.0
8.0 will be the last version compatible with PHP version 5.3 the next release will use 5.4.4, Debian stable, as minimal revision
Bug fixes:
- Removed a lot of deprecated function calls from Ariadne
like mysql_db_query split ereg*
- the AR modules got a lot of testing, which removed to small bugs to list here
- Fixed some potential XSS attack vectors
- Fixed setting headers in the xss.user.html
- replaced substr with basename in loader.cmd.php
- Fixed hyperlink creation in editor
- added escaping in the grants dialog to prevent the xss detection from triggering
- fixed an escaping issue in queries using =~
- fixed querying on lastchanged in postgresql store
- fixed deleting objects when there are no property tables like with the sessionstore
- fixed queries with only ordering and no criteria
- fixed an mssing include in loader.web.php
- fixed dialog names with an . in the name
- fixed resaving complex grants, and toggleing between text en gui mode in grantsdialog
New Features:
- Workspaces, see docs/workspaces
- multiple URL support for psite
- Multiple root support in the browse dialog which makes it easier for dialogs to only partial list content from Ariadne
- view as User added in backend
- PINP templates are now compiled to .inc files which contain an anonymous function.
This makes it possible for opcode caches to cache pinp templates
- Templates are can be tagged as private. Which prevents calling them from the URL
- webkit2png module
- The session store now purges expired sessions on demand when allocating a new session fails
- improved session id random function
- added tempdir support in export
- a new html2pdf module
- addedd support for 'order by none' to prevent the default ordering from ariadne
- added streamable operators for the filestore, makes it posible to copy between 2 filestores more efficently
Changes:
- Cleanup of old templates, see docs/missing-since.8.0
- all CLI scripts now use the cmd loader
- numerous code cleanups removing warnings notices and deprecation
- the Ariadne backend started to transition to the muze/dialog.js cross browser dialog code
- unified commandline arguments parsing in cli scripts
- added missing templates on pshortcut
- cleanup on the nls files, regenerated and removed the double escaping
========================
Changes in Ariadne 2.7.9
========================
Bugfixes:
- Fixed bug in the backend, shortcuts now point in the right direction
- Fixed some XSS bugs
- Fixed the MySQL store installer, it now correctly works with MySQL 5.5 and newer
- Fixed writing cache images, from Ariadne perspective it is now an atomic operation
- Fixed some javascript problems in muze.js
- Fixed the php version dependency in the installer, the minimum php version is 5.3.0
- Fixed the read modifier option in pphoto, frame 0 is now also valid
- Fixed the rcas module include code
- Fixed multiple bugs in ar/html/form.html
Features:
- added muze dialog loader to create crossbrowser dialogs as replacement of showmodeldialog
- added '//' crossprotocol option to psite and make_*_url()
- updated pinp function list
- Updated gzip
========================
Changes in Ariadne 2.7.8
========================
Bugfixes:
- many XSS failures in templates fixed.
- puser subtypes addable to groups
- enabled local profiles
- external authentication now also works with ARUserDirs
- mod_keepurl() now handles unreadable shortcuts properly
- keep_url redirects do now pass original callargs instead of the arguments given to user.notfound.html
- fixed generation of last-modified en expire headers to use the gmdate function because strftime's output changes with the locale; Updated gmdate usage to use the defined DATE_RFC1123 format
- htmlcleaner now correctly handles embedded script tags
- removed ARCrypt(); puser now has its own hashPassword() function
- added subtype support to the axstore; fixes axstore updates containing subtypes.
- mimetype in wizard is now editable again
- added content-type check to ldRegisterFile() (for eg docx formats)
- fixed mysql precendence using commas and parentheses
- fixed problem with checklogin calling things on non existing paths, when using user.notfound.html constructs
- fixed many eventHandling routines like onmove() oncopy()
- added support for relative shortcuts
- fixed grants textarea dialog
- fixed {x:id} handling, now works with {id} and {10:id}; will also continue beyond maximum size. e.g. {1:id} will work when last id was 10, will then return 11, etc.
New features:
- taint() and untaint() now return their values
- many updates and additions to the ar modules.
- new version of ace, straight from git, less buggy though no official release
- added option to puser to set login independant of filename
- added diff-tool to ar/beta/
- added cookieconsent feature
- added reference and url rewrites to bin/import.
- added mod_ZipArchive which is a wrapper to ZipArchive
- added rewrite URL and references dialog
- added mod_rcas (remote authentication)
========================
Changes in Ariadne 2.7.7
========================
New features:
- added XSS protection
- added getAttribute() method in ar/xml and ar/html.
- added maxlength attribute in ar/html/form for textarea type.
- added support for multiple select in ar/html/form.
- added images or dir:images support to getSetting() method. This returns
the globally configured ariadne images directory.
Changes to existing features:
- removed require_once() calls in all ar library files, this is now handled
by ar::autoload.
- local urls in private cache files are now automatically parsed so sessions
in url's are replaced with the correct session id.
- improved the grants checks when copying objects, now correctly requires
add grants on the target object.
- improved delete dialog so the object to delete is not abbreviated for
longer paths.
- improved performance of ar/xml and ar/html, they now only try to parse
input if the input possibly contains xml or html.
Bugfixes:
- changed most regular expressions from ereg(i) to preg version for
compatibility with PHP 5.3
- fixed problem in the Ariadne user interface, now all objects are listed,
regardless of the languages set in the objects.
- fixed problem with set_admin_password.php, now works again.
- fixed problem with scripts in bin/ directory, they now all use the same
set of includes, including ar.php.
- onbeforeview now only fires for templates that can be overridden by pinp
templates. This prevents an error in a onbeforeview handler from killing
Ariadne.
- fixed bug in ar/xml and ar/html, they now handle utf-8 input correctly.
- fixed bug in ar/html/form, now correctly sets id attributes
- fixed bug in ar/html/form, the regular expression for URL's was incorrect.
- fixed bug in ar/connect/soap, now handles exceptions correctly.
- fixed bug in onbeforeview, now won't recurse infinitely
========================
Changes in Ariadne 2.7.6
========================
New features:
- Added new dynamic form functionality. See www/js/form.js.
- Added the option to post the Ariadne session check key when cookies are not
available (in flash applications).
- Experimental template editor with syntax highlighting: ace. Configurable
through preferences dialog.
- New demo project (optional install).
- Try/catch now supported in pinp templates.
- Added support for debugging with firePHP.
- Added mod_recaptcha module.
Changes to existing features:
- Removed most of the ereg calls, replaced with preg.
- Added NOFOLLOW meta tags for the default ariadne view.
- Updated the portuguese, french and dutch translations.
- Improved the installer, removed all warnings.
- Made the mod_captcha module more robust.
- Caching will be disabled when debuging is on.
- Allow shortcuts to users/groups to be selected from the grants dialog.
- Added 'delete_empty_containers' option to htmlcleaner which removes empty
container tags.
- More robust htmlcleaner (attributes).
- Improved handling within the management view for large object sets.
- count_find() has now its own store handling for better performance.
- Improved the ariadne error handler. It will only display errors in the page
when display_errors(php.ini) is set to on.
- ar/xml and ar/html have been made more robust and consistent.
- Numerous bugfixes in ar/connect/ftp.
- ar/html/menu has been refactored to be more consistent and flexible.
- Added ar/html/form::findField.
- Improved ar/events performance, added the event name in the event object.
- Added a large number of events to ariadne, see ar/events documentation.
Bugfixes:
- ar/form: password fields no longer shows passwords value in the input.
- Fixed upgrade from 2.4rc2 (ariadne base package was renamed).
- Non-default templates are not saved within the unnamed library cache anymore.
- Fixed ar\http\client get requests with form data. Parameters are now encoded
in the url.
- Chrome is no longer too eager in caching ariadne pages.
- Fixed an allnls bug; templates will not be shown anymore when allnls is not
set and the object doesn't have the requested language.
- We now skip language check for config.ini.
- Fixed named library lookup for non-existing libraries.
- Fixed several browsing bugs within the ariadne backend.
- Fixed the user-account disable option.
- Fulltext properties will not get imported via ax files.
========================
Changes in Ariadne 2.7.5
========================
New features:
- Added get_content_type function to mod_mimemagic
- Added upgrade script for newer myqsl database which adds defaults to table fields
- Mod_htmlcleaner now has the option to remove empty tags
- Added error reporting support for Fatal errors
- Added ar/connect/multigate, a connector to Multigate to allow easy messaging from Ariadne. Only supports IRC for now but multigate will allow a broad choice in messaging protocols.
Changes to existing features:
- rewrote the mysqlstore to do all query's with the internal store_run_query function, and replaced mysql_db_query because it is deprecated
- Fixed iterator support for ARnls
- Changed arSuperContext from a switch to an array which keeps score of seen templates. This resolves conflicts created by loading the same unnamed library on multiple paths.
- Index.html now also allowed on ppage
- Added default setting for ARBasedir in ariadne config to prevent problems with symlinks
- Refactored the database init code;
- Upgraded YUI to version 2.8.2
- Fixes in the whole codebase to use $AR instead of $ariadne
- sgBegin can be used in php-based scripts without a key to make it easier to get the correct grants.
Bugfixes:
- fixed NLS problem with file uploads
- removed some unused code
- FTP filenames now get the correct data for name info
- Added missing case for Ariadne upgrade scripts
- Fixes in mod_keepurl: make_real_path and get()
- Removed magic marker that detected .pps and .xls files as msword
- Fixed copy functions to check for illegal filenames
- Fixed caching of library templates
- Fixed endless loop when call_super()ing on an baseType::function.html call
- ar/html/menu: fixed root() to return the correct value
- ar/connect/soap: Fixed header instantiation and __soapCall methods
========================
Changes in release 2.7.4
========================
This release has a number of small improvements and fixes, as well as a
greatly expanded and improved version of the new API. There is a new demo
project included now by default, based on the layout of
http://www.ariadne-cms.org/ and built entirely using the new API. We
added a new object type, pproject, which is intended to ease management
of projects with their sites, users and libraries. This will be expanded
with a number of user interface improvements in Ariadne 2.8.
New features:
- Added first version of pproject (beta)
- Createsymlinks now has a configuration file.
Additions to existing features:
- SHA1 had been added to pinp-safe functions
- Backend now has more fallback fonts in the CSS (Ubuntu has no Verdana
by default)
- Install help links now open in a new window
- Added a hint about case-sensitivity in the installer help
- Made the queue-mechanism for image magick a bit more resource-friendly.
AR: Ariadne General API: Additions and changes
The next generation Ariadne API has been extensively tested and expanded. It
is now complete enough to build entire projects with. The API has been
checked for consistency, correctness, ease-of-use and expandibility. We've
added a lot of features which will make working with Ariadne much more simple.
Additions:
- Added ar::url
- Added XML and HTML parsing to ar/xml and ar/html
- Added easy XML data binding
- Added ar/connect/oauth
- Added ar/connect/rss
- Added ar/connect/soap
- Added ar/connect/twitter
- Added ar/events
Changes
- all static options in modules can now be set directly in pinp, no
need to call configure(), you can access them as if they weren't static.
- made ar_http::$tainting public so other components can read it.
- ar_xml::tag and ar_html::tag have been deprecated in favour of ar_xml::el and ar_html::el
- ar::xml: Added noveValue support for elements and nodelists.
- Added getElementById to ar_xmlNodes
- Added preserveWhiteSpace configuration option.
- Added get and post methods to ar_http as shortcuts to the client methods.
- set default root in ar/html/menu.php to the current site instead of current path
- Added __get and __get in ar/content/html
- Added ar::callSuper();
- added ar::acquire to get user config settings
- Improved XML error handling in ar/xml
- ar/connect/ftp: added get and set for configure options
- ar/connect/xmlrpc: renamed xmlrpcServerWraper to xmlrpcServer
- ar/connect/db: renamed dbWrapper to dbClient. Renamed connect() to
client(), connect() is now deprecated.
- ar/connect/http: made the definition of send() more in line with the
rest of ar/connect
- improved constructor in ar/css
- ar/loader: added get and set for configure options
- ar/nls now has support for baseDir
Bugfixes:
- Added search results for shortcuts in the Ariadne search dialog
- Fixed a problem with aspect ratio calculation when scaling a pphoto
- muze/event.js: Fix for keyboard, mouse and key events in Firefox.
- Added full path information stores.
- mod_page: make_path is run on show instead of compile, which means
objects with - - content containing template calls can be renamed.
- Added newlines to SVN error messages
- Sorting in details view now works for numeric values
- Grants dialog now shows the types ordered alphabetically
- Cleaned up some disabled CSS rules for the backend.
- Properties are now only saved for NLS values that are available
- Installer now detects supported binaries better
- Fixed missing version numbers in upgrade script.
- Fixed the cookie check in muze.js which triggered a security violation
error when used insde a modal dialog.
- Fixed ordering in ar::find
- fixed headers in ar/code/loader/http.php
- fixed bug in ar::xml mergeArguments, now ignores inputs which parse to
false/NULL
- fixed ar_error::raiseError arguments, 3rd argument is now optional.
- YUI HTML editor no longer removes "dangerous" tags like form and
input, we allow them in Ariadne.
- mod_mimemagic now tries the php internal functions first before trying to
detect it self, this should improve mimetype detection without breaking
backwards compatibility
- Owner dialog now checks for layout grant instead of both layout and
config.
- Added missing compression config option in installation config.
- Fixed installation directory detection which was off in some cases.
- Replaced include_once with require_once for ariadne objects. Removed
dependancy to be in object scope when the include happens.
=========================
Changes in release 2.7.3:
=========================
Changes:
- ar
- empty strings are nolonger tainted
- ar_html_form
- Labels in forms are now optional, set the label to false to skip the label.
- Return errors with the name of the fields as the key instead of the label,
this makes it easier to show the correct error messages in multilingual
forms.
- Added getHTML() method, which returns the ar_html dom object, allowing you
to manipulate the form output.
- muze javascript libraries updated
- added capabilities checking, with muze.env
- muze.event no longer automatically attaches a cleanup routine onunload. It
no longer needs it. The event library doesn't generate circular references.
With this change browser fast history navigation feature works again.
- muze.js base lib has been updated:
- the namespace() method now has an optional function argument, the return
value of this method will be stored as the namespace object.
- the require() method also has an optional function argument. This method
will only be called if the requirements are met.
- include() and load() return a loader object, which allows you to set
callback methods using loader.onload() and load.ontimeout(). You can clear
these method using loader.clear().
- pphoto
- Added a new shadow() method.
Bugfixes:
- ar_connect_ftp
- Fixed a bug in the handling of pfile objects, you can now put() an ariadne
pfile object.
- pasv() now returns an error if switching to or from passive mode fails.
- Fixed parsing of the url in ar_connect_ftpClient::__construct, now parses
paths not ending on a '/' correctly.
- ar_html_form
- Fixed form validation: empty strings are now also flagged as incorrect for
required fields.
- Fixed the html input type, was broken in previous release
- ar_nls
- Fixed autoloading sections that do not exist, they are now flagged as
missing instead of trying to load them every time.
- Fixed file downloads for internet explorer. Cache-control is now set to
private, which fixes intermittent problems with downloading.
- Fixed a bug which made it impossible to save a template through the ftp
loader.
- Fixed opacity in IE8 so the fades on the sidebar of the yui interface work.
- Fix the installer to properly set the ariadne webroot
- Fixed the old install script to set the admin password since the base.ax
no longer has an admin password.
- Fixed locking when starting the edit dialog
- Fixed a problem in the sql compiler (used by find()) which broke multiline
queries.
- Fixed a javascript error in the template editor when restoring the cursor
position.
- Fixed the mogrify feature to set the correct vtype for subtypes (e.g.
ppage.subtype now sets the vtype correctly to ppage).
- Fixed the pinp interface for mod_page:compile - added a missing language
option
- Fixes in the authentication system
- it now properly initializes Ariadne with the public user before trying to
authenticate the given user account.
- Logging into an active session with another user now works with custom
user folders.
- The loader now automatically redirects to a url with a sesssion id after
a user logs in on a page
- Fix the grants dialog textmode button to be clickable in internet explorer
- Copying an object will now set the owner of the copied object to the user
doing the copying
- Fixed a problem with custom data fields in the edit object dialog when the
custom data contains the </script> tag.
- Fixed workflows (user.workflow.pre.html and user.workflow.post.html) so they
are now always executed even when the requested language is not set on that
object.
- Guard against errors reading captcha files that no longer exist.
- Minor cosmetic changes to the yui interface
=========================
Changes in release 2.7.2:
=========================
New features:
- more speed, less CPU time needed.
- added image-magick queue to prevent denial of service through lots of image magick calls
- groups are now allowed outside /system/groups/
- added ftp client to ar
- added runtime test for config.ini before saving
- reinstated editor selection (YUI or Toolbar)
- reworked gettext/loadtext nls
- Added option to delete a file for a specific language
- recursive SVN checkout and update now allow a specific revision number
Additions to existing features:
- removed lots of debug statements to speed things up
- speedups in editor.ini, typetree aanroep
- reworked compression support
- import/export skips compression of files/templates folders to speed things up
- speedups in SVN support, reuse the SVN instance
- typetree nls moved to typetree.ini, deprecates ariadne object-based typetree
- speedups in icon fetching
- reworked mysql query compiler
- added visual queue for uploaded files in file/photo dialogs
- explorer/user interface language is now treated seperate from the data language
- User interface now updates to the new language after changing the users language.
- explorer tree now also updates when a node is changed
- explorer now re-selects an item after an object is added
- 0 values can now be displayed using ar_html and ar_xml
Bugfixes:
- fixed calendar call for articles
- several fixes in the nls/language support
- several fixes to better support website speed profiling
- fixed backend to use backend-urls instead of frontend urls
- fix in HTML toolbar editor to allow classes on editable divs
- fixes in ar/html/menu
- lots of code cleanup
- fix post/get/callargs after failed logins
- fix in customdata dialog to prevent arrays/objects being destroyed when using this dialog
- bugfix in SVN resolved, conflicts can now be resolved correctly from within Ariadne
- bugfix in the installer for SVN support, removed trailing slash.
- Fixed broken owner grants to work again
- fixes in manual mimetype setting for pfiles
- fix for 'crop' to make sure the result is the requested size.
- fixed windowsizes and window dialog names
- allow logoff from any object
- language list sorted to be more consistent
- added new 404 page styling
- fixed mogrify window and options, vtype is removed since it is overwritten
- layout improvements in the lock dialog
- bugfixes in grants dialog
- SVN dialogs now requires a repository to be entered
Deprecated:
- deprecated mod_json in favour of json_encode
=========================
Changes in release 2.7.1:
=========================
New features:
- Added Ariadne API (read all about it!): basic HTML, CSS, menu, forms and
lots of other coolness.
- Added 'mogrify' function that allows morphing object types. Admin only,
can break stuff.
- Experimental: Added option that allows users and groups to be created
outside /system/users/, thus providing users-per-site options
- Experimental: Zen style dom creation
Additions to existing features:
- Rework of the core loader.php to make use of the new Ariadne API
- Rewritten most of the explore view to make use of the new Ariadne API and
HTML generation
- Links to help pages in the Ariadne installer when a check fails
- Extra checks in the Ariadne installer
- Speedup in backend loading
- Grantkey system has extended to allow grants to work on childobjects.
- Extended mod_geo with Exif Lat/Long support (thanks Gerhard!)
- Captcha does not show similar characters for better usability.
- Added option to tag a custom field as containing HTML.
- Added a default nextid length of 5 when no length is given, ie: {id}.
- Added 'check all' option to the unlock window.
- Specific templates for password changes on users
- Improved handling of file uploads and replacement
- Improved memory used for file uploads
- Progress bars for import/export dialogs
- Lock-removal dialog is now in the new style
- All JS files for the backend now use their local minified versions for
faster loading
- Big speedups in the backend loading and browsing
- Less memory usage for debugging statements
- Removed some less important debug statements for better performance
- Typetree is now read from the disk-template 'typetree.ini' and no longer
uses the information within Ariadne.
- Added html_entity* to the allowed functions list
- Added getLibraries function to list active libraries on a given path
Removed features:
- WDDX export has been removed from the export dialog, since it has no
import counterpart. This option is still available from the commandline.
Bugfixes:
- SVN dialog fixes
- Fixes to the caching system to only cache GET requests
- Fixes in the PINP compiler
- Bugfix for missing mimetypes after saving files and images.
- Bugfixes in the explore view (ariadne backend): up button, menu position
- Bugfix in language-enabled SVN icons in template overview
- Bugfix in required grants in hyperlink and image dialogs
- Bugfix in SVN delete, now it also removes the templates in PINP when they
are deleted in the repo.
- Bugfix in psearch to make it possible to delete it (thanks Gerhard!)
- Bugfix in template editor to make undo/redo work in IE
- Bugfix in the display of the tree, fixed icon positioning
- Fixed Toolbar editor to work in IE8.
- Fixed problem with disappearing config data when calling other templates
from the config (a relatively new feature)
- Improved the config.ini workings, now the arConfig is passed as argument
and the result value is set to the changed arConfig
- Improved the config.ini handling, now uses the php stack so you can use
get() in a config.ini template.
- Added security check in getvar
- Fixed line counting in pinp
- Labelspans added to list, icon and details view in the Ariadne backend to
prevent ugly views.
- Fixed the display of the image browse dialog, buttons are now placed
correctly
- HTML editor now resizes with the window it is in
- SVN handling with large directories (>100) now works correctly for unsvn,
commit, revert
- Grouping for SVN update messages
=========================
Changes in release 2.7.0:
=========================
Major work (more about this below):
- All new user interface
- New installer
- New naming scheme on disk
- Templates can have SU-style abilities
- Muze Javascript library
- Changes in multi-language support
Improvements in:
- SVN support
- Library support
- Third party authentication
- PINP functionality
Bugfixes:
- Native language support
- TinyMCE editor handling
- lots of others minor bugfixes!
----------------------
All new user interface
----------------------
Based on the Yahoo User Interface and the Nuvola icon pack, the whole user interface driving Ariadne has been given a huge facelift - some screenshots have been published earlier, but this release contains all of the new eyecandy. Not only does it look prettier, the new interface works under all major browsertypes (and even on some not-so-major browsers).
----------------------------------------
New installer with a lot nicer interface
----------------------------------------
A new installation procedure has been added to Ariadne - instead of the old text-based installation, Ariadne now has a nice
step-by-step installation wizard. It does a lot of the checks for you before the actual installation is run, so installing Ariadne
will be faster and easier than ever.
--------------------------------------------------
Introduced new naming scheme in the disk templates
--------------------------------------------------
With the introduction of the new YUI interface we have begun using a new naming scheme for templates on disk. The most important
change is the extension for core templates is now .php where it used to be .phtml. Another change is the prefixes of templates for
the userinterface has changed from their menu location to their actual functionality. All templates having to do with the default
explore view are now prefixed with explore. All dialogs are prefixed with dialog. System templates are, you guessed it, prefixed
with system.
We will gradually convert the whole of Ariadne to this new naming scheme and will deprecate old templates that are renamed by
keeping a wrapper in place for some time. (Time is relative and yet to be determined :)
----------------------------------------------
Ariadne now has support for SU style abilities
----------------------------------------------
As a developer of pinp templates you can programmatically give a template extra grants. This is best illustrated by an example.
A common problem within Ariadne is allowing a public user to save data in an object but not allow editting of the whole object. Since there is only the 'edit' grant for an object you can't just set 'edit' for the public user because that would mean they could spawn the edit dialog and destroy any other data in that object. For instance you want to keep track of pageviews by saving them in $this->data->pageviews through a pinp template:
-- save.pageview --
<pinp>
$data->pageviews++;
save();
</pinp>
Without edit grants this would do nothing. Now to call this template with the extra edit grant the template dialog has an extra button 'Grant key' in the menu. This will spawn a dialog asking for the grants. Fill in 'edit' in our case, and press the generate button. This will give you a SHA1 key in the dialog, for instance: 'fd3d2216fea704652ea7176f9ab419c69b245710'.
This key can then be used in the following functions:
sgBegin($grants,$key)
sgEnd()
sgCall($grants, $key, $function, $args)
In the case of our simple example we would do:
-- view.html --
<pinp>
.... somewhere near the bottom ....
sgCall('edit', 'fd3d2216fea704652ea7176f9ab419c69b245710', 'save.pageview');
....
</pinp>
This would add the 'edit' grant for the current object (and its children) and run the template 'save.pageview', and destroy the grants again. Basically doing:
sgBegin('edit', 'fd3d2216fea704652ea7176f9ab419c69b245710');
call('save.pageview');
sgEnd();
A generated key is valid for the path its created on, and grants given by the key are added similar to group grants. This means if I give edit grant in my sgCall to 'save.pageview' any calls from that template to other templates on children of the object, or the object itself would be given that grant as well.
Please note that to use the sg* functions you will need to set the $AR->sgSalt to a string in your configuration. This is automatically and randomly done for you in the new installer. Without the $AR->sgSalt the sg* functions will not work.
---------------------------
The Muze JavaScript library
---------------------------
Since Ariadne 2.7.0 we've added a simple JavaScript library to Ariadne. This library is very small and simple and only intended to make the JavaScript development for Ariadne's user interface a bit more manageable. We haven't opted to use one of the mainstream libraries, because we felt that they all are either too big and unwieldly or simply not good enough. We did not want to include the equivalent of a canon just to kill a bug.
-------------------
NLS system overhaul
-------------------
In the last few months we've fixed an impressive number of fairly low level bugs in the multi language system. This means that Ariadne now acts much more like we intended it to, but hasn't over the past few years. If you are building sites in multiple languages this means that this Ariadne update may break your site if you are not carefull. The most important change is that Ariadne no longer automatically lists all objects found with ls() or find() or parents() or even get(). Default behaviour is that if the current language is english (en) and the requested object is not available in that language, but it is language aware, this object will not be shown. This means that it is very easy for objects to go missing in your site. There are two solutions:
1) edit the object and enter a name for the missing language
2) add the following line to your calling template:
putvar('allnls', true);
In the past it was possible to get the above effect using:
putvar('nolangcheck', true);
This was a bug and no longer works. The language check is done just once per request and only on the main template, e.g. view.html. Once Ariadne starts to run a pinp template, there is no need to set this variable, since the check has been done already. The only exception is the config.ini template. If you add the above line to a config.ini template, Ariadne will never ask the user to select a different language in that part of the tree. An alternative solution is to redefine the user.languageselect.html template and redirect the browser to the default language.
The overhaul has some positive effects, it is now very easy to create a website in several languages and actually have different menu entries depending on the language. Just create a new object in e.g. dutch and english, set the configured default language to either dutch or english on this object and remove the name in the other language. Switching between languages will show or hide the menu entry.