bm parsing proposal.prn - top10-ses.de fileprogrammcode der datei: bm_parsing_proposal.pl 1...

26
Programmcode der Datei: bm_parsing_proposal.pl 1 #!/usr/bin/perl -w 2 3 # File: bm_parsing_proposal.pl 4 # Abstract: Datensatz-Eintragung einer neu generierten Lerneinheit 5 # Creator: Juergen Wehling 6 # created: 16.12.01 7 # changed: 02.11.02 8 # updated: 28.05.03 9 10 use CGI qw/:standard :html3/; 11 use DBI; 12 use MIME::Base64 (); 13 use File::Copy; 14 use Net::SMTP; 15 16 17 $datetime = localtime; 18 19 print_form() unless param('obermodulname'); 20 print_save() if param('obermodulname'); 21 exit; 22 23 # die Uebergabe von Parametern an dieses Script erfolgte durch 24 # bm_parsing_proposal.pl?nutzer_id=$nutzer_id ueber ein php4-Script 25 # (integer_proposal_lernobjekt_erzeugen.php4). 26 # der Ausdruck param('nutzer_id') enthaelt die uebergebene Variable 27 # und wird als hidden-field an die Unterprogramme weitergegeben. 28 29 sub print_form { 30 ####################################### Initialisierung 31 $nutzer_id = param('nutzer_id'); 32 my $nutzer_dir; 33 my $uploadpfad; 34 my $schraegstrich; 35 my $generiertes_lernobjekt; 36 my $lernobjekt_proposal; 37 my $obermodul_name; 38 my $modul_proposal; 39 my $liste_der_objekt_ids; 40 my $datei_endung; 41 $modul_proposal = "modul_proposal.txt"; 42 $lernobjekt_proposal = "lernobjekt_proposal.htm"; 43 $datei_endung = ".htm"; 44 $uploadpfad = "/home/mmdb-tu/public_html/mmdb/nutzer/"; 45 $schraegstrich = "/"; 46 #!/usr/bin/perl = $uploadpfad.$nutzer_id.$schraegstrich; 47 $generiertes_lernobjekt = $nutzer_dir.$lernobjekt_proposal; 48 $liste_der_objekt_ids = $nutzer_dir.$modul_proposal; 49 50 ####################################### Erste Objekt-ID auslesen 51 my $erste_objekt_id; 52 open (LISTE_OBJEKT_IDS, "<$liste_der_objekt_ids") 53 or die ("Fehler beim Oeffnen der Eingabedatei Seite: 1 von 26

Upload: lamdien

Post on 17-Aug-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

Programmcode der Datei: bm_parsing_proposal.pl

1 #!/usr/bin/perl -w23 # File: bm_parsing_proposal.pl4 # Abstract: Datensatz-Eintragung einer neu generierten

Lerneinheit5 # Creator: Juergen Wehling6 # created: 16.12.017 # changed: 02.11.028 # updated: 28.05.039

10 use CGI qw/:standard :html3/;11 use DBI;12 use MIME::Base64 ();13 use File::Copy;14 use Net::SMTP;151617 $datetime = localtime;1819 print_form() unless param('obermodulname');20 print_save() if param('obermodulname');21 exit;2223 # die Uebergabe von Parametern an dieses Script erfolgte durch24 # bm_parsing_proposal.pl?nutzer_id=$nutzer_id ueber ein

php4-Script25 # (integer_proposal_lernobjekt_erzeugen.php4).26 # der Ausdruck param('nutzer_id') enthaelt die uebergebene

Variable27 # und wird als hidden-field an die Unterprogramme weitergegeben.2829 sub print_form {30 ####################################### Initialisierung31 $nutzer_id = param('nutzer_id');32 my $nutzer_dir;33 my $uploadpfad;34 my $schraegstrich;35 my $generiertes_lernobjekt;36 my $lernobjekt_proposal;37 my $obermodul_name;38 my $modul_proposal;39 my $liste_der_objekt_ids;40 my $datei_endung;41 $modul_proposal = "modul_proposal.txt";42 $lernobjekt_proposal = "lernobjekt_proposal.htm";43 $datei_endung = ".htm";44 $uploadpfad = "/home/mmdb-tu/public_html/mmdb/nutzer/";45 $schraegstrich = "/";46 #!/usr/bin/perl = $uploadpfad.$nutzer_id.$schraegstrich;47 $generiertes_lernobjekt = $nutzer_dir.$lernobjekt_proposal;48 $liste_der_objekt_ids = $nutzer_dir.$modul_proposal;4950 ####################################### Erste Objekt-ID auslesen51 my $erste_objekt_id;52 open (LISTE_OBJEKT_IDS, "<$liste_der_objekt_ids")53 or die ("Fehler beim Oeffnen der Eingabedatei

Seite: 1 von 26

Programmcode der Datei: bm_parsing_proposal.pl

$liste_der_objekt_ids: $!");54 while($zeile = <LISTE_OBJEKT_IDS>) {55 chomp $zeile;56 push (@erste_id, $zeile);57 }58 close LISTE_OBJEKT_IDS;59 $erste_objekt_id = $erste_id[0];6061 ####################################### Datenbankabfrage ueber

ausgelesene erste Objekt-ID62 $DSN = "DBI:mysql:mmdb";63 $dbh = DBI->connect($DSN, 'root', '')64 or die "Verbindungsaufnahme nicht moeglich";65 $sth = $dbh->prepare("SELECT * FROM objekte WHERE

(objekt_id = '$erste_objekt_id')");66 $sth->execute();67 while ( @result3 = $sth->fetchrow_array ){68 for ($i = 0; $i < @result3; $i++) {69 $objektdaten[$i] = $result3[$i];70 }71 };72 $sth->finish();73 $dbh->disconnect;7475 ####################################### Ausgaberoutine76 print header;77 print start_html(-dtd=>'-//W3C//DTD HTML 3.2//EN',78 -title=>'Daten auf den Server hochladen',79 -script=>{-src=>'../mmdb/hilfe_objekte.js'},80 -meta=>{'language'=>'de',81 'author'=>'Juergen Wehling',82 'copyright'=>'Juergen Wehling',83 'robots'=>'noindex',84 'allow-search'=>'no',85 'description'=>'Lerneinheit-Eintragung',86 'publisher'=>'Juergen Wehling',87 'expires'=>'2002-01-01'},88 -style=>'A:link {text-decoration: none; color:

"#0000CF"}',89 -style=>'A:hover {text-decoration: none; color:

"#FF0000"}',90 -author=>'juergen.wehling\@uni-essen.de',91 -base=>'true',92 -text=>'#300080',93 -bgcolor=>'#FFFFFF',94 -link=>'#0000CF',95 -alink=>'#0020FF',96 -vlink=>'#0080FF',97 -background=>'../mmdb/pictures/backtile.jpg',98 -bgproperties=>'fixed');99 print

100 table({-align=>CENTER, -border=>'0', -width=>'90%'},101 Tr(102 td({-align=>RIGHT}, font({-face=>"arial",

-size=>"2", -color=>"#FF0000"}, b(i('MMDB-TU: Eintragungeiner')), br, b(i('Lerneinheit'))))

Seite: 2 von 26

Programmcode der Datei: bm_parsing_proposal.pl

103 )104 );105 print br,p;106107 print font({-face=>"arial", -size=>"2", -color=>"#300080"},

"Dieses Formular dient der Eintragung von", i('Lerneinheiten'),"in die MMDB-TU, wobei es sich an den Vorgaben von ");

108 print a({-href=>'http://uk.dublincore.org/', -title=>'DublinCore', -target=>'_parent'}, font({-face=>"arial", -size=>"2", =>"#300080"}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, b('Dublin Core'))));

109 print font({-face=>"arial", -size=>"2", -color=>"#300080"}, "orientiert. Bitte beachten Sie, dass diese neu erzeugteLerneinheit noch den Metadatensatz (DCMI) des ersten verwendetenObjekts besitzt. Dieser Datensatz muss an den speziellenthematischen Schwerpunkt der neuen Lerneinheit angepasst werden!Editieren Sie daher bitte diesen Datensatz! Es ist desweitereneine Eintragung in die Attribute-Funktionen-Matrixvorzunehmen!"),br,p;

110 print font({-face=>"arial", -size=>"2", -color=>"#300080"},"Nach abgeschlossener Eingabe wird eine E-Mail mit einerLerneinheit-ID als Bestätigung mit allen zum Modul gehörendenAngaben erzeugt und dem Verfasser zugeschickt. Die E-Mail istgleichzeitig die Bestätigung für eine Aufnahme der neuenLerneinheit in die MMDB-TU.");

111 print br,p;112113 print114 table({-align=>CENTER, -border=>'0', -width=>'100%'},115 start_multipart_form,116117 ####################################### Referentieller Bereich118 Tr(119 td({-align=>CENTER, -bgcolor=>"FFBF00",

-colspan=>"2"}, font({-face=>"arial", -size=>"3",-color=>"#300080"}, a({-name=>'referentiell'}, "ReferentiellerBereich (Eintragung einer Lerneinheit)")))

120 ),121122 Tr(123 td({-align=>RIGHT, -valign=>TOP, -bgcolor=>"FFBF00",

-width=>'20%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2",-color=>"#300080"},a({-href=>"javascript:fenster_thema('../mmdb/hilfe/thema.htm')"},"Thema")))),"&nbsp;"),

124 td({-align=>LEFT, -width=>'80%'}, "&nbsp;",textfield(-name=>'thema', -size=>'40',-value=>$objektdaten[1])),

125 ),126127 Tr(128 td({-align=>RIGHT, -valign=>TOP, -bgcolor=>"FFBF00",

-width=>'20%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2",-color=>"#300080"},

Seite: 3 von 26

Programmcode der Datei: bm_parsing_proposal.pl

a({-href=>"javascript:fenster_zuordnung('../mmdb/hilfe/zuordnung.htm')"},"Zuordnung")))),"&nbsp;"),

129 td({-align=>LEFT, -width=>'80%'}, "&nbsp;",popup_menu(-name=>'zuordnung', -value=>[$objektdaten[2],'keine', 'Stoffumsatz', 'Energieumsatz', 'Informationsumsatz','Stoff- und Energieumsatz', 'Stoff- und Informationsumsatz','Energie- und Informationsumsatz', 'alles'])),

130 ),131132 Tr(133 td({-align=>RIGHT, -valign=>TOP, -bgcolor=>"FFBF00",

-width=>'20%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2",-color=>"#300080"},a({-href=>"javascript:fenster_beschreibung('../mmdb/hilfe/beschreibung.htm')"},"Beschreibung")))),"&nbsp;"),

134 td({-align=>LEFT, -width=>'80%'}, "&nbsp;",textarea(-name=>'beschreibung', -rows=>7, -cols=>40,-wrap=>'physical', -value=>$objektdaten[3])),

135 ),136137 Tr(138 td({-align=>RIGHT, -valign=>TOP, -bgcolor=>"FFBF00",

-width=>'20%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2",-color=>"#300080"},a({-href=>"javascript:fenster_keywords('../mmdb/hilfe/keywords.htm')"},"Keywords")))),"&nbsp;"),

139 td({-align=>LEFT, -width=>'80%'}, "&nbsp;",textfield(-name=>'keywords', -size=>'40',-value=>$objektdaten[4])),

140 ),141142 Tr(143 td({-align=>RIGHT, -valign=>TOP, -bgcolor=>"FFBF00",

-width=>'20%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2","javas=>"#300080"},a({-href=>"javascript:fenster_mitarbeiter('../mmdb/hilfe/mitarbeiter.htm')"},"Mitarbeiter")))),"&nbsp;"),

144 td({-align=>LEFT, -width=>'80%'}, "&nbsp;",textfield(-name=>'mitarbeiter', -size=>'40',-value=>$objektdaten[5])),

145 ),146147 Tr(148 td({-align=>RIGHT, -valign=>TOP, -bgcolor=>"FFBF00",

-width=>'20%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2",-color=>"#300080"},a({-href=>"javascript:fenster_herausgeber('../mmdb/hilfe/herausgeber.htm')"},"Herausgeber")))),"&nbsp;"),

149 td({-align=>LEFT, -width=>'80%'}, "&nbsp;",textfield(-name=>'herausgeber', -size=>'40',-value=>$objektdaten[6])),

150 ),

Seite: 4 von 26

Programmcode der Datei: bm_parsing_proposal.pl

151152 Tr(153 td({-align=>RIGHT, -valign=>TOP, -bgcolor=>"FFBF00",

-width=>'20%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2",-color=>"#300080"},a({-href=>"javascript:fenster_quellen('../mmdb/hilfe/quellen.htm')"},"Quellen")))),"&nbsp;"),

154 td({-align=>LEFT, -width=>'80%'}, "&nbsp;",textarea(-name=>'quellen', -rows=>2, -cols=>40,-wrap=>'physical', -value=>$objektdaten[7])),

155 ),156157 Tr(158 td({-align=>RIGHT, -valign=>TOP, -bgcolor=>"FFBF00",

-width=>'20%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2",-color=>"#300080"},a({-href=>"javascript:fenster_hyperlinks('../mmdb/hilfe/hyperlinks.htm')"},"Hyperlinks")))),"&nbsp;"),

159 td({-align=>LEFT, -width=>'80%'}, "&nbsp;",textfield(-name=>'hyperlinks', -size=>'40',-value=>$objektdaten[8])),

160 ),161162 Tr(163 td({-align=>RIGHT, -valign=>TOP, -bgcolor=>"FFBF00",

-width=>'20%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2",-color=>"#300080"},a({-href=>"javascript:fenster_bezug('../mmdb/hilfe/bezug.htm')"},"Bezug")))),"&nbsp;"),

164 td({-align=>LEFT, -width=>'80%'}, "&nbsp;",textarea(-name=>'bezug', -rows=>2, -cols=>40, -wrap=>'physical',-value=>$objektdaten[9])),

165 ),166167 Tr(168 td({-align=>RIGHT, -valign=>TOP, -bgcolor=>"FFBF00",

-width=>'20%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2",-color=>"#300080"},a({-href=>"javascript:fenster_sprache('../mmdb/hilfe/sprache.htm')"},"Sprache")))),"&nbsp;"),

169 td({-align=>LEFT, -width=>'80%'}, "&nbsp;",popup_menu(-name=>'sprache', -value=>[$objektdaten[10], 'de','en', 'fr'])),

170 ),171172 Tr(173 td({-align=>RIGHT, -valign=>TOP, -bgcolor=>"FFBF00",

-width=>'20%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2",-color=>"#300080"},a({-href=>"javascript:fenster_copyright('../mmdb/hilfe/copyright.htm')"},"Copyright")))),"&nbsp;"),

Seite: 5 von 26

Programmcode der Datei: bm_parsing_proposal.pl

174 td({-align=>LEFT, -width=>'80%'}, "&nbsp;",textfield(-name=>'copyright', -size=>'40',-value=>$objektdaten[11])),

175 ),176177 Tr(178 td({-colspan=>"2"}, "&nbsp;")179 ),180181 ####################################### Relationaler Bereich182 Tr(183 td({-align=>CENTER, -bgcolor=>"FFBF00",

-colspan=>"2"}, font({-face=>"arial", -size=>"3",-color=>"#300080"}, "Relationaler Bereich (Eintragung einerLerneinheit)"))

184 ),185186 Tr(187 td({-align=>RIGHT, -valign=>TOP, -bgcolor=>"FFBF00",

-width=>'20%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2",-color=>"#300080"},a({-href=>"javascript:fenster_genre('../mmdb/hilfe/genre.htm')"},"Genre")))),"&nbsp;"),

188 td({-align=>LEFT, -width=>'80%'}, "&nbsp;",popup_menu(-name=>'genre', -value=>[ $objektdaten[12], 'kein','Computerprogramm', 'Anleitung/Manual','Artikel/Aufsatz/Bericht/Thesenpapier'.'Biographie','Gesetz/Verordnung/Konvention/Vertrag','Illustration/Veranschaulichung','Index/Katalog/Datenbank/Bibliographie','Kurs/Onlinekurs/Virtuelles Seminar','Lehr-/Lernmittel/Aufgabensammlung','Experiment/Versuch/Simulation', 'Produktinformation','Projekt', 'Stellungnahme/Kommentar', 'Expertise/Gutachten'])),

189 ),190191 Tr(192 td({-align=>RIGHT, -valign=>TOP, -bgcolor=>"FFBF00",

-width=>'20%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2",-color=>"#300080"}, "Anmerkungen"))),"&nbsp;"),

193 td({-align=>LEFT, -width=>'80%'}, "&nbsp;",textarea(-name=>'anmerkungen', -rows=>7, -cols=>40,-wrap=>'physical')),

194 ),195196 Tr(197 td({-colspan=>"2"}, "&nbsp;")198 ),199200 #######################################

Attribute-Funktionen-Matrix201 Tr(202 td({-align=>CENTER, -bgcolor=>"FFBF00",

-colspan=>"2"}, font({-face=>"arial", -size=>"3",

Seite: 6 von 26

Programmcode der Datei: bm_parsing_proposal.pl

-color=>"#300080"}, a({-name=>'curricular'},"Attribute-Funktionen-Matrix")))

203 ),204205 Tr(206 td({-align=>RIGHT, -valign=>TOP, -bgcolor=>"FFBF00",

-width=>'20%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2",-color=>"#300080"}, "Anmerkungen"))),"&nbsp;"),

207 td({-align=>LEFT, -width=>'80%'}, "&nbsp;",textarea(-name=>'afm_anmerkungen', -rows=>7, -cols=>40,-wrap=>'physical')),

208 ),209210 Tr(211 td({-align=>RIGHT, -bgcolor=>"FFBF00",

-width=>'20%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2",-color=>"#300080"},a({-href=>"javascript:fenster_felder('../mmdb/hilfe/felder.htm')"},"Felder")))),"&nbsp;"),

212 td({-align=>LEFT, -width=>'80%'}, "&nbsp;",popup_menu(-name=>'felder', -value=>['alle Felder', 'Versorgungund Entsorgung', 'Transport und Verkehr', 'Information undKommunikation', 'Automation'])),

213 ),214215 Tr(216 td({-align=>RIGHT, -valign=>TOP, -bgcolor=>"FFBF00",

-width=>'20%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2",-color=>"#300080"}, "Verfahren"))),"&nbsp;"),

217 td({-align=>LEFT, -width=>'80%'}, "&nbsp;",textfield(-name=>'verfahren', -size=>'40')),

218 ),219220 Tr(221 td({-colspan=>"2"}, "&nbsp;")222 ),223224 ####################################### Genereller Bereich225 Tr(226 td({-align=>CENTER, -bgcolor=>"FFBF00",

-colspan=>"2"}, font({-face=>"arial", -size=>"3",-color=>"#300080"}, "Genereller Bereich (Eintragung einerLerneinheit)"))

227 ),228229 Tr(230 td({-align=>RIGHT, -valign=>TOP, -bgcolor=>"FFBF00",

-width=>'25%'}, font({-face=>"arial", -size=>"2",-color=>"#300080"}, (font ({-face=>"arial", -size=>"2",-color=>"#300080"},a({-href=>"javascript:fenster_obermodulname('../mmdb/hilfe/obermodulname.htm')"},"Modulname"), sup('*)'), ))),"&nbsp;"),

231 td({-align=>LEFT, -width=>'75%'}, "&nbsp;",

Seite: 7 von 26

Programmcode der Datei: bm_parsing_proposal.pl

textfield(-name=>'obermodulname', -size=>'30'), hidden(-name=>'user_id', -value=>param('nutzer_id')),font({-face=>"arial", -size=>"3", -color=>"#300080"},b('.htm'))),

232 ),233234 ################################################################

##235236 Tr(237 td({-align=>LEFT, -colspan=>"2"},

font({-face=>"arial", -size=>"2", -color=>"#300080"}, sup('*)'),"Eine Angabe in diesem Feld ist unbedingt erforderlich!"))

238 ),239240 );241242243 print br,p;244245 print table({-align=>CENTER, -border=>'0', -width=>'80%'},246 Tr(247 td({-align=>CENTER, -width=>'50%'},

submit(-name=>'senden', -label=>'Daten übertragen'))248 ),249250 );251 end_form,252 print br,p,253254 table({-align=>CENTER, -border=>'0', -width=>'80%'},255256 Tr(257 td({-align=>RIGHT, -width=>'40%'},

img({-src=>'../mmdb/pictures/mail2.gif'}), "&nbsp;"),258 td({-align=>LEFT, -width=>'60%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"}, (font({-face=>"arial", -size=>"2", -color=>"#300080"}, "&nbsp;",a({-href=>"mailto:webmaster\@mmdb-tu.de?Lerneinheit-Eintragung"}, "webmaster\@mmdb-tu.de"))))),

259 ),260 );261 print end_html;262 }263 ####################################### Ende von Unterprogramm

print_form264265 sub print_save {266 ####################################### Abfangen eines fehlenden

oder fehlerhaften Modulnamens267 $objektdaten[1] = param('thema');268 $objektdaten[2] = param('zuordnung');269 $objektdaten[3] = param('beschreibung');270 $objektdaten[4] = param('keywords');271 $objektdaten[5] = param('mitarbeiter');272 $objektdaten[6] = param('herausgeber');

Seite: 8 von 26

Programmcode der Datei: bm_parsing_proposal.pl

273 $objektdaten[7] = param('quellen');274 $objektdaten[8] = param('hyperlinks');275 $objektdaten[9] = param('bezug');276 $objektdaten[10] = param('sprache');277 $objektdaten[11] = param('copyright');278 $objektdaten[12] = param('genre');279 $felder = param('felder');280 $verfahren = param('verfahren');281 $afm_anmerkungen = param('afm_anmerkungen');282283 $nutzer_id = param('user_id');284 $anmerkungen = param('anmerkungen');285 $obermodulname = param('obermodulname');286 # der folgende regulaere Ausdruck prueft auf Vorkommen eines

Punktes im Dateinamen und auf unzulaessige sonderzeichen derdeutschen sprache

287 if ((!$obermodulname) || ($obermodulname =~ m/[.]/) ||($obermodulname =~ m/[A-ZÄÖÜäöüß]/)){

288 print header,289 start_html(-dtd=>'-//W3C//DTD HTML 3.2//EN',290 -title=>'Fehlender Modulname',291 -text=>'#000000',292 -bgcolor=>'#FFFFFF',293 -link=>'#FF0000',294 -alink=>'#FF0000',295 -vlink=>'#FF0000',296 -background=>'../mmdb/pictures/backtile.jpg',297 -bgproperties=>'fixed');298 print br,p;299300 print301 table({-align=>CENTER, -border=>'0', -width=>'90%'},302303 Tr(304 td({-align=>CENTER, -colspan=>"2"},

font({-face=>"arial", -size=>"4", -color=>"#FF0000"}, i('Eswurde kein oder ein fehlerhafter Dateiname für eine Eintragungder neuen Lerneinheit in die MMDB-TU angegeben! Beachten Siebitte die Kleinschreibung und vermeiden Sie deutsche Zeichen wieä, ü, ö und ß!')), br, p, font({-face=>"arial", -size=>"3",-color=>"#300080"}, "Der Vorgang wurde abgebrochen - für eineerneute Übertragung nutzen Sie bitte den Zurück-Button IhresBrowsers."))

305 ),306 );307 print br,p;308 print309 table({-align=>CENTER, -border=>'0', -width=>'80%'},310311 Tr(312 td({-align=>RIGHT, -width=>'40%'},

img({-src=>'../mmdb/pictures/mail2.gif'}), "&nbsp;"),313 td({-align=>LEFT, -width=>'60%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"}, (font({-face=>"arial", -size=>"2", -color=>"#300080"}, "&nbsp;",a({-href=>"mailto:webmaster\@mmdb-tu.de?Lerneinheit-Eintragung"}

Seite: 9 von 26

Programmcode der Datei: bm_parsing_proposal.pl

, "webmaster\@mmdb-tu.de"))))),314 ),315 );316317 print end_html;318 return;319 };320321 ####################################### Nachsehen ob der

Dateiname schon innerhalb der Objekte der MMDB-TU existiert322 my $datei_endung;323 $datei_endung = ".htm";324 $obermodulname_htm = $obermodulname.$datei_endung;325 $DSN = "DBI:mysql:mmdb";326 $dbh = DBI->connect($DSN, 'root', '')327 or die "Verbindungsaufnahme nicht moeglich";328 $sth = $dbh->prepare("SELECT objekt FROM objekte");329 $sth->execute();330 $match = "false";331 while ( @result = $sth->fetchrow_array ){332 if ($result[0] eq $obermodulname_htm){333 $match = "true" ;}334 };335 $sth->finish();336 $dbh->disconnect;337338 if ($match eq "true") {339 print header,340 start_html(-dtd=>'-//W3C//DTD HTML 3.2//EN',341 -title=>'Objekt existiert bereits',342 -text=>'#000000',343 -bgcolor=>'#FFFFFF',344 -link=>'#FF0000',345 -alink=>'#FF0000',346 -vlink=>'#FF0000',347 -background=>'../mmdb/pictures/backtile.jpg',348 -bgproperties=>'fixed');349 print br,p;350351 print352 table({-align=>CENTER, -border=>'0', -width=>'90%'},353354 Tr(355 td({-align=>CENTER, -colspan=>"2"},

font({-face=>"arial", -size=>"4", -color=>"#FF0000"}, i('Derangegebene Dateiname existiert bereits innerhalb der Objekte derMMDB-TU!')), br, p, font({-face=>"arial", -size=>"3",-color=>"#300080"}, "Der Vorgang wurde abgebrochen - bitte gebenSie einen anderen Dateinamen an."))

356 ),357 );358 print br,p;359 print360 table({-align=>CENTER, -border=>'0', -width=>'80%'},361362 Tr(

Seite: 10 von 26

Programmcode der Datei: bm_parsing_proposal.pl

363 td({-align=>RIGHT, -width=>'40%'},img({-src=>'../mmdb/pictures/mail2.gif'}), "&nbsp;"),

364 td({-align=>LEFT, -width=>'60%'},font({-face=>"arial", -size=>"2", -color=>"#300080"}, (font({-face=>"arial", -size=>"2", -color=>"#300080"}, "&nbsp;",a({-href=>"mailto:webmaster\@mmdb-tu.de?Lerneinheit-Eintragung"}, "webmaster\@mmdb-tu.de"))))),

365 ),366 );367368 print end_html;369 return;370 };371372 ####################################### Nachsehen ob der

Dateiname schon innerhalb der Basismodule der MMDB-TU existiert373 $datei_endung = ".htm";374 $obermodulname_htm = $obermodulname.$datei_endung;375 $DSN = "DBI:mysql:mmdb";376 $dbh = DBI->connect($DSN, 'root', '')377 or die "Verbindungsaufnahme nicht moeglich";378 $sth = $dbh->prepare("SELECT basismodul FROM

basismodule");379 $sth->execute();380 $match = "false";381 while ( @result = $sth->fetchrow_array ){382 if ($result[0] eq $obermodulname_htm){383 $match = "true" ;}384 };385 $sth->finish();386 $dbh->disconnect;387388 if ($match eq "true") {389 print header,390 start_html(-dtd=>'-//W3C//DTD HTML 3.2//EN',391 -title=>'Basismodul existiert bereits',392 -text=>'#000000',393 -bgcolor=>'#FFFFFF',394 -link=>'#FF0000',395 -alink=>'#FF0000',396 -vlink=>'#FF0000',397 -background=>'../mmdb/pictures/backtile.jpg',398 -bgproperties=>'fixed');399 print br,p;400401 print402 table({-align=>CENTER, -border=>'0', -width=>'90%'},403404 Tr(405 td({-align=>CENTER, -colspan=>"2"},

font({-face=>"arial", -size=>"4", -color=>"#FF0000"}, i('Derangegebene Dateiname existiert bereits innerhalb der Basismoduleder MMDB-TU!')), br, p, font({-face=>"arial", -size=>"3",-color=>"#300080"}, "Der Vorgang wurde abgebrochen - bitte gebenSie einen anderen Dateinamen an."))

406 ),

Seite: 11 von 26

Programmcode der Datei: bm_parsing_proposal.pl

407 );408 print br,p;409 print410 table({-align=>CENTER, -border=>'0', -width=>'80%'},411412 Tr(413 td({-align=>RIGHT, -width=>'40%'},

img({-src=>'../mmdb/pictures/mail2.gif'}), "&nbsp;"),414 td({-align=>LEFT, -width=>'60%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"}, (font({-face=>"arial", -size=>"2", -color=>"#300080"}, "&nbsp;",a({-href=>"mailto:webmaster\@mmdb-tu.de?Lerneinheit-Eintragung"}, "webmaster\@mmdb-tu.de"))))),

415 ),416 );417418 print end_html;419 return;420 };421422 ####################################### Nachsehen ob der

Dateiname schon innerhalb der Obermodule der MMDB-TU existiert423 $datei_endung = ".htm";424 $obermodulname_htm = $obermodulname.$datei_endung;425 $DSN = "DBI:mysql:mmdb";426 $dbh = DBI->connect($DSN, 'root', '')427 or die "Verbindungsaufnahme nicht moeglich";428 $sth = $dbh->prepare("SELECT obermodul FROM obermodule");429 $sth->execute();430 $match = "false";431 while ( @result = $sth->fetchrow_array ){432 if ($result[0] eq $obermodulname_htm){433 $match = "true" ;}434 };435 $sth->finish();436 $dbh->disconnect;437438 if ($match eq "true") {439 print header,440 start_html(-dtd=>'-//W3C//DTD HTML 3.2//EN',441 -title=>'Obermodul existiert bereits',442 -text=>'#000000',443 -bgcolor=>'#FFFFFF',444 -link=>'#FF0000',445 -alink=>'#FF0000',446 -vlink=>'#FF0000',447 -background=>'../mmdb/pictures/backtile.jpg',448 -bgproperties=>'fixed');449 print br,p;450451 print452 table({-align=>CENTER, -border=>'0', -width=>'90%'},453454 Tr(455 td({-align=>CENTER, -colspan=>"2"},

font({-face=>"arial", -size=>"4", -color=>"#FF0000"}, i('Der

Seite: 12 von 26

Programmcode der Datei: bm_parsing_proposal.pl

angegebene Dateiname existiert bereits innerhalb der Obermoduleder MMDB-TU!')), br, p, font({-face=>"arial", -size=>"3",-color=>"#300080"}, "Der Vorgang wurde abgebrochen - bitte gebenSie einen anderen Dateinamen an."))

456 ),457 );458 print br,p;459 print460 table({-align=>CENTER, -border=>'0', -width=>'80%'},461462 Tr(463 td({-align=>RIGHT, -width=>'40%'},

img({-src=>'../mmdb/pictures/mail2.gif'}), "&nbsp;"),464 td({-align=>LEFT, -width=>'60%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"}, (font({-face=>"arial", -size=>"2", -color=>"#300080"}, "&nbsp;",a({-href=>"mailto:webmaster\@mmdb-tu.de?Lerneinheit-Eintragung"}, "webmaster\@mmdb-tu.de"))))),

465 ),466 );467468 print end_html;469 return;470 };471472 ####################################### Nachsehen ob der

Dateiname schon innerhalb der Hypermodule der MMDB-TU existiert473 $datei_endung = ".htm";474 $obermodulname_htm = $obermodulname.$datei_endung;475 $DSN = "DBI:mysql:mmdb";476 $dbh = DBI->connect($DSN, 'root', '')477 or die "Verbindungsaufnahme nicht moeglich";478 $sth = $dbh->prepare("SELECT hypermodul FROM

hypermodule");479 $sth->execute();480 $match = "false";481 while ( @result = $sth->fetchrow_array ){482 if ($result[0] eq $obermodulname_htm){483 $match = "true" ;}484 };485 $sth->finish();486 $dbh->disconnect;487488 if ($match eq "true") {489 print header,490 start_html(-dtd=>'-//W3C//DTD HTML 3.2//EN',491 -title=>'Hypermodul existiert bereits',492 -text=>'#000000',493 -bgcolor=>'#FFFFFF',494 -link=>'#FF0000',495 -alink=>'#FF0000',496 -vlink=>'#FF0000',497 -background=>'../mmdb/pictures/backtile.jpg',498 -bgproperties=>'fixed');499 print br,p;500

Seite: 13 von 26

Programmcode der Datei: bm_parsing_proposal.pl

501 print502 table({-align=>CENTER, -border=>'0', -width=>'90%'},503504 Tr(505 td({-align=>CENTER, -colspan=>"2"},

font({-face=>"arial", -size=>"4", -color=>"#FF0000"}, i('Derangegebene Dateiname existiert bereits innerhalb der Hypermoduleder MMDB-TU!')), br, p, font({-face=>"arial", -size=>"3",-color=>"#300080"}, "Der Vorgang wurde abgebrochen - bitte gebenSie einen anderen Dateinamen an."))

506 ),507 );508 print br,p;509 print510 table({-align=>CENTER, -border=>'0', -width=>'80%'},511512 Tr(513 td({-align=>RIGHT, -width=>'40%'},

img({-src=>'../mmdb/pictures/mail2.gif'}), "&nbsp;"),514 td({-align=>LEFT, -width=>'60%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"}, (font({-face=>"arial", -size=>"2", -color=>"#300080"}, "&nbsp;",a({-href=>"mailto:webmaster\@mmdb-tu.de?Lerneinheit-Eintragung"}, "webmaster\@mmdb-tu.de"))))),

515 ),516 );517518 print end_html;519 return;520 };521522 ####################################### Kopie des Lernobjekts

unter anderem Namen anfertigen523 # $nutzer_id wurde bereits als Parameter an das cgi-script

uebergeben524 my $nutzer_dir;525 my $uploadpfad;526 my $schraegstrich;527 my $generiertes_lernobjekt;528 my $lernobjekt_proposal;529 my $obermodul_name;530 my $modul_proposal;531 my $liste_der_objekt_ids;532 my $attribute;533 my $funktionen;534 $modul_proposal = "modul_proposal.txt";535 $lernobjekt_proposal = "lernobjekt_proposal.htm";536 $datei_endung = ".htm";537 $uploadpfad = "/home/mmdb-tu/public_html/mmdb/nutzer/";538 $schraegstrich = "/";539 $nutzer_dir = $uploadpfad.$nutzer_id.$schraegstrich;540 $generiertes_lernobjekt = $nutzer_dir.$lernobjekt_proposal;541 $obermodul_name = $nutzer_dir.$obermodulname_htm;542 copy ($generiertes_lernobjekt, $obermodul_name);543 $liste_der_objekt_ids = $nutzer_dir.$modul_proposal;544

Seite: 14 von 26

Programmcode der Datei: bm_parsing_proposal.pl

545 ################# a-f-matrix aus der felder-angabe eruieren546 if (($felder eq "alle Felder") || ($felder eq "Automation")){547 $attribute = "alle Attribute";548 $funktionen = "alle Funktionen";549 };550 if ($felder eq "Versorgung und Entsorgung"){551 $attribute = "Stoff- und Energieumsatz";552 $funktionen = "Wandlung";553 };554 if ($felder eq "Transport und Verkehr"){555 $attribute = "Stoff- und Energieumsatz";556 $funktionen = "Transport und Speicherung";557 };558 if ($felder eq "Information und Kommunikation"){559 $attribute = "Informationsumsatz";560 $funktionen = "alle Funktionen";561 };562563 ################# 6-stellige Obermodul-ID generieren und ein

Vorhandensein in der Datenbank prüfen564 $DSN = "DBI:mysql:mmdb";565 $dbh = DBI->connect($DSN, 'root', '')566 or die "Verbindungsaufnahme nicht moeglich";567 nochmal:568 $zufallsobermodul_id = int(rand(1000000));569 $sth = $dbh->prepare("SELECT obermodul_id FROM

obermodule");570 $sth->execute();571 $match = "false";572 while ( @result = $sth->fetchrow_array ){573 if ($result[0] eq $zufallsobermodul_id){574 $match = "true" ;}575 };576 $sth->finish();577 if ($match eq "true") {578 goto nochmal;579 }580 elsif ($match eq "false") {581 $dbh->disconnect;582 };583584 ####################################### einfachen Identifier

erzeugen585 $dc_identifier = $zufallsobermodul_id * $zufallsobermodul_id;586587 ####################################### Liste der Objekt-IDs

auslesen und als String speichern588 open (LISTE_OBJEKT_IDS, "<$liste_der_objekt_ids")589 or die ("Fehler beim Oeffnen der Eingabedatei

$liste_der_objekt_ids: $!");590 while($zeile = <LISTE_OBJEKT_IDS>) {591 chomp $zeile;592 push (@liste, $zeile);593 }594 close LISTE_OBJEKT_IDS;595 $objekt_ids = join (',',@liste);

Seite: 15 von 26

Programmcode der Datei: bm_parsing_proposal.pl

596597 ####################################### Datenbankabfrage fuer

bestehende Eintragsdaten598 $DSN = "DBI:mysql:mmdb";599 $dbh = DBI->connect($DSN, 'root', '')600 or die "Verbindungsaufnahme nicht moeglich";601 $sth = $dbh->prepare("SELECT * FROM nutzer WHERE

nutzer_id = '$nutzer_id'");602 $sth->execute();603 while ( @result = $sth->fetchrow_array ){604 for ($i = 0; $i < @result; $i++) {605 $nutzerdaten[$i] = $result[$i];606 }607 };608 $sth->finish();609 $dbh->disconnect;610611 $vorname = $nutzerdaten[4];612 $nachname = $nutzerdaten[3];613 $e_mail = $nutzerdaten[10];614 $format = "text/html";615616 ####################################### Bestaetigungsseite

ausgeben617 print header,618 start_html(-dtd=>'-//W3C//DTD HTML 3.2//EN',619 -title=>'Bestaetigungsseite für den Eintrag einer

neuen Lerneinheit',620 -text=>'#000000',621 -bgcolor=>'#FFFFFF',622 -link=>'#FF0000',623 -alink=>'#FF0000',624 -vlink=>'#FF0000',625 -background=>'../mmdb/pictures/backtile.jpg',626 -bgproperties=>'fixed');627 print p;628629 print630 table({-align=>CENTER, -border=>'0', -width=>'90%'},631632 Tr(633 td({-align=>CENTER, -colspan=>"2"},

####({-face=>"arial", -size=>"3", -color=>"#300080"}, "Für dieübertragene Lerneinheit wurden die folgenden Daten zusammen mitder Lerneinheit-ID"), font({-face=>"arial", -size=>"3",-color=>"#FF0000"}, $zufallsobermodul_id), font({-face=>"arial",-size=>"3", -color=>"#300080"}, " in die MMDB-TU geschrieben:"))

634 ),635636 Tr(637 td({-colspan=>"2"}, "&nbsp;")638 ),639640 Tr(641 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},

Seite: 16 von 26

Programmcode der Datei: bm_parsing_proposal.pl

"Thema"),"&nbsp;"),642 td({-align=>LEFT, -width=>'80%'},

font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$objektdaten[1]))

643 ),644645 Tr(646 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Verfasser"),"&nbsp;"),

647 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"}, $vorname,"" ,$nachname))

648 ),649650 Tr(651 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"E-Mail"),"&nbsp;"),

652 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"}, $e_mail))

653 ),654655 Tr(656 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Schlüsselwörter"),"&nbsp;"),

657 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$objektdaten[4]))

658 ),659660 Tr(661 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Beschreibung"),"&nbsp;"),

662 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$objektdaten[3]))

663 ),664665 Tr(666 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Herausgeber"),"&nbsp;"),

667 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$objektdaten[6]))

668 ),669670 Tr(671 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Mitarbeiter"),"&nbsp;"),

672 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},

Seite: 17 von 26

Programmcode der Datei: bm_parsing_proposal.pl

$objektdaten[5]))673 ),674675 Tr(676 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},]))jekt),"&nbsp;"),

677 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$datetime))

678 ),679680 Tr(681 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Genre"),"&nbsp;"),

682 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$objektdaten[12]))

683 ),684685 Tr(686 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Format"),"&nbsp;"),

687 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"}, $format))

688 ),689690 Tr(691 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Identifier"),"&nbsp;"),

692 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$dc_identifier))

693 ),694695 Tr(696 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Quellen"),"&nbsp;"),

697 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$objektdaten[7]))

698 ),699700 Tr(701 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Sprache"),"&nbsp;"),

702 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$objektdaten[10]))

703 ),704

Seite: 18 von 26

Programmcode der Datei: bm_parsing_proposal.pl

705 Tr(706 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Bezug"),"&nbsp;"),

707 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$objektdaten[9]))

708 ),709710 Tr(711 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Links"),"&nbsp;"),

712 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$objektdaten[8]))

713 ),714715 Tr(716 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Zuordnung"),"&nbsp;"),

717 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$objektdaten[2]))

718 ),719720 Tr(721 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Copyright"),"&nbsp;"),

722 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},( Tr [11]))

723 ),724725 Tr(726 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Lerneinheit"),"&nbsp;"),

727 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$obermodulname_htm))

728 ),729730 Tr(731 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Objekt-IDs"),"&nbsp;"),

732 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$objekt_ids))

733 ),734735 Tr(736 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

Seite: 19 von 26

Programmcode der Datei: bm_parsing_proposal.pl

font({-face=>"arial", -size=>"2", -color=>"#300080"},b("Lerneinheit-ID")),"&nbsp;"),

737 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},b($zufallsobermodul_id)))

738 ),739740 Tr(741 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Anmerkungen"),"&nbsp;"),

742 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$anmerkungen))

743 ),744745 Tr(746 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Zeitstempel"),"&nbsp;"),

747 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$datetime))

748 ),749750 Tr(751 td({-colspan=>"2"}, "&nbsp;")752 ),753754 Tr(755 td({-align=>CENTER, -colspan=>"2"},

font({-face=>"arial", -size=>"2", -color=>"#300080"},i('Zusätzlich wurden die folgenden Eintragungen in dieAttribute-Funktionen-Matrix vorgenommen:')))

756 ),757758 Tr(759 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Attribute"),"&nbsp;"),

760 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$attribute))

761 ),762763 Tr(764 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Funktionen"),"&nbsp;"),

765 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$funktionen))

766 ),767768 Tr(769 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

Seite: 20 von 26

Programmcode der Datei: bm_parsing_proposal.pl

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Felder"),"&nbsp;"),

770 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"}, $felder))

771 "&nbsp;"" 772773 Tr(774 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Verfahren"),"&nbsp;"),

775 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$verfahren))

776 ),777778 Tr(779 td({-align=>RIGHT, -valign=>TOP, -width=>'20%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"},"Anmerkungen"),"&nbsp;"),

780 td({-align=>LEFT, -width=>'80%'},font({-face=>"arial", -size=>"2", -color=>"#FF0000"},$afm_anmerkungen))

781 ),782783 );784785 print br,p;786787 print788 table({-align=>CENTER, -border=>'0', -width=>'80%'},789790 Tr(791 td({-align=>CENTER}, font({-face=>"arial",

-size=>"2", -color=>"#FF0000"}, b("Bitte notieren Sie die obenangegebene Lerneinheit-ID!")), font({-face=>"arial", -size=>"2",-color=>"#300080"}, b("Diese Zahl wird benötigt, wenn Sie spätereine Änderung im Beschreibungssatz oder innerhalb derAttribute-Funktionen-Matrix dieser Lerneinheit vornehmenmöchten!", br, p, "Vielen Dank für die Nutzung derMultiMediaDatenBank für den Technikunterricht!")))

792 ),793 );794795 print br,p;796797 print798 table({-align=>CENTER, -border=>'0', -width=>'80%'},799800 Tr(801 td({-align=>RIGHT, -width=>'40%'},

img({-src=>'../mmdb/pictures/mail2.gif'}), "&nbsp;"),802 td({-align=>LEFT, -width=>'60%'},

font({-face=>"arial", -size=>"2", -color=>"#300080"}, (font({-face=>"arial", -size=>"2", -color=>"#300080"}, "&nbsp;",a({-href=>"mailto:webmaster\@mmdb-tu.de?Lerneinheit-Eintragung:Bestätigung"}, "webmaster\@mmdb-tu.de"))))),

Seite: 21 von 26

Programmcode der Datei: bm_parsing_proposal.pl

803 ),804 );805 print end_html;806807 ####################################### Datenbankabfrage fuer

bestehende Eintragsdaten808 $DSN = "DBI:mysql:mmdb";809 $dbh = DBI->connect($DSN, 'root', '')810 or die "Verbindungsaufnahme nicht moeglich";811 $sth = $dbh->prepare("SELECT * FROM nutzer WHERE

nutzer_id = '$nutzer_id'");812 $sth->execute();813 while ( @result = $sth->fetchrow_array ){814 for ($i = 0; $i < @result; $i++) {815 $nutzerdaten[$i] = $result[$i];816 }817 };818 $sth->finish();819 $dbh->disconnect;820821 $vorname = $nutzerdaten[4];822 $nachname = $nutzerdaten[3];823 $e_mail = $nutzerdaten[10];824825 ####################################### Daten in MySql-Datenbank

mmdb obermodule sichern826 $DSN = "DBI:mysql:mmdb";827 $dbh = DBI->connect($DSN, 'root', '')828 or die "Verbindungsaufnahme nicht moeglich";829 $dbh->do("INSERT INTO obermodule (thema, zuordnung,

beschreibung, keywords, mitarbeiter, herausgeber, quellen,hyperlinks, bezug, sprache, copyright, genre, anmerkungen,obermodul, objekt_ids, obermodul_id, nutzer_id) VALUES('$objektdaten[1]', '$objektdaten[2]', '$objektdaten[3]','$objektdaten[4]', '$objektdaten[5]', '$objektdaten[6]','$objektdaten[7]', '$objektdaten[8]', '$objektdaten[9]','$objektdaten[10]', '$objektdaten[11]', '$objektdaten[12]','$anmerkungen', '$obermodulname_htm', '$objekt_ids','$zufallsobermodul_id', '$nutzer_id')");

830 $dbh->disconnect;831832 ####################################### Daten in MySql-Datenbank

mmdb af_matrix sichern833 $DSN = "DBI:mysql:mmdb";834 $dbh = DBI->connect($DSN, 'root', '')835 or die "Verbindungsaufnahme nicht moeglich";836 $dbh->do("INSERT INTO af_matrix (attribute, funktionen, felder,

verfahren, anmerkungen, obermodul_id) VALUES ('$attribute','$funktionen', '$felder', '$verfahren', '$afm_anmerkungen','$zufallsobermodul_id')");

837 $dbh->disconnect;838839 ####################################### Daten im Logfile

objekte.data sichern840 open (LOGFILE, ">> obermodule.data") ;841 flock(LOGFILE, 2) ;

Seite: 22 von 26

Programmcode der Datei: bm_parsing_proposal.pl

842 seek(LOGFILE, 0, 2) ;843 $datetime = localtime ;844845 print LOGFILE

"('$objektdaten[1]','$objektdaten[2]','$objektdaten[3]','$objektdaten[4]','$objektdaten[5]','$objektdaten[6]','$objektdaten[7]','$objektdaten[8]','$objektdaten[9]','$objektdaten[10]','$objektdaten[11]','$objektdaten[12]','$anmerkungen','$obermodulname_htm','$objekt_ids','$zufallsobermodul_id','$nutzer_id','$datetime','$attribute','$funktionen','$felder','$verfahren','$afm_anmerkungen')\n";

846847 flock(LOGFILE, 8) ;848 close (LOGFILE) ;849850 ####################################### Dateien für

INTEGER-Abfrage unter obermodule festlegen851 $fester_pfad = "/home/mmdb-tu/public_html/mmdb/nutzer/";852 $schraegstrich = "/";853 $bewerten = "bewerten_";854 $steuern = "steuern_";855 $bewerten_obermodul =

$fester_pfad.$nutzer_id.$schraegstrich.$bewerten.$obermodulname_htm;

856 $steuern_obermodul =$fester_pfad.$nutzer_id.$schraegstrich.$steuern.$obermodulname_htm;

857 # $bm = $fester_pfad.$nutzer_id.$obermodulname_htm;858 $bewerten_datei = $bewerten.$obermodulname_htm;859860 ####################################### obermodul-header für

INTEGER-Abfrage generieren861 open (BEWERTEN, ">$bewerten_obermodul") or die "open failed:

$!";862 flock(BEWERTEN, 2) ;863 seek(BEWERTEN, 0, 2) ;864 print BEWERTEN "<html>\n";865 print BEWERTEN "<body bgcolor=\"#CAE3F4\">\n";866 print BEWERTEN "<form name=\"bewerten\"

action=\"../../../cgi-bin/bewerten_obermodule.pl?$zufallsobermodul_id,$nutzerdaten[10]\" method=post>\n";

867 print BEWERTEN "<table align=center border=0>\n";868 print BEWERTEN "<tr align=\"center\">\n";869 print BEWERTEN "<th rowspan=2><font face=\"arial\"

size=\"1\"><fontcolor=\"#300080\">Grad&nbsp;der<br>Nutzbarkeit<br>ID:&nbsp;</font><fontcolor=\"#FF0000\">$zufallsobermodul_id</font></font></th>\n";

870 print BEWERTEN "<th colspan=5><font face=\"arial\"size=\"1\"><fontcolor=\"#300080\">1=hoch;&nbsp;3=m&auml;&szlig;ig;&nbsp;5=gering</font></font></th>\n";

871 print BEWERTEN "<td><font color=\"#300080\"><font face=\"arial\"size=\"1\"></font></font></td>\n";

872 print BEWERTEN "<td><font color=\"#300080\"><font face=\"arial\"size=\"1\">Modul-Bewertung</font></font></td>\n";

Seite: 23 von 26

Programmcode der Datei: bm_parsing_proposal.pl

873 print BEWERTEN "</tr>\n";874 print BEWERTEN "<tr align=\"center\">\n";875 print BEWERTEN "<td><input type=\"Checkbox\" name=\"1\"

value=\"v\"><font color=\"#300080\"><font face=\"arial\"size=\"1\">&nbsp;1</font></font></td>\n";

876 print BEWERTEN "<td><input type=\"Checkbox\" name=\"2\"value=\"v\"><font color=\"#300080\"><font face=\"arial\"size=\"1\">&nbsp;2</font></font></td>\n";

877 print BEWERTEN "<td><input type=\"Checkbox\" name=\"3\"value=\"v\"><font color=\"#300080\"><font face=\"arial\"size=\"1\">&nbsp;3</font></font></td>\n";

878 print BEWERTEN "<td><input type=\"Checkbox\" name=\"4\"value=\"v\"><font color=\"#300080\"><font face=\"arial\"size=\"1\">&nbsp;4</font></font></td>\n";

879 print BEWERTEN "<td><input type=\"Checkbox\" name=\"5\"value=\"v\"><font color=\"#300080\"><font face=\"arial\"size=\"1\">&nbsp;5</font></font></td>\n";

880 print BEWERTEN "<th colspan=2><input type=\"Submit\"value=\"Bewerten\"></th>\n";

881 print BEWERTEN "</tr>\n";882 print BEWERTEN "</table>\n";883 print BEWERTEN "<center>\n";884 print BEWERTEN "<font color=\"#300080\"><font face=\"arial\"

size=\"1\">Thema:&nbsp;</font></font><fontcolor=\"#FF0000\"><font face=\"arial\"size=\"1\">$objektdaten[1],&nbsp;</font></font><fontcolor=\"#300080\"><font face=\"arial\"size=\"1\">Urheber:&nbsp;<ahref=\"mailto:\">$nutzerdaten[10]</a></font></font>\n";

885 print BEWERTEN "</center>\n";886 print BEWERTEN "</form>\n";887 print BEWERTEN "</body>\n";888 print BEWERTEN "</html>\n";889 flock(BEWERTEN, 8) ;890 close (BEWERTEN) ;891892 ####################################### obermodul-steuerdatei

für INTEGER-Abfrage generieren893 open (STEUERN, ">$steuern_obermodul") or die "open failed: $!";894 flock(STEUERN, 2) ;895 seek(STEUERN, 0, 2) ;896 print STEUERN "<html>\n";897 print STEUERN "<head><title>\n";898 print STEUERN "MMDB-TU: Lerneinheit der MultiMediaDatenBank

TechnikUnterricht\n";899 print STEUERN "</title></head>\n";900 print STEUERN "<frameset rows = \"120,*\">\n";901 print STEUERN "<frame src = \"$bewerten_datei\"

name=\"header\">\n";902 print STEUERN "<frame src = \"$obermodulname_htm\"

name=\"objekt\">\n";903 print STEUERN "</frameset>\n";904 print STEUERN "</html>\n";905 flock(STEUERN, 8) ;906 close (STEUERN) ;907

Seite: 24 von 26

Programmcode der Datei: bm_parsing_proposal.pl

908 ####################################### Objektdaten via E-Mailbestaetigen

909 my ($mailhost, $absender, $empfaenger, $smtp);910911 $mailhost = 'mailout.uni-essen.de';912 $absender = '[email protected]';913914 $smtp = Net::SMTP->new($mailhost);915 $smtp->mail($absender);916 $smtp->to($e_mail);917918 $smtp->data();919920 $smtp->datasend(<<END);921 To: $e_mail922 Subject: Eintragung einer Lerneinheit in die MMDB-TU923924 Guten Tag $vorname $nachname,925 die Eintragung einer Lerneinheit (auf der Basis eines Proposals)

in die MMDB-TU war erfolgreich. Die zur Lerneinheit gehörigeLerneinheit-ID lautet:

926927 Lerneinheit-ID: $zufallsobermodul_id928929 Zur eigenen Kontrolle hier noch einmal die von Ihnen

übermittelten zur Lerneinheit gehörigen Daten:930931 Thema: $objektdaten[1]932 Zuordnung: $objektdaten[2]933 Beschreibung: $objektdaten[3]934 Keywords: $objektdaten[4]935 Mitarbeiter: $objektdaten[5]936 Herausgeber: $objektdaten[6]937 Quellen: $objektdaten[7]938 Hyperlinks: $objektdaten[8]939 Bezug: $objektdaten[9]940 Sprache: $objektdaten[10]941 Copyright: $objektdaten[11]942 Genre: $objektdaten[12]943 Format: $format944 Identifier: $dc_identifier945 Lerneinheit: $obermodulname_htm946 Objekt-IDs: $objekt_ids947 Lerneinheit-ID: $zufallsobermodul_id948 Anmerkungen: $anmerkungen949 Zeitstempel: $datetime950951 Eintragungen in die Attribute-Funktionen-Matrix:952953 Attribute: $attribute954 Funktionen: $funktionen955 Felder: $felder956 Verfahren: $verfahren957 Anmerkungen: $afm_anmerkungen958959 Vielen Dank für die Eintragung einer neuen Lerneinheit in die

Seite: 25 von 26

Programmcode der Datei: bm_parsing_proposal.pl

MMDB-TU. Viel Erfolg bei der künftigen Nutzung unsererDatenbank.

960 Mit freundlichen Grüßen961 $absender962963 END964965 $smtp->dataend();966967 $smtp->quit;968969 }

Seite: 26 von 26