Codeistry

Posts Tagged ‘modx’

Bunch of updates to the Codeistry site

Friday, April 3rd, 2009

I’ve made a number of small updates to the Codeistry site today, which I’ve been queuing up on my local version for a while. I’ve made updates and corrections to my Accessibility made simple article, as well as minor updates to the 9 Steps to Improve your Small Business website and SEO for Fun and Profit ones.

Screenshot of MODx metadata field in page editor.I’ve also souped up the metadata that gets output in the page’s code, so that I’m now outputting a meta description tag – this outputs whatever I’ve typed into the page’s Description field in MODx.

Screenshot of the MODx Meta Keywords systemI’ve also started using MODx built in meta keywords system, so some pages now have some keywords set.

A little while age I also added a Creative Commons license to the page footer but forget to mention it on the blog. This means that the site’s content is now actually marked as copright of Codeistry now – which it wasn’t before. As I’ve chosen a Creative Commons Attribution Non-Commercial Share Alike license, this also means that anyone can re-use, re-mix, translate or re-purpose any of the stuff on here for whatever they want, provided it’s non-commercial and they credit the original source.

Anyway, here’s the old footer:

Screenshot of the old Codeistry page footer, before the new license

and here’s the new one:

Screenshot of the Codeistry page footer, with the new Creative Commons license

MODx Snippet: New version of Wayfinder

Wednesday, January 7th, 2009

Good news everyone! During my development travails, I’ve created an updated version of Wayfinder that fixes two issues and adds two handy new features!

Fixes

I’ve incorporated this fix which makes the hereClass work properly with weblinks in the menu and I’ve fixed the SQL query to work around the MySQL 5.0.51 sorting bug.

New Features

lastRowTpl

I’ve also added a new parameter called lastRowTpl which allows you specify a chunk to be used for the last menu item output. It works the same way as all the other wayfinder tpl’s and defaults to using rowTpl is it isn’t specified.

It’s very useful for little menu’s that currently look like this if you do them with Wayfinder:

item1 | item2 | item3 | lastitem |

and should look like this:

item1 | item2 | item3 | lastitem

Odd & Even classes

Finally, I’ve added support for even & odd classes on rows. These work like all the other wayfinder classes – you specify a class name in the parameter and this will be added to the wf.classes placeholder. These ones are only output on the appropriate rows, though – and you don’t have to specify both if you don’t want to – it’ll still work with just one.

These are really useful for menu’s which are supposed to be stripey, with every other item a different colour.

To implement this, I’ve modified both Wayfinder files. You can download the new versions from here (.zip) or here (.tar.gz).

I’m using these on live sites, because I’m a crazy fool, but if we can get some more testing from everyone, maybe this can be added to the repository as a new version and maybe then into the main MODx distribution, so that everyone can share the love.

What do you think – let me know in the MODx forum thread.

New version of MODx CMS out – 0.9.6.3

Sunday, January 4th, 2009

Another pretty sizeable release, despite the small version increment. There are over 100 changes but my personal highlights from the changelog are:

  • Updated AjaxSearch to version 1.8.1
  • Update eForm to version 1.4.4.5
  • Update Jot to version 1.1.4
  • Duplicate TV associations when duplicating a template
  • Allow ‘.’,'-’,’ ‘ and ‘_’ in TV names
  • Amend the top username link to explicitly state a ‘change password’ link instead of just linking the username
  • Added database version to MySQL DBAPI class and to the System Information report
  • File manager can now handle files with illegal url characters (added urlencode escaping).

The latest version of MODx can be downloaded here.

MODx Snippet: ChunkIf

Friday, November 28th, 2008

Ages ago, I wrote a MODx snippet called ChunkIf and I thought it was about time that I shared it with the MODx community. ChunkIf allows you to choose which of two chunks gets output, based on a template variable being set or not; its not big or clever but I find it useful and hopefully you might do, too.

The long form of the snippet call looks like this:

[[ChunkIf? &tv=`tvname` &trueChunk=`chunkname` &falseChunk=`chunkname`  &debug=`1|0` ]]

The parameters to the snippet call work like this:

&tv
This is the name of the template variable you want to test. The value of this variable will be checked and if it’s not empty or blank, &trueChunk will be output – otherwise &falseChunk will be.
&trueChunk
The name of the chunk who’s content you want output, in the event that your template variable (&tv) has a value.
&falseChunk
The name of the chunk who’s content you want output, if your template variable (&tv) is empty. If you omit this parameter, an empty string will be output if &tv is empty.
&debug
Set this to 1 to emit debugging comments into the HTML output; set it to 0 or leave it out to switch off.

There is a short version too:

[[ChunkIf? &tv=`tvname` ]]

The shorthand form attempts to output the contents of a chunk with the same name as &tv, if &tv is set, or an empty string. If there’s no chunk with the same name, it also returns an empty string.

This shorthand version is very handy for switching chunks on and off using a single variable. As chunks can contain other chunks and snippet calls, you can use this to switch sidebars, footers and other complex bits of layout on and off on a per page basis, with a simple checkbox template variable.


<?php
	/*
		Version: 0.2
		Date: 21/07/2008
		Description:
			<strong>0.2</strong> Outputs the contents of the chunk passed in
			$trueChunk if the template variable passed in $tv is set (i.e. has a value).
			Otherwise outputs the contents of the $falseChunk chunk. Expects $tv to be the
			name of the Template Variable to test, and $trueChunk & $falseChunk to be names
			of chunks.

		eg:

		[[ChunkIf? &tv=`tvname` &trueChunk=`chunkname` &falseChunk=`chunkname` ]]
			- Long version outputs $trueChunk if $tv has a value, otherwise
			outputs $falseChunk.
		[[ChunkIf? &tv=`tvname` &trueChunk=`chunkname` ]]
			- This short version outputs an empty string if $tv has no value.
		[[ChunkIf? &tv=`tvname` ]]
			- This very short version attempts to output the contents of a chunk
			 with the same name as $tv
		[[ChunkIf? &tv=`tvname` &debug=`1` ]]
			- Switches on debugging output - output's HTML comments for debugging.

	*/

	// get tv name
	$tv = isset( $tv ) ? $tv : '';

	// get current page ID
	$id = isset( $id )? $id: $modx -> documentObject['id'];

	// Get the value of $tv
	$tvarray = $modx -> getTemplateVarOutput( $tv, $id );
	$value = ''.trim($tvarray[$tv]);

	if ($debug) {
		$dtmp = '<!--';
		$dtmp .= 'tv: '.$tv.', ';
		$dtmp .=  'id: '.$id.', ';
		$dtmp .=  'value: '.$value;
		$dtmp .=  '-->';

		echo $dtmp;
	}

	// Decide which chunk to return.
	if ($value == '') {
		// get chunk to return if $tv has no value
		$falseChunk = isset( $falseChunk )? $modx -> getChunk( $falseChunk ): '';
		return $falseChunk;
	} else {
		// get chunk to return if $tv has a value
		if (isset( $trueChunk ))
		{
			$trueChunk = $modx -> getChunk( $trueChunk );
		} else {
			// Attempt to get the chunk with the same name as $tv
			$trueChunk = $modx -> getChunk( $tv );
		}
		return $trueChunk;
	}
?>

New version of MODx CMS out – 0.9.6.2

Wednesday, September 17th, 2008

A new version of MODx has just been released – 0.9.6.2, with a whole bunch of fixes and updates. There have been loads of fixes and updates checked-in by the MODx team & the community since 0.9.6.1 and lots of code clean-up and multi-language fixes done.

See here for MODx forum announcement and here for the complete (long & technical) changelog.

I’ll be upgrading the Codeistry site over the next few days and and then rolling the update out to all client sites as soon as possible after that.

My highlights amongst the many changes are:

Allow weblinks to have summary (introtext) fields

Weblink documents can now have an introtext summary, like normal documents, which is quite handy.

Set the published status of duplicated documents to unpublished

When you duplicate a document, it will now be set to un-published. Previously it would copy the published status of the document that you were duplicating – which was almost never what you really wanted.

Updated @INHERIT TV command to see through un-published pages.

Template variables which inherit their values from their parent documents, will now do so even if their parent document isn’t published; this propagates down through the site structure.

Added a manager role for emptying the trash/permanently purging docs

There’s now a manager role for permanently deleting documents which is handy in setups with lots of users.

Added plugin to show image previews in the manager for Image TVs

Screenshot showing Template variable Image plugin working.Really nice feature which shows you a thumbnail preview of the image being used by a template variable while you’re editing the page.

TinyMCE 3.1.0.1a and MCPUCK file browser improvements

This is great – the document content editor component has been updated to the latest version – which saves me from doing it on every install. This newer version of the editor is a big improvement on the previous one shipped with MODx 0.9.6.1

Updated ‘built-in’ snippets:

  • Updated Jot snippet to version 1.1.3
  • Updated Breadcrumbs snippet to 1.0.1
  • Update AjaxSearch to 1.7.1 and Search Highlighting plugin to 1.2.0.2
  • Update Ditto/Reflect to version 2.1
  • Migrated Mootools to 1.11

Patches to Ditto 2.1 to fix sorting and change default docs displayed number from 3 to “all”

Ditto will now display all documents it finds by default, instead on only the first 3, and sort order fixes for MySQL 5.0.31a

Added the ability to easily add custom help pages to the manager.

Screenshot of the help MODx manager help page, showing a new test tab.This really is simple – just create the HTML files in the /manager/help folder and they appear at tabs on the Help page. Neat – I’ll be taking advantage of this in due course.

Fix to alphabetical sorting in MCPUCK browser

Fix for sorting images alphabetically in the image browser. This now seems to work properly, the image browser sorts images alphabetically, making it much easier to use, especially if you’ve got lots of images in a folder.

Added XML doctype and header to MCPUK for file uploads

This should fix a very annoying error when uploading files via the resource browser, especially in Internet Explorer.

Added RSS Feeds of the Security Announcements and Important News to the Manager Login Welcome Page.

Screenshot on the new MODx Manager Welcome page, showing new RSS feed tabs.This is quite useful – it helps keep site administrators up to date with the latest MODx releases and security updates.

Fix ‘Allowed Days’ checkboxes for Manager users

These were previously the wrong way round – unchecked when they should have been checked, as I discovered the other day during a live demo.

Codeistry blog is proudly powered by WordPress Entries (RSS) and Comments (RSS).