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
+]: </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
+]: </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} $]
<input type="submit" name="-update_item" value="[= update3
=]">
<input type="submit" name="-delete_item" value="[= delete3
=]">
-[$else$]
+[$ else $]
<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} +]&-edit_item=1&category_id=[+
$fdat{category_id} +]">Edit</A>
+[- $tt = $r->{category_set}{table_type} -]
+<A HREF="add.epl?[+ $tt +]_id=[+ $fdat{"${tt}_id"}
+]&-edit_item=1&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]