PostNuke

Flexible Content Management System

News

Call for Gamer Interest - Users and Devs

If you are a gamer with a Postnuke site or your are module programmer looking for a new challenger, you should get in touch with Topiatic.

Links:


Did you know: Implement your own Admin-Theme

I always a very simple theme for the backend. I don't need any blocks there at all. And I don't even need a header or and other of this fancy corporate design stuff. I want space for my work. Thus the admin.htm is very short:

[code] <?xml version="1.0" encoding="iso-8859-15"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de"> <head> </head> <body> [ Home | Administration | Statistics ] </body> </html> [/code]

That's it.

  1. Save this as admin.htm to /themes/yourTheme/templates/modules
  2. Add a new Theme Template: Administration/Xanthia/Edit Theme/Theme Template/New Module Template
    Name: admin.htm
    You have to enter something to the text area. Just one letter is suffcient. It only can't be empty. Save that.
  3. Add a new Theme Zone: Administration/Xanthia/Edit Theme/Theme Zone/Add New Zone
    Name: Admin
    Zone Label: *admin
    Save that.
  4. Now configure the new zone and choose admin.htm from the drop-down
  5. Activate the new zone.

Done - Your new lean backend layout will always appear when functions are called via admin.php (old-style) or with type=admin within the URL.

We will have a small problem with pagesetter. As it doesn't have a clearly defined backend there's no type=admin in the URL. I always use a small "Pagesetter fix" in my master.htm:

[code] <body > [ Frontpage | Administration |Statistics ] </body> normal body [/code]

I hope this article helps you implement a better backend with much space.


Defacements through Postguestbook

A user reported that his frontpage had been replaced with Islamistic propaganda and that his deactivated and forgotten Postguestbook sent some 25.000 mails with similar content.

Postguestbook has not been updated since 2002 and there is currently no maintainer for the project. The pnTeam suggests to uninstall Postguestbook and to remove it from the webspace. It's not sufficient to only deactive the module. It must be removed from the webspace

Alternatives
pnBook is an up-to-date guestbook module which can completely be customized via pnRender templates. And Philipp Niethammer is its active maintainer.

ElementBB moves houses

"Element BB is a forum for postnuke heavily inspired by Vanilla forum.

The goals of this project was to create a very simple, very easy to use, easy to impliment, web standards compliant, accessible and usable forum. I felt that Vanilla meets and often exceeds these requirements which is why I chose it as the model to develop from. Please note: this application was built from scratch, it has no relation to Vanilla aside from its appearance and some of its available features." -- invalidresponse.com

ElementBB will be released under the GPL at version 1.0 has now been moved to the NOC. So download the module, test it, create translations and give feedback in the project trackers.

Links


Spam Protection

Already some months ago Mark West tested the Akismet spam protection suite. It was included into the CVS-version of EZComments and worked quite nicely. But the spam detector is a feature that many modules need. So it has now become a module of its own. It's not yet ready, but I hope it will be soon available for inclusion into guestbooks, comments, forums aso.

A module that Mark West released yesterday is "Bad Behaviour". "Bad Behavior is a PHP-based solution for blocking link spam and the robots which deliver it.

Bad Behavior complements other link spam solutions by acting as a gatekeeper, preventing spammers from ever delivering their junk, and in many cases, from ever reading your site in the first place. This keeps your site’s load down, makes your site logs cleaner, and can help prevent denial of service conditions caused by spammers." -- Bad Behaviour Homepage

As you include it into the pnAPI.php at earliest possible position, it stops Postnuke loading its higher functions when it detects a spam bot access. This means that all detected access cause only little traffic.

IMHO a combination of Akismet and Bad Behaviour will reduce the amout of spam on our sites without building barriers also for normal users. But we will have to live with spam, if we want to keep up our sites.

Links


Google Summer of Code 2007: This Year We Want to be Part of the Party!

Program Schedule and Deadline Dates

  1. March 5: Mentoring organizations can begin submitting applications to Google
  2. March 12: Mentoring organization application deadline
  3. March 13: Google program administrators review organization applications
  4. March 14: List of accepted mentoring organizations published on code.google.com; student application period opens
  5. March 23: Student application deadline
  6. Interim Period: Mentoring organizations review and rank student proposals; where necessary, mentoring organizations may request further proposal detail from the student applicant
  7. April 2: List of accepted student applications published on code.google.com
  8. Interim Period: Students learn more about/integrate with their project communities
  9. May 28: Students begin coding for their Google Summer of Code projects; Google begins issuing initial student payments
  10. Interim Period: Mentors give students a helping hand and guidance on their projects
  11. July 9: Students upload code to the Google Summer of Code project repository; mentors begin mid-term evaluations
  12. July 16: Mid-term evaluation deadline; Google begins issuing mid-term student payments
  13. August 20: Students upload code to the Google Summer of Code project repository; mentors begin final evaluations; students begin final program evaluations
  14. August 31: Final evaluation deadline; Google begins issuing student and mentoring organization payments

This schedule is subject to change and taken directly from Google. For the latest schedule please see Google SOC 2007 Wiki

PN Project Goals

The general goals of Google are recognized and extended with our own goals. In short, we want to improve the innovation within the project by offering students the opportunity to propose PostNuke related topics. We aim to offer students an inspiring environment to do research, access to field experts, the ability to create proof-of-concepts and the opportunity to create working functional tools that can be used with PostNuke.

There is a limited list of program goals defined below. Please keep in mind this is an initial list of subjects we would like to shoot for and the final projects are open for discussion. It's important to understand we need guidelines for project proposal evaluation otherwise we'll end up with all nice initiatives, but no choice between the individual project.

The following are a few examples of the types of projects we'd like to see during the SOC 2007. Here are a few suggested project examples:

  1. Version management of content. Add features to PN, either via hooks or extensions to DBUtil, to allow control of versions of content items. Additionally add workflow processes via the existing workflow module
  2. Translation management. Currently a translation of a content item is an entirely different and un-related item. A project to introduce a method of translating content while keeping the the relationship to the original item (and hence related content e.g. comments, ratings etc.).
  3. Loudblog rewrite based on PostNuke's API
  4. A second project could be the implementation of a better language system + the import of the old system.
  5. OpenID Implementation
  6. Universally implemented content versioning such that it's possible to revert back to old versions of specific content items. DBUtil contains a feature called object-logging which basically gives you the ability to log all changes to objects as they are altered (and even revert back to old versions of an obejct), but a proper GUI with some nice administrative features would be nice.
  7. Integration of the categories system with the nested-set algorithm. The current implementation is path-based which works and carries with it some proper semantic information, but for performance reasons integrating the nested-set algorithm would probably be a good idea.
  8. Implementation of additional features to the category system on the GUI side. This could be advanced AJAX controls, a better user-side editing system, etc.
  9. Integration with Lucene and other search engines ideally through a generic search-engine interface which can then be extended to other backend systems.
  10. A proper universal web services interface for PN.
  11. A proper test suite including a performance testing framework.
  12. A proper data import/export system with the ability to generate multiple data formats (CSV, XML, etc.) including a proper control GUI.

Project Organization

There will be two program guides (admins) that will provide all mentors and students with help and guidance throughout the project. The structure will be flat so there won't be a lot of red tape in the process. The mentors are expected to work closely with each student to accomplish each project's goal and objectives.

For each accepted project into the SOC program there will at least one mentor and one student. Along with the one-to-one support the student will have access to the developers list so they have access to the entire team to bounce ideas off of in the process.

Overview of Mentor Selection Process

The general "criteria" for mentors are:

  • Mentor is familiar with the PostNuke project and API.
  • Mentor is expected to work well with others.
  • Mentor should have knowledge about the topic he/she is going to mentor.
  • The mentor is responsible for working directly with the student.

Note, before volunteering you should be aware there is a time commitment. We estimate it will take at the minimum 3 to 5 hours per week of your time over a 3 month period. Mentors should also expect to encounter cultural and time zone differences making this a challenging experience on many different levels especially since this will be a virtual mentor/student experience.

Expectations

Commitment to the goals/objectives of your project, your time, mutual respect, and open communication.

Remember when you were a student -- you were there to learn. This is the same thing -- students are here to learn and may not be experienced in working on a team, and will less likely have experience working with someone virtually so as a mentor you're expected to introduce the student to the protocals of this environment.

Students, remember, no question is stupid, don't expect to know everything, and if in doubt ask! Communication is key in a virtual environment and never take anything for granted especially in text based communication since things can often be mis-read or interpreted.

If you are chosen a mentor then what do you get? You get to contribute to a great project, experience working on a virtual team with an international team of great/inspiring people.

Team/Mentor/Student Communications

This is most likely the most important part of the process -- communication is key especially in a virtual environment. And communicating/sharing will be important to the success of each project. So students are expected to put together a weekly report -- it doesn't have to be anything fancy -- just an email updating your mentor about your progress and any problems you working on or having. Mentors are expected to take the lead in solving any problems that might arise with timing, language or cultural barriers. Note, the default language for the program is English so all mentors and students are expected to be able to communicate clearly and effectively in English. When disagreements or conflicts arise within a project team members are encouraged to resolve disputes amongst themselves. If they can't resolve it between themselves then you can ask a program mgr to get involved to mediate the dispute.

Project Tools & Support

You will have access to the following software tools:

  • The PostNuke NOC (Network Operating Center) where all project related resources will be housed
  • Google Project Page (including wiki)
  • Mentor Application from Google
  • Developers Mailing List

Student Info

Google provides some time to allow the student to familiarize themselves with the project and tasks. During this time the mentor can prepare the stucture and any documents that will help the student in the goals and objectives of the project.

Some examples include:

  • Action/Tasks planning so the student will have a clear idea of milstones for the project.
  • Provide the student with your communication expectations - i.e., how can the student communicate with you, skype, instant messenger, email etc.
  • Review time committments and goals/objectives for the project.
  • Model good behavior -- take the lead when you see the student needs the extra encouragement and guidance.

Did you know: No more hacking needed

I needed a specific information from the pagesetter database, but I was not able to find an API function that would return that data. So I had to reactivate my PHP knowledge and write my own API function.

I thought it had to attach it to the pnuserapi.php to make it work. But is also possible to create a file with the name of the function in a folder with the name of the API. In this case it was pagesetter/pnuserapi/getListItemByID.php

Is this cool? I hope they find a place for such additions in the theme folder for .8, so that I do not have to store my customizations inside some module folder that will be deleted completely on every update.


Module Developers: Moving towards .8

Of course all former core content modules, now know as "Value_Addons", work with .8 and so do most older modules. But only few already use the new features like DBUtil or the categories manager. The Quotes module of the Value_Addons is an example for all major new techniques being used. Most of all the use of the categories can be studied there.

And there are also the first 3rd party developers who started to work with .8 code:

  1. Multihook - The SVN version of Frank Schummertz's Multihook will be 5.0 and is already .8 only. (NOC: Multihook)
  2. pnUpper - Axel Guckelsberger made the upload hook-module far more flexible now and he completely rewrote it for .8 (NOC: pnUpper)
  3. Publish! - Is one of the first modules solely written for .8. There is no release yet, but the SVN version basically works with MS3. Patrick Cornelissen plans to integrate a revision system before the first release. (NOC: Publish!)
  4. If you are also already programming for .8 I would love to read something about it in the comments here or in your own articles.


Introducing: Scribite!

"Scribite!" is Latin and means "write!" - and this imperative is also the motto of the project. Sven Schomaker (hilope) was already working on an module that made the Xinha editor available for PostNuke modules.

"Scribite!" now includes Xinha and TinyMCE and can relatively easy be expanded with more Editors so you can test them all and choose the one that best fits your editors needs.

But can not only use the WYSIWYG-editor in most common modules there is also a nice administration that makes it easy to use all the available plugins, to change the editor's language and most of all choose between several functional layouts. Most editor donot need to be able to change the color or the font of their texts. In this case you can use the reduced feature layout and offer only the basic functions.

Sven Schomaker received the 500€ last year before Christmas right in time for the birth of his first child. And yet it still is one of the most active projects in the NOC.

Links:


Flexible Frontpages with Pagesetter

The aim is to have 4 positions on top of a page where we can freely place selected articles. The rest of the page should be just a chronological list.

  1. Pagesetter 6.3 comes with 2 publication types preinstalled. One of which is the PN-News publication type, that we will use for our little project. You should begin by adding about a dozen testing articles to the database. lipsum.com might help to find the right words ;-)
  2. We need another publication type that we use to position the articles. So we start creating one and call it "frontpage". It should have for data fields called "article1", "article2", "article3", "article4". All of them should be of the type "Publication" - click on the ..-button next to the type flied and select PN-News as reference. Finish the creation process by generating the full-template.
  3. Create a new publication of the "Frontpage" type. Select a different article for every of the 4 fields and submit (and approve) it.
  4. Go to the site setting and set pagesetter as frontpage module. Start Function Type is "user", Start Function is "viewpub" and the arguments shoud be tid=3,pid=1 - This must be adjusted if the ID of the frontpage publication type is not 3.
  5. Go to your frontpage (index.php) it should now display the headlines of the 4 selected articles.
  6. You can now edit the frontpage-full.htm to fit your needs - you can use all the elements that you have in a normal Pagesetter template. You can show not only the headline but also the teaser, the image or even the full article. And you can use custom HTML to position the articles next to each other.
  7. If you now want to display the rest of your articles chronologically underneath our little frontpage you can do this with an inline list. We need another template for this: PN-News-inlineList.html - This template can be editited like the PN-News-list.html template with all the same options.
  8. When you have a basic layout for the inline list we have to include the call for the list inside the frontpage template, which is one API call: [code][/code] This will display the latest 7 articles - you can adjust that figure to your needs.
  9. But stop! There are articles in the frontpage-selection that are also in the chronological list. To avoid this effect we have to include a filter that looks for double PIDs. Create filter and place the call before the inline list call: [code][/code]And you have to include the filter into the list call: [code][/code]
  10. Finished! You can now always edit the frontpage publication to your needs and select the 4 most interesting articles for your readers. Of course you can add more articles to this system aso. This article is only meant to inspire your own ideas.
  11. More cool stuff for Pagesetter can be found at pagesetter.net.

First Page Previous Page Page 11 / 277 (101 - 110 of 2763 Total) Next Page Last Page