[LWN Logo]
[Timeline]
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

============================