timble / kodekit Goto Github PK
View Code? Open in Web Editor NEWComponent Framework.
License: Mozilla Public License 2.0
Component Framework.
License: Mozilla Public License 2.0
Query variables in the route present in the action tag of GET forms get always appended to the form regardless of the fact that they might already be there in the first place.
The result is having the the same input more than once on the next request. This can cause problems since depending on the order that they get sent (the last one overrides any precedent ones).
Fix by adding an extra check that will avoid adding hidden inputs if a selector already exists for that variable in the form.
If a listbox is created out of thousands of entities they are all fetched at the same time resulting in memory limit errors.
Instead, fetch results 100 by 100 and gradually build the options array.
Note: this removes the 'unique' property of the listbox helper which made duplicate values appear only once in listboxes. However this was not a particularly helpful option since it could be problematic when you have more than one entity using the same title.
Breaking changes:
invokeCommandCallback
in ControllerAbstract
allows for executing ANY private or protected method on the object: https://github.com/timble/kodekit/blob/master/code/controller/abstract.php#L156 without any check that the relevant callback is genuine. This should probably have some way of validating that the callback is valid.
Underscores in object identifiers are stripped out breaking the convention as per documentation: https://www.joomlatools.com/developer/framework/essentials/naming-conventions/#underscores-in-file-names
See also: #24
See joomlatools/joomlatools-framework#19
KControllerToolbarDecorator doesn't pass the required parameter $chain though KCommandHandlerAbstract doesn't use the 2nd argument $chain
Breaking changes:
Add the 's' modified to properly match and replace statements over multiple lines.
See also: #24
Right now it skips attributes with no values. For example <foo bar="baz" no-value>
does not parse no-value as an attribute.
Breaking changes:
Do not pass the $template object to the template helper method to allow them to be used easily outside of the content of a template or view.
Breaking changes:
Make it possible to dump any Object and prevent recursion and deep nesting.
References:
Commas can be used in query strings to separate values.
Add a getComponentInfo() method to the object boostrapper to be able to retrieve the component info from the component.json file.
Note: during the development of this issue the bootstrapper implementation has also been further optimised.
Implement a generic FilesystemLocator and refactor the translator and template locators to use it.
Breaking change: Resource paths are now url's and need to be parseable using parse_url.
Fully qualified template paths used in import() methods need to be updated to follow the new format.
Always let the view fetch the model data. In case this is not required an extending view can override the _fetchData() method to provide it's own implementation.
Breaking changes:
Breaking change:
Todo:
The default type for the toolbar dialog command has been changed to 'ajax'. The ajax dialog is currently not styled. Default styling needs to be added.
Implement the specification pattern to make it easier to manage and reuse specific business rules. We use this in joomlatools/support.joomlatools.com to mostly manage subscription and download rules. Examples and implementation can be found in ticket joomlatools/support.joomlatools.com#866.
Links:
Allow to remove a config option by searching the array.
Following the idea that you should be able to get all the data through the controller, it kind of makes sense to add a count action to the controller either directly or through a countable controller behavior. This makes the API cleaner to document and explain.
See:
Explicitly setting Accept-Ranges: none when Accept-Ranges is not defined gives problems with Nginx Proxy-Caching mechanism.
Sync with joomlatools/joomlatools-framework#55
HTTP security headers are a new standard for increasing security by communicating to the browser certain things that should be allowed or not. Most of these could be controlled via the framework.
Headers:
Background:
Add a new StringEscaper package to improve escaping in strings in different contexts.
Inspiration: https://github.com/zendframework/zend-escaper
Add getLanguage() method to localizable behaviors and add a 'language' function to the template.
The EventMixin interface is not used by the framework do not mix it automatically in controller, view and model.
Do not extend ModelEntityComposite and DatabaseRowsetAbstract from ObjectSet, instead compose the objectset as private class property.
Breaking changes:
Refactor the ClassLoader and ObjectManager and remove singletons. Instead store an instance of the class loader in the object manager and store an instance of the object manager in 'Kodekit'. Allow to set the debug and the cache through objects methods instead of setting them in the constructor.
Additionally add support for callStatic() to proxy static calls to the Kodekit class to the ObjectManager, eg Kodekit::getObject('com:foo.controller.bar');
Move the vcard view to the users component in the platform
Right now the object locator can only be retrieved by it's name, which represents the type, eg 'com'. For clarity it would be better if you could do $manager->getLocator('component') too.
To prevent issues with Varnish do not try to flush the complete stream to php://output if the response is not streamable, instead just echo the content of the stream to the output buffer.
See: http://jsonapi.org/format/#fetching-sorting
See: http://www.rubydoc.info/github/Neson/api_helper/master/APIHelper/Sortable
Breaking changes:
See: http://php.net/manual/pl/function.ob-end-clean.php#103817
Take note that if you change zlib output compression setting in
between ob_start and ob_end_clean or ob_end_flush,
you will get an error:
ob_end_flush() failed to delete buffer zlib output compression
Breaking change: The Library\ViewTemplate no longer automatically adds the 'decorator' filter. To migrate: add the decorator filter if the dispatcher decoratable behavior is not used.
Add support for window.location to the redirects and fallback on meta-refresh only when client has no javascript capabilities.
Prompt entires for select boxes are now scattered all over the place. optionlist supports it for only select2 at the moment.
Make the support universal by automatically adding the prompt entry to the options list.
See joomlatools/joomlatools-framework#26
When a row is re-ordered with a positive change, other rows' ordering data is not properly updated.
Add a isMixedMethod() method to Object class and make the _mixed_method class property private.
Improve the ClassLoader performance by implementing a namespace => locator map. Create the mapping on the fly when the class => path is being resolved.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.