-
GSoC Interview: Carlos Mauro
(News)
-
2. What attracted you to the Google Summer of Code as a programme, and PostNuke as a project?
I looked at Google Summer Code as a great challenge. But I do not dare. Until this year, if I did. I applied to several projects related to the topic of usability. And because apply to PostNuke some years ago I work as freelance. Develop some portals for small businesses in my country using postnuke and other CMS. PostNuke is attractive because this was installed in a single attempt. I was surprised. So I think support.
3. Tell us about your project, and how you hope it can benefit PostNuke?
I'm copying what we present in my proposal:
The criteria for the evaluation usability are:
Comparison of controls on Good Practices or patterns Usability on the Web.
Include improvements within the Framework.
Create a guide to improve and documenting findings to the community PostNuke.
a. Usability
To improve the usability of Postnuke i will work graphical interfaces suggested some of the modules and the framwork which are used in the forms. Attempts to put in these modules some good practices and standards for Web usability.
I will Work with what is necessary XHTML, CSS, Ajax whether it is possible to implement and methodically.
b. Accessibility and conformance
For the accessibility i take the the Guidelines and techniques(6). After the programing process. I will make a list for test usability. I will Choose 6 to 7 cms users to test usability with the corrections. The proceeds will help create iterations for each test.
c. Maintainability
Maintenance may accelerate taking intoaccount that at the end of the draft the conclusions will be made in the form of best practices for Web usability postnuke. I will help in the incorporation and supporting of usability guide line in other modules PostNuke.
In the forums I will clarify the tasks of the project and also its scope.
4. What do you personally hope to gain from participating in the Summer of Code with PostNuke?
Many, many experience in knowing more about how a community of developers interested in do make a good product. Learning from good programming practices and especially knowing more about web usability. Of course Social Recognition.
I want postnuke as a milestone in the renewed Internet.
5. Can you see yourself contributing your talents to Open Source projects following the SoC? Will you continue to work with PostNuke in some capacity after the programme has ended?
The GSOC ends after a month of my graduation from college. I hope to finish that time almost all my tasks in the project. I would like to leave a module to test usability. I feel a duty to contribute to the community. I am confident that the project can achieve more significant improvements in its next release and then create or generate support the development of future lines. It should not be discouraged postnuke which has short market ... we see the top, be with them and then jump to heaven.
6. Is there anything else you’d like to say now, as the programme begins?
I would like to see other issues as the framework and its implementation in business or insert google app into the framework. I would like to make a strategic planning for IT postnuke. Devising strategies to make the best CMS, simply: Easy.
Not only is needed to schedule some things to achieve a well-accepted product.Need to know that is what the user wants in the next 5 years and venture into that vision. So I count on your support to work with postnuke .... And of course do my project as realistic as possible in these 3 months in the hope that is of benefit to all.
Lastly, thanks for your time – we in the PostNuke team are excited about the Summer of Code, so thank you for taking part and choosing PostNuke!
We are going ... postnuke to make the Best CMS, the easiest. GEN a social network that seems to make FaceBook a grain of sand in our seas.
I will continue reviewing more documentation and adjusting the project to postnuke with the help of my mentor Steffen Voß and
Generated on April 27, 2008.
-
Meeting 2008 - Announcement and invitation
(News)
-
university of applied sciences [4] n the district of Buedesheim. These are solely separated by a dividing wall, so that particular topics can also be dealt with simultaneously. For example, it is possible to allow several lectures and discussions for users and developers to take place at the same time. A workshop is in consideration as well, to diversify the agenda.
At this time we are still at the beginning of planning, but will delve into it during the next weeks and give an account of it in regular intervals. We have several ideas, especially due to the large feedback from last year. For instance, we are up to start a shuttle service as designated by multiple people. There will certainly be a supporting programme again - how this will look like and if proportionate costs, in form of a fixed amount, which has to be carried by the participants themselves, will incur thereby is still open though. But we will make an effort to keep this amount as low as possible (less than 25 Euro). It is also not certain yet where and in which form the traditional prelude event on Friday will be.
Since there were already three companions last year, we want to organize a secondary agenda which is going to happen parallel with the primary conference and is being overseen by my girlfriend. However, during the complete supporting programme, for example the dinner on Saturday, both groups will be together.
Many other details like possibilities for arrival as well as accommodations and the program itinerary will be recorded in the Wiki [5] (German only). Also preliminary suggestions for lectures, workshops and discussions can be handled there. In coincidence of The Rhineland Palatinate's State Garden Show [6] happening simultaneously, a shortage at close hotels may arise. We will put several addresses and alternatives into the Wiki this very day. Please take care as soon as possible for corresponding reservations. If there should occur any problems, I am within reach and of help at axel@zikula.org.
We are looking forward to a large attendance [7].Registrations are without commitment, but exceedingly helpful for our organization, particularly as we must roughly estimate the total amount of persons. Also the information how many people are going to bring along their partners, is very important for the planning. The first meeting which is all about $newname is hopefully going to become an exciting and innovative performance with active participation.
Links:
http://www.bingen.de/
http://en.wikipedia.org/wiki/Bingen_am_Rhein
http://whc.unesco.org/en/list/1066
http://www.fh-bingen.de/
http://camp-zikula.info/wiki/
http://www.landesgartenschau-bingen-2008.de/
http://camp-zikula.info/contact/
Generated on April 1, 2008.
-
Development Update, 2008-01
(News)
-
.8 Final: the next step after RC3
Since the release of RC3, already a lot of bugfixes have been committed to the repository. The developers have agreed to address all new features to the .9 tree, where the two major changes (UTF-8 and gettext, see below) are already in active development. This should result in much shorter release cycles (and earlier release dates) also, and give module developers much more clarification on what to change in order to make their module work under the new major release. If needed, an final bugfizing weekend may still be organised for .8 final.
The upgrade from .764 installations on certain systems has been improved, by increasing the memory_limit to 64M. However, this only works for php version 5.2.1 and above.
Upgrading to .8 together with some 3rd party modules may raise problems when the modules upgrade process is not failsafe for .8 or if the upgrade function uses core functions of modules that are not available yet. Therefore the upgrade of 3rd party modules in general is avoided by following a white list of core modules.
Most site-specific data can already be easily overridden using the /config and /themes directories. The Multisites module however still needs some futher thought on the best way of running multiple sites from a single install. One method having multiple unrelated (i.e. non table sharing) sites of a single install would be to have config/site1, config/site2 etc., this will be postponed to a next release.
The Tour module is now in a state where it can be translated to other languages as well. Just translate the templates and put them in a subdir with the appropriate language abbrevation, all within the pntemplates directory.
MultiCategorization introduction and issues since
As earlier announced, a last fix for supporting MultiCategorization has been added to the core just before the release of RC3. Since those changes, another small fix was then required to be fully backwards compatible. On the module-devs list, the devs have discussed a lot on how to solve these issues. Chances are great that if the new (already committed) patches do not solve the problems, MultiCategorization might be postponed to later versions in order to fully test the new features.
For more information on MultiCategorization, visit this thread in the forum.
DOM extension to use correct paths in JavaScript
Some javascripts, eg. the lightbox, need to know the path to the system and the entrypoint as well (which can be configured in the settings), otherwise they may fail in case of short urls being enabled. Since dynamic javascript creation might be a performance problem, some inline javascript is added to the pagevars to extend the DOM:
- document.location.entrypoint: will be set to what is configured to be the entrypoint
- document.location.pnbaseURL: will point to the result of pnGetBaseURL();
Any ideas on how to make his more unobtrusive are very welcome!
PostNuke Upgrade Distribution
In previous articles and posts, the term '.8 upgrade pack' was used to represent a full .8 package, including 3rd party modules, to upgrade to .8 from an existing .764 installation. However, the term 'upgrade pack' is not quite correct and misleading, because it implies to be an upgrade package with changed files only, while the main parts remain as-is. The transition between .764 and .8 requires a complete exchange of all files, so the so called upgrade package is a complete distribution.
Now it remains what modules should be in an upgrade distribution, to be able to fully upgrade an existing .764 installation, including new versions of 3rd party modules. These include Downloads 2.2, pnMessages, Polls 2.0, bbcode / bbsmile, Weblinks, EZComments and MultiHook at least. This might need some additional testing with certain versions also.
Core changes and additions in the .9 tree
Mark has already overhauled some core API methods and calls. All systems modules are now using the Renderer Class instead of pnRender. Also, a first pass has been committed in changing all pn* function calls to new object method calls. For example, pnModGetInfo is replaced with ModuleUtil::getInfo and pnSecGenAuthKey is replaced with SecurityUtil::generateAuthKey.
For those who did not know: A class pnCompat.php still includes most oldstyle API calls for backwards compatibility.
GetText and Default DB Charset
Bernd is progressing rapidly on integrating gettext in de development tree, and has added po-files for all core modules. The required PHP version for .9 has already been set to a minimum of 5.1.6, and since version 5.0, MySql supports different character sets and corresponding collating orders. To run an application in UTF-8 (unicode) it is not sufficient to change the character set for PN; we needed to set the database encoding (actually server and client) to UTF-8 as well.
A user who wishes to run his site in multiple languages, needs to decide the database encoding at installation time. The default is UTF-8, because the current iso-8859-1 is restricted to too few language combinations. UTF-8 is a 'no-worry' setting because it will work with any language (as long as it is UTF-8 encoded.
This change is $PNConfig['DBInfo']['default']['dbcharset'] = 'utf-8';
To cache or not to cache, that's the question
Also discussed on the devs-list is the current (and future) state of output caching within PostNuke. Why should any application repeat the same processing tasks on a item that hasn't changed?
Not caching anything is fine if one has got infinite resources to throw at a site (and even then there are limits). But in reality there are finite resources and you need to take steps to ensure that those resources are effectively used. One method for that is not wasting precious resources repeating the same tasks time after time.
The key is effective cache management. Currently we put too much load onto the module to handle it's own caching. Once you then
Generated on March 2, 2008.
-
Url rewriting on Postnuke 0.8
(News)
-
Main principles of the mod rewrite
For information, the URL rewriting is a module that you can activated in your apache to rewrite the links of a site in order to simplify their reading.
The idea is that the Pn Team also thought that the mod rewrite was not necessarily available / activated on all types of servers (particularly on Windows servers). Indeed, the Postnuke team offers rewritings based on tips already heavily used in management systems like blogs.
Before you begin, here is the format of a link without rewriting.
without rewriting
index.php?module=Users&func=logout Index.php? Users & module = func = logout
URL rewriting without mod rewrite
This rewriting reproduced a "virtual" Folders system on your site, links look like this
URL rewriting without mod rewrite
index.php/Users/logout
In terms of mechanism, it is very simple, when your Web server receives a request for a link, it loads instinctively page "index.html". In this index.php, the parameters of the request are recovered via the header (you can look in "phpInfo" there is a field $ _SERVER [ 'REQUEST_URI'] which corresponds to this information).Then these parameters are interpreted , between the first two "/" is the name of the module, between the two others, the function name. Now Postnuke know the name of the module and function to launch.
You can pass parameters too, for instance, if you want to load a forum with id=2, the links will look like this
URL rewriting without mod rewrite
index.php/Forum/viewforum/forum:2
Note that the url rewriting uses ":" to represent the parameters in a url. So you can't pass variables like this "index.php?variable=filter:3". (be carefull if you are using Pagesetter and his filters system).
URL rewriting with mod rewrite
Optimizing the previous version
In the previous example, all links contained index.php ... but it's ugly, and functionally this file contains no
information useful to load the asked module.This trick is useful when you have no mod rewrite, but if one has an "mod rewrite enabled" server,you can use a "lighter" version of the previous rewriting without an "index.html"
Here is an example
URL rewriting with mod rewrite :Optimizing the previous version
/Users/logout
Be careful, if one of your pictures is written this way
and you load the page /MyModule/main/. "/MyModule/main/test.png" which will be searched. Note that you can make a rewriting that redirect all links of the form "/*/*/*.(jpg | png | gif)" to "$ 3. (Jpg | png | gif)." (but it's ugly).
Mode file
This url rewriting is the classical version already used in previous versions of the cms, The rewrited links are lists of words (module name, the name of function) separated by dashes. Note that this version uses a large number of regular expressions rules to do the rewriting compared to the other one, which may increase the load of your server Web.
One example here ...
URL rewriting with mod rewrite : Mode file
module-Forum-viewtopic-topic-2903-start-0.html
Note that the "module" which one would have thought there's no point in it, is made for the support of the "old style" loading of modules.
URL rewriting customized
So here is the coolest feature, which allows you to customize the URL rewriting depending on the module you want to load. Just create a "encodeurl" function in your API module (pnuserapi) that takes as parameters, the information needed to create for output a fully customized rewrited link.
After, the loading of each page of the CMS, a "decodeurl" function in the API part of the module takes care to reformat the encoded url in a form understandable by the CMS.
You can find an example of the use of this method in the module "Pages" of values addons
Format of a encode and decode url
function pages_userapi_encodeurl($args)
function pages_userapi_decodeurl($args)
This feature is interesting because it allows us to have the hands on your url, not only before loading the page, but after loading this page, allowing you post-processing actions rather interessant.
This method allow you to
- put keywords in the url: (see Pages module)
- have a single version of your rewrited url : Indeed, through the post treatment you can recalculate the url and it does not conform to your requirements, you can redirect to the good link via a redirect 301 "Moved Permanently headers.
Use case of a url rewriting "no duplicate"
Notes: A small problem nevertheless for the use of this rewriting, which is limited to the type url "user". (more details here)
This article is a translation from this "how to" released on Postnuke-France
Generated on February 25, 2008.
-
SEO for postnuke
(News)
-
Customize title
You can customize the general title of your postnuke, by filling in the correspondant fields in the module "settings". The problem is that, you will have only one title for the whole website ... and that's ugly (and bad for SEO).
A solution was offered by Markwest, in order to personnalize this title, on every pages.the title tag plugin
This plugin allow you to format titles like this
Classic titles
HTML for Module Developers - A Discussion :: pnCommunity :: Support at your fingertips
if you want to have shorter titles like this, you can use the other unofficial version in the comments.
Improved titles
HTML for Module Developers
If you're using pnForum, it will give you title like this
PnForum title
Customize meta "descriptions" and "keywords"
You can customize the meta "descriptions" and "Keywords" of you CMS, by filling in the correspondant field in the "settings" module, but with this customisation, you will have only one "description" and "keywords" fields for all the site.
In order to improve this, there are two plugin on the community repository, one for fixing the descriptions and the other one for the keywords tags.
Notes : As the Search engine were spammed by overloaded keywords tags, for most of them , they don't consider this tags anymore.
If you're using pnForum, it will give you this :
PnForum metas
Activate url rewriting
You can activate the url rewriting in Xanthia, go to the Xanthia module, then check the options "use short urls", and copy paste the .htaccess file from the "doc" folder to the root of you CMS.
/!\ Be careful, live search doesn't url with more than two dashes
Notes : an improved version of the current url rewriting is available in postnuke 0.8.
Duplicate content
Don't duplicate links in your portal, two differents links must not point to the same content. Indeed, some search engine don't like to see multiples versions of the same page on a website (that's called "duplicate content")
To avoid this, you can use a robots.txt at the root of the CMS
Robots.txt
User-agent: *
Disallow: admin.php
Disallow: config/*
Disallow: header/*
Disallow: footer/*
Disallow: pntables/*
Disallow: /images/*
Disallow: /includes/*
Disallow: /adlogger/*
Disallow: /themes/*
Disallow: /pnTemp/*
Disallow: /docs/*
Disallow: /javascript/*
Disallow: *.php
Disallow:module-Forum-viewtopic-topic-*-start-0.html
An other tip, "/index.php", "/index.html" and "/" redirect to the same page so you can add this rule in you .htaccess
.htaccess
RewriteRule ^index\.html$ http://postnuke.com [NC,R=301]
RewriteRule ^index\.php$ http://postnuke.com [NC,R=301]
Text formating
In your articles or templates, try to have a structured layout with H1, H2, H3 tags.
Autolink and intern link
The module "autolink" is interesting, because he allows you to create a large amount of intern links with the same source anchor, this will help to increase your rank on the given word
404 error
When you've got an important portal with a large number of pages , it may be possible some of you ranked pages doesn't exist anymore. When search engine bots come to look for this "ghost" pages, you can redirect them to the home of your website, with an "Error 404" header.
.htaccess
ErrorDocument 404 /index.html
Take off unused metas tags
For most of them, search engine bots don't read some meta like "revist-after", so you can take them of your head tags. It will not help you, but you will have a cleaner header.
xxx.html
This article is a translation from this "how to" released on Postnuke-France
Generated on January 31, 2008.
-
What's going on?
(News)
-
know the Core team released RC2 of Postnuke .8 - the Steering Committee's report we are just working on will deal with the details.
2. Jørn Wildt released a first version of his "Content" module:
"Finaly I have finished the first version of my new Content module. With this little goodie you get HTML editing, YouTube video, Google maps and more features out of the box. This module was inspired by Typo3 and the never-finished PostNuke module Publish!" -- elfisk.dk
Content is a module that you can use to create static pages. It supports several predefined layouts (1 column, 2colums + header aso) and you can also add your own templates. In the editor you then can drag and drop content items like texts, images, youTube videos or Google Maps around and place them anywhere you like within the layout.
3. Together with "Content 1.0.0" a new version of Jørn's Mediashare gallery is available. Yet it still needs an installed Topics module to run under .8.
4. pnForum 2.7(.1) is finally released. A test version served the German Postnuke community for months and now he fixed the last bugs and made a public release.
5. Sven Schomaker is about to release Scribite 2.0 - It includes openWYSIWYG v1.4.6c as new editor and new versions of Xinha (v0.94), TinyMCE (v2.1.2), FCKeditor (v2.4.3), a lot of new module plugins and languages.
6. Axel Guckelsberger finished his diploma thesis that discussed the use of model-driven software development (MDSD) for Postnuke and resulted in his "ModuleStudio". Although ModuleStudio is far from complete it is way ahead in terms of modern software development. And if it turns out right MDSD is one of the next big things after object orientation (OO).
7. User ftree started work on a new gallery (pnAlbum) some months back and now published an article about his work. In preparation of the gallery he programmed some basic functions which turned out to be suitable for everyone who wants to program a module. If you want to you can take a look at his work.
8. There's a new pnCommerce team in formation: Rüdiger Hahn, Jim Hatfield, Chris Candreva, Bernd Plagge and some others are long time pnCommerce users and all maintained their own fork of the module. Now they are trying to put all their code together and a new version out for public use.
9. Marco Kundert is still working on his .8 follow-up for Pagesetter called Pagemaster. His first release will be 100% compatible to the latest version of Pagesetter so that you can simply import all you Pagesetter content into Pagemaster. Pagesetter introduced many ideas into Postnuke that have now become part of the core: Postnuke .8 has Workflows system and the idea of Pagesetter's form framework (Guppy) can now be found as Forms API in .8 and the WYSIWYG-Editor is now in Scribite generally available - Pagemaster uses all these features and thus can be much leaner.
10. Robert Gasch is working on a commercial shop module. He allowed me to take a look at it and it looks really great. Robert made his living for the last few years by setting up shop solutions for customers and now uses this experience for his new module.
11. Mateo Tibaquirá released a first version of his port of the standalone Relay AJAX directory management application. Includes drag-n-drop files and folders, a dynamic loading file structure, thumbnail views, multiple users & accounts, batch uploads, shopping-cart/batch downloads.
I am sure I forgot some people and I know there's a lot more going on in Postnuke land. But I'd like to leave some news for further articles.
If you are working on a news-worthy Postnuke project please contact me via personal message
Generated on December 22, 2007.
-
HTML for Module Developers - A Discussion
(News)
-
ideas about good HTML. I haven't seen any layout tables for months. Many module devs even try to put semantics into their work.
No matter there are some things, I'd like to point out and discuss with you.
"Divitis" is the name of a HTML coding style that puts every possible Tag into div-Tags. I personally only use divs for the general positioning of my layout: header, content, left block, right blocks, footer. Anything else doesn't need divs around it. You can position every other tag in any way you can position and style divs.
Some of you use a separate class or ID for every single piece of content. This makes the code seems bloated and hard to maintain. Please use only as few classes as possible.
Some modules have a very great design but it doesn't really adjust to my own themes. Please don't define the style of h-tags, p, ul, ol aso. in terms of color, line-height or font-size and style. I think most webmasters already have a site wide definition for these tags and want all h2-tags look the same all over the site.
Use the CSS inheritence system for a slim style sheet: In .8 everything your module produces is put into a div:
[code][/code]
So if you want to style you module use e.g.:
[code]#pn-maincontent.pn-module-YOUMODULE * h2 {}[/code]
to make every h2 look the same in your module.
Please don't use h1 - h1 is the site's name.
These are no official guidelines - only my personal opinion which I wanted to discuss, in order to develop a list of tips for
Generated on November 21, 2007.
-
pnMeeting 2007: Mark West's Keynote
(News)
-
RC1 - RC2 is supposed to follow within the next few weeks. We did a redesign of the NOC and appointed a new Steering Committee.
Postnuke is now in the process of a rebranding. A new name has been chosen by the Postnuke Foundation and as soon as all legal issues are solved the new name will be presented to the community.
Mark's next topic were the central features in Postnuke .8 which are also the main topic of this years meeting. The German Postnuke Foundation tried to assemble a panel that explains all the new features to the broad community.
Believe it or not - .9 is already in the planning. There's already a branch in the SVN and we decided to make it PHP5 only. The Object Library will become core. The language system will get an overhaul - other systems will be evaluated. .9 will deliver UTF-8 and it should be possible to really have multilingual content.
Mark West pointed out the power of the Postnuke permission system - but also the problems with its complexity. Frank Schummertz volunteered to work out the next generation permission system.
If you want to help, Mark asks you to work on the wiki, do some testing, report bugs, submit patches or develop your own Postnuke extensions.
In the following discussion, Frank Schummertz reported the experience some users made with the UTF-8 conversion of Postnuke.
Generated on September 8, 2007.
-
Jørn Wildt Proposes New Content Module
(News)
-
For the discussion see: http://community.postnuke.com/module-Forum-viewtopic-topic-53152-start-0.htm
Here is what Jørn has in mind:
[quote=Jørn Wildt]Dear PostNuke community
One of the things that always comes up when comparing PostNuke to other Content Management Systems is its lack of real content management. All we have is some old News, Pages and FAQ (and some more) management modules - nothing really fancy. You can add fancy modules like PagEd, Pagesetter, pnWiki and others but somehow they all lack, well, something - something which I find rather difficult to pinpoint. They are either too complex, too simple, impossible to extend and do not integrate well with each other.
I have been doing some thinking about this issue and would like to present some ideas for a new Content system in PostNuke. A framework that newbies can work with right out of the box, an extensible framework, and a framework with well integrated components that are aware of each other. My ideas are by no means rocket science and most, if not all, have been implemented else where - just not in PostNuke.
If you ask me then PostNuke is going to dwindle away unless something serious is done to add a good content framework. Here is my suggestion.
[b]Content Types[/b]
The core component is the "Content Type". For those of you that knows Pagesetter this is exactly the same as Pagesetter's Publication Type. This will be a separate module that takes care of defining content types, editing and displaying content items - but without user navigation! Think of an Article, with it's title, lead-in text, main text and image, as a content item of the type "Article". The type specifies the fields that are available for a single instance of the type - a single content item - a single Article.
Content Types are management by the site administrator (but can also be created by other modules). The admin can choose from an extensible (through plugins) list of field types. Here are some examples (mostly copied from Pagesetter):
- String (one line text), Text (non-HTML), HTML (using Scribite!)
- Number, checkbox, date
- Media files (using Mediashare)
- File uploads
- URL, email
- Computer code (text displayed with line numbers in mono spaced font)
- Category (using PN .8 categories), both single and multiple select.
Now you can create an article as a title (string), lead-in (text), main text (html) - and many other types of content. But there is still no navigation - neither on the admin side nor the user side. All you have is a Content module that allows you to create content types, content items and then display these - assuming you now the URLs. Navigation is delegated to other modules - more on that later on.
The core framework does also handle input form generation: it will auto-generate input forms (using pnForms in PN .8). These can then be copied to another location and re-designed using the standard Smarty templating system.
The core content module handles a few other things: for instance revision history (who changed what and when).
[b]Content Management[/b]
So far there's nothing new compared to Pagesetter. So lets take a look at the admin side of navigation - how to store and locate your content items. I suggest that all content items are stored in a folder structure identically to your standard disk drive. On the harddisk you manage folders and store files in them. In the CMS you also manage folders - but now you store content items in them - indifferently of the content type.
The first challenge is how to handle user contributed content since normal users don't have access to the administrative folder system. Now remember that the core Content system allows anyone (with the right permissions) to add content, but where should it be stored? I suggest a standard "incoming" folder is created for this purpose (much like your mail system). The editors can then keep an eye on this folder and move new content to the right folders.
Actually there should be one "incoming" folder for each content type and it should be possible to specify which it is. In addition to this the system should have a flexible workflow system a'la Pagesetter (now already in the .8 core). So that different editors and authors and admins can be notified when new submissions arrive.
[b]Content Structure[/b]
But there's still not much difference from Pagesetter. So what's the point? Well, enter CoType - this little module, which I'm rather proud of, has some nice layout features that I would like to copy. First of all you have Boxes - elements that can be floated left/right/top/bottom relative to the current content. In CoType you have boxes for media items, program examples, and general text. I would like to extend this so that you can put any content item inside a box. So you can display and Article and put one or more Media type items in boxes as illustrations.
Another thing to copy from CoType is the use of nested content - sections in sections. This concept should be extended, just like the boxes, with the ability nest any content item inside another item. The only problem here is how nested content should be displayed? In CoType you always have sections in sections (in a document) - and there's a well defined standard way to display this. But what happens if you sudden nest a Music album inside a FAQ inside a Media item ... and then box it? Well, that will have to be solved as we go.
I suggest the Content Type configuration lets the admin specify which types of content you can nest inside another.
The system could also enable boxing of other modules contents - assuming some kind of API/interface the external modules have to implement (just like PostNuke's search API).
[b]Content Layout[/b]
The proposed layout scheme is so far rather fixed - something like this:
- Top content item title is displayed inside ... tags.
- Nested content title is displayed in ... (and so on for further nesting).
- All nested content is displayed on one page.
- A small table-of-content is displayed at the top (linking to sub-content anchors).
- Each (nested) content item is displayed with a standard auto-generated template.
- Boxes floated to the left/right are displayed in 50% width (like CoType)
- Top/bottom boxes are displayed in 100% width (like CoType)
This will allow newbies to quick and easy created new content without having to also design their own templates. Assuming of course that the system comes with a suitable default set of content items.
Experienced users can edit and change the auto-generated templates. But these will be recreated everytime the administrator changes the Content Type configuration. So experienced users must copy the templates to another location and then edit them to fit their own needs.
[b]Navigation[/b]
So far I have ignored the concept of navigation between different content items completely. This is because it can be done in so many different ways - and this is mostly where the different types of PostNuke modules distinguish themselves. A media gallery has a completely different navigation paradigme than a News list, a Wiki and a Weblink collection.
So I propose to delegate navigation to other modules. This has already been done with success with a calendar (pgcalendar) and a news archive (pgarchive) for Pagesetter. These two modules takes a specific Content Type and displays it's items a calendar view and a monthly listing view. This combination is extremely strong - you can add all the fields you want on a Calendar item - and still display it using the standard calendar view. Throw in the nested content and the boxing ability and you get an extremely flexible and yet simple Content Management System.
[b]List Navigation[/b]
The basic navigation is simple a pageable list of items ordered by some criteria. You create different lists and then refer these in the URL. For each list you configure which content type(s) to include, the default sorting order, the display template to use for each item - probably more. Including more than one content type gives some problem with respect to sorting.
This implements the typical News list on the frontpage.
[b]Catalog Navigation (collections)[/b]
This is the typical Weblink and File Up/Download navigation through a collection. The hierarchy is mirrored directly from the content folders.
[b]Calendar Navigation[/b]
Displays content items by date in a calendar (see for instance [url=http://www.fgc.dk/index.php?module=pgcalendar&tid=40]http://www.fgc.dk/index.php?module=pgcalendar&tid=40[/url]). You need to specify which date fields to use as start/end date of the entries.
[b]Archive Navigation[/b]
Displays content in lists organized by month (see for instance [url=http://www.fjeldgruppen.dk/arkiv.html]http://www.fjeldgruppen.dk/arkiv.html[/url]).
[b]Menu Navigation[/b]
On thing that frustrates me with PostNuke is the horrible way you edit menus through the Block interface. No - lets allocate a complete module for menu editing and then just select which menu to display in which box (I believe Content Express does this). With the integrated content framework you can now let the editor select content items from dropdown lists or similar - and avoid having to copy/paste raw URLs into the menu editor (this has always been a intellectual bottleneck for the people I have created websites for).
I would also like to see editing of the menu directly in the front-end. The editor should always have an "add current page to menu" icon in the menu. He should also be able to drag and drop menu items without having to jump to the admin interface.
[b]Frontpage Setup[/b]
This is just another idea of what you can do - not necessarily something to actually implement. But the frontpage need not necessarily be a list of latest items as on most portal websites. It might also be a fixed setup based on a grid where you can assign different content items to different locations. For instance Articles to the left, Banners to the right, and a few images at the bottom.
[b]Where to go now?[/b]
Now who's going to implement all this? Good question considering the speed of the core development. I would love to be on the team (and will be) but my time is restricted (especially now that I got my first kid) so I work rather slowly.
Any volunteers?
There's also the question of organizing the code - we cannot have much more than one or maybe two developers on the core Content module. But as soon as that is ready we can take more people in - one for each kind of navigational scheme. Other people can then work on the default content types.
We also need to consider how a system like this fits into the PostNuke distribution. Does it have it's own release cycle? Is it integrated with the core?
Enjoy 8-)
/Jørn[/quote]
Generated on September 4, 2007.
-
Last Call: pnMeeting 2007
(News)
-
years meeting will not only be in a different location in a different city it will also be slightly different in its organization:
The first day will feature some prepared presentations about several topics.
The second day will be more like an unconference. We are going to collect ideas for presentations and then find the right person to give an introduction then we discuss the topic with all participants. We have all the experts there and we are all experts for something so we can all add our know-how to every workshop.
If you want to attend the meeting we can help you find a hotel and your way to the location. Please register so that we can better estimate the number of attendants. More information can be found at the pnMeeting Wiki.
Links
Registration
pnMeeting Wiki
Generated on August 18, 2007.