richter     2002/11/14 22:17:55

  Modified:    eg/web   Tag: Embperl2c config.pl messages.pl notfound.htm
               eg/web/db Tag: Embperl2c add.epl addsel.epl content.epl
                        data.epd epwebapp.pl show.epl
               eg/webutil Tag: Embperl2c db.schema
               test/conf Tag: Embperl2c httpd.conf.src
  Log:
  ep web
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.23  +1 -0      embperl/eg/web/config.pl
  
  Index: config.pl
  ===================================================================
  RCS file: /home/cvs/embperl/eg/web/config.pl,v
  retrieving revision 1.1.2.22
  retrieving revision 1.1.2.23
  diff -u -r1.1.2.22 -r1.1.2.23
  --- config.pl 23 Oct 2002 12:29:11 -0000      1.1.2.22
  +++ config.pl 15 Nov 2002 06:17:45 -0000      1.1.2.23
  @@ -198,6 +198,7 @@
               { menu => 'Enter info to add about Embperl',    uri => 'db/add.epl' },
               { menu => 'Show info added about Embperl',      uri => 'db/show.epl'},
               { menu => 'Infos about Embperl',                uri => 'db/data.epd' },
  +            { menu => 'Infos about Embperl',                uri => 'db/list.epl' },
               ],
           },
           ) ;
  
  
  
  1.1.2.12  +50 -3     embperl/eg/web/messages.pl
  
  Index: messages.pl
  ===================================================================
  RCS file: /home/cvs/embperl/eg/web/messages.pl,v
  retrieving revision 1.1.2.11
  retrieving revision 1.1.2.12
  diff -u -r1.1.2.11 -r1.1.2.12
  --- messages.pl       25 Oct 2002 13:21:10 -0000      1.1.2.11
  +++ messages.pl       15 Nov 2002 06:17:45 -0000      1.1.2.12
  @@ -51,7 +51,12 @@
           'login'     => 'Anmelden',
           'logout'    => 'Abmelden',
           'newuser'   => 'Neuen Benutzer-Account einrichten',
  -        'newpassword'   => 'Neues Kennwort',
  +        'newpassword'  => 'Neues Kennwort',
  +     'error'        => 'Fehler',
  +     'warning'      => 'Warnung',
  +     'error_reason' => 'Grund',
  +
  +     # Mail Handling
           'mail_greeting' => 'Hallo!',
        'mail_account_request' => 'Sie oder jemand anderes haben ein Benutzer-Konto 
auf der Embperl Website angefordert.',
        'mail_note1' => 'Ihr Kontoname ist Ihre E-Mail-Adresse, d.h. sie sollten auf 
der Embperl-Webseite',
  @@ -63,8 +68,16 @@
           'mail_pw' => 'Sie oder jemand anders hat ein neues Pa�wort f�r Ihr 
Benutzerkonto auf der Embperl Webseite beantragt.',
        'mail_subj_newuser' => 'Ihr Benutzerkonto auf der Embperl Webseite',
        'mail_subj_newpw' => 'Ihr neues Pa�wort auf der Embperl Webseite',
  +
  +     # Errors
  +
  +
  +     # Warnings
  +
  +
  +     # Success
           },
  -    'en' =>
  +     'en' =>
           {
           'addsel1' => 'Click on the category for wich you want to add a new item:',
           'addsel2' => 'or add new category. Please enter the description in as much 
languages as possible.',
  @@ -115,7 +128,12 @@
           'login'     => 'Login',
           'logout'    => 'Logout',
           'newuser'   => 'Create new account',
  -        'newpassword'   => 'New password',
  +        'newpassword'  => 'New password',
  +     'error'        => 'Error',
  +     'warning'      => 'Warning',
  +     'error_reason' => 'Reason',
  +
  +     # Mail Handling
           'mail_greeting' => 'Hi!',
        'mail_account_request' => 'You or someone else requested a user account for 
the Embperl website.',
        'mail_note1' => 'Your account name is your e-mail address, that means you 
should enter',
  @@ -127,6 +145,35 @@
           'mail_pw' => 'You or possible someone else requested a new password for 
your account on the Embperl Website',
        'mail_subj_newuser' => 'Your Embperl Website Account',
        'mail_subj_newpw' => 'Your new Embperl Website password',
  +
  +     # Errors
  +     'err_email_needed' => "You haven't entered an email address. This is mandatory 
for the requested action.",
  +     'err_access_denied' => 'Access Denied. Either user name (e-mail address) or 
password were wrong.',
  +     'err_user_exists' => 'User already exists. Perhaps you want a new password 
sent to this address?',
  +     'err_user_not_exists' => "User doesn't exists. Maybe there's a typo in the 
address or you registered with a different address?",
  +     'err_user_mail' => 'Could not sent mail to user.',
  +     'err_pw_mail' => 'Could not sent mail with password to user.',
  +     'err_db' => 'Database error',
  +     'err_update_db' => 'Database error while updating',
  +     'err_update_lang_db' => 'Database error while updating languages',
  +     'err_cannot_update_no_id' => 'Update failed: Permission denied',
  +     'err_cannot_update_maybe_wrong_user' => 'Update failed: Permission denied',
  +     'err_cannot_delete_no_id' => 'Deletion failed: Permission denied',
  +     'err_cannot_delete_maybe_wrong_user_or_no_such_item' => 'Deletion failed: 
Permission denied',
  +     'err_cannot_delete_db_error' => 'Deletion failed: Database error',
  +     'err_item_not_found_or_access_denied' => 'Item not found or access denied',
  +
  +     # Warnings
  +     'warn_url_removed_white_space' => 'Removed whitespaces from URL.',
  +     'warn_url_added_http' => 'Added "http://"; to the incomplete URL.',
  +
  +     # Success
  +     'suc_login' => 'Successfully logged in',
  +     'suc_logout' => 'Successfully logged out',
  +     'suc_password_sent' => 'Successfully sent password to given e-mail address',
  +     'suc_item_deleted' => 'Item successfully deleted',
  +     'suc_item_updated' => 'Item successfully updated',
  +     'suc_item_created' => 'Item successfully created',
           },
       ) ;
   
  
  
  
  1.1.2.2   +1 -1      embperl/eg/web/notfound.htm
  
  Index: notfound.htm
  ===================================================================
  RCS file: /home/cvs/embperl/eg/web/notfound.htm,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- notfound.htm      12 Feb 2002 07:20:35 -0000      1.1.2.1
  +++ notfound.htm      15 Nov 2002 06:17:45 -0000      1.1.2.2
  @@ -1 +1 @@
  -The document you  requested wasn't found
  \ No newline at end of file
  +The document you requested wasn't found.
  \ No newline at end of file
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.11  +55 -19    embperl/eg/web/db/add.epl
  
  Index: add.epl
  ===================================================================
  RCS file: /home/cvs/embperl/eg/web/db/add.epl,v
  retrieving revision 1.1.2.10
  retrieving revision 1.1.2.11
  diff -u -r1.1.2.10 -r1.1.2.11
  --- add.epl   25 Oct 2002 13:26:30 -0000      1.1.2.10
  +++ add.epl   15 Nov 2002 06:17:45 -0000      1.1.2.11
  @@ -11,14 +11,15 @@
   </table>
   
   
  +[$ if !$r->{error} $]
   
   <form action="[+ $r -> {action_prefix}?($r->{action_prefix} . dirname($r-> param -> 
uri) .'/'):'' +]show.epl" method="POST">
   
   [= add2a =]<br>
   [= add2b =]<br><br>
  -[$if $r -> {category_set}{add_info}$]
  +[$ if $r -> {category_set}{add_info}$]
   <B>[+ $r -> {category_set}{add_info} +]</b><br><br>
  -[$endif$]
  +[$ endif $]
   
   
   [$if $r -> {user_admin} $]
  @@ -32,7 +33,6 @@
   </table>
   [$endif$]
   
  -
   <table width="100%">
       <tr bgcolor="#fefcad"><font size="3">
           [- $rec = $r -> {language_set}[$row] -]
  @@ -41,17 +41,22 @@
       <tr>
           <td>
               <table>
  -                [$foreach $type (qw(heading url description keywords)) $]
  -                    [$ if $txt = $r -> {category_set}{$type . '_text'} $]
  +             [-
  +              $ct = $r->{category_texts}; 
  +              $cy = $r->{category_types}; 
  +              #$cp = $r->{category_position};
  +             -]
  +                [$ foreach $type (@{$r->{category_fields}}) $]
  +                    [$ if $txt = $ct->{$type . '_text'} $]
                           <tr>
  -                            [$if $type ne 'description' $]
  -                                <td class="cText" valign="top">[+ $txt 
+]:&nbsp;</td><td class="cInput"><input type="text" name="[+ $type +]_[+ $rec -> {id} 
+]" size=80></td>
  -                            [$else$]
  -                                <td class="cText" valign="top">[+ $txt +]:</td><td 
class="cInput"><textarea name="[+ $type +]_[+ $rec -> {id} +]" cols=60 
rows=10></textarea></td>
  -                            [$endif$]
  +                            [$ if $cy->{$type} =~ /textarea/ $]
  +                                <td class="cText" valign="top">[+ $txt +]:</td><td 
class="cInput"><textarea name="[+ $type +]_[+ $rec -> {id} +]" cols="60" 
rows="10"></textarea></td>
  +                            [$ else $]
  +                                <td class="cText" valign="top">[+ $txt 
+]:&nbsp;</td><td class="cInput"><input type="text" name="[+ $type +]_[+ $rec -> {id} 
+]" size="80"></td>
  +                            [$ endif $]
                           </tr>
  -                    [$endif$]
  -                [$endforeach$]
  +                    [$ endif $]
  +                [$ endforeach $]
                   <input type="hidden" name="id_[+ $rec -> {id} +]">
               </table>
           </td>
  @@ -62,22 +67,53 @@
   [$ if $r -> {edit} $]
   &nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" name="-update_item" value="[= update3 
=]">
   &nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" name="-delete_item" value="[= delete3 
=]">
  -[$else$]
  +[$ else $]
   &nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" name="-add_item" value="[= add3 =] [+ 
$r -> {category_set}{category} +]">
   [$endif$]
   
   
   <input type="hidden" name="category_id">
  -<input type="hidden" name="item_id">
  +<input type="hidden" name="[+ $r -> {category_set}{table_type} +]_id">
   
   </form>
  +[$ endif $]
   
   [#
   <PRE>
  -[+ Dumper 
$r->{edit},$r->{category_set},$r->{category_set}{add_info},$r->{action_prefix},$r->{language_set},$r->{category_set}{category},[keys
 %$r],$r->{user_admin} +]
  -edit1 = [= edit1 =]
  -add1  = [= add1 =]
  -add2a = [= add2a =]
  -add2b = [= add2b =]
  +[+
  + Data::Dumper->Dump(
  +                 [
  +                  {%fdat},
  +                  $r->{edit},
  +                  $r->{category_set}{add_info},
  +                  $r->{action_prefix},
  +                  $r->{category_set}{category},
  +                  $r->{user_admin},
  +                  [keys %$r],
  +                  $r->{category_fields},
  +                  $r->{category_texts},
  +                  ${$r->{category_set}},
  +                  ${$r->{language_set}},
  +#                 $r->{item_set},
  +                  ],[qw[
  +                        fdat
  +                        edit
  +                        add_info
  +                        action_prefix
  +                        category
  +                        user_admin
  +                        r_keys
  +                        category_fields
  +                        category_texts
  +                        category_set
  +                        language_set
  +                        item_set
  +                        ]
  +                     ]
  +                 )
  ++]
   </PRE>
   #]
  +
  +
  +
  
  
  
  1.1.2.13  +1 -1      embperl/eg/web/db/addsel.epl
  
  Index: addsel.epl
  ===================================================================
  RCS file: /home/cvs/embperl/eg/web/db/addsel.epl,v
  retrieving revision 1.1.2.12
  retrieving revision 1.1.2.13
  diff -u -r1.1.2.12 -r1.1.2.13
  --- addsel.epl        25 Oct 2002 13:26:30 -0000      1.1.2.12
  +++ addsel.epl        15 Nov 2002 06:17:45 -0000      1.1.2.13
  @@ -54,7 +54,7 @@
   <ul>
       <li>
           [- $rec = $r -> {category_set}[$row] -]
  -        <a href="add.-category_id-[+ $rec -> {category_id} +]-.epl">[+ $rec -> 
{category} +]</a>
  +        <a href="list.-category_id-[+ $rec -> {category_id} +]-.epl">[+ $rec -> 
{category} +]</a>
       </li>
   </ul>
   
  
  
  
  1.1.2.7   +37 -10    embperl/eg/web/db/content.epl
  
  Index: content.epl
  ===================================================================
  RCS file: /home/cvs/embperl/eg/web/db/content.epl,v
  retrieving revision 1.1.2.6
  retrieving revision 1.1.2.7
  diff -u -r1.1.2.6 -r1.1.2.7
  --- content.epl       27 Aug 2002 19:12:41 -0000      1.1.2.6
  +++ content.epl       15 Nov 2002 06:17:45 -0000      1.1.2.7
  @@ -4,19 +4,46 @@
   
   [- $r = shift -]
   
  -[$if $r -> {error} $]
  -<center><font color="red" size=3>[+ $r -> gettext($r -> {error}) 
+]</font><br></center>
  -[$endif$]
  +[$ if $r->{error} $]
  +  <p align="center"><font color="#ff0000" size="3"><b>
  +    [= error =]: [+ $r->gettext($r->{error}) +]
  +    [$ if $r->{error_details} $]
  +      [= error_reason =]:<BR>
  +      [- @err = split("\n", $r->{error_details}); -]
  +      [$ foreach $err_line (@err) $]
  +        [+ $err_line +]<BR>
  +      [$ endforeach $]
  +    [$ endif $]
  +  </b></font></p>
  +[$ endif $]
   
  -[$if $r -> {need_login} $]
  -    <center>
  +[$ if @{$warning = $r->{warning}} $]
  +  <p align="center">
  +    [= warning =]:
  +  </p>
  +  <div align="center">
  +    <table border="0" cellspacing="0" cellpadding="0"><tr><td align="left">
  +      <ul>
  +     <li>[- $abbrev = $warning->[$row] -][+ $r->gettext($abbrev) +]
  +      </ul>
  +    </td></tr></table>
  +  </div>
  +[$ endif $]
  +
  +[$ if $r->{success} $]
  +  <p align="center">
  +    [+ $r->gettext($r->{success}) +]
  +  </p>
  +[$ endif $]
  +
  +[$ if $r -> {need_login} $]
  +    <div align="center">
       <p>[= need_login =]</p>
       
       [- Execute ('loginform.epl', $r -> param -> uri) ; -]
  -    </center>
  -[$else$]
  +    </div>
  +[$ else $]
       [$if $r -> param -> uri !~ /html?$|epl$/ $]<pre>[$endif$]
  -
  -    [- Execute ({inputfile => '*'})  -] 
  +    [- $x = Execute ({inputfile => '*'}) -] 
       [$if $r -> param -> uri !~ /html?$|epl$/ $]</pre>[$endif$]
  -[$endif$]
  +[$ endif $]
  
  
  
  1.1.2.10  +1 -0      embperl/eg/web/db/data.epd
  
  Index: data.epd
  ===================================================================
  RCS file: /home/cvs/embperl/eg/web/db/data.epd,v
  retrieving revision 1.1.2.9
  retrieving revision 1.1.2.10
  diff -u -r1.1.2.9 -r1.1.2.10
  --- data.epd  25 Oct 2002 13:21:10 -0000      1.1.2.9
  +++ data.epd  15 Nov 2002 06:17:45 -0000      1.1.2.10
  @@ -1,6 +1,7 @@
   [-
   $r = shift ;
   $set = $r -> {item_set} ;
  +
   $escmode = 0 ;
   -]
   
  
  
  
  1.1.2.15  +249 -114  embperl/eg/web/db/epwebapp.pl
  
  Index: epwebapp.pl
  ===================================================================
  RCS file: /home/cvs/embperl/eg/web/db/epwebapp.pl,v
  retrieving revision 1.1.2.14
  retrieving revision 1.1.2.15
  diff -u -r1.1.2.14 -r1.1.2.15
  --- epwebapp.pl       25 Oct 2002 13:21:10 -0000      1.1.2.14
  +++ epwebapp.pl       15 Nov 2002 06:17:45 -0000      1.1.2.15
  @@ -18,6 +18,8 @@
   
       my $db = $r -> {db} ;
   
  +    $r->{warning} = [];
  +
       $self -> checkuser ($r) ;
   
       $r -> {language_set} = DBIx::Recordset -> Search ({'!DataSource' => $db, 
  @@ -25,24 +27,25 @@
       
       if ($fdat{-add_category})
           {
  -        $self -> add_category ($r) ;
  +        $self -> add_category($r) ;
           $self -> get_category($r) ;
           }
       elsif ($fdat{-add_item})
           {
           $self -> get_category($r) ;
  -        $self -> add_item ($r) ;
  +        $self -> add_item($r) ;
           #$self -> get_item_lang($r) ;
           }
       elsif ($fdat{-update_item})
           {
  -        $self -> update_item ($r) ;
           $self -> get_category($r) ;
  -        $self -> get_item_lang($r) ;
  +        $self -> update_item ($r) ;
  +        #$self -> get_item_lang($r) ;
           }
       elsif ($fdat{-delete_item})
           {
  -        $self -> delete_item ($r) ;
  +        $self -> get_category($r) ;
  +        $self -> delete_item($r) ;
           }
       elsif ($fdat{-edit_item})
           {
  @@ -139,7 +142,8 @@
           return $r -> {user_admin}?2:1 ;
           }
   
  -    if (($fdat{-login} || $fdat{-newuser}) && !$fdat{user_email})
  +    if (($fdat{-login} || $fdat{-newuser} || $fdat{-newpassword}) 
  +     && !$fdat{user_email})
           {
           $r -> {error} = 'err_email_needed' ;
           return ;
  @@ -161,7 +165,7 @@
               $r -> {user_id}    = $udat{user_id}    = $user -> {id} ;
               $r -> {user_email} = $udat{user_email} = $user -> {email} ;
               $r -> {user_admin} = $udat{user_admin} = $user -> {admin} ;
  -         $r -> {error} = "suc_login";
  +         $r -> {success} = "suc_login";
               return $r -> {user_admin}?2:1 ;
               }
               
  @@ -174,7 +178,7 @@
           $r -> {user_id}    = $udat{user_id}    = undef ;
           $r -> {user_email} = $udat{user_email} = undef ;
           $r -> {user_admin} = $udat{user_admin} = undef ;
  -     $r -> {error} = 'suc_logout';
  +     $r -> {success} = 'suc_logout';
           return ;
           }
               
  @@ -208,16 +212,26 @@
                                                 '!Table'      => 'user', 
                                                 'password'    => $fdat{user_password},
                                                 'email'       => $fdat{user_email}}) ;
  -     $r -> {error} .= 'err_db: '.DBIx::Recordset -> LastError 
  -         if DBIx::Recordset -> LastError;
  +     if (DBIx::Recordset -> LastError)
  +         {
  +         $r -> {error} = 'err_db';
  +         $r -> {error_details} = DBIx::Recordset -> LastError;
  +         }
   
  -        (my $usermail = Embperl::Mail::Execute ({
  +        my $usermail = Embperl::Mail::Execute ({
            inputfile => 'newuser.mail', 
            to => $fdat{user_email}, 
            subject =>  $r->gettext('mail_subj_newuser'),
  -         errors => \@errors_user})
  -      and $r -> {error} .= 'err_user_mail: '.join('; ',@errors_user)) 
  -     or   $r -> {error} .= 'suc_password_sent';
  +         errors => \@errors_user});
  +     if ($usermail) 
  +         {
  +         $r->{error} = 'err_user_mail';
  +         $r->{error_details} = join("\n",@errors_user);
  +         }
  +     else
  +         {
  +         $r->{success} = 'suc_password_sent';
  +         }
   
           my $adminmail = Embperl::Mail::Execute ({
            inputfile => 'newuser.admin.mail',  
  @@ -225,15 +239,13 @@
            subject => ($r->{error} ? 
                        "Error while creating new Embperl website user 
'$fdat{user_email}'" :
                        "New Embperl website user: $fdat{user_email}"),
  -         errors => \@errors_admin}) 
  -     and $r -> {error} .= 'err_user_admin_mail: '.join('; ',@errors_admin);
  +         errors => \@errors_admin});
   
  -#    $r->{error} .= "\n". Dumper($adminmail,
  -#                                \@errors_admin,
  -#                                $r->{config}->{adminemail},
  -#                                $usermail,
  -#                                \@errors_user,
  -#                                $fdat{user_email};
  +     if ($adminemail)
  +         {
  +         $r->{error} = 'err_user_admin_mail';
  +         $r->{error_details} = join('; ',@errors_admin);
  +         }
   
           return ;
           }
  @@ -246,13 +258,20 @@
                                                 'password'    => $fdat{user_password},
                                                 'email'       => $fdat{user_email}}) ;
   
  -        (Embperl::Mail::Execute ({
  +        my $newpw_mail = Embperl::Mail::Execute ({
            inputfile => 'newpw.mail', 
            to => $fdat{user_email}, 
            subject => $r->gettext('mail_subj_newpw'),
  -         errors => \@errors_pw})
  -      and $r -> {error} .= 'err_pw_mail: '.join('; ',@errors_pw))
  -     or   $r -> {error} .= 'suc_password_sent';
  +         errors => \@errors_pw});
  +     if ($newpw_mail) 
  +         {
  +         $r->{error} .= 'err_pw_mail';
  +         $r->{error_details} .= join("\n",@errors_pw);
  +         }
  +     else
  +         {
  +         $r->{success} = 'suc_password_sent';
  +         }
   
           return ;
           }
  @@ -261,6 +280,10 @@
   
   # ----------------------------------------------------------------------------
   
  +###
  +### Not yet working with new db-scheme
  +###
  +
   sub add_category
       {
       my $self     = shift ;
  @@ -307,70 +330,95 @@
   
       # Check the URL
   
  -    if ($fdat{url} && $fdat{url} =~ /\s/)
  +    my $tt = $r->{category_set}{table_type};
  +    my $cf = $r->{category_fields};
  +
  +    foreach (@$cf)
  +    {
  +     next unless $r->{category_types}{$_} =~ /url/;
  +     
  +     if ($fdat{$_} && $fdat{$_} =~ /\s/)
           {
  -     $fdat{url} =~ s/\s//g;
  -     $r -> {error} = ' warn_url_removed_white_space';
  +         $fdat{$_} =~ s/\s//g;
  +         push(@{$r->{warning}}, 'warn_url_removed_white_space');
           }
   
  -    if ($fdat{url} && $fdat{url} !~ m{http://})
  +     if ($fdat{$_} && $fdat{$_} !~ m{http://})
           {
  -     $fdat{url} =~ s{^}{http://};
  -     $r -> {error} .= ' warn_url_added_http';
  +         $fdat{$_} =~ s{^}{http://};
  +         push(@{$r->{warning}}, 'warn_url_added_http');
           }
   
  +    }
  +
       my $set = DBIx::Recordset -> Insert ({'!DataSource' => $r -> {db}, 
  -                                          '!Table'      => 'item',
  +                                          '!Table'      => $tt,
                                             '!Serial'     => 'id',
                                              url          => $fdat{url},
                                              category_id  => $fdat{category_id},
                                              user_id      => $r -> {user_id},
                                              state        => $r ->{user_admin} && 
$fdat{state}?1:0}) ;
  +
       my $id = $$set -> LastSerial ;
       my $langset = $r -> {language_set} ;
       my $txtset = DBIx::Recordset -> Setup ({'!DataSource' => $r -> {db}, 
  -                                            '!Table'      => 'itemtext'}) ;
  +                                            '!Table'      => "${tt}text"}) ;
       
       $$langset -> Reset ;
       while ($rec = $$langset -> Next)
           {
        # Check the URL
        
  -     if ($fdat{"url_$rec->{id}"} && $fdat{"url_$rec->{id}"} =~ /\s/)
  +     my $lang = $rec->{id};
  +
  +     foreach (@$cf)
  +     {
  +         next unless $r->{category_types}{$_.'_'.$lang} =~ /url/;
  +         
  +         if ($fdat{$_.'_'.$lang} && $fdat{$_.'_'.$lang} =~ /\s/)
            {
  -         $fdat{"url_$rec->{id}"} =~ s/\s//g;
  -         $r -> {error} = ' warn_url_removed_white_space';
  +             $fdat{$_.'_'.$lang} =~ s/\s//g;
  +             push(@{$r->{warning}}, 'warn_url_removed_white_space');
            }
  -     
  -     if ($fdat{"url_$rec->{id}"} && $fdat{"url_$rec->{id}"} !~ m{http://})
  +         
  +         if ($fdat{$_.'_'.$lang} && $fdat{$_.'_'.$lang} !~ m{http://})
            {
  -         $fdat{"url_$rec->{id}"} =~ s{^}{http://};
  -         $r -> {error} .= ' warn_url_added_http';
  +             $fdat{$_.'_'.$lang} =~ s{^}{http://};
  +             push(@{$r->{warning}}, 'warn_url_added_http');
            }
  +         
  +     }
   
  -        $$txtset -> Insert ({item_id => $id,
  -                             language_id => $rec->{id},
  -                             description => $fdat{"description_$rec->{id}"},
  -                             url         => $fdat{"url_$rec->{id}"} || $fdat{url},
  -                             heading     => $fdat{"heading_$rec->{id}"}}) if 
($fdat{"heading_$rec->{id}"} || $fdat{"description_$rec->{id}"}) ;
  +        $$txtset -> Insert ({ (map { $_ => $fdat{$_.'_'.$lang} || $fdat{$_} } @$cf),
  +                           "${tt}_id"  => $id,
  +                              language_id => $lang })
  +         if (grep { $fdat{$_.'_'.$lang} || $fdat{$_} } @$cf) ;
           }
   
  -    $fdat{item_id} = $id ;
  +    $fdat{"${tt}_id"} = $id ;
   
       $self->get_item_lang($r);
   
  -    my @errors;
  -    Embperl::Mail::Execute ({
  -     inputfile => 'newitem.mail', 
  -     to => $r->{config}->{adminemail},
  -     subject => 'New item on Embperl Website (Category 
'.$r->{category_set}->{category}.')',
  -     errors => \@errors})
  -    and $r -> {error} .= 'err_item_admin_mail: '.join('; ',@errors) ;
  -    
  +    if (!$udat{user_admin}) 
  +        {
  +     my @errors;
  +     my $newitemmail = Embperl::Mail::Execute ({
  +         inputfile => 'updateditem.mail', 
  +         to => $r->{config}->{adminemail},
  +         subject => 'New item on Embperl Website (Category 
'.$r->{category_set}{category}.')'.($udat{user_email}?" by $udat{user_email}":''),
  +         errors => \@errors});
  +     if ($newitemmail)
  +            {
  +         $r->{error} = 'err_item_admin_mail';
  +         $r->{error_details} = join("\n",@errors);
  +         
  +         return;
  +            }
  +        }
   
  +    $r->{success} = 'suc_item_created';
       }
   
  -
   # ----------------------------------------------------------------------------
   
   sub update_item
  @@ -384,22 +432,25 @@
           return ;
           }
   
  +    my $tt = $r->{category_set}{table_type};
  +    my $cf = $r->{category_fields};
  +
       # make sure we have an id
  -    if (!$fdat{item_id})
  +    if (!$fdat{"${tt}_id"})
           {
        $r -> {error} = 'err_cannot_update_no_id';
           return ;
           }
   
       my $set = DBIx::Recordset -> Setup  ({'!DataSource' => $r -> {db}, 
  -                                          '!Table'      => 'item'}) ;
  +                                          '!Table'      => $tt }) ;
   
       # update the entry, but only if it has the correct user id or the has admin 
rights
  -    my $rows = $$set          -> Update ({ url          => $fdat{url},
  -                                           $fdat{category_id}?(category_id  => 
$fdat{category_id}):(),
  -                                           $r ->{user_admin}?(state  => 
$fdat{state}):()},
  -                                          {id     => $fdat{item_id},
  -                                           $r ->{user_admin}?():(user_id      => $r 
-> {user_id})}) ;
  +    my $rows = $$set -> Update ({ url => $fdat{url},
  +                               $fdat{category_id} ? (category_id  => 
$fdat{category_id}) : (),
  +                               $r->{user_admin}   ? (state        => $fdat{state})  
     : () },
  +                             { id => $fdat{"${tt}_id"},
  +                               $r ->{user_admin} ? () : (user_id => $r->{user_id}) 
}) ;
       
       if ($rows <= 0)
           { # error if nothing was found (this will happen when the record isdn't 
owned by the user)
  @@ -407,26 +458,60 @@
           return ;
           }
   
  -    my $id = $fdat{item_id} ;
  +    my $id = $fdat{"${tt}_id"} ;
       my $langset = $r -> {language_set} ;
       my $txtset = DBIx::Recordset -> Setup ({'!DataSource' => $r -> {db}, 
  -                                            '!Table'      => 'itemtext'}) ;
  -    
  -    # Update the texts for every languange, but only if they belong to the item we 
have delete above
  +                                            '!Table'      => "${tt}text"}) ;
  +
  +    if (DBIx::Recordset->LastError)
  +    {
  +     $r -> {error} = 'err_update_db' ; 
  +     return ;
  +    }
  +
  +    # Update the texts for every languange, but only if they belong to
  +    # the item we have updated above
  +
       $$langset -> Reset ;
       while ($rec = $$langset -> Next)
           {
  -        $$txtset -> Update ({
  -                             language_id => $rec->{id},
  -                             description => $fdat{"description_$rec->{id}"},
  -                             url         => $fdat{"url_$rec->{id}"} || $fdat{url},
  -                             heading     => $fdat{"heading_$rec->{id}"},
  -                             },
  -                             { item_id => $id, 
  -                               id      => $fdat{"id_$rec->{id}"}}) 
  -                                 if ($fdat{"heading_$rec->{id}"} || 
$fdat{"description_$rec->{id}"}) ;
  -                             
  +     my $lang = $rec->{id};
  +        $$txtset -> Update ({ (map { $_ => $fdat{$_.'_'.$lang} || $fdat{$_} } @$cf),
  +                           language_id => $lang,
  +                       }, {
  +                           "${tt}_id" => $id, 
  +                           id         => $fdat{"id_$lang"}
  +                       })
  +         if (grep { $fdat{$_.'_'.$lang} || $fdat{$_} } @$cf) ;
  +
  +     if (DBIx::Recordset->LastError)
  +         {
  +         $r -> {error} = 'err_update_lang_db' ; 
  +         return ;
  +         }
           }
  +
  +    $self->get_item_lang($r) ;
  +
  +    if (!$udat{user_admin}) 
  +        {
  +     my @errors;
  +     $r->{is_update} = 1;
  +     my $newitemmail = Embperl::Mail::Execute ({
  +         inputfile => 'updateditem.mail', 
  +         to => $r->{config}->{adminemail},
  +         subject => 'Updated item on Embperl Website (Category 
'.$r->{category_set}{category}.')'.($udat{user_email}?" by $udat{user_email}":''),
  +         errors => \@errors});
  +     if ($newitemmail)
  +            {
  +         $r->{error} = 'err_item_admin_mail';
  +         $r->{error_details} = join('; ',@errors);
  +         
  +         return;
  +            }
  +        }
  +
  +    $r->{success} = 'suc_item_updated'
       }
   
   
  @@ -443,18 +528,21 @@
           return ;
           }
   
  +    my $tt = $r->{category_set}{table_type};
  +    my $cf = $r->{category_fields};
  +
       # make sure we have an id
  -    if (!$fdat{item_id})
  +    if (!$fdat{"${tt}_id"})
           {
           $r -> {error} = 'err_cannot_delete_no_id' ; 
           return ;
           }
   
       # first see if the entry exists and has the correct user_id
  -    my $set = DBIx::Recordset -> Search  ({'!DataSource' => $r -> {db}, 
  -                                          '!Table'      => 'item',
  -                                          id     => $fdat{item_id},
  -                                          $r->{user_admin}?():(user_id      => $r 
-> {user_id})}) ;
  +    my $set = DBIx::Recordset -> Search  ({'!DataSource' => $r->{db}, 
  +                                        '!Table'      => $tt,
  +                                        id            => $fdat{"${tt}_id"},
  +                                        $r->{user_admin} ? () : (user_id => 
$r->{user_id}) }) ;
   
       if (!$$set -> MoreRecords())
           { # error if nothing was found (this will happen when the record isdn't 
owned by the user
  @@ -463,40 +551,44 @@
           }
   
       # delete the entry, but only if it has the correct user id or the has admin 
rights
  -    $$set -> Delete ({id => $fdat{item_id},
  +    $$set -> Delete ({id => $fdat{"${tt}_id"},
                      $r ->{user_admin}?():(user_id => $r->{user_id})}) ;
   
       if (DBIx::Recordset->LastError)
           {
  -     $r -> {error} = 'err_cannot_delete_db_error: '.DBIx::Recordset->LastError;
  +     $r->{error} = 'err_cannot_delete_db_error';
  +     $r->{error_details} = DBIx::Recordset->LastError;
        return;
           }
   
  -    my $id = $fdat{item_id} ;
  +    my $id = $fdat{"${tt}_id"} ;
       my $langset = $r -> {language_set} ;
       my $txtset = DBIx::Recordset -> Setup ({'!DataSource' => $r -> {db}, 
  -                                            '!Table'      => 'itemtext'}) ;
  +                                            '!Table'      => "${tt}text"}) ;
       
       # Delete the texts for every languange, but only if they belong to the item we 
have delete above
       $$langset -> Reset ;
       while ($rec = $$langset -> Next)
           {
  -        $$txtset -> Delete ({ item_id => $id, 
  -                               id      => $fdat{"id_$rec->{id}"}}) ;
  +        $$txtset -> Delete ({ "${tt}_id" => $id, 
  +                           id         => $fdat{"id_$rec->{id}"}}) ;
                                
        if (DBIx::Recordset->LastError)
  -         {
  -         $r -> {error} = 'err_cannot_delete_db_error: '.DBIx::Recordset->LastError;
  +            {
  +         $r->{error} = 'err_cannot_delete_db_error';
  +         $r->{error_details} = DBIx::Recordset->LastError;
            return;
  -         }
  -     
  -
  +            }
           }
  +
  +    $r->{success} = 'suc_item_deleted'
       }
   
   
   # ----------------------------------------------------------------------------
   
  +# Already working with new db-scheme
  +
   sub get_category
       {
       my $self     = shift ;
  @@ -508,7 +600,32 @@
                                                          'language_id'  => $r -> 
param -> language,
                                                          
$fdat{category_id}?(category_id => $fdat{category_id}):(),
                                                          $r -> {user_admin}?():(state 
=> 1)}) ;
  -                                                        
  +
  +    *fields = DBIx::Recordset -> Search ({'!DataSource' => $r -> {db}, 
  +                                       '!Table' => 'category, categoryfields', 
  +                                       '!TabRelation' => 'category_id = 
category.id',
  +                                       'language_id'  => $r -> param -> language,
  +                                       $fdat{category_id}?(category_id => 
$fdat{category_id}):(),
  +                                       $r -> {user_admin}?():(state => 1),
  +                                       '$order' => 'position' }) ;
  +
  +    my %texts = ();
  +    my %types = ();
  +#    my %position = ();
  +    my @textfields = ();
  +
  +    while (my $field = $fields->Next)
  +    {
  +     push(@textfields, $field->{fieldname});
  +     $texts{$field->{fieldname}.'_text'} = $field->{text};
  +     $types{$field->{fieldname}} = $field->{typeinfo};
  +#    $position{$field->{fieldname}} = $field->{position};
  +    }
  +
  +    $r -> {category_fields} = \@textfields;
  +    $r -> {category_texts} = \%texts;
  +    $r -> {category_types} = \%types;
  +#    $r -> {category_position} = \%position;
       }
   
   
  @@ -532,15 +649,16 @@
               }
           }
   
  +    $tt = $r->{category_set}{table_type};
   
  -    $r -> {item_set} = DBIx::Recordset -> Search ({'!DataSource' => $r -> {db}, 
  -                                                       '!Table' => 'item, 
itemtext', 
  -                                                       '!TabRelation' => 'item_id = 
item.id',
  -                                                       'language_id'  => $r -> 
param -> language,
  -                                                       '!Order'         => 
'creationtime desc',
  -                                                       
$fdat{category_id}?(category_id => $fdat{category_id}):(),
  -                                                       $fdat{item_id}?(item_id => 
$fdat{item_id}):(), 
  -                                                       %state}) ;
  +    $r -> {item_set} = DBIx::Recordset -> Search ({'!DataSource'  => $r->{db}, 
  +                                                '!Table'       => "${tt}, 
${tt}text", 
  +                                                '!TabRelation' => "${tt}_id = 
${tt}.id",
  +                                                'language_id'  => 
$r->param->language,
  +                                                '!Order'       => 'creationtime 
desc',
  +                                                $fdat{category_id} ? (category_id 
=> $fdat{category_id}) : (),
  +                                                $fdat{"${tt}_id"}  ? ("${tt}_id"  
=> $fdat{"${tt}_id"})  : (), 
  +                                                %state}) ;
       }
   
   
  @@ -565,13 +683,21 @@
               }
           }
   
  -    $r -> {item_set} = DBIx::Recordset -> Search ({'!DataSource' => $r -> {db}, 
  -                                                       '!Table' => 'item, language, 
itemtext', # itemtext must be last to get it's id 
  -                                                       '!TabRelation' => 'item_id = 
item.id and language_id = language.id',
  -                                                       '!Order'         => 
'creationtime desc',
  -                                                       
$fdat{category_id}?(category_id => $fdat{category_id}):(),
  -                                                       $fdat{item_id}?(item_id => 
$fdat{item_id}):(),
  -                                                       %state}) ;
  +    $tt = $r->{category_set}{table_type};
  +
  +    $r -> {item_set} = DBIx::Recordset -> Search ({'!DataSource'  => $r->{db}, 
  +                                                '!Table'       => "${tt}, language, 
${tt}text", # ${tt}text must be last to get it's id 
  +                                                '!TabRelation' => "${tt}_id = 
${tt}.id and language_id = language.id",
  +                                                '!Order'       => 'creationtime 
desc',
  +                                                $fdat{category_id} ? (category_id 
=> $fdat{category_id}) : (),
  +                                                $fdat{"${tt}_id"}  ? ("${tt}_id"  
=> $fdat{"${tt}_id"})  : (),
  +                                                %state}) ;
  +    
  +#    push(@{$r->{warning}}, 'get_item_lang =>', $tt, @{$r->{item_set}});
  +#    ${$r->{item_set}}->Reset;
  +
  +    $r->{item_set} = undef unless ${$r->{item_set}}->MoreRecords;
  +    
       }
   
   # ----------------------------------------------------------------------------
  @@ -588,14 +714,25 @@
           }
   
       my $set = $r -> {item_set} ;
  -    $fdat{'item_id'} = $set -> {item_id} ;
  +
  +    unless (defined $set)
  +        {
  +     $r->{error} = 'err_item_not_found_or_access_denied';
  +
  +     return;
  +     }
  +
  +    my $tt = $r->{category_set}{table_type};
  +    my $cf = $r->{category_fields};
  +
  +    $fdat{"${tt}_id"} = $set->{"${tt}_id"} if $set->{"${tt}_id"};
       
       $$set -> Reset ;
       while ($rec = $$set -> Next)
           {
           my $lang = $rec -> {language_id} ;
  -        $fdat{'id_' . $lang} = $rec -> {id} ;
  -        foreach my $type ('heading', 'url', 'description', 'keywords')
  +        $fdat{'id_' . $lang} = $rec -> {id};
  +        foreach my $type (@$cf)
               {
               $fdat{$type . '_' . $lang} = $rec -> {$type} ;
               }
  @@ -603,5 +740,3 @@
       
       $r -> {edit} = 1 ;
       }
  -
  -
  
  
  
  1.1.2.7   +12 -7     embperl/eg/web/db/show.epl
  
  Index: show.epl
  ===================================================================
  RCS file: /home/cvs/embperl/eg/web/db/show.epl,v
  retrieving revision 1.1.2.6
  retrieving revision 1.1.2.7
  diff -u -r1.1.2.6 -r1.1.2.7
  --- show.epl  25 Oct 2002 13:26:30 -0000      1.1.2.6
  +++ show.epl  15 Nov 2002 06:17:45 -0000      1.1.2.7
  @@ -16,23 +16,25 @@
       </tr>
   </table>
   
  +[$ if ($item_set = $r->{item_set}) $]
  +
   [$ if $fdat{-delete_item} $]
   [= del2 =]
   [$ else $]
   [= show2 =]<br><br>
   
  -Status: [+ $r->{item_set}{state} ? 'Shown' : 'Hidden' +]
  +Status: [#+ $item_set->{state} ? 'Shown' : 'Hidden' +#]
   
   <table width="100%">
       <tr bgcolor="#fefcad">
  -        [- $rec = $r -> {item_set}[$row] -]
  +        [- $rec = $item_set->[$row] -]
           <td><font size=3><b>[+ $rec -> {name} +]</b></font></td>
       </tr>
       <tr>
           <td>
               <table>
  -                [$foreach $type ('heading', 'url', 'description', 'keywords') $]
  -                    [$ if $txt = $r -> {category_set}{$type . '_text'} $]
  +                [$ foreach $type (@{$r->{category_fields}}) $]
  +                    [$ if $txt = $r -> {category_texts}{$type . '_text'} $]
                           <tr>
                              <td valign=top>[+ $txt +]:</td><td>[- @txt = split 
(/\n/, $rec -> {$type}) -][$ foreach $t (@txt) $][+ $t +]<br>[$endforeach$]</td>
                           </tr>
  @@ -44,7 +46,10 @@
   </table>
   
   [$ if $udat{user_email} $]
  -<A HREF="add.epl?item_id=[+ $fdat{item_id} +]&amp;-edit_item=1&amp;category_id=[+ 
$fdat{category_id} +]">Edit</A>
  +[- $tt = $r->{category_set}{table_type} -]
  +<A HREF="add.epl?[+ $tt +]_id=[+ $fdat{"${tt}_id"} 
+]&amp;-edit_item=1&amp;category_id=[+ $fdat{category_id} +]">Edit</A>
  +[$ endif $]
  +
   [$ endif $]
   
   [$ endif $]
  @@ -55,6 +60,6 @@
   [! use Data::Dumper; !]
   [- $DBIx::Recordset::FetchsizeWarn = 0; -]
   <PRE>
  -[+ Dumper $r->{error},\%fdat,[keys %$r],{%{$r->{category_set}}},[@{$r->{item_set}}] 
+]
  +[+ Dumper $r->{error},\%fdat,[keys 
%$r],[@{$r->{category_fields}}],{%{$r->{category_texts}}},{%{$r->{category_set}}},$r->{item_set}
 +]
   </PRE>
  -#]
  \ No newline at end of file
  +#]
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.9   +166 -35   embperl/eg/webutil/db.schema
  
  Index: db.schema
  ===================================================================
  RCS file: /home/cvs/embperl/eg/webutil/db.schema,v
  retrieving revision 1.1.2.8
  retrieving revision 1.1.2.9
  diff -u -r1.1.2.8 -r1.1.2.9
  --- db.schema 30 Jul 2002 05:15:10 -0000      1.1.2.8
  +++ db.schema 15 Nov 2002 06:17:55 -0000      1.1.2.9
  @@ -132,16 +132,101 @@
           [
           'id'                        => 'counter',
           'state'                     => 'integer',
  +     'table_type'                => 'tinytext',
  +     'viev_level'                => 'integer',
  +     'edit_level'                => 'integer',
           ],
       '!PrimKey' => 'id',
       '!Init' =>
           [
  -            { id => 1, state => 1 } ,
  -            { id => 2, state => 1 } ,
  -            { id => 3, state => 1 } ,
  -            { id => 4, state => 1 } ,
  -            { id => 5, state => 1 } ,
  -            { id => 6, state => 1 } ,
  +            { id => 1, state => 1, 'table_type' => 'item' } ,
  +            { id => 2, state => 1, 'table_type' => 'item' } ,
  +            { id => 3, state => 1, 'table_type' => 'item' } ,
  +            { id => 4, state => 1, 'table_type' => 'item' } ,
  +            { id => 5, state => 1, 'table_type' => 'item' } ,
  +            { id => 6, state => 1, 'table_type' => 'item' } ,
  +            { id => 7, state => 1, 'table_type' => 'foo' } ,
  +        ],
  +    },
  +
  +# ----------------------------------------------------------------------
  +
  +    {
  +    '!Table' => 'categoryfields',
  +    '!Fields' => 
  +        [
  +        'category_id'        => 'integer not null',
  +        'language_id'        => 'char(3) not null',
  +     'fieldname'     => 'char(32) not null',
  +     'text'          => 'text',
  +     'typeinfo'      => 'tinytext',
  +     'position'      => 'integer',
  +        ],
  +    '!PrimKey' => 'category_id,language_id,fieldname',
  +    '!Init' =>
  +        [
  +         # News
  +            { category_id => 1, language_id => 'de', fieldname => 'description', 
text => 'Neuigkeit', position => 1 } ,
  +            { category_id => 1, language_id => 'en', fieldname => 'description', 
text => 'News', position => 1 } ,
  +
  +         # Emperl Websites
  +            { category_id => 2, language_id => 'de', fieldname => 'heading',     
text => '�berschrift', position => 1 } ,
  +            { category_id => 2, language_id => 'de', fieldname => 'description', 
text => 'Beschreibung', typeinfo => 'textarea', position => 3 } ,
  +            { category_id => 2, language_id => 'de', fieldname => 'url',         
text => 'URL', typeinfo => 'url', position => 2 } ,
  +
  +            { category_id => 2, language_id => 'en', fieldname => 'heading',     
text => 'Heading', position => 1 } ,
  +            { category_id => 2, language_id => 'en', fieldname => 'description', 
text => 'Description', typeinfo => 'textarea', position => 3 } ,
  +            { category_id => 2, language_id => 'en', fieldname => 'url',         
text => 'URL', typeinfo => 'url', position => 2 } ,
  +
  +         # Books about Embperl
  +            { category_id => 3, language_id => 'de', fieldname => 'heading',     
text => 'Titel', position => 1 } ,
  +            { category_id => 3, language_id => 'de', fieldname => 'description', 
text => 'Beschreibung', typeinfo => 'textarea', position => 3 } ,
  +            { category_id => 3, language_id => 'de', fieldname => 'url',         
text => 'URL', typeinfo => 'url', position => 2 } ,
  +
  +            { category_id => 3, language_id => 'en', fieldname => 'heading',     
text => 'Title', position => 1 } ,
  +            { category_id => 3, language_id => 'en', fieldname => 'description', 
text => 'Description', typeinfo => 'textarea', position => 3 } ,
  +            { category_id => 3, language_id => 'en', fieldname => 'url',         
text => 'URL', typeinfo => 'url', position => 2 } ,
  +
  +         # Embperl articles
  +            { category_id => 4, language_id => 'de', fieldname => 'heading',     
text => 'Titel', position => 1 } ,
  +            { category_id => 4, language_id => 'de', fieldname => 'description', 
text => 'Beschreibung', typeinfo => 'textarea', position => 3 } ,
  +            { category_id => 4, language_id => 'de', fieldname => 'url',         
text => 'URL', typeinfo => 'url', position => 2 } ,
  +
  +            { category_id => 4, language_id => 'en', fieldname => 'heading',     
text => 'Title', position => 1 } ,
  +            { category_id => 4, language_id => 'en', fieldname => 'description', 
text => 'Description', typeinfo => 'textarea', position => 3 } ,
  +            { category_id => 4, language_id => 'en', fieldname => 'url',         
text => 'URL', typeinfo => 'url', position => 2 } ,
  +
  +         # Syntax highlighting
  +            { category_id => 5, language_id => 'de', fieldname => 'heading',     
text => 'Editor', position => 1 } ,
  +            { category_id => 5, language_id => 'de', fieldname => 'description', 
text => 'Beschreibung', typeinfo => 'textarea', position => 3 } ,
  +            { category_id => 5, language_id => 'de', fieldname => 'url',         
text => 'URL', typeinfo => 'url', position => 2 } ,
  +
  +            { category_id => 5, language_id => 'en', fieldname => 'heading',     
text => 'Editor', position => 1 } ,
  +            { category_id => 5, language_id => 'en', fieldname => 'description', 
text => 'Description', typeinfo => 'textarea', position => 3 } ,
  +            { category_id => 5, language_id => 'en', fieldname => 'url',         
text => 'URL', typeinfo => 'url', position => 2 } ,
  +
  +         # Modules and examples
  +            { category_id => 6, language_id => 'de', fieldname => 'heading',     
text => 'Name', position => 1 } ,
  +            { category_id => 6, language_id => 'de', fieldname => 'description', 
text => 'Beschreibung', typeinfo => 'textarea', position => 3 } ,
  +            { category_id => 6, language_id => 'de', fieldname => 'url',         
text => 'URL', typeinfo => 'url', position => 2 } ,
  +
  +            { category_id => 6, language_id => 'en', fieldname => 'heading',     
text => 'Name', position => 1 } ,
  +            { category_id => 6, language_id => 'en', fieldname => 'description', 
text => 'Description', typeinfo => 'textarea', position => 3 } ,
  +            { category_id => 6, language_id => 'en', fieldname => 'url',         
text => 'URL', typeinfo => 'url', position => 2 } ,
  +
  +         # Test
  +            { category_id => 7, language_id => 'de', fieldname => 'foo',     text 
=> 'Foo!', typeinfo => 'title', position => 1 } ,
  +            { category_id => 7, language_id => 'de', fieldname => 'bar', text => 
'Bar!', position => 2 } ,
  +            { category_id => 7, language_id => 'de', fieldname => 'fnord',         
text => 'Fnord!', position => 3 } ,
  +            { category_id => 7, language_id => 'de', fieldname => 'fubar', text => 
'Fubar!', position => 4 } ,
  +            { category_id => 7, language_id => 'de', fieldname => 'Baz',         
text => 'Bazzz!', typeinfo => 'url', position => 5 } ,
  +
  +            { category_id => 7, language_id => 'en', fieldname => 'foo',     text 
=> 'foo!', typeinfo => 'title', position => 1 } ,
  +            { category_id => 7, language_id => 'en', fieldname => 'bar', text => 
'bar!', position => 2 } ,
  +            { category_id => 7, language_id => 'en', fieldname => 'fnord',         
text => 'fnord!', position => 3 } ,
  +            { category_id => 7, language_id => 'en', fieldname => 'fubar', text => 
'fubar!', position => 4 } ,
  +            { category_id => 7, language_id => 'en', fieldname => 'Baz',         
text => 'bazzz!', typeinfo => 'url', position => 5 } ,
  +
           ],
       },
   
  @@ -155,46 +240,38 @@
           'category_id'                   => 'integer',
           'language_id'                   => 'char(2)',
           'category'                   => 'tinytext',
  +        'add_info'                      => 'text',
  +     # Deprecated:
           'heading_text'                       => 'tinytext',
           'keywords_text'                      => 'tinytext',
           'description_text'           => 'tinytext',
           'url_text'                   => 'tinytext',
  -        'add_info'                      => 'text',
        ],
       '!PrimKey' => 'id',
       '!Init' =>
           [
  -            { id =>  1, category_id => 1, language_id => 'de', 'category' => 
'Neuigkeiten',
  -                        heading_text => '', keywords_text => '', description_text 
=> 'Neuigkeit', url_text => '' } ,
  -            { id =>  2, category_id => 1, language_id => 'en', 'category' => 'News',
  -                        heading_text => '', keywords_text => '', description_text 
=> 'News', url_text => '' } ,
  +            { id =>  1, category_id => 1, language_id => 'de', 'category' => 
'Neuigkeiten' } ,
  +            { id =>  2, category_id => 1, language_id => 'en', 'category' => 'News' 
} ,
   
               { id =>  3, category_id => 2, language_id => 'de', 'category' => 
'Websites die Embperl nutzen',
  -                        heading_text => '�berschrift', keywords_text => '', 
description_text => 'Beschreibung', url_text => 'URL',
  -                        add_info     => 'Bitte geben Sie eine Kurzbeschreibung der 
Site, sowie Informationen zu deren Realisierung ein.' } ,
  +                        add_info    => 'Bitte geben Sie eine Kurzbeschreibung der 
Site, sowie Informationen zu deren Realisierung ein.' } ,
               { id =>  4, category_id => 2, language_id => 'en', 'category' => 'Sites 
using Embperl',
  -                        heading_text => 'Heading', keywords_text => '', 
description_text => 'Description', url_text => 'URL',
  -                        add_info     => 'Please enter a short description of the 
Site and some informations how it has been setup.' } ,
  +                        add_info    => 'Please enter a short description of the 
Site and some informations how it has been setup.' } ,
   
  -            { id =>  5, category_id => 3, language_id => 'de', 'category' => 
'B�cher die Embperl behandeln',
  -                        heading_text => 'Titel', keywords_text => '', 
description_text => 'Beschreibung', url_text => 'URL' } ,
  -            { id =>  6, category_id => 3, language_id => 'en', 'category' => 'Books 
that talk about Embperl',
  -                        heading_text => 'Title', keywords_text => '', 
description_text => 'Description', url_text => 'URL' } ,
  -
  -            { id =>  7, category_id => 4, language_id => 'de', 'category' => 
'Artikel �ber Embperl (on- und offline)',
  -                        heading_text => 'Titel', keywords_text => '', 
description_text => 'Beschreibung', url_text => 'URL' } ,
  -            { id =>  8, category_id => 4, language_id => 'en', 'category' => 
'Article about Embperl (on- and offline)',
  -                        heading_text => 'Title', keywords_text => '', 
description_text => 'Description', url_text => 'URL' } ,
  -
  -            { id =>  9, category_id => 5, language_id => 'de', 'category' => 
'Syntaxhervorhebungen f�r Texteditoren',
  -                        heading_text => 'Editor', keywords_text => '', 
description_text => 'Beschreibung', url_text => 'URL' } ,
  -            { id => 10, category_id => 5, language_id => 'en', 'category' => 
'Syntaxhighlighting for texteditors',
  -                        heading_text => 'Editor', keywords_text => '', 
description_text => 'Description', url_text => 'URL' } ,
  -
  -            { id => 11, category_id => 6, language_id => 'de', 'category' => 
'Module und Beispiele f�r Embperl',
  -                        heading_text => 'Name', keywords_text => '', 
description_text => 'Beschreibung', url_text => 'URL' } ,
  -            { id => 12, category_id => 6, language_id => 'en', 'category' => 
'Modules and examples for Embperl',
  -                        heading_text => 'Name', keywords_text => '', 
description_text => 'Description', url_text => 'URL' } ,
  +            { id =>  5, category_id => 3, language_id => 'de', 'category' => 
'B�cher die Embperl behandeln' } ,
  +            { id =>  6, category_id => 3, language_id => 'en', 'category' => 'Books 
that talk about Embperl' } ,
  +
  +            { id =>  7, category_id => 4, language_id => 'de', 'category' => 
'Artikel �ber Embperl (on- und offline)' } ,
  +            { id =>  8, category_id => 4, language_id => 'en', 'category' => 
'Article about Embperl (on- and offline)' } ,
  +
  +            { id =>  9, category_id => 5, language_id => 'de', 'category' => 
'Syntaxhervorhebungen f�r Texteditoren' } ,
  +            { id => 10, category_id => 5, language_id => 'en', 'category' => 
'Syntaxhighlighting for texteditors' } ,
  +
  +            { id => 11, category_id => 6, language_id => 'de', 'category' => 
'Module und Beispiele f�r Embperl' } ,
  +            { id => 12, category_id => 6, language_id => 'en', 'category' => 
'Modules and examples for Embperl' } ,
  +
  +            { id => 13, category_id => 7, language_id => 'de', 'category' => 'Was 
ist Foobar?!?' } ,
  +            { id => 14, category_id => 7, language_id => 'en', 'category' => 'What 
is foobar?!?' } ,
           ],
       },
   
  @@ -215,6 +292,60 @@
           ],
       '!PrimKey' => 'id',
       },
  +
  +
  +# ----------------------------------------------------------------------
  +# ----------------------------------------------------------------------
  +# ----------------------------------------------------------------------
  +# ----------------------------------------------------------------------
  +# ----------------------------------------------------------------------
  +# TEST
  +# ----------------------------------------------------------------------
  +# ----------------------------------------------------------------------
  +# ----------------------------------------------------------------------
  +# ----------------------------------------------------------------------
  +# ----------------------------------------------------------------------
  +
  +    {
  +    '!Table' => 'foo',
  +    '!Fields' => 
  +        [
  +        'id'                            => 'counter',
  +        'url'                                => 'tinytext',
  +        'category_id'                   => 'integer',
  +        'state'                              => 'integer',
  +        'creationtime'                       => 'datetime',
  +        'modtime'                    => 'datetime',
  +        'user_id'                    => 'integer',
  +        'checkcount'                 => 'integer',
  +     ],
  +    '!PrimKey' => 'id',
  +    '!Init' =>
  +        [
  +        ]
  +    },
  +
  +# ----------------------------------------------------------------------
  +
  +    {
  +   '!Table' => 'footext',
  +    '!Fields' => 
  +        [
  +        'id'                            => 'counter',
  +        'foo_id'                             => 'integer',
  +        'language_id'                   => 'char(2)',
  +        'foo'                                => 'tinytext',
  +        'bar'                                => 'tinytext',
  +        'fnord'                              => 'tinytext',
  +        'fubar'                              => 'tinytext',
  +        'baz'                                => 'tinytext',
  +     ],
  +    '!PrimKey' => 'id',
  +    '!Init' =>
  +        [
  +        ]
  +    },
  +
   
   
   ) ;
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.24.4.73 +3 -2      embperl/test/conf/httpd.conf.src
  
  Index: httpd.conf.src
  ===================================================================
  RCS file: /home/cvs/embperl/test/conf/httpd.conf.src,v
  retrieving revision 1.24.4.72
  retrieving revision 1.24.4.73
  diff -u -r1.24.4.72 -r1.24.4.73
  --- httpd.conf.src    16 Oct 2002 06:48:02 -0000      1.24.4.72
  +++ httpd.conf.src    15 Nov 2002 06:17:55 -0000      1.24.4.73
  @@ -559,13 +559,14 @@
   <Location /eg/web>
   EMBPERL_APPNAME EmbperlWeb
   EMBPERL_OPTIONS 16
  -EMBPERL_DEBUG 0
  +EMBPERL_DEBUG 2285
   EMBPERL_INPUT_ESCMODE 0
   EMBPERL_ALLOW .
   EMBPERL_OBJECT_BASE base.epl
   EMBPERL_OBJECT_APP  epwebapp.pl
   EMBPERL_OBJECT_STOPDIR \"$EPPATH/eg/web\"
   EMBPERL_URIMATCH \"\\.htm.?\$|\\.epl\$|\\.xml\$|\\.pod\$|/$\"
  +EMBPERL_COOKIE_PATH /eg/web
   SetHandler perl-script
   PerlHandler Embperl::Object 
   Options ExecCGI
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to