Common features of a robust CMS - content-management-system

This is not a direct code question, however, I think it may be useful. After google-ing for a while, I can't find a definitive answer....
A while back, I built a rudimentary CMS for shcool. Image upload, gallery, text, a basic captcha, etc. Basically a blog that you could upload images to. My quesiton is this:
Could any of you clever ducks tell me what features a robust, solid, home-made CMS should contain? I don't want to make a super fancy pants sort of site, but I do want to flesh it out a little. My current job is in Sharepoint design, and I don't want to lose any of the PHP skills that course taught me.
Any input would be greatly appreciated.
Thanks.

Well.. The best product is a product that reaches the requirements of the customer.
But I would say:
Dynamic menu
Dynamic pages
Different type of pages - front page, posts, lists, media, gallery
Secure back end
Dynamic user configuration
A install script
Template editor, where you can define modules
Maybe a offline post editor, with a up-loader (Drag a .doc file in a folder, and the file is automatically added as a post on the page)

Related

How to tag the code of a website for structured data recognition by Google SEO?

we're just completing a new site build. With the current theme, we have had issues with structured data (we've highlighted it on Webmasters tools, and weeks later had to re-highlight it, and even then the highlighting prediction is not where we would like it to be).
It seems like Google is not able to find our Title, author, categories, content, featured image, date very easily. I'd expect to be able to communicate this to Google with 100% accuracy, since its so simple and we use the same format for all our articles). So maybe our theme is missing something by way of tags or something in the code to point to and identify this data?
Is that the case? Could someone please tell me what this aspect is called (so I can research it by its term), explain what I need to do with the new build, point me in the direction of an authoritative explanation/tutorial?
The site in question is a WordPress site, but I also am working on some php sites and would like to use this information on all sites, if it can be applied this way.
Thanks
You can use micro-data to mark-up the structured data. Also Google will really like your site if you show him (with a code) everything about the site - navigation, sidebar (aside), content (article) and so on. I suggest you to read about schema.org and micro-formats.
Here is an usefull article about your problem and how to implement micro-formats to your site.

Creating a webpage using forms

Hi i'm creating a webpage for my school's newspaper/journalism club. to be honest i don't know if any of the club members have much html programming ability and when i finally publish this page, i don't want to have to teach them how to update the page themselves (i will still help i just don't want to have to update the homepage my self) so basically my question is: is there a simple way to create an html form(s) that can create an html webpage? and could it be made so it updates to multiple pages at once. Thanks!
oh also if it is not possible with html or html5 i'd appreciate it if you post which programming language it needs to be done in :)
basically what i want is a form for the title, one for the paragraph, maybe a couple for pictures and i want it to turn out in the same format every time.....
I guess you'd have to look at a CMS (content management system) like Drupal, Joomla, WordPress, ... (there are many many more out there)
These CMS let you create and update your pages in just a few clicks even without basic HTML knowledge!

Best alternative to drupal for small-scale sites

I recently started learning about drupal integration and because I wanted to learn how to create sites that I give to people with no html experience who want to be able to update their site. Through my research I learned that Drupal is the best supported CMS. It really does have a lot of nice features and accomplishes the job, but it almost has too many features for what I want.
I'm assuming there is some kind of open-source software for
I am an aspiring web developer trying to build my portfolio/gain experience. What I've been trying to do is build sites for clients that I can lose complete contact with--so when their store hours change and they have no HTML experience, I get emails about updating their site.
I figure there are three approaches: (tell me if there are more)
I write a php app that allows them to edit their site
I use a CMS (Drupal) to let them edit their site
I write scripts that embed text files formatted with {white-space: pre;}
I've so far implemented each method on 3 different sites, and they all work with drawbacks. I would prefer an open-source alternative to writing my own app for stability/security. Drupal seems more oriented towards allowing multiple users to add content, whereas I only want one user update existing content. The third option works well for computer-literate clients, but anyone who can navigate onto their server to change the file could probably figure out how to update the site without any of these approaches.
To sum up my problem, can anyone tell me the term I am looking for? Content Management System refers to the site framework for sites with a growing number of content posts (correct me if I'm wrong). What is the term for the site framework for editing sites with predefined but editable pages? If you could please tell me that, then I can at least research this question on my own. Otherwise, if you have any advice or solutions, they are much appreciated!
Thanks
user1470887, you've asked a great question. The answer, unfortunately, is that too many of the existing CMS products overlook this use case. It doesn't have an exact name as far as I know.
The term "in-place editing" describes one version of this (user clicks text on web page, block of text becomes a form, user edits contents and presses submit button, new text is sent to webserver and saved, and the form becomes normal text again). But I gather you would be happy with anything that lets them edit-existing but not create-new.
I'm also guessing you don't want to build your own Drupal module or commission one.
I do not know Drupal well enough to know whether there's a Drupal module that meets your needs. I'd recommend a careful search, though, especially if you are already somewhat familiar with Drupal. (Yes, Drupal can seem like too much CMS at times.)
However ... if you can't find a Drupal solution or want an alternative to Drupal, MODX Revolution does have an answer: set it up and then install Bob Ray's NewsPublisher add-on. It will put an "edit" button on pages which a user has the right to edit, but not on pages where they don't have edit rights. (And of course users will only be able to edit the title, body content etc - not the entire page.)
Bob Ray has literally written the book on MODX (MODX: The Official Guide). I was able to successfully adapt NewsPublisher to a project last year similar to what you have described, with predefined pages that the user would only need to edit over time. The latest NewsPublisher version, untested by me, is said to be further improved and can now be styled much more easily using CSS. That should allow you to give your users a customised and consistent interface.
As andmag also notes, MODX is a very flexible system for web developers focused on the presentation layer. It has the best templating system going.
I'll recomend you to try MODX. It gives you big flexibility to run your php or html code.

Extremely simple content updating tool for websites - CMS? PHP forms? Suggestions please!

As a side project I tutor grandparents and other computer novices in Computer & Internet 101, from physically using a mouse to dealing with e-mail/searching/etc. Web development isn't really my area of focus - I do have reasonable HTML/CSS/Javascript etc skills, so I can throw together a decent-looking simple, static site - but occasionally I get asked to put together extremely simple websites for these people, that they can update themselves; that is, edit text-based content without giving Grandpa a heart attack by making him come face-to-face with HTML/Javascript.
I've waded through a mile-long list of CMS software - largely culled from the many other similar questions on SO - but they've all got something ruling it out: hosted, restricts the design (can't use w/existing CSS, looks "Word-press-y", etc), not free/FOSS, etc. I wonder if "CMS" is even the right word for what I'm looking for. What I need is a simple text editor for the client: that is, something that will give the client a text box of some variety, let them edit it, and update the content with that info. They can't mess with navigation, add new pages, change anything other than text. If it was really fancy, they could upload a picture.
I was planning to do this just with a couple of password-protected php forms, but thought I'd ask if there's anything already out there that might provide this functionality? Any suggestions on building my own version of this, in PHP or something else?
What I'm really interested in is:
1) the simplicity/customize-ability of the admin interface (or lack of admin interface, if the client could somehow edit directly in the page), and
2) ease of set up for me (not getting paid much if at all for this, don't want to wade through three million plugin options to figure out how to get some unwieldy, high learning-curve framework to do what I want).
Try pulsecms.
Here is another very simple CMS that has JQuery and modernizr , HTML5 Boilerplate and TinyMCE.
I have my wife setup with Windows LiveWriter
http://explore.live.com/windows-live-writer?os=other
This means that she just builds her articles as if she is using a word processor (almost exactly the same) and then just uploads the article to her blog. I use Blogengine.net to host the blog on a Godaddy hosting solution.
Blogengine comes with built in support for LiveWriter and only required that you input the address, username and password in.
I understand this is an old post, but i hope someone find this of interest.
You could give the users the instruction to upload text files to the site, and the have the HTLM/PHP/ASP pages load the context of such .ts files.
Each web page should have a specific named .txt file associated.

What separates a content management system from just a bunch of web pages?

I have a website that has related pages. They have links that point back and forth to one another but I have no integrated system, nor do I know what that would mean.
What is the minimum code that a group of web pages must have to be considered a Content Management System (CMS). Is it that all the settings are in the database and the pages are generated somehow? Is there some small snippet that all my pages could share that makes them a CMS, database or not?
Thanks. I was also hoping not to have to study a giant CMS to see what makes it a CMS . After maybe a basic understanding I would know what I was looking for.
edit: here's why I ask about code. Whenever I have looked at a CMS, and maybe they aren't all the same, I saw that to develop a module you always had to inherit from certain classes and had some necessary code. I didn't know if there was some magic model that I just don't get that all cms makers understand.
edit: perhaps my question is more about being extendable or pluggable. What would a minimum look like? Is it possible to show that here?
edit: how about this? Is something a CMS if it is not extendable and/or pluggable?
I think this is really impossible to say. We all manage content. The "system" is just whatever mechanism you use to do so(dragging and dropping in Explorer or committing content changes via a SQL query). To say there is a minimum amount of code needed really isn't indicative. What is indicative is how often you find yourself making mistakes and how easy it is for a given user of a given skill level and knowledge to execute the functions in the designed system. That tells you the quality/degree of what you have in place being worthy of being called a "CMS."
Simply put a CMS is an application that allows the user to publish and edit existing web content.
In response to the edit:
A "good" CMS allows of extensibility. By using inheritence you can extend the functionality of a CMS outside of the core components provided. That's the magic.
About Extensibility:
Depending on the language/framework you want to build your CMS with, you can load pages or controls(ASP.NET) using command built into the framework. Typically what is being done is a parent class/interface is being defined that forces an module that is to be developed to follow some given standards:
Public MustInherit Class CMSModule
'Here you will define properties and functions that need to be global to all modules being developed to extend your CMS.
public property ModuleName as string
End Class
public class PlugInFooCMSPage
inherits CMSModule
end class
Then it's just a matter of simply loading a module dynamically in whatever construct a given language/framework provides.
Ultimately, a CMS is a system that lets you manage content, so it needs an user interface that is dedicated to letting you easily create, edit and delete pages on your website.
However, it's fairly usual to expect from a CMS to provide a browser-based WYSIWYG page editor, file uploading, image resizing, url rewriting, page categories and tags, user accounts (editor, moderator, administrator), and some kind of templae system.
Without dragging you into a theoretical explanation of what a CMS is and what it's not, perhaps some tutorials on the building methodology of a CMS will help you better understand.
http://css-tricks.com/php-for-beginners-building-your-first-simple-cms/
http://www.intranetjournal.com/php-cms/
A Content Management System is a System that Manages Content. :)
So if you got many pages that share the same layout, you can create a system that stores the content into a database and when a page is requested, it gets that content, merges it with a template that contains the page header, menu, etc.. and outputs the result.
The basis idea is that you don't want to copy HTML pages, and have to edit hundreds of them when you want to change your layout.
Such a system can be very complex, featuring wysiwyg editors, toolbars, version control, multiple user publishing and much more, but it could be as simple as a single page behind a standard loging, that contains only an input field for the title and a textarea in which you type the html content.