Changeset 14754
- Timestamp:
- 2007-11-01T12:04:20+13:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
greenstone3/trunk/bin/script/convert_coll_from_gs2.pl
r13917 r14754 128 128 my $collwriter = new XML::Writer(OUTPUT => $colloutput, NEWLINES => 1); 129 129 130 $collwriter->startTag(' collectionConfig', 'xmlns:gsf'=>"http://www.greenstone.org/greenstone3/schema/ConfigFormat", 'xmlns:xsl'=>'http://www.w3.org/1999/XSL/Transform');130 $collwriter->startTag('CollectionConfig', 'xmlns:gsf'=>"http://www.greenstone.org/greenstone3/schema/ConfigFormat", 'xmlns:xsl'=>'http://www.w3.org/1999/XSL/Transform'); 131 131 132 132 #output the collection metadata to the collectionConfig file … … 134 134 135 135 my $creator = $collectcfg->{'creator'}; 136 &output_metadata($collwriter, 'creator', $creator);136 &output_metadata($collwriter,'default', 'creator', $creator); 137 137 my $public =$collectcfg->{'public'}; 138 &output_metadata($collwriter, 'public', $public); 138 &output_metadata($collwriter,'default', 'public', $public); 139 139 140 $collwriter->endTag('metadataList'); 140 141 … … 169 170 my $numdocs = $buildcfg->{'numdocs'}; 170 171 $buildwriter->startTag('metadataList'); 171 &output_metadata($buildwriter, 'numDocs', $numdocs);172 &output_metadata($buildwriter, 'buildType', $buildtype);172 &output_metadata($buildwriter,'', 'numDocs', $numdocs); 173 &output_metadata($buildwriter,'', 'buildType', $buildtype); 173 174 $buildwriter->endTag('metadataList'); 174 175 … … 191 192 $indexmap->{$k} = $v; 192 193 push @indexlist, $k; 193 if ($first ) {194 $defaultindex = $ v;194 if ($first == 1) { 195 $defaultindex = $k; 195 196 $first = 0; 196 197 } … … 202 203 if (defined $collectcfg->{'defaultindex'}) { 203 204 $defaultindex = $collectcfg->{'defaultindex'}; 204 $defaultindex = $indexmap->{$defaultindex};205 #$defaultindex = $indexmap->{$defaultindex}; 205 206 } 206 207 … … 209 210 my @levellist = (); 210 211 my $default_search_level = ""; 212 my $default_search_level_shortname = ""; 211 213 my $default_retrieve_level = "Sec"; 212 214 $first = 1; … … 219 221 push @levellist, $k; 220 222 if ($first) { 221 $default_search_level = $v; 223 $default_search_level = $k; 224 $default_search_level_shortname = $v; 222 225 $first = 0; 223 226 } … … 227 230 if (defined $collectcfg->{'defaultlevel'}) { 228 231 $default_search_level = $collectcfg->{'defaultlevel'}; 229 $default_search_level = $levelmap->{$default_search_level}; 232 #$default_search_level = $levelmap->{$default_search_level}; 233 $default_search_level_shortname = $levelmap->{$default_search_level}; 230 234 } 231 235 if (defined $buildcfg->{'textlevel'}) { … … 237 241 238 242 #output the search stuff to coll cfg 239 $collwriter->startTag('search' );243 $collwriter->startTag('search','type'=>$buildtype); 240 244 foreach my $i (keys %$indexmap) { 241 245 $collwriter->startTag('index', 'name'=>$i); … … 244 248 foreach my $lang (keys %{$collectionmeta->{$indexdisplay}}) { 245 249 my $value = $collectionmeta->{$indexdisplay}->{$lang}; 246 output_display($collwriter, 'name', $lang, $ value);250 output_display($collwriter, 'name', $lang, $i); 247 251 } 248 252 $collwriter->endTag('index'); 253 } 254 255 #output the defaultIndex to coll cfg 256 $collwriter->emptyTag('defaultIndex','name'=>$defaultindex); 257 258 #indexSubcollection 259 my $indexsubcollections = $collectcfg->{'indexsubcollections'}; 260 261 if (defined $indexsubcollections) { 262 my $indexsubcollections_t= $collectcfg->{'indexsubcollections'}; 263 foreach my $i ( @$indexsubcollections_t) { 264 $collwriter->startTag('indexSubcollection', 'name'=>$i); 265 &output_display($collwriter, 'name', $defaultlang, $i); 266 $collwriter->endTag('indexSubcollection'); 267 } 268 } 269 270 #subcollection 271 my $subcollection = $collectcfg->{'subcollection'}; 272 if (defined $subcollection){ 273 foreach my $entry (keys %$subcollection){ 274 my $value = $subcollection->{$entry}; 275 $collwriter->emptyTag('subcollection','filter'=>$value,'name'=>$entry); 276 } 277 } 278 279 #indexlanguage 280 my $languages = $collectcfg->{'languages'}; 281 if (defined $languages){ 282 my $languages_t = $collectcfg->{'languages'}; 283 foreach my $i (@$languages_t){ 284 $collwriter->startTag('indexLanguage','name'=>$i); 285 &output_display($collwriter, 'name', $defaultlang, $i); 286 $collwriter->endTag('indexLanguage'); 287 } 249 288 } 250 289 … … 261 300 $collwriter->endTag('level'); 262 301 } 263 } 302 $collwriter->emptyTag('defaultLevel', 'name'=>$default_search_level); 303 } 304 305 # add in the search type 306 if (defined $format->{'SearchTypes'}){ 307 $collwriter->startTag('format', 'name'=>"searchType"); 308 $collwriter->charactersXML($format->{'SearchTypes'}); 309 $collwriter->endTag('format'); 310 } 311 264 312 # add in the format stuff 265 313 if (defined $format->{'SearchVList'}) { … … 276 324 277 325 $collwriter->endTag('search'); 278 326 327 # import plugins 328 329 my $plugins = $collectcfg->{'plugin'}; 330 331 if (defined $plugins){ 332 $collwriter->startTag('import'); 333 $collwriter->startTag('pluginList'); 334 foreach my $pl (@$plugins) { 335 my ($pluginname) = @$pl[0]; 336 $collwriter->startTag('plugin','name'=>$pluginname); 337 338 for (my $i=1; $i<scalar(@$pl); $i++) { 339 my $arg =@$pl[$i]; 340 if ($arg =~ /^-/){ 341 my $option_name=@$pl[$i]; 342 my $option_value=@$pl[$i+1]; 343 if (defined $option_value){ 344 if ($option_value =~ /^-/){ 345 $collwriter->startTag('option','name'=>$option_name); 346 $collwriter->endTag('option'); 347 }else{ 348 $collwriter->startTag('option','name'=>$option_name,'value'=>$option_value); 349 $collwriter->endTag('option'); 350 } 351 } 352 } 353 } 354 $collwriter->endTag('plugin'); 355 } 356 $collwriter->endTag('pluginList'); 357 $collwriter->endTag('import'); 358 } 359 279 360 $buildwriter->startTag('serviceRackList'); 280 361 … … 288 369 } 289 370 371 #indexSubcollectionList 372 373 my $subcollectionmap = $buildcfg->{'subcollectionmap'}; 374 my $firstsubcollection = 1; 375 my $defaultsubcollection = ""; 376 my @subcollist; 377 my $subcolmap = {}; 378 379 if (defined $buildcfg->{'subcollectionmap'}) { 380 my $subcolmap_t = $buildcfg->{'subcollectionmap'}; 381 382 foreach my $l (@$subcolmap_t) { 383 my @pair = split(/->/, $l); 384 $subcolmap->{$pair[0]} = $pair[1]; 385 push @subcollist, $pair[0]; 386 if ($firstsubcollection==1) { 387 $defaultsubcollection = $pair[1]; 388 $firstsubcollection = 0; 389 } 390 } 391 392 } 393 394 290 395 #do the retrieve service 291 396 $buildwriter->startTag('serviceRack', 'name'=>"GS2".$service_type."Retrieve"); … … 294 399 } elsif ($buildtype eq "mg") { 295 400 $buildwriter->emptyTag('defaultIndex', 'shortname'=>$defaultindex); 296 297 } 401 } 402 403 if ((defined $defaultsubcollection) && ($defaultsubcollection ne "")) { 404 $buildwriter->emptyTag('defaultIndexSubcollection', 'shortname'=>$defaultsubcollection); 405 } 406 298 407 if (defined $indexstem) { 299 408 $buildwriter->emptyTag('indexStem', 'name'=>$indexstem); … … 362 471 if ($horizontalAtTop) { 363 472 $buildwriter->emptyTag('classifier', 'name'=>$name, 'content'=>$content, 'horizontalAtTop'=>'true'); 473 364 474 } else { 365 475 $buildwriter->emptyTag('classifier', 'name'=>$name, 'content'=>$content); … … 367 477 368 478 369 $collwriter->startTag('classifier', 'name'=>$name); 479 # $collwriter->startTag('classifier', 'name'=>$name); 480 $collwriter->startTag('classifier', 'name'=>$classname); 481 for (my $i=1; $i<scalar(@$cl); $i++) { 482 my $arg =@$cl[$i]; 483 if ($arg =~ /^-/){ 484 my $option_name=@$cl[$i]; 485 my $option_value=@$cl[$i+1]; 486 if (defined $option_value){ 487 if ($option_value=~ /^-/){ 488 $collwriter->startTag('option','name'=>$option_name); 489 $collwriter->endTag('option'); 490 }else{ 491 $collwriter->startTag('option','name'=>$option_name,'value'=>$option_value); 492 $collwriter->endTag('option'); 493 } 494 } 495 } 496 } 497 370 498 my $vlist = $name."VList"; 371 499 my $hlist = $name."HList"; … … 411 539 # do the search service 412 540 $buildwriter->startTag('serviceRack', 'name'=>'GS2'.$service_type.'Search'); 413 $buildwriter->emptyTag('defaultIndex', 'shortname'=>$defaultindex);541 #$buildwriter->emptyTag('defaultIndex', 'shortname'=>$defaultindex); 414 542 $buildwriter->startTag('indexList'); 415 543 #for each index … … 444 572 445 573 # level info 446 $buildwriter->emptyTag('defaultLevel', 'shortname'=>$default_search_level );574 $buildwriter->emptyTag('defaultLevel', 'shortname'=>$default_search_level_shortname); 447 575 $buildwriter->emptyTag('defaultGDBMLevel', 'shortname'=>$default_retrieve_level); 448 576 $buildwriter->startTag('levelList'); … … 474 602 } 475 603 476 477 604 #indexLanguageList 605 my $indexlanguages = $collectcfg->{'languages'}; 606 my $firstindexlanguage = 1; 607 my $defaultindexlanguage_shortname; 608 if (defined $indexlanguages){ 609 $buildwriter->startTag('indexLanguageList'); 610 my $languages_t = $collectcfg->{'languages'}; 611 foreach my $i (@$languages_t){ 612 $buildwriter->startTag('indexLanguage','name'=>$i); 613 &output_display($buildwriter, 'name', $i, $i); 614 $buildwriter->endTag('indexLanguage'); 615 if ($firstindexlanguage==1){ 616 $defaultindexlanguage_shortname = $i; 617 $firstindexlanguage=0; 618 } 619 } 620 $buildwriter->endTag('indexLanguageList'); 621 $buildwriter->startTag('defaultIndexLanguage', 'name'=>$defaultindexlanguage_shortname,'shortname'=>$defaultindexlanguage_shortname); 622 $buildwriter->endTag('defaultIndexLanguage'); 623 } 624 625 # my $defaultsubcollection = ""; 626 # my @subcollist; 627 628 if (scalar(@subcollist)>0){ 629 630 $buildwriter->startTag('indexSubcollectionList'); 631 foreach my $i (keys %$subcolmap){ 632 my $short_name = $subcolmap->{$i}; 633 $buildwriter->emptyTag('indexSubcollection', 'name'=>$i, 'shortname'=>$short_name); 634 } 635 636 $buildwriter->endTag('indexSubcollectionList'); 637 $buildwriter->emptyTag('defaultIndexSubcollection', 'shortname'=>$defaultsubcollection); 638 } 639 640 478 641 $buildwriter->endTag('serviceRack'); 479 642 … … 484 647 # collection 485 648 $collwriter->emptyTag('replaceListRef', 'id'=>'gs2-standard'); 486 $collwriter->endTag(' collectionConfig');649 $collwriter->endTag('CollectionConfig'); 487 650 $collwriter->end(); 488 651 $buildwriter->end(); … … 494 657 495 658 sub output_metadata { 496 my ($writer, $metaname, $metavalue) = @_; 497 $writer->startTag('metadata', 'name'=>$metaname); 659 my ($writer, $lang, $metaname, $metavalue) = @_; 660 $lang = 'en' if $lang eq 'default'; 661 if ($lang ne ""){ 662 $writer->startTag('metadata', 'lang'=>$lang, 'name'=>$metaname); 663 }else{ 664 $writer->startTag('metadata', 'name'=>$metaname); 665 } 498 666 $writer->characters($metavalue); 499 667 $writer->endTag('metadata'); … … 506 674 ($lang) = $lang =~ /\[l=(.*)\]/; 507 675 } 676 508 677 $writer->startTag('displayItem', 'name'=>$name, 'lang'=>$lang); 509 678 $writer->characters($value);
Note:
See TracChangeset
for help on using the changeset viewer.