An applied strategy for improving the CMS user experience from the client's perspective. Presented at J and Beyond 2012, Bad Nauheim, Germany.
See slide notes for slide-by-slide comments.
Out of the box, the Force.com Platform can automatically generate user interfaces, but in some cases you might want to build a more custom UI. Join us to learn about Visualforce, the component-based UI framework that lets you build attractive, dynamic, reusable user interfaces.
This webinar is tailored for beginner developers as well as Salesforce administrators.
Watch this webinar to learn about:
:: Common use cases
:: Leveraging Apex code on the server side
:: Debugging techniques
:: Best practices for efficient and responsive pages
Force.com can automatically generate user interfaces, but in some cases you might want to build a more custom UI. Join us to learn about Visualforce, the component-based UI framework that lets you build attractive, dynamic, reusable user interfaces. We'll cover code walk-throughs, common use cases, leveraging Apex on the server side, debugging techniques, and how to utilize the component framework to make your code portable and maintainable.
With Camunda 7.2, you can call Web Services (REST, SOAP) directly from BPMN. This is based on a generic mechanism that allows you to create your very own connectors. In addition with new capabilities for handling XML and JSON as well as using script languages like Javascript or Groovy and template engines like Freemarker and XSLT, this is a very powerful toolbox for system integration.
New to Force.com and needing a quick orientation to bring you up to speed? Join us for this series of brief introductory sessions on Force.com, the world’s leading cloud platform that lets you build apps rapidly using configuration-driven development and powerful programmatic logic.
Each Friday one of our experts will walk you through one of the core elements of the Force.com platform and cover the basics you need to build your first app in the cloud. Each session is 30 minutes long.
Out of the box, the Force.com Platform can automatically generate user interfaces, but in some cases you might want to build a more custom UI. Join us to learn about Visualforce, the component-based UI framework that lets you build attractive, dynamic, reusable user interfaces.
This webinar is tailored for beginner developers as well as Salesforce administrators.
Watch this webinar to learn about:
:: Common use cases
:: Leveraging Apex code on the server side
:: Debugging techniques
:: Best practices for efficient and responsive pages
Force.com can automatically generate user interfaces, but in some cases you might want to build a more custom UI. Join us to learn about Visualforce, the component-based UI framework that lets you build attractive, dynamic, reusable user interfaces. We'll cover code walk-throughs, common use cases, leveraging Apex on the server side, debugging techniques, and how to utilize the component framework to make your code portable and maintainable.
With Camunda 7.2, you can call Web Services (REST, SOAP) directly from BPMN. This is based on a generic mechanism that allows you to create your very own connectors. In addition with new capabilities for handling XML and JSON as well as using script languages like Javascript or Groovy and template engines like Freemarker and XSLT, this is a very powerful toolbox for system integration.
New to Force.com and needing a quick orientation to bring you up to speed? Join us for this series of brief introductory sessions on Force.com, the world’s leading cloud platform that lets you build apps rapidly using configuration-driven development and powerful programmatic logic.
Each Friday one of our experts will walk you through one of the core elements of the Force.com platform and cover the basics you need to build your first app in the cloud. Each session is 30 minutes long.
Learn how to get the best out of Camunda Tasklist, an HTML 5 application for human workflow management. You will also hear how to benefit from the Camunda Javascript forms SDK in your very own frontend applications.
This is a presentation on Kajoo, a set of extensions for the award-winning Joomla CMS which offers flexible interfaces to handle media assets stored on a Kaltura powered streaming server.
Learn how to get the best out of Camunda Tasklist, an HTML 5 application for human workflow management. You will also hear how to benefit from the Camunda Javascript forms SDK in your very own frontend applications.
This is a presentation on Kajoo, a set of extensions for the award-winning Joomla CMS which offers flexible interfaces to handle media assets stored on a Kaltura powered streaming server.
Improving Joomla’s Backend User ExperienceRandy Carey
Two types of users access a CMS - the developer and those managing a site's content. Each uses the CMS with different goals and usually with different capabilities. This presentation focuses on tailoring Joomla to give our client's an improved user experience.
Presented at Joomla Day Midwest (Nov 12, 2011 - Milwaukee, WI USA)
IBM Business Process Manager (BPM) updates are now released as quarterly cumulative fixes to enable you to get the latest fixes and product enhancements with a simple in-place upgrade. IBM BPM 8.5.7 Cumulative Fix 2017.06 is now available for you to download and upgrade today. See my blog for more details. https://developer.ibm.com/bpm/2017/06/ibm-bpm-8-5-7-cf2017-06-now-available/
Migrating to Oracle RightNow Customer Portal Framework Version 3.0 offers Oracle Service Cloud customers the control and flexibility to decide what features to adopt and when to adopt them. You're never forced to migrate your customer portal, even when your organization upgrades to a new Oracle RightNow CX release.
Presentation from DDD Sydney, May 28th, 2016
Buzz word! More buzz words! And another buzz word!! Now that that's out of the way, if you're thinking of heading down the microservices path, then how do you do it? How do you build the services? What do you need to think about if you're starting from scratch? What if you're converting a legacy app? How do we deal with versioning? Do we have to use a NoSQL solution, just because Netflix does? Do we need to use docker/containers? What about the code? Show me the code! Well, that's what this session is all about. Designing and building microservices in .NET and then handling a bunch of other concerns that a microservices approach will force you to think about. Sounds interesting, doesn't it? You betcha.
Making you, and your Clients Happy, by Using Reusable Components to Build Dru...bmx269
We too often start building out a site looking at the specific content types, or pages, with too much detail. Missing the similarities of the different pieces of content.
When we streamline multiple Content Types, Views, and Blocks, we can simplify the development and administrative experience. We can make this happen using tools such as Taxonomy based Panels and Views arguments, View Modes, and more. When you use these Reusable Components, you can give more power to your client, and make your site a lot easier to plan, develop, and theme.
Why stop there? I will show you some basic Reusable Component concepts, and how they can help in estimation, design, planning, and keeping everyone happy. Not only will your site development be super awesome and efficient, but you will be able to plan and build components for all levels of the project that could be reused throughout the process.
Open Mic to discuss the new features related to Portal and Web Content Management introduced in version 8.5. We will be covering changes related to themes,
mobile, social integration and WCM changes related to syndication and rich media aspects of the new release.
This power point presentation provides details on syntax of Gherkin language and how it can be used to write accurate user acceptance criteria for user stories.
In these slides we provides information about new technology (CSR) to learn you how to customize the way users interact with list data, and how to develop solutions that change the way data is rendered.
How Joomla! builds a webpage (annotated)Randy Carey
Understand how Joomla builds its output. We discuss the implications regarding flexibility, plugins, cache, and special formatting such as JSON as an API response.
A CMS has many users: authors, SEO experts, ecommerce, marketing, site managers, etc. Each has different roles and goals for accessing the website. How do we improve the user experience for each of those to help them do their jobs and accomplish their goals? See and learn how we can do better than do-it-yourself tools and using a CMS out-of-the-box.
The issues are presented as challenges to any CMS and web project, and the implemented solutions are demonstrated in Joomla.
When a site is out-of-date and/or its CMS is limited, often the best solution is a site migration. The migration is an opportunity to implement an entirely new look-and-feel, mobilize the site, fix navigation, re-assess the site’s goals, and re-organize content. A migration provides an opportunity to run the site on a CMS that is more powerful and more user-friendly like Joomla.
Randy is the migration lead and content strategist for the migration project of the Joomla! Community Magazine which includes over a thousand articles filled with links, images, and attachments. He will share the challenges that the project faces, the strategy for migration, and a high-level explanation of the approach in Joomla. The discussion will be suitable for the business-minded who must understand the issues and make decisions accordingly as well as for the developer who must implement a solution.
Streamlining the Client's Workflows (in Joomla)Randy Carey
When our client or their staff login to manage their site and content, they have specific tasks in mind. This presentation demonstrates how we can identify these tasks and develop each into an intuitive set of streamlined steps. We will be examining ways to reduce the number of steps, reduce clutter, and make the entire process intuitive for our client.
We can help our clients better manager their websites and web content if we give them a CMS interface that is tailored to their needs. So instead of expecting them to use a one-size-fits-all admin template, we provide a client template that is tailored to those who will be managing the website through the CMS.
This presentation, delivered at the 2013 Joomla World Conference, illustrates the client template and how it can be tailored.
Joomla Modules with Permissions and Front-End EditingRandy Carey
Imaging a Joomla website where staff can edit modules on the front-end. Randy Carey of the iCue Project presents his work on making this a reality and on the issues he discovered during implementation of the solution. This presentation was given at JAB 2013 near Amsterdam.
A review of the mechanics behind Joomla's ACL, then a discussion as to how one can leverage a role-based access control system through Joomla - to improve the user experience for those managing the website and its content.
Please open the tab below to view my NOTES PER SLIDE.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Welcome to the first live UiPath Community Day Dubai! Join us for this unique occasion to meet our local and global UiPath Community and leaders. You will get a full view of the MEA region's automation landscape and the AI Powered automation technology capabilities of UiPath. Also, hosted by our local partners Marc Ellis, you will enjoy a half-day packed with industry insights and automation peers networking.
📕 Curious on our agenda? Wait no more!
10:00 Welcome note - UiPath Community in Dubai
Lovely Sinha, UiPath Community Chapter Leader, UiPath MVPx3, Hyper-automation Consultant, First Abu Dhabi Bank
10:20 A UiPath cross-region MEA overview
Ashraf El Zarka, VP and Managing Director MEA, UiPath
10:35: Customer Success Journey
Deepthi Deepak, Head of Intelligent Automation CoE, First Abu Dhabi Bank
11:15 The UiPath approach to GenAI with our three principles: improve accuracy, supercharge productivity, and automate more
Boris Krumrey, Global VP, Automation Innovation, UiPath
12:15 To discover how Marc Ellis leverages tech-driven solutions in recruitment and managed services.
Brendan Lingam, Director of Sales and Business Development, Marc Ellis
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Enhancing Performance with Globus and the Science DMZGlobus
ESnet has led the way in helping national facilities—and many other institutions in the research community—configure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
iCue Projectan intelligent approach to improving the CMS user experienceTo receive information on new extensions and plugins produced by the iCue Project, please subscribe through the website: iCueProject.com
We who build websites tend to see only two types of users using the CMS: those developing the site and those visiting the site. Hence, we divide our view and discussion of the CMS as “backend” and “front-end.”
But we are forgetting the client – the one commissioning the project for business reasons and the one paying for its development and maintenance. The client is a different type of user. The client is concerned about managing content and the business objectives. Further, the client is almost always less interested and less capable in the technical aspects of the website and its CMS.
The client sees a website as a series of interconnected web pages, each page containing various pieces of content in some visual format. They do not naturally see all the technical details behind a website as we (developers) see.
Yet, the standard has been to give the user the same admin interface that we use to develop the site. Such an interface contains a navigation that not intuitive to a non-technical user, terms that are cryptic to the client, multiple steps to reach particular content or web app, clutter of options that the client does not need, and options that are accessible but potentially destructive in the hands of non-technical staff.Why do we give the client the same “backend” experience that developers need and use?
Our main strategy: Since the client is a different type of user with different motivations, needs, and capabilities, we should be giving the client a user experience that is different from that used by the web developers. Further, we should invest the effort to tailor this user experience to the client as we invest in tailoring an appropriate user experience for site visitors (the front-end).
Our second strategy: We developers ought to take on the added responsibility of developing a usable interface for our client. Site integrators should be capable of more than just installing and configuring extensions – they should have some understanding of the system and the capability of basic PHP/HTML editing. Such understanding and set of capabilities will go a long way toward tailoring a usable CMS for our clients.
Within any system there isa natural tension between feature-rich and ease-of-use. Pull in one direction and the other naturally suffers. But this occurs because we unify the all the CMS capabilities with the interface we give the client. These do not have to be linked…In the chart here, assume Joomla is the green bar. Traditionally we have placed it as a good balance of feature-vs-usability when comparing Joomla! against other CMSs and blogging platforms.
But if we split the bar – giving the client their own version for using the CMS and taking on more technical responsibilities as site integrators – then we can deliver to the client a very usable CMS without the integrator forfeiting any CMS functionality. I argue that such a split enables us to deliver ease-of-use that cannot be equaled by any CMS that does not provide such a split. And given the OO and MVC architecture of Joomla!, this CMS holds an advantaged position to leverage such a split.
This presentation fill focus on six areas where we can improve the client’s user experience with Joomla!
My mantra is “We can do better.” Think of what can be. Think of what should be for the client’s use. Then figure out a way to build what we should be delivering.
The first area of improvement is to leverage front-end editing wherever it is intuitive to do so.
Remember, the client sees the website as a series of interconnected pages, each containing content. This is the client’s mental model. We should tie-in to that mental model.
It is very intuitive for a client to find content through navigating the site and clicking an edit button to edit inline.
Currently, the main content of a page allows front-end editing (articles, K2), but few modules do. It is advantageous to use content-based modules that allow front-end editing. And if we are up to the challenge, it is possible to modify the code of existing modules to graft in front-end editing.The iCue Project is planning development of font-end editing for modules that are commonly needed.
In an ideal world, components (like this restaurant menu) should offer the user the ability to find and edit small pieces of information, such as any one menu item.
The JUX team has suggested adding extensive front-end editing in version 3.x.
I have not found any real discussion about this issue, but I think it needs to be thought out… If we can edit anything from the front-end, should we provide front-end editing to everything? I don’t think everything benefits from front-end editing. Here is my initial perspective as to how I would split front-end editing from backend…
Content (text, images, links) that appears in some given place on some given page fits the user’s mental model, and so it is advantageous to provide front-end editing. But be careful. If the same content exists in multiple places or is interconnected with other parts of the site, does the user understand the consequence an edit would have elsewhere within the site?
If the content manager needs to review or manage a list of items (categorizing, ordering, batch processing items, etc), these tasks are best done through a list view – probably in the backend.
Web apps involve various abstractions around the content. For example, an ecommerce app involves promo codes, shipping criteria and rates, related products, orders, users, gateways, and more. A web app runs deeper than what is displayed on the front-end, and managing it requires a deeper understanding of parts that just don’t map to the mental model of the front-end.
Structural and complex site details also require more than a simple front-end mental model. For instance, Joomla’s menu structure is more than just a hierarchy of titles - each menu item can be tied to access levels and dictate module positions.Site features that are structural and contain ramifications throughout the site are best managed by from the “inside” by those who understand how things are interconnected.
Finally, administrative details are rather detached from the font-end mental model. Examples: user management, permissions, extension installations, and even the path declaration of the temp directory.
We improve a CMS greatly by giving the client their own view of the backend. This includes the set of available options, the terminology used, and navigation.
Two very different backend views. The top is an example of what is needed for developing a site. The lower is an example of a template tailored for client use.
This begs the question… These two being so different in looks and function, are we justified is recognizing the lower version as a “client” template in contrast to what we’ve come to term the “admin template”?Obviously, in Joomla! there is no second type of backend template. But we can configure a backend template to be “virtually” different from the traditional admin template. Perhaps there is value is using the term “client template” to represent a backend version tailored just for the client and in contrast to the version used by site developers.
How do we assign each version to its respective user type?The first way is to leverage ACL. Users are assigned to groups, and we can establish business rules that determine if a user is an admin/developer or a staff/content manager based upon which groups we assign to any given user. Then, in the code, we apply the logic as to what menu items, dashboard items, and modules will be shown to the user. (Through this approach, all users are assigned to the same backend template.)
A simpler technique is to use template assignment. Pick one of the backend templates to be the client version and configure it accordingly. Make that template the default so that any new user automatically is assigned the “client template.”Likewise, pick a different backend template to be the “admin” or “developer” version. For those who need full and technical backend access to the site, assign them to this “developer” template (overriding the default assignment).
I wrote an article on how to create a totally different menu bar for the backend. The value is that we can provide a menu tailored for staff (common terms, only the features needed) while the original version remains available for the admin. So we tailor a client menu for the “client template.”Details on implementing this technique can be found in the April 2012 issue of the Joomla! Community Magazine.
Another approach is to create new admin modules in the dashboard, each module containing icons linked to the components and web applications needed by staff.In this example, I created four sibling modules and used them in place of the “quick icons” that I unpublished.
The new admin modules are simple CustomHTML modules. I merely pasted in the HTML code that I saw used by the “Quick Icons” module. For each item I changed three details : title, link, and icon to use.
The admin template Mission Control (by RocketTheme) provides a easy-to-configure dashboard module called rokQuickLinks…
It provides a configuration screen for setting the title, link, and icon. One can add additional icons to the icon directory and these will be available in the configuration screen.I must mention that I apply a little extra CSS to style my rokQuickLinks so they display as shown in this presentation. That CSS code is listed in my article in RocketTheme Magazine, March 2012.
We can deliver a very configurable client template if we configure and leverage role-basedACL.
The goal is for us to present a list of roles that can be assigned to any of the client’s staff. Merely select what roles a user should have and the needed modules will appear for that user. This role-based assignment is intuitive, easy-to-use, and does not require a technical person to manage users.In the examples above, two users are assigned to different sets of roles. What each will see in the client template is noticeably different and appropriately tailored. Each user has access only to what he/she needs.
The ACL of Joomla! 1.5 (left) was a linear hierarchy imposing incremental levels of rights. Each group represented a “level.” There was not the ability to establish independent and non-overlapping roles.This changed in 1.6 through 2.5 (right). Now one can create a configuration of groups that include parents and siblings and with meaningful titles. Permissions can be assigned independently and without overlap to sibling groups.We achieve role-based ACL by creating sibling groups with each group object being assigned the needed permissions from the component(s) corresponding to its respective role.
Here is my technique. I create a new group titled “1. backend access.” I prefix the name with a number because the user manager displays the groups alphabetically and this is my way to force this group and its children to the top of the display.Then I go to Global Configuration…
Under the Global Configuration I go to the group “backend access” and set a single permission – the “Admin Login” is set to “Allowed.”This one setting allows any member of this group or of any of its children groups the permission to login to the backend of the site.
If the client has a small staff and no need to assign different roles to different users, then one can set all needed permissions on this one group. Just go to each component, category, or item that offers permissions and set them for this one group. However…
…If the client does want the ability to assign roles differently per user, then you should create a group for each role that can be assigned to a user. For each of these new groups, assign its parent to be the “backend access” group we previously created. Just by creating these groups, they automatically appear as options in the user configuration screen (show in top-left).
In Joomla, each module must be assigned to a single “Access Level” to determine who can see the module. So we need to create new access levels, and each should have a one-to-one relationship with its corresponding role-based group.As the chart shows above, a user with membership in one of the role-based groups will also have membership in its corresponding role-based access level So membership in this group grants that person the right to view the modules assigned to that access level.BTW, the default access levels (public, special, admin) provide no valuable differentiation within the backend. If one can login to the backend, then he has access for any of these three access levels. To differentiate users in the backend, we need to create our own access levels.
This is an example of the site developer embracing complexity to deliver usability. By understanding and managing ACL, we deliver to our client this intuitive system for assigning roles to staff.
I recorded the details as to how this works in a two-part article for RocketTheme Magazine (issues Jan and March of 2012). Please refer to those articles for further discussion and implementation details.
One final tip… [LEFT side] By default the user screen will display all of the user groups. [RIGHT side] One can hide groups that don’t need to be shown using CSS and “display:none;”. In this example, the parent group “backend access” is an option that does not need to be displayed.
We improve the client’s user experience by tailoring the edit screens to the business rules and needs of the client.
A full and powerful system like RedShop has to include all of its options in the edit screens. This is the only way that we as site developers can configure the component. However, if we give the client this same edit screen, its staff will be confused and belabored by all the fields that are not applicable to this site.
The solution once again is to override the “view” of the edit screen.
There are multiple ways to tailor the edit screen. Here is how I did it…[top code] In the PHP view file I add a class to each field. In this example I established the classes “f-required,” “f-important,” f-optional,” and f-notUsed.” Each field is assigned to one of these classes.[bottom code] In the CSS file I define the styling rules for each of these classes. The “notUsed” class is set to “display:none” and this effectively removes unused fields from the edit screen.
As you can see in this example from one of my clients, only a few fields are needed and displayed. The required fields are set off with a black background for emphasis.Also note that I added the image to the first tab – I felt that seeing the item here was helpful for my client.
Compare my tailored edit screen (top) to the default that comes out-of-the-box (bottom).Note that I didn’t just remove fields – I removed several tabs that this client was not using.
One of the tabs had a rather complex set of editing features. I need these for setting up the fields for my client, but I know this was too complex for his ability to maintain the simple data he needed to maintain. So…
I overrode that edit screen and gave the client a much simpler interface (top) – an interface that allowed him to see and easily change just the options that he needed access to.
For each edit screen that we give our clients, we need to ask if we can do better. Usually we can.Remember… We can offer our clients a better user experience only if we put the extra effort into identifying what more we can do …and then tailoring the improvements into the overriden edit screen.
I feel the edit screen for articles contains too many options and can be improved. Typically a user just wants to edit content and have access to the editing toolbar (shown in red). All the areas shown in yellow clutter the screen with options that are seldom used by the client. I want to do better.
The admin template Mission Control has the right idea. It hides all these configuration fields under tabs. The initial screen is much cleaner.Still… I know I can do better yet.
By overriding the edit screen for articles, I removed a few fields that (in this case) authors do not need. All I show is the minimal set: title, category, and status.
I moved “alias” to the SEO tab because I saw it as a field to set when tuning a site’s SEO. Typically, the fields for access level, language, featured, and id are not needed by authors – so why show them to authors!?!
Articles contain this long list of options (right). Do we really want to put all these in front of an author to make her think through each? Do we even want to allow an author to change any of these? Typically not, so my default configuration (left) is to hide most or all of these fields.Yes, in some cases certain of these fields need to be accessible. There are various techniques (PHP code or CSS rules) to conditionally show these fields based upon a user’s credentials. The key is that we segment users using ACL.
We provide a better user experience for our clients if we segment users. Three suggested areas by which to segmenting users: roles, rights within each role, and capabilities .
We already talked about segmenting users by roles.
Within each role we might need to establish more than one level of rights. In this example, the yellow permissions comprise the base rights, the blue denotes a second level, and the red completes that highest level of rights for that component (and its corresponding role).
We establish levels of rights as we did with roles – a group for each. So far, my experience leads me to establish levels of rights within each role that needs multiple levels. (see above)
A third way to segment users is by capability (or in some cases by motivation).Some users will be casual and nontechnical, others will be power users. The former will prefer simple editing options while the later expects a large set of tools.
Here I illustrate three types of groups based upon capabilities and familiarity with the CMS system. The middle group represents the default or standard. The thin-bordered icon (left) represents a group needing the simplest and bare minimum of editing options. In contrast, the boldest icon (right) represents the group of power users.
The JCE editor allows us to configure the edit tool bar.We give the minimal amount of options to the “lite” user group.We give the “standard “ group the default set of editing icons.The “advanced” group receives all the tools we feel they can manage and use safely.These screenshots are just examples. For each project you will want to assess which set of editing icons are the right ones to include for each profile.
We set up these profiles in the JCE.
The simplest way for the client to assign someone to a profile is for us to create an ACL group for each level and assign each JCE profile with its corresponding user groups.
The area in yellow contains these new groups. These denote a different type of segmentation, so I isolate this set of groups from the role-base groups. In this example, the user has the roles of events and newsletter and will receive the power user’s set of editing tools.
JCE allows us to assign different root directories for images, videos, and documents. This can be another useful reason for segmenting users. In particular, we might want most users and authors to access a directory reserved for them (upper) while admins and publishers might need access to more directories (bottom example).
We accomplish this in a way similar to what is illustrated above. The staff type of groups have a root directory that is farther down the root. Whereas the admin type of users are assigned root directories that include more directories. This allows admins and publishers to access directoriesthat are not accessible to regular staff.
The example above shows a new admin profile within JCE. It is this profile that provides expanded access to asset directories (images, video, documents).
The JCE editor includes a subscription option for special and improved editing buttons. I recommend subscribing and using these. Our clients are worth it. Provide them these button upgrades.
Sometimes significant usability can be added by creating a custom JCE button. One of my 1.5 clients wanted a way for its volunteers to copy a block of cells from a spreadsheet and paste them into an article with the cells being auto-formatted into an HTML table. I could not find a button to do this, so I built my own custom button.
Likewise, I built a “Header” button. The top screen includes the default dropdowns. The user has to remember to use a header, remember where it is hidden in the these options, and then know how to apply it.The bottom screen shows my button. It is placed next the bold button because a user’s inclination is to make a heading bold, but hopefully the ‘H’ button along side of the ‘B’ button will remind the user. Selecting the button prompts the user to choose the right header level. The text is more meaningful to the non-technical user than is the cryptic ‘h1’, ‘h12’, etc.
We improve our Joomla configuration by streamlining the workflow for each of the commonly performed tasks.
By “task” I am referring to management of content and web apps that are understood in common or business terms. Examples shown here are testimonials, restaurant menus, events, and lists of specialized inventory.
Let me demonstrate the streamlined workflow for a component I built for a client. The client runs a pet store and wanted to be able to quickly list his inventory of puppies and kittens. Show here is the page of puppies that he had on stock during on a particular day.
Once logged in to the site, the store staff sees the list of tasks that can be managed. The desired option is easy to find and is selected in one step (a single click).
The second screen is a simple listing of all puppies, each item illustrated with a photo. To add or edit an item requires a second click.
The third and final step involves the walkthrough of fields all on one page. These fields are grouped logically.
CCK tools offer a quick alternative to building a web app. But the time savings comes in development. The user does not benefit from this time savings. Perhaps this CCK approach actually adds more complexity for our client – requiring the user to navigate through additional steps and terms that are generic (or even non-intuitive).This example leads to a K2 category that implements the same pet store example. Not only are there three steps here, but the user has to make decisions when faced with a clutter of non-specific options. (BTW, the client might wonder why the second option reads “K2” instead of “K9” for his puppy application;-)
[4] The user must select the category to narrow down the options (or to create a new record of the “puppy” category).[5] the user selects the item to edit.
[6] The user must remember to click the “extra fields” tab to access the puppy details.[7] the user much remember to click the “image” tab or the puppy’s photo will not be included.Meanwhile, unused tabs and sidebar fields compete for the user’s attention as to what options are used.We can do better!
We return to the dashboard configuration I’ve been showing.
But we need more than just a link to K2. We want a link that takes one straight to the “web app.” With this plugin from the iCue Project we can do this. Install/publish the plugin, then add the catid to the link. This link will take one to K2 with the category filter preset to the specified category. As a result, we have dashboard options that lead straight to the specified K2 category, which represents a “web app.”
We can improve the edit screen for a K2 item by overriding it. Our added code wraps the entire body in a div with its id set to the cat id. Then in the CSS we add rules that suppress the unneeded tabs and fields for the puppy category.With this pattern, we can use the CSS file to declare which tabs will be hiddenfor any given category.
As a result of overriding the edit screen and CSS that affects only the targeted category, we produce a clean and rather streamlined screen (lower screen).
And if we compare this to the edit screen I created in the custom application, we see that the generic CCK solution is almost as streamlined as the that for the custom app.We don’t get a streamlined workflow with out-of-the-box CCK. But we can deliver a much improved workflow by applying some extra effort.
The work of delivering a separate and tailored user experience requires we invest additional effort. Not all of this work needs to be repeated for each client.
[1] Build a base installation and configure it with all the components, settings, and overrides that are commonly needed across projects. [2] Back up the base installation using Akeeba Backup.[3] For each new client site, install the base installation. All the common work is already in place and does not need to be repeated.
The base installation can include[1] installed modules that allow front-end editing[2] installed and configured “client template.” Include the overridden menu. Include the initial installation of dashboard modules.[3] set up the ACL with the common role-based groups and access levels[4] within the client template, store the collection of all your commonly used edit screen overrides. [5] Install JCE with profiles, each configured according to the standard settings you choose to baseline.[6] If you will be using K2 (or some other CCK) for task-based apps, override the edit screen and have the CSS code ready to apply as needed.
The strategy I have argued for is that we give the client their own user experience – one that is different from the developer’s user experience, and one that is tailored for the client’s usability (similar to the added effort we put into front-end usability).
Remember, Joomla _can_ be very easy to use. But we must follow the two strategies: [1] give client their own user experience, and [2] accept responsibility for investing some additional effort and dealing with a bit more complexity.Do this, and do it well, and we will deliver a CMS that is more usable than any other CMS which does not follow our strategy.
Joomla is a sophisticated instrument capable of great and beautiful things. When it comes to delivering a tailored and usable CMS to our clients, the biggest gains will come not from further enhancements or features to the instrument – rather our biggest gains are to be had with learning how to play the instrument and how to play it well.It is technique. It is learning how to leverage the ACL. It is learning how to leverage overrides. It is learning how to use PHP and add CSS to accomplish what we want. That is where the biggest gains are waiting. To deliver an improved CMS experience, place your focus on how to “play.”
iCue Projectan intelligent approach to improving the CMS user experienceTo receive information on new extensions and plugins produced by the iCue Project, please subscribe through the website: iCueProject.com