Channels:   |HiFi|HomeTheater|ProAudio|DesktopAudio|DVD-A|CarAudio|MP3|NetAudio|MusicBiz|AudioBiz|

AudioWorld Online
Search in:
Saturday, July 27

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
 

Advertise at AudioWorld!

Advertising at AudioWorld Online is the most productive and cost-effective Web marketing medium available to businesses in the audio industry.

Choose from...

  • self-serve Google Adwords text ads (available directly from Google only), priced per-click (PPC) by competitive bidding for placement. You can even target your ads directly to AudioWorld by using the Adwords site targeting feature.



  • custom sponsorship opportunities, in larger graphic formats, rich media etc., with guaranteed targeted placement - available by arrangement, please send e-mail to inquire


Brand Recognition

Since going online in September 1996, AudioWorld has been the busiest directory and information site on the Web devoted to the interests of audio professionals, enthusiasts and audiophiles. In the early years, we established AudioWorld as a widely-recognized brand on the Internet, and since 2001 we have built on that brand recognition, with the addition of consumer audio (HiFi, High-End and Home Theater) to our community mix, as well as car audio and Internet/MP3 music.

Traffic and Demographics

AudioWorld has built a dedicated community of subscribers and visitors. They come back regularly — 80% of them visit at least once per week — looking for information about audio. And in our surveys, they tell us that they want to see advertising for audio products and services. Our audience is not only willing to accept advertising: they are asking for it!

Your advertising at AudioWorld will reach upwards of 2,000 unique individual visitors to the site each and every day (more on weekdays, less on the weekend). Most of those visitors are highly-motivated audio professionals and active audio enthusiasts searching for exactly what you have to offer. Many of them are owners and managers who make the purchasing decisions that matter to your business.

Advertising at AudioWorld offers you...

  • high visibility
  • great demographics
  • guaranteed exposure
  • flexible options
  • immediate placement
  • realtime statistics
#!/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