Channels:   |HiFi|HomeTheatre|ProAudio|DesktopAudio|DVD-A|CarAudio|MP3|NetAudio|MusicBiz|AudioBiz|
AudioWorld Online
Search in:
Tuesday, March 19

Today's Audio News

Directory
Add URL
Search
New Listings
Most Popular
Highest Rated

Categories
   Top
   Pro Audio
   HiFi Audio
   DVD-Audio
   SACD
   Car Audio
   Music
   Internet Audio
   Personal Pages

Channels
HiFi Audio
Home Theater
Pro Audio
Home Recording
Car Audio
MP3
Net Audio
AudioBiz
MusicBiz

Forums
Talkback
StraightWire

Media
About AudioWorld
Submit Material
Advertise
Link to Us
Contact Us



Advertise Now!

Audio Site Links
Audio Site Directory

blank place holder
 AudioWorld's Web Directory  

| Top | New | Popular | Top Rated | Search |
| Add URL | Modify URL | Email Updates | Link to Us |


Top : Top Rated
Top 10 Sites - By Rating - at least 10 votes
Rating# VotesSite
9.99106KLEIN + HUMMEL
9.62132Peak Consult
9.4929Audio, by Fabio Mauricio Timi
9.4055Peak USA
9.3913Roksan
9.3035High End Audio
9.2952Audiofast
9.1933Sensus
9.06225Ozren Bilan - Audio Room Acoustics
9.0550Van den Hul
9.0444Grooveland CD Mastering Services
919Le Bozze Recording Studio


Top 10 Sites - By Number of Votes
Rating# VotesResource
8.468714TNT-Audio HiFi
9.06225Ozren Bilan - Audio Room Acoustics
7.62211Hi-Fi Guide
9.62132Peak Consult
8.45117Hi-Figuide Digital Magazine
9.99106KLEIN + HUMMEL
5.6370StereoTimes.com
1.9561A&A Productions - Aaron Brillhart
9.4055Peak USA
9.2952Audiofast
9.0550Van den Hul
9.0444Grooveland CD Mastering Services

Search the Directory:
More search options


Pages Updated On: 17-Sep-2015 - 16:31:10

 

First Time Visitors
Subscribe
Quit


#!/usr/bin/perl # # Master Merry-Go-Round # Version 1.2 # Version 1.0 completed August 14, 2000 # Version 1.2 completed May 28, 2002 # # Tech Support at http://willmaster.com/master/techsupport/ # # Before installing and/or using Master Merry-Go-Round, # you must agree to the complete license agreement # linked from http://willmaster.com/master # # (G) Access your control panel by putting the URL of your script plus # ?admin=YOURPASSWORD # #=============================== # my $Password = 'abroc39'; my $DataDirectory = 'rotatedata'; use strict; my %In = (); my $DBname = 'mmgr'; my $TrackFile = 'mmgTrack'; my $DBextension = '.db'; my @TopLines = qw(abovecontent abovebold aboveitalic aboveunderlined abovelarge abovecenter); my %TopLines = (); { my $i = 0; for(@TopLines) { $TopLines{$_} = $i; $i++; } } my $ME = $0; $ME =~ s/.*\///; sub ForDisplay { my $s = shift; $s =~ s/\/\>/sg; $s =~ s/\"/\"/sg; return $s; } # sub ForDisplay sub GetBottom { return <

More Master Series scripts are available at http://willmaster.com/master/

Copyright 2000 William Bontrager
Copyright 2002 Bontrager Connection, LLC

QQ } # sub GetBottom sub GetTop { return <

M a s t e r   M e r r y - G o - R o u n d

$_[0]

QQ } # sub GetTop sub LockFile { my $tm = time; my $f = "${DataDirectory}/$DBname\.lock"; while((time - $tm) < 12) { last unless -e $f; sleep 2; } open LOCKFILE,">$f"; close LOCKFILE; } # sub LockFile sub UnLockFile { unlink "${DataDirectory}/$DBname\.lock"; return 0; } # sub UnLockFile sub Display { my ($line,$next,$howmany) = (); if(open R,"<${DataDirectory}/$TrackFile$DBextension") { my $line = ; close R; ($next,$howmany) = split /\t/,$line; } LockFile; open R,"<${DataDirectory}/$DBname$DBextension"; my @originalslurp = ; close R; chomp @originalslurp; UnLockFile; unless($howmany > 0) { $howmany = $#originalslurp; $next = 0; } return unless $howmany > 0; $next++; $next = 1 unless $next > 1 and $next <= $howmany; open W,">${DataDirectory}/$TrackFile$DBextension"; print W "$next\t$howmany"; close W; my $filename; ($filename,undef) = split /\t/,$originalslurp[$next],2; print "Content-Type: text/html\n\n"; print '' if $In{page} =~ /^complete$/i; open R,"<${DataDirectory}/$filename"; print ; close R; print '' if $In{page} =~ /^complete$/i; exit; } # sub Display sub Parse { my $buffer; if ($ENV{REQUEST_METHOD} eq 'GET') { $buffer = $ENV{QUERY_STRING}; } else { read(STDIN,$buffer,$ENV{CONTENT_LENGTH}); } my @pairs = split(/&/,$buffer); for(@pairs) { my ($n,$v) = split(/=/,$_); $v =~ tr/+/ /; $v =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; $v =~ tr/\t/ /; $In{$n} = $v; } } # sub Parse sub ErrorHTML { my $s = join("\n
  • ",@_); print "Content-Type: text/html\n\n"; print GetTop; print qq~

    Message

    • $s
    ~; print GetBottom; exit; } # sub ErrorHTML sub Overview { print "Content-Type: text/html\n\n"; print GetTop('Overview'); print <
  • You can rotate text ads or any other content, including images, sound, flash -- singly or in combination. You can display any amount of information -- even entire web pages. (It can be used to rotate web pages if you're testing for marketing or other purposes.)

    Every time the script is called, it displays the next content. When it reaches the end, it starts at the beginning again.

    Your content can be displayed on the page with SSI or inside a popup window. To view example code, click the applicable button:

       

    OVERVIEW print GetBottom; exit; } # sub Overview sub ExampleSSI { print "Content-Type: text/html\n\n"; print GetTop('Example SSI'); print <
    Code for implementing Master Merry-Go-Round to display contant as a Server Side Include for seamless integration into a web page.

    On most servers, this requires a .shtml page file name extenstion. Ask your server admin if you're unsure about their requirements.

    The code is presented in two different ways. Use whichever works best for you.

    <HTML>
    <BODY>
    
    
    <!--#exec cgi="/cgi-bin/MasterMerryGoRound.cgi"-->
    
    
    </BODY>
    </HTML>
    

    EXAMPLESSI print GetBottom; exit; } # sub ExampleSSI sub ExamplePopup { print "Content-Type: text/html\n\n"; print GetTop('Example Popup'); print <Code for implementing a Master Merry-Go-Round popup box.

    The code is presented in two different ways. Use whichever works best for you.

    <HTML>
    <HEAD>
    
    
    <script type="text/javascript" language="JavaScript"><!--
    function MMGR(){
    // (1) Specify the height, in pixels, of your popup box.
    var height = '200';
    // (2) Specify the width, in pixels, of your popup box.
    var width = '300';
    // (3) May the popup have scrollbars? 'yes' or 'no'
    var scrollbars = 'yes';
    // (4) Shall the popup be resizable? 'yes' or 'no'
    var resizable = 'yes';
    // (5) Specify the URL of your Master Merry-Go-Round program.
    var url = 'cgi-bin/MasterMerryGoRound.cgi';
    // No other edits required in this function.
    var param = 'height=' + height + ',width=' + width +
    ',scrollbars=' + scrollbars + ',resizable=' + resizable;
    url = url  + '?page=complete';
    mdc = window.open(url,"dc",param);
    } // -->
    </script>
    
    
    </HEAD>
    <BODY>
    
    
    <a href="javascript:MMGR()">Click for popup</a>
    
    
    </BODY>
    </HTML>
    

    EXAMPLEPOPUP print GetBottom; exit; } # sub ExamplePopup sub DisplayControlPanel { unless($In{admin} eq $Password) { print "Location: $ENV{HTTP_REFERER}\n\n"; exit; } my @originalslurp = (); LockFile; if(open R,"<${DataDirectory}/$DBname$DBextension") { @originalslurp = ; close R; chomp @originalslurp; } UnLockFile; my($next,$howmany) = split /\t/,$originalslurp[0],2; print "Content-Type: text/html\n\n"; print GetTop('Main Menu'); print <

    Tech Support at http://willmaster.com/master/techsupport/

     
    TOPTHECONTROLPANELPAGE if($originalslurp[1]) { $next++; $next = 1 if $next > $howmany; print <
    Currently, you have $howmany different content display blocks.

    Content block number $next is next in line for display.

    INSIDE1 for(1..$#originalslurp) { my($filename,$sequence,$filenum,$title) = split /\t/,$originalslurp[$_]; $title = ForDisplay($title); print < INSIDEMID } print <

    INSIDE2 } print GetBottom; exit; } # sub DisplayControlPanel sub UpdateAddContent { ErrorHTML('A title must be specified.') unless $In{title} =~ /\w/; ErrorHTML('Please provide some kind of content.') unless $In{content} =~ /\w/; if($In{content} =~ /\n/) { $In{content} =~ s/\r//gs; } else { $In{content} =~ s/\r/\n/gs; } my @originalslurp = ("0\t0\t0\t0"); LockFile; if(open R,"<${DataDirectory}/$DBname$DBextension") { @originalslurp = ; close R; chomp @originalslurp; } UnLockFile; my($filename,$sequence,$filenum,$title) = split /\t/,$originalslurp[$#originalslurp]; my($next,$howmany) = split /\t/,$originalslurp[0],2; $howmany++; $originalslurp[0] = "$next\t$howmany"; $title = $In{title}; $filenum++; $sequence = @originalslurp; $filename = "$DBname$filenum$DBextension"; push @originalslurp,"$filename\t$sequence\t$filenum\t$title"; LockFile; open W,">${DataDirectory}/$DBname$DBextension"; for(@originalslurp) { print W "$_\n"; } close W; UnLockFile; open W,">${DataDirectory}/$filename"; print W $In{content}; close W; unlink "${DataDirectory}/$TrackFile$DBextension"; } # UpdateAddContent sub AddContent { print "Content-Type: text/html\n\n"; print GetTop('Add Content'); print <

    $_ $title
    Give this content a name you will recognize:

    Put your content here (HTML okay):

    THECONTROLPANELPAGE print GetBottom; exit; } # sub AddContent sub UpdateEditContent { ErrorHTML('A title must be specified.') unless $In{title} =~ /\w/; ErrorHTML('Please provide some kind of content.') unless $In{content} =~ /\w/; if($In{content} =~ /\n/) { $In{content} =~ s/\r//gs; } else { $In{content} =~ s/\r/\n/gs; } LockFile; open R,"<${DataDirectory}/$DBname$DBextension"; my @originalslurp = ; close R; UnLockFile; chomp @originalslurp; my $t; for $t (@originalslurp) { if(index($t,"$In{filename}\t") == 0) { my ($filename,$sequence,$filenum,$title) = split /\t/,$t; $title = $In{title}; $t = join "\t",$filename,$sequence,$filenum,$title; last; } } LockFile; open W,">${DataDirectory}/$DBname$DBextension"; for(@originalslurp) { print W "$_\n"; } close W; UnLockFile; open W,">${DataDirectory}/$In{filename}"; print W $In{content}; close W; unlink "${DataDirectory}/$TrackFile$DBextension"; } # UpdateEditContent sub EditContent { LockFile; open R,"<${DataDirectory}/$DBname$DBextension"; my @originalslurp = ; close R; UnLockFile; chomp @originalslurp; my $filename = "$DBname$In{editcontent}$DBextension"; my($title,$content); for(@originalslurp) { if(index($_,"$filename\t") == 0) { (undef,undef,undef,$title) = split /\t/; last; } } open R,"<${DataDirectory}/$filename"; { my @p = ; close R; $content = join '',@p; } $title = ForDisplay($title); $content = ForDisplay($content); print "Content-Type: text/html\n\n"; print GetTop('Edit Content'); print <

    The content's name for recognition:

    The content (HTML okay):

    THECONTROLPANELPAGE print GetBottom; exit; } # sub EditContent sub UpdateDeleteContent { unlink "${DataDirectory}/$In{filename}"; LockFile; open R,"<${DataDirectory}/$DBname$DBextension"; my @originalslurp = ; close R; UnLockFile; chomp @originalslurp; my($next,$howmany) = split /\t/,$originalslurp[0],2; $howmany--; $originalslurp[0] = "$next\t$howmany"; my $t; for $t (@originalslurp) { if(index($t,"$In{filename}\t") == 0) { $t = ''; last; } } LockFile; open W,">${DataDirectory}/$DBname$DBextension"; for(@originalslurp) { print W "$_\n" if $_; } close W; UnLockFile; unlink "${DataDirectory}/$TrackFile$DBextension"; } # UpdateDeleteContent sub DeleteContent { LockFile; open R,"<${DataDirectory}/$DBname$DBextension"; my @originalslurp = ; close R; UnLockFile; chomp @originalslurp; my $filename = "$DBname$In{deletecontent}$DBextension"; my($title,$content); for(@originalslurp) { if(index($_,"$filename\t") == 0) { (undef,undef,undef,$title) = split /\t/; last; } } open R,"<${DataDirectory}/$filename"; { my @p = ; close R; $content = join '',@p; } print "Content-Type: text/html\n\n"; print GetTop('Delete Content'); print <
    Name:
    $title

    Content:
    $content

    THECONTROLPANELPAGE print GetBottom; exit; } # sub DeleteContent sub ControlPanel { for(keys %In) { if(/\Aedit\_/ and $In{$_}) { (undef,$In{editcontent}) = split /\_/; last; } if(/\Adelete\_/ and $In{$_}) { (undef,$In{deletecontent}) = split /\_/; last; } } CONTROLPANELSWITCHER: { if($In{addcontent}) { AddContent; last CONTROLPANELSWITCHER; } if($In{updateaddcontent}) { UpdateAddContent; last CONTROLPANELSWITCHER; } if($In{editcontent}) { EditContent; last CONTROLPANELSWITCHER; } if($In{updateeditcontent}) { UpdateEditContent; last CONTROLPANELSWITCHER; } if($In{deletecontent}) { DeleteContent; last CONTROLPANELSWITCHER; } if($In{updatedeletecontent}) { UpdateDeleteContent; last CONTROLPANELSWITCHER; } } # CONTROLPANELSWITCHER &DisplayControlPanel; } # sub ControlPanel Parse; Overview if $In{overview}; ExampleSSI if $In{examplessi}; ExamplePopup if $In{examplepopup}; ControlPanel if $In{admin}; Display;



    This page last updated Thu Feb. 9 2023
    Copyright © 1996, 2006 AudioWorld Online & Today.Net. All rights reserved.
    Comments, questions, corrections to webmaster@audioworld.com