4chan/lib/ads-test.php
2025-04-17 14:46:47 -05:00

155 lines
3.8 KiB
PHP

<?
// pick a random row from tablename and return the img column
// FIXME this is a duplicate of the function below it...
// about 4 tables in global are the same thing with different schema
function rid($tablename,$usetext=0) {
if ($usetext) {
$fields = "img,link";
} else {
$fields = "img";
}
$ret = mysql_global_call("select $fields from `%s` join (select floor(1+rand()*(select max(id) from `%s`)) as id) as randid using (id)", $tablename, $tablename);
if ($usetext) {
return mysql_fetch_row($ret);
} else {
return mysql_result($ret,0,0);
}
}
//file format:
//url (escaped for putting in a href)
//desc (not escaped)
//repeat
function text_link_ad($file) {
global $text_ads;
global $text_ads_n;
if (!isset($text_ads[$file])) {
$ads = @file($file, FILE_IGNORE_NEW_LINES);
shuffle($ads);
$text_ads[$file] = $ads;
$num_ads = count($ads);
$n = 0;
$text_ads_n[$file] = $n;
} else {
$ads = $text_ads[$file];
$n = $text_ads_n[$file];
$num_ads = count($ads);
}
if (!$ads) return "";
list($url,$desc) = explode("<>",$ads[$n]);
if (!$url) return "";
$text = "<strong><a href=\"$url\" rel=\"nofollow\" target=\"_blank\">".htmlspecialchars($desc)."</a></strong>";
$n++;
if ($n == $num_ads)
$n = 0;
$text_ads_n[$file] = $n;
return $text;
}
//duplicate of rid.php
//dir - absolute path from web root to dir inc. trailing slash
//urlroot - what to append the name to to get the url
function rid_in_directory($dir,$urlroot) {
global $document_root;
$realdir = "/www/global/imgtop/dontblockthis/".$dir;
$ft = "$realdir/files.txt";
$names = file_array_cached($ft);
if (!$names) {
$arr = scandir($realdir);
foreach ($arr as $fi) {
if (preg_match("/\.(jpg|gif|png)$/", $fi)) {
$names[] = $fi;
}
}
file_put_contents($ft, join($names, "\n"));
}
return $urlroot.$names[rand(0, count($names)-1)];
}
// Takes a dir and a filename and uses file() to parse it
// then returns a random value.
function rand_from_flatfile( $dir, $filename )
{
$file = $dir . $filename;
$names = file_array_cached( $file );
return $names[ rand( 0, count($names)-1 ) ];
}
function form_ads(&$dat) {
$error = false; // unused, errors have ads too
$dat .= "<div style='position:relative'>";
/*if(!$error && FIXED_AD == 1) {
$dat.='<a href="'.FIXED_LINK.'" target="_blank"><img src="//static.4chan.org/support/'.FIXED_IMG.'" width="120" height="240" border="0" style="position: absolute; top: '.$gtop.'px; right: 20px"></a>';
}*/
if(FIXED_LEFT_AD == 1) {
if(defined('FIXED_LEFT_TXT') && FIXED_LEFT_TXT) {
$dat.= ad_text_for(FIXED_LEFT_TXT);
}
else if(defined('FIXED_LEFT_TABLE')) {
list($ldimg,$ldhref) = rid(FIXED_LEFT_TABLE,1);
$dat.='<a href="'.$ldhref.'" target="_blank"><img src="'.$ldimg.'" width=120 height=240 border="0" style="position:absolute;left:10%"></a>';
}
}
if(FIXED_RIGHT_AD == 1) {
if(defined('FIXED_RIGHT_TXT') && FIXED_RIGHT_TXT) {
$dat.= ad_text_for(FIXED_RIGHT_TXT);
}
else if(defined('FIXED_RIGHT_TABLE')) {
list($ldimg,$ldhref) = rid(FIXED_RIGHT_TABLE,1);
$dat.='<a href="'.$ldhref.'" target="_blank"><img src="'.$ldimg.'" border="0" style="position:absolute;right:10%"></a>';
}
}
$dat .= "</div>";
}
function ad_text_for($path) {
$txt = @file_get_contents_cached($path);
if (!$txt) return $txt;
return preg_replace_callback("@RANDOM@", "rand", $txt);
}
function global_msg_txt() {
static $globalmsgtxt, $globalmsgdate;
if (!$globalmsgdate) {
if (file_exists(GLOBAL_MSG_FILE)) {
$globalmsgtxt = file_get_contents(GLOBAL_MSG_FILE);
$globalmsgdate = filemtime(GLOBAL_MSG_FILE);
if ($globalmsgtxt) {
$globalmsgtxt = str_replace('{{4CHAN_DOMAIN}}', MAIN_DOMAIN, $globalmsgtxt);
}
}
else {
$globalmsgtxt = null;
$globalmsgdate = 1;
}
}
return array($globalmsgtxt, $globalmsgdate);
}
?>