Zikula Network
Subscribe!
Usability II - Noun-Verb Constructions
Until reading Raskin's "The Human Interface" I always thought that it was just practical to have an "edit"-Link on every page. Now I know the reason and the name for it: Noun-Verb Construction
Programmers should recognize the principle of object orientation in the noun-verb construction: You have an object to which you apply a method:
$car<-accelerate('55')
This is far easier to read than the previous functional design which was a verb-noun construction:
accelerate($car, '55')
The same can be applied to user interfaces. Back in the days we often had a clear distinction between front-end and back-end. In order to edit a news article you had to enter the administration of the news module and go through the list of articles and choose edit there.
Now you at least have an edit- and a new-link in the article itself. But the fact that after editing the article you again end up in the list of articles in the back-end is a remnant of the old times which should be changed ASAP.
A current example is Formicula - a great and flexible module that handles all kinds of forms on your site: From simple contact forms to more complex ones with uploads and so on. Yet you can only change the contacts in the back-end. In my installations I simply added an edit-button next-to the contact drop-down that leads to the back-end - as a quick fix.
CRUD
Today's web frameworks work according to the CRUD principle: Create, Update, Delete. These are the function you can apply to all objects. Thus there should be "New XY", "Edit This" and "Delete This" links with every piece of content. Delete should not be a modification of "Edit" - in some modules you have to edit an article and check "delete" in the form. This is a hidden function and the topic of one of my next posts.
If you have a module that doesn't have these links with every piece of content: Please add them.
Share This | Print
Trackbacks
(The URL to TrackBack this entry is: http://blog.zikula.org/index.php?module=TrackBack&id=26,1-35). If your blog does not support Trackbacks you can manually add your trackback by using this form.Comments
I've also added direct edit links to for instance pagesetter and also never understood why they weren't there with the News articles. In these days a very simple statement in the templates would suffice already to check permissions and add New/Edit/Delete
Maybe even a central plugin could render these links, to make it even easier for devs to call it in their templates.
Erik
such a plugin is a good idea - the problem is, that all three links require different permissions. And permissions are not standardized. So you can't just "assume" how they are formatted. But we could developt a standard solution - a design pattern.
Interesting post. However, I disagree that every piece of content should have a "New XY" link. Observing user behavior shows that usually people don't think of creating a new content item by going into an existing one first.
Edit and Delete would be appropriate though, as they are contextually relevant.
The move to noun-verb phrasing is helpful from a Ux perspective.
As the getadminlinks method in the adminapi, the generic plugin can get the item links from a module userapi function.
I agree that 'new' is not good there, only edit and delete are the relevant ones IMHO, and probably we need others soon like translate
If based upon some userapi call, the module itself could return if only Edit/Delete are relevant or if New is relevant as well. For some modules it might be easy to have a New there as well.
New / Edit / Delete could be relevant in a list overview of a module and Edit / Delete when opening one item in a module. But nevertheless a plugin based upon userapi could make it easier





Latest Comments