diff --git a/trunk/upload.pl b/trunk/upload.pl index 7ccdfc0..e3b2447 100644 --- a/trunk/upload.pl +++ b/trunk/upload.pl @@ -7,163 +7,71 @@ $session = new CGI::Session; @userinfo = get_userinfo_from_sid($session->id); -@page = get_page_array(@userinfo); +my $doc = XML::LibXML::Document->new( "1.0", "UTF-8" ); -if($userinfo->{'username'}) -{ - $page->{'uploadform'}->{'DC.Title'} = $query->param('DC.Title'); - $page->{'uploadform'}->{'DC.Subject'} = $query->param('DC.Subject'); - $page->{'uploadform'}->{'DC.Description'} = $query->param('DC.Description'); - $page->{'uploadform'}->{'DC.Creator'} = $query->param('DC.Creator'); - $page->{'uploadform'}->{'DC.Source'} = $query->param('DC.Source'); - $page->{'uploadform'}->{'DC.Language'} = $query->param('DC.Language'); - $page->{'uploadform'}->{'DC.Coverage'} = $query->param('DC.Coverage'); - $page->{'uploadform'}->{'DC.Rights'} = $query->param('DC.Rights'); - $page->{'uploadform'}->{'DC.License'} = $query->param('DC.License'); - - if($query->param('2')) - { - #remove duplicates from tags - @subject = split(' ', $query->param('DC.Subject')); - @unique{ @subject } = (); - foreach $tag (keys %unique) - { - if(length($tag) >= $config->{"page_tag_lenght_min"}) - { - $subject.=$tag." "; - } - } - $subject =~ s/\s*$//; - $page->{'uploadform'}->{'DC.Subject'} = $subject; - - if($query->param('DC.Title')&&$subject&&$query->param('DC.Description')) - { - $page->{'results-listing'} = ['']; - - my @args = (); +my $page = get_page_array(@userinfo); - #build mysql query - my $dbquery = "select v.id, v.title, v.description, u.username, - from_unixtime( v.timestamp ), v.creator, v.subject, - v.source, v.language, v.coverage, v.rights, - v.license, filesize, duration, width, height, fps, viewcount, - downloadcount, - match(v.title, v.description, v.subject) - against( ? in boolean mode) as relevance - from videos as v, users as u where u.id = v.userid - and match(v.title, v.description, v.subject) - against( ? in boolean mode)"; - push @args, $query->param('DC.Title'), $query->param('DC.Title'); - - fill_results($dbquery, @args); - $page->{'uploadform'}->{'page'} = '2'; - } - else - { - if(!$query->param('DC.Title')) - { - $page->{'message'}->{'type'} = "error"; - $page->{'message'}->{'text'} = "error_missing_DC.Title"; - } - elsif(!$query->param('DC.Subject')) - { - $page->{'message'}->{'type'} = "error"; - $page->{'message'}->{'text'} = "error_missing_DC.Subject"; - } - elsif(!$query->param('DC.Description')) - { - $page->{'message'}->{'type'} = "error"; - $page->{'message'}->{'text'} = "error_missing_DC.Description"; - } - $page->{'uploadform'}->{'page'} = '1'; - } - } - elsif($query->param('3')) - { - $page->{'uploadform'}->{'page'} = '3'; - } - elsif($query->param('4')) - { - if($query->param('DC.License') eq 'cc-by') - { - $page->{'uploadform'}->{'remix'} = 'true'; - } - elsif($query->param('DC.License') eq 'cc-by-sa') - { - $page->{'uploadform'}->{'sharealike'} = 'true'; - } - elsif($query->param('DC.License') eq 'cc-by-nd') - { - $page->{'uploadform'}->{'noderivatives'} = 'true'; - } - elsif($query->param('DC.License') eq 'cc-by-nc') - { - $page->{'uploadform'}->{'remix'} = 'true'; - $page->{'uploadform'}->{'noncommercial'} = 'true'; - } - elsif($query->param('DC.License') eq 'cc-by-nc-sa') - { - $page->{'uploadform'}->{'sharealike'} = 'true'; - $page->{'uploadform'}->{'noncommercial'} = 'true'; - } - elsif($query->param('DC.License') eq 'cc-by-nc-nd') - { - $page->{'uploadform'}->{'noderivatives'} = 'true'; - $page->{'uploadform'}->{'noncommercial'} = 'true'; - } - - $page->{'uploadform'}->{'page'} = '4'; - } - elsif($query->param('5')) - { - if($query->param('modification') and not $query->param('DC.License')) - { - if($query->param('modification') eq 'remix') - { - if($query->param('noncommercial')) - { - $page->{'uploadform'}->{'DC.License'} = 'cc-by-nc'; - } - else - { - $page->{'uploadform'}->{'DC.License'} = 'cc-by'; - } - } - elsif($query->param('modification') eq 'sharealike') - { - if($query->param('noncommercial')) - { - $page->{'uploadform'}->{'DC.License'} = 'cc-by-nc-sa'; - } - else - { - $page->{'uploadform'}->{'DC.License'} = 'cc-by-sa'; - } - } - elsif($query->param('modification') eq 'noderivatives') - { - if($query->param('noncommercial')) - { - $page->{'uploadform'}->{'DC.License'} = 'cc-by-nc-nd'; - } - else - { - $page->{'uploadform'}->{'DC.License'} = 'cc-by-nd'; - } - } - } - - $page->{'uploadform'}->{'page'} = '5'; - } - else - { - $page->{'uploadform'}->{'page'} = '1'; - } -} -else -{ - $page->{'message'}->{'type'} = "error"; - $page->{'message'}->{'text'} = "error_202c"; -} +$page->setNamespace("http://www.w3.org/2002/xforms", "xforms", 0); +$page->setNamespace("http://www.w3.org/2001/XMLSchema", "xsd", 0); +$page->setNamespace("http://www.w3.org/2001/XMLSchema-instance", "xsi", 0); -print output_page(); +my $instance = XML::LibXML::Element->new( "instance" ); +$instance->setNamespace("http://www.w3.org/2002/xforms", "xforms"); + +my $video = XML::LibXML::Element->new( "video" ); + +my $node = XML::LibXML::Element->new( "Title" ); +$node->setNamespace( "http://purl.org/dc/elements/1.1/", "dc" ); +$node->setNamespace( "http://www.w3.org/2001/XMLSchema-instance", "xsi", 0 ); +$node->setAttributeNS( "http://www.w3.org/2001/XMLSchema-instance", "type", "xsd:normalizedString" ); +$video->appendChild($node); + +$node = XML::LibXML::Element->new( "Subject" ); +$node->setNamespace( "http://purl.org/dc/elements/1.1/", "dc" ); +$node->setNamespace( "http://www.w3.org/2001/XMLSchema-instance", "xsi", 0 ); +$node->setAttributeNS( "http://www.w3.org/2001/XMLSchema-instance", "type", "xsd:normalizedString" ); +$video->appendChild($node); + +$node = XML::LibXML::Element->new( "Description" ); +$node->setNamespace( "http://purl.org/dc/elements/1.1/", "dc" ); +$node->setNamespace( "http://www.w3.org/2001/XMLSchema-instance", "xsi", 0 ); +$node->setAttributeNS( "http://www.w3.org/2001/XMLSchema-instance", "type", "xsd:string" ); +$video->appendChild($node); + +$node = XML::LibXML::Element->new( "Coverage.day" ); +$node->setNamespace( "http://purl.org/dc/elements/1.1/", "dc" ); +$node->setNamespace( "http://www.w3.org/2001/XMLSchema-instance", "xsi", 0 ); +$node->setAttributeNS( "http://www.w3.org/2001/XMLSchema-instance", "type", "xsd:gDay" ); +$video->appendChild($node); + +$node = XML::LibXML::Element->new( "Coverage.month" ); +$node->setNamespace( "http://purl.org/dc/elements/1.1/", "dc" ); +$node->setNamespace( "http://www.w3.org/2001/XMLSchema-instance", "xsi", 0 ); +$node->setAttributeNS( "http://www.w3.org/2001/XMLSchema-instance", "type", "xsd:gMonth" ); +$video->appendChild($node); + +$node = XML::LibXML::Element->new( "Coverage.year" ); +$node->setNamespace( "http://purl.org/dc/elements/1.1/", "dc" ); +$node->setNamespace( "http://www.w3.org/2001/XMLSchema-instance", "xsi", 0 ); +$node->setAttributeNS( "http://www.w3.org/2001/XMLSchema-instance", "type", "xsd:gYear" ); +$video->appendChild($node); + +$node = XML::LibXML::Element->new( "Coverage.placeName" ); +$node->setNamespace( "http://purl.org/dc/elements/1.1/", "dc" ); +$node->setNamespace( "http://www.w3.org/2001/XMLSchema-instance", "xsi", 0 ); +$node->setAttributeNS( "http://www.w3.org/2001/XMLSchema-instance", "type", "xsd:normalizedString" ); +$video->appendChild($node); + +$node = XML::LibXML::Element->new( "Language" ); +$node->setNamespace( "http://purl.org/dc/elements/1.1/", "dc" ); +$node->setNamespace( "http://www.w3.org/2001/XMLSchema-instance", "xsi", 0 ); +$node->setAttributeNS( "http://www.w3.org/2001/XMLSchema-instance", "type", "xsd:language" ); +$video->appendChild($node); + +$instance->appendChild($video); + +$page->appendChild($instance); + +$doc->setDocumentElement($page); + +output_page($doc); diff --git a/trunk/upload.pl.bak b/trunk/upload.pl.bak new file mode 100644 index 0000000..7ccdfc0 --- /dev/null +++ b/trunk/upload.pl.bak @@ -0,0 +1,169 @@ +require "functions.pl"; + +#create or resume session +CGI::Session->name($config->{"page_cookie_name"}); +$query = new CGI; +$session = new CGI::Session; + +@userinfo = get_userinfo_from_sid($session->id); + +@page = get_page_array(@userinfo); + +if($userinfo->{'username'}) +{ + $page->{'uploadform'}->{'DC.Title'} = $query->param('DC.Title'); + $page->{'uploadform'}->{'DC.Subject'} = $query->param('DC.Subject'); + $page->{'uploadform'}->{'DC.Description'} = $query->param('DC.Description'); + $page->{'uploadform'}->{'DC.Creator'} = $query->param('DC.Creator'); + $page->{'uploadform'}->{'DC.Source'} = $query->param('DC.Source'); + $page->{'uploadform'}->{'DC.Language'} = $query->param('DC.Language'); + $page->{'uploadform'}->{'DC.Coverage'} = $query->param('DC.Coverage'); + $page->{'uploadform'}->{'DC.Rights'} = $query->param('DC.Rights'); + $page->{'uploadform'}->{'DC.License'} = $query->param('DC.License'); + + if($query->param('2')) + { + #remove duplicates from tags + @subject = split(' ', $query->param('DC.Subject')); + @unique{ @subject } = (); + foreach $tag (keys %unique) + { + if(length($tag) >= $config->{"page_tag_lenght_min"}) + { + $subject.=$tag." "; + } + } + $subject =~ s/\s*$//; + $page->{'uploadform'}->{'DC.Subject'} = $subject; + + if($query->param('DC.Title')&&$subject&&$query->param('DC.Description')) + { + $page->{'results-listing'} = ['']; + + my @args = (); + + #build mysql query + my $dbquery = "select v.id, v.title, v.description, u.username, + from_unixtime( v.timestamp ), v.creator, v.subject, + v.source, v.language, v.coverage, v.rights, + v.license, filesize, duration, width, height, fps, viewcount, + downloadcount, + match(v.title, v.description, v.subject) + against( ? in boolean mode) as relevance + from videos as v, users as u where u.id = v.userid + and match(v.title, v.description, v.subject) + against( ? in boolean mode)"; + push @args, $query->param('DC.Title'), $query->param('DC.Title'); + + fill_results($dbquery, @args); + $page->{'uploadform'}->{'page'} = '2'; + } + else + { + if(!$query->param('DC.Title')) + { + $page->{'message'}->{'type'} = "error"; + $page->{'message'}->{'text'} = "error_missing_DC.Title"; + } + elsif(!$query->param('DC.Subject')) + { + $page->{'message'}->{'type'} = "error"; + $page->{'message'}->{'text'} = "error_missing_DC.Subject"; + } + elsif(!$query->param('DC.Description')) + { + $page->{'message'}->{'type'} = "error"; + $page->{'message'}->{'text'} = "error_missing_DC.Description"; + } + $page->{'uploadform'}->{'page'} = '1'; + } + } + elsif($query->param('3')) + { + $page->{'uploadform'}->{'page'} = '3'; + } + elsif($query->param('4')) + { + if($query->param('DC.License') eq 'cc-by') + { + $page->{'uploadform'}->{'remix'} = 'true'; + } + elsif($query->param('DC.License') eq 'cc-by-sa') + { + $page->{'uploadform'}->{'sharealike'} = 'true'; + } + elsif($query->param('DC.License') eq 'cc-by-nd') + { + $page->{'uploadform'}->{'noderivatives'} = 'true'; + } + elsif($query->param('DC.License') eq 'cc-by-nc') + { + $page->{'uploadform'}->{'remix'} = 'true'; + $page->{'uploadform'}->{'noncommercial'} = 'true'; + } + elsif($query->param('DC.License') eq 'cc-by-nc-sa') + { + $page->{'uploadform'}->{'sharealike'} = 'true'; + $page->{'uploadform'}->{'noncommercial'} = 'true'; + } + elsif($query->param('DC.License') eq 'cc-by-nc-nd') + { + $page->{'uploadform'}->{'noderivatives'} = 'true'; + $page->{'uploadform'}->{'noncommercial'} = 'true'; + } + + $page->{'uploadform'}->{'page'} = '4'; + } + elsif($query->param('5')) + { + if($query->param('modification') and not $query->param('DC.License')) + { + if($query->param('modification') eq 'remix') + { + if($query->param('noncommercial')) + { + $page->{'uploadform'}->{'DC.License'} = 'cc-by-nc'; + } + else + { + $page->{'uploadform'}->{'DC.License'} = 'cc-by'; + } + } + elsif($query->param('modification') eq 'sharealike') + { + if($query->param('noncommercial')) + { + $page->{'uploadform'}->{'DC.License'} = 'cc-by-nc-sa'; + } + else + { + $page->{'uploadform'}->{'DC.License'} = 'cc-by-sa'; + } + } + elsif($query->param('modification') eq 'noderivatives') + { + if($query->param('noncommercial')) + { + $page->{'uploadform'}->{'DC.License'} = 'cc-by-nc-nd'; + } + else + { + $page->{'uploadform'}->{'DC.License'} = 'cc-by-nd'; + } + } + } + + $page->{'uploadform'}->{'page'} = '5'; + } + else + { + $page->{'uploadform'}->{'page'} = '1'; + } +} +else +{ + $page->{'message'}->{'type'} = "error"; + $page->{'message'}->{'text'} = "error_202c"; +} + +print output_page();