51
I Use This!
Activity Not Available

News

Analyzed 4 months ago. based on code collected 4 months ago.
Posted over 9 years ago by Jay Gilmore
Today, modmore, host of MODX Weekend in Zeist, the Netherlands, this past September, announced that they have neared their financial target and have made all 19 videos from MODX Weekend available, for free. Now everyone can dig into all the deep ... [More] topics covered and get a taste of 2014's only MODX Conference. A special thanks again to Mark Hamstra and the whole modmore team for hosting such a well produced conference and for bringing such high-quality, MODX content with the world. Check out the MODX Weekend Videos now and come back and tell us which videos you liked the most or found most interesting? [Less]
Posted over 9 years ago by Jay Gilmore
The team at Yoto Creative answers the questions why they choose MODX over WordPress for their client sites. If you're looking to sell MODX to your clients or your boss, this piece highlights the key reasons MODX wins. Check out the article on the Yoto Creative Blog. Are you going to be building your next site with MODX?
Posted over 9 years ago by Jay Gilmore
MODX Evolution 1.0.15 is now available. This release of MODX Evolution includes more than 100 fixes and improvements. It also includes fixes for two critical security vulnerabilities; one in the core and one in Jot, a commenting Extra that is ... [More] packaged with Evolution. As this release contains critical security fixes, this should be considered a mandatory upgrade. Highlights of the 1.0.15 release include: Various security fixes including Jot fix and cookie handling Added MySQLi extender for PHP 5.5. support Updates to Wayfinder and eForm Many Language Translation Updates Read the complete changelog Thanks to the Contributors We'd like to thank the contributors for this release who are: Jako (Thomas Jakobi), yama (Masanori Yamamoto), Dmi3yy (Dmytro Lukianenko), Segr Kaparov (Segr), tonatos, bossloper, mrhaw (Andreas Wettainen), TimGS (Tim Spencer), Pathologic, olegpro (Олег Максименко), Haprog (Kari Söderholm), jasonabird (Jason Bird), OptimusCrime, and juliolopez78 (Julio López) With regard to the important security issues, there are two options to mitigate them: Upgrade to MODX Evolution 1.0.15 (recommended) Patch the two files affected. Get Started with Evo 1.0.15 Here's what you need to get started or upgrade to MODX Evolution 1.0.15: Download Evolution 1.0.15 What's required to run Evolution 1.0.15 How to install MODX Evolution How to upgrade MODX Evolution Read the MODX Evolution Documentation It Takes a Village To everyone who filed bugs and made feature requests. Thanks and keep them coming! Keep Your MODX Sites Safe To keep your MODX sites safe and performing their best, we strongly recommend upgrading to the latest version of Evolution. If you need someone to assist you with your MODX Evolution upgrade, find a local MODX Professional or contact the MODX Support team. On behalf of the MODX and Evolution teams, Thank-you. [Less]
Posted over 9 years ago by Jay Gilmore
Over on his blog, MODX co-founder and Chief Architect, Jason (opengeek) Coward, shares why PhpStorm is his PHP IDE of choice. Though PHP is just now getting to a point in it's own development where useful refactorings can be automated ... [More] through the IDE—and PhpStorm does a great job of supporting the refactorings that can be easily automated in PHP—the features and feel of PhpStorm are exactly what I would have expected from a JetBrains product. Everything is simple, intuitive, fast (for a Java-based IDE anyway) and stable. If you're looking for a serious development IDE for PHP, check out his post and test drive PhpStorm. [Less]
Posted over 9 years ago by Jay Gilmore
If you're like me, you love to keep on top of what's happening in web development and, in my opinion, there's nothing better than curated article lists. These three email newsletters offer some serious goodies covering topics including: RWD, web ... [More] standards, usability, JS, performance and much more. All three of these newsletters are worth subscribing to. Web Development Reading List German front end developer, and friend of the MODX community, Anselm Hannemann, offers his weekly reading list with deep topics from around the web. In the latest edition he links to an article on Apple design and hamburger menus, CSS Clippy, W3C and web payments, a slide deck on "In the DOM, no one will hear you scream" and much more. Get the WDRL. Links for Light Reading (WSG) Russ Weakley's Links for Light Reading (on the Web Standards Group newsletter) is a topic based list format newsletter. I was happy to see it's restarted after a long hiatus. In the most recent edition, Russ included links to a complete guide to Flexbox, a guide to responsive images, Indie web building blocks, preparing for ECMAScript 6, and more. Get Links for Light Reading. Versioning SitePoint (yes the people behind sitepoint.com, Learnable and creators of 99Designs.) have a brilliant newsletter with lots of great web dev article links. In the latest edition there are articles on CSS charts with cssplot, content research and some tangential web related articles. Subscribe to Versioning. What are You Reading? Are you subscribed to awesome web development and design newsletters? Share them in the comments. [Less]
Posted over 9 years ago by Jay Gilmore
We have released Revolution 2.2.16. This patch release fixes password reset functionality. Not Yet Using Revolution 2.3? Revolution 2.3 was a significant release. If you're not yet using it here's what you're missing out on. Get Started with ... [More] Revo 2.2.16 Here's what you need to get started or upgrade to MODX Revolution 2.2.16: Download Revolution 2.2.16 What's required to run Revolution 2.3 How to install MODX Revolution How to upgrade MODX Revolution Read the MODX Revolution Documentation It Takes a Village MODX is only as good as it is because of many individual community members and users that take the time to report issues and request new features. Make sure you read the documentation, post feedback and share your successes in the MODX community forums. On behalf of the entire MODX Team, Thank-you! [Less]
Posted over 9 years ago by Jay Gilmore
Today we released Revolution 2.3.2. This patch release includes dozens of fixes and improvements along with a fix to prevent low-risk cross site scripting (XSS). Here are just some of the highlights of Revolution 2.3.2: Fix Custom Resource ... [More] Class (CRCs) icons in trees Fixed missing Permissions tabs for anonymous User Group Disabled keyboard shortcut to focus the search bar Fixed MODx.Ajax.request ot handle multiple concurrent requests Use FontAwesome check box icons instead of sprite images Added visual indication in elements trees when an element is edited (active class) Fixed store load if init combobox value is 0 Fixed rendering TVs to modx-resource-content by Manager customizations Fixed for arrow that pointed wrong way in collapse areas Language simplification for context menu items Fixed moving menu items, with "n_" in title, to different parent Prevent XSS in Manager For a complete list of changes in Revo 2.3.2 view the changelog We strongly recommend staying up with current releases to avoid unwanted compromise. While the security fix in 2.3.2 was not of a critical nature, keeping up with releases keeps your site secure and keeps you in the habit of routine upgrades. Get Started with Revo 2.3.2 Here's what you need to get started or upgrade to MODX Revolution 2.3.2: Download Revolution 2.3.2 What's required to run Revolution 2.3 How to install MODX Revolution How to upgrade MODX Revolution Read the MODX Revolution Documentation Not Yet Using Revolution 2.3? Revolution 2.3 was a significant release. If you're not yet using it here's what you're missing out on. It Takes a Village MODX is only as good as it is because of many individual community members and users that take the time to report issues and request new features. Make sure you read the documentation, post feedback and share your successes in the MODX community forums. On behalf of the entire MODX Team, Thank-you! [Less]
Posted over 9 years ago by YJ Tso
Myths Littered all over the MODX Official Documentation are examples of Snippet calls using the uncacheable token "!". Furthermore, common, general misconceptions regarding what is, and what isn't, "dynamic" website content, contribute to the tragic ... [More] under-utilization of MODX's powerful caching mechanisms. Why Care? Website performance is important, and can significantly affect the bottom line for your client, the website owner. By making a few simple changes to a site's Templates in MODX, noticeable performance gains can be achieved. But how do you know what to cache, what not to cache? Busted For practical purposes, we can divide up content based on when and where we expect it to change: Per Resource – typical examples include: navigation elements with active states based on what page is being viewed, listings of resources like a blogroll, as well as actual page content that is frequently updated. Per Request - typical examples include: tag/category filters, paginated lists, archive date and other time-based filters. Per User - typical examples include: form submission data, personalized content that requires the user to login, and member's only areas. Per Resource Content This type of content can sometimes mislead developers into calling MODX snippets uncacheable. Perhaps the output of the snippet is based on a TV Value that can change per Resource, or there are conditionals in the Template that change the output per Resource. MODX, however, deals with this type of "dynamic" content out-of-the-box, with its standard partial-page caching. The way it works is, whenever a Resource is requested, MODX caches various elements that make up the page, so that next time the Resource is requested, it can assemble these php cache objects rather than query the database all over again. Additionally, MODX does this on a per Resource basis. Nothing needs to be done to make this happen – it's like this by default. So it doesn't matter how similar, or different, one Resource is from another – each one gets its own set of cache objects. Whenever a Resource is created, or edited (basically, whenever something is saved) the entire Resource cache is cleared, so that new cache objects will be regenerated based on any new content. This keeps elements like menus and listings up-to-date with fresh content. All of it is "cacheable" in MODX terms, meaning you never have to use the "!" token solely for this type of content. Per Request Content This one is a bit trickier, because there are legitimate cases where this type of content should be uncacheable, such as when an element is time-based. However, it depends on the resolution of the time period. A blog archive, split into months or years, can be cached with an appropriate expires date, using tools like getCache. Another example is pagination. Due to the fact that there is usually a finite number of pages to a given listing, the getPage Snippet actually caches a copy of the Resource, based on the requested page. Note: even though the two Snippets mentioned above must themselves be called uncacheable with the "!" token, their action is to retrieve cached results if available. In other words, this is still "cacheable" content in MODX terms, only you must excercise a bit of ninjitsu. Per User Content This is the only type of content where, in the vast majority of cases, you want to call the related MODX tags uncacheable, with the "!" token. If you cache form submission data, for example, one user could be subject to data (probably private data) submitted by another user! Another example would be content hidden behind a login. Presumably it's locked down because it's private. If you cache this content, one user could access another's content. Suffice to say that the "!" token is very appropriate for this type of content. However, if a page is largely public, and cacheable, except for a tiny bit of personalization, like someone's name in the header for example, you could call this uncacheable content via AJAX and fully cache the rest of the page. Tricks like this are abundant, easy to implement, and can have a huge impact on performance and usability. Cache is King An overused cliche? Or critical mantra to live by? Whatever you decide, hopefully this article helps a bit. Have questions, specific use cases, or ninja caching/peformance tips of your own? Please share them in the comments. [Less]
Posted over 9 years ago by Jay Gilmore
Over the weekend of September 19 to 21, 2014 modmore founder, Mark Hamstra, hosted the first ever MODX Weekend in Zeist, (near Utrecht) in the Netherlands. Fifty attendees from around the world gathered to connect and learn with other MODX ... [More] professionals. Based on comments on Twitter and posts after the event, it sounds like it was a success. Check out some photos from MODX weekend. I asked Mark, for his initial reflections on MODX Weekend: It was a long, but exciting and fruitful weekend. It looks like everyone had a great time meeting each other and learning about new tools and best practices when it comes to MODX and the web. Alongside the sessions, the live music, comedy show and great food really got people talking and enjoying themselves. What's in store for another MODX Weekend? Mark answered: Right now we are evaluating the event, and we're getting some great feedback on how we can improve the concept through the attendee survey. For those that missed it, session videos are coming online now at modmore.com, but we hope to see you in person next time. Recorded videos of the sessions from MODX Weekend are available at modmore.com. The professionally recorded and produced videos are available free to all MODX Weekend attendees and for a small donation of 10€ or more for everyone else to cover the cost of the production. Watch them now. During MODX Weekend, MODX staffer and developer extraodinaire, John Peca (TheBoxer), delivered his presentation on an Empowered Community in which he talked about how the community can get more involved with growing MODX and making better software together. He also included several important announcements including a tease about a referral program for MODX Cloud. We'll have more details on that soon. Stay tuned for more details on that soon. John shares this about his experience at MODX Weekend: It was an awesome weekend, well prepared by Mark. I am glad I met, and had an opportunity to talk to, so many people who love MODX. I hope I managed to get more community members involved to help us with triaging issues, assisting with pull requests and volunteers to adopt some of the abandoned extras. Many of great ideas came out during my conversations and I hope together we will move MODX further and make it better. Dennis Christiansen of Better Collective offers highlights from his perspective. Bournemouth, UK agency Adido, again sent two of it's developers, Chris Cherrett and Mark Willis to MODX Weekend. Chris shared his thoughts in this roundup post in A Modxellent Weekend in Zeist. Did you make it to MODX Weekend? If so, tell us about it or, if you've written about your experience at MODX Weekend, share your thoughts or a link in the comments below. We hope everyone had a wonderful year at MODX Weekend. Thanks to Mark and the modmore team for their hard work and dedication to MODX. [Less]
Posted over 9 years ago by YJ Tso
In this post, we'll take a deep dive into how to use Collections, how to quickly and easily set up customized views, and how to configure your own custom renderer for an image field (TV). What is "Collections"? For the uninitiated, Collections is ... [More] an "Extra" (a piece of software that extends core functionality) for the MODX Revolution CMS. You can download and install it via the "Extras » Installer" main menu item in the Manager (MODX's admin interface.) Note: the screenshots and instructions in this post will be based on the latest version of MODX 2.3.1. Previous versions differ slightly. You can also download Collections directly from the MODX Extras Repo. The official documentation for Collections can be found here. Collections is open source. Feedback, issues, bug reports, and contributions are welcome and encouraged: Collections Github repo. Collections started out with a simple goal: to provide an alternate UI for managing Resources (versus the traditional MODX Tree view) and to improve performance in the Manager. With the release of version 2.2.0 however, Collections is maturing into one of the most useful and powerful Extras available. How do I use it? The Basics The documentation will help new users get started, but to summarize: all you need to do, in order to turn a standard MODX document into a Collection, is to change the Resource Type in the Settings tab of any Resource. The CMP The fun really begins when you go to the Custom Manager Page (CMP). In the Manager, under the main menu item "Extras", select "Collection views". There you will see a list of configured Views. If you haven't any customized views, it would only show the Default. Click on the "Add View" button to create a new view. Let's review each setting: Page size: default number of items to show per page in the grid. Can still be modified by the user. Sort field: the field by which to sort the grid. Can be a TV, using the TV name prefixed by 'tv_', or Tagger group prefixed by 'tagger_'. Sort direction: ascending or descending. Can still be modified by the user. Allow bulk actions: enabled, this provides the "Bulk Actions" button (see figure below.) Allow drag & drop: enabled, this allows drag n drop positioning of Resources listed in the grid. Resource type selection: enabled, this shows a dropdown next to the "Add Child" button to select Resource type (see figure below.) Tab's label: custom text for the "Children" tab (see figure below.) New child's button label: custom text for the "Add Child" button (see figure below.) Content's place: place the content field for the Collection Resource. You most likely don't want the content field visible beneath the grid, and you may want to remove it entirely, seeing as the child Resources are generally the ones with user-editable content. Collections View Options in Action In addition to the above grid settings, you can also set some defaults for when new child Resources are created: Once you've saved the View (the "Save" button is at the top right) you'll see an area below where you can add columns to your grid view: We'll go over adding columns below in the section on custom renderers. Examples of Custom Collection Views Here's an example of what the final, customized grid view may look like for a list of products: ...and another one for a blog: Image and other Custom Renderers Collections is bundled with a handful of the most-used renderers, with which to display values in the grid. As of Collections version 2.2.0, an image renderer has been added. By default, it prefixes the MODX 'base_url' system setting to the raw TV value. This may not be what you need. Fortunately, Collections author John Peca has built-in an easy way for you to add custom renderers. The documentation has links to resources on how to build your own custom renderers, but we'll summarize it below. Settings and your custom Javascript file In the Manager, go to the "System Settings" area, and filter on the namespace "Collections". In the setting 'collections.user.js', enter the url of a Javascript file that will contain the JS code for the renderer (see figure below.) You can optionally create a custom system setting here to specify the 'base_url' for your image TV (see figure below.) Create the JS file at the specified location on your server. When a Collections grid view is rendered, the JS file will be included. Collections System Settings The contents of your JS file will be something like this, for an image renderer: First we define a function, with the name 'myimagerenderer' (the name can be whatever you want, obviously.) Collections will pass, as the first argument to this function, the raw value of the TV. We'll check to see if there's anything there. We set the 'baseUrl' variable with the value from our custom System Setting (shown above.) As you can see, all the System Settings in this MODX install are available as child object of the 'MODx.config' object. You could just as easily use 'MODx.config.whatever_system_setting'. We check the value to see if it starts with 'http://', and if it does, we won't prefix the 'baseUrl'. Note: if you expect your TV values to contain image links with 'https://', you should test for that as well. Finally, on line '7', we return a bit of HTML, with the 'baseUrl' prepended to the TV value. In the Collections CMP Previously we skipped over the process for adding columns to your grid view. Let's look at that now. By default, some of the standard MODX Resource fields are included, but you may want to check the documentation on how to add renderers and editors for specific fields like TVs and Tagger tags. In the CMP, when you're updating a Collection view, click on the "Add column" button. This is where you specify the display/behaviour of grid columns. To add the custom image renderer, enter the name of the JS function in the 'renderer' field. In this case, it was 'myimagerenderer'. Label: this is what users will see in the grid view. Name: this is the name of the field. If it's a TV, prefix with 'tv_'. Renderer: this is where your function name goes. Width: specify a default width for the column. This and other fields are optional. Other custom renderers Image renderers aren't the only kinds of custom renderers – you can define JS functions to render almost anything you want. Here's an example of one that renders Unix timestamps: Putting it all together... With all these configurable options – what fields to show in the grid, which to sort by, how to render the values in those fields, and customizable text labels – the possibilities are endless. You can make a Collection view that does exactly what you or your clients need. We've had great feedback on Collections so far – but what about you? Have you had a chance to use it? What do your clients say about Collections and the new MODX UI? Please comment and let us know. [Less]