From: Ken Pooley <kpooley@sewanee.edu> To: "'midgard@greywolves.org'" <midgard@greywolves.org>, Subject: MWS for 31st of Aug , 2000 (#45) Date: Thu, 31 Aug 2000 11:35:49 -0500 Greetings! This almost came out by the traditional Wednesday deadline but there were enough important things happening in different parts of the Midgard world to hold up publication. Below you will find information on the release of 1.4b5, a short status update for Midgard 2.0 and the first in a series of Newbie notes aimed at new Midgard users. ============================ ---------------------------- Current versions: Stable: 1.2.5 'Mad King' Devel.: 1.4beta.5 Oracle: 1.2.5 Oracle 8i ---------------------------- ============================ 1.4b5 is available! As of last Tuesday there were tarballs available for 1.4b5, the official announcement came from Alexander Bokovoy last night. This release does not include the new administrative interface, Asgard, but there will be one more beta release before the final candidate which is still slated for October 1st. >From Alexander Bokovoy's announcement: Midgard 1.4 beta 5a fixes various problems with 'named' functions (i.e. functions like mgd_get_something_by_name) and object management as well as installation issues in beta 4. Below is the list of notable changes, for full description please look into documentation inside packages: - Authentication now provided by Midgard itself, without help of Apache's configuration options. It means that you have to remove [<<tt>>]<Files>[<</tt>>] section for [<<tt>>]midgard-root.php3[<</tt>>] file. - Midgard now can be used as a source of authentication information for regular Apache sites using standard Apache directives. - FileTemplates were incorporated into Midgard in order to allow creation of portable Midgard applications on platforms where databases are unavailable. - Database structure has changed: now all text fields can contain up to 2^32 bytes instead of 2^16 in 1.4 beta 4 and previous versions. You need to export your data with mysqldump, re-create tables (or update their fields), and put data again in order to use this feature. There is nothing to change at the Application level. - Midgard now uses GNOME [<<b>>]glib[<</b>>] library for safe and reliable resource management, as well as James Clark's [<<b>>]expat[<</b>>] XML parser for working with FileTemplates. It is important to keep in mind that beta software is software in development, it isn't really meant for those new to Midgard. 1.2.5 is the current stable release and sites started with 1.2 will be have an upgrade path to 1.4. Having said that, the Midgard dev team welcomes any input from those who are working with development releases. The download can be found at: http://www.midgard-project.org/article/8325.html ---------------------------- Midgard 2.0 is proceeding. Work on Midgard 2.0 is coming along. The next few weeks will see the release of a white paper which outlines the strategies behind the architectural changes in Midgard 2. The white paper will also create a functional context for version 2 in the development history of Midgard. Within the same time frame tests will begin which use an LDAP (Lightweight Directory Access Protocol) backend for Midgard data storage. These tests are aimed at looking at a number of different storage possibilities for the next generation of Midgard implementations. ---------------------------- Newbie Notes - Dynamic Content, letting Midgard know where it is going. This is the first in a weekly series of articles for newer Midgard users who are trying to figure out how to get the software to do what they think it ought to. Almost everybody who is using Midgard was a newbie at some point, some longer than others. Even with the best documentation there are questions better answered directly. One of the best features of Midgard is the ability to draw information from the structure database and move though the information based on that structure. To move through the database, whether from article to article or topic to topic, the server needs to be able to tell itself where it will go and then translate that into a completable directive to be followed. While the topic and article numbers all are created in the topic or content section of the administrative site, the mechanism by which the links are made is defined in the host section. The first part of this equation is easy, when topics or articles are listed using mgd_list_topic, or mgd_get_article one of the fields which is returned is the topic id number, this information can then, in turn be used to format the URL into the topic or article. Like this: <A HREF="/topic/&(topic.id);.html">&(topic.name);</A> This creates a link which is referenced specifically to the topic or article which will be the destination. There are two keys to making the move into the next page. First the origination page must be defined as "ACTIVE" in the host record. The active designation allows Midgard to transfer the end of the URL onto the next page using a variable called $argv. $argv is an array which takes the URL apart broken by the "/" and stripping the ".html" if it is there. Generally $argv[0] holds the numerical reference to the topic or article number it is aimed at in Midgard. Technically though, $argv will hold just whatever happens to be after the active page. In the example http://www.wicked/one/two/3.html , if the root page were active, $argv[0] would be 'one', $argv[1] would be 'two', and $argv[2] would be '3'. If http://www.wicked.com/one was the active page, $argv[0] would be 'two' and $argv[1] would be '3'. On the destination page $argv[0] can be transferred to another variable or used directly in a get statement : $article = mgd_get_article($argv[0]); another way to do this, which is used on the Midgard Admin page, is to transfer the value of $argv in a code-init page element and then use that variable. Code-init is one of several elements which Midgard can keep for special use and is executed before the rest of the page. Here is a code-init from one of my sites, in this case the $id value will get the article or topic desired. <?if ($argc == 1) $id = $argv[0]; if ($id) $article = mgd_get_article($id); if ($id) $topic = mgd_get_topic($id); if ($article) $author = mgd_get_person($article->author);?> It actually all starts to make sense and is more simple than it seems at first. The mistakes that most people make is to forget to set the origination page as "active" and to make sure that the origination link includes a reference to the destination article. ---------------------------- ============================ ============================ About Midgard Midgard is a freely-available Web application development and publishing platform based on the popular PHP scripting language. It is an Open Source development project, giving you the freedom to create your solutions in an open environment. Midgard is the tool for creating, modifying and maintaining dynamic database-enabled web services. - http://www.midgard-project.org ---------------------------- About MWS The Midgard Weekly Summary is a newsletter for the Midgard user and developer community. The MWS is currently being distributed in following mediums: -The Midgard Project's Web site - http://www.midgard-project.org -Linux Weekly News - http://www.lwn.net -Linux Today - http://www.linuxtoday.com -Linux Developer's Network - http://linuxdev.net -LinuxProgramming - http://www.linuxprogramming.com -Midgard mailing list If you would like to release it elsewhere, please contact Henri Bergius (Henri.Bergius@iki.fi). Previous issues of Midgard Weekly Summary can be found archived at the Midgard web site. - http://www.midgard-project.org/topic/169.html ============================