/','/\r*\n|\r/'),array('\x3C','\x3E','\\\\$0'),addslashes($str)); } function nl2brWithHTML($str){ $str=str_replace('[CODE]','[CODE][HTML]',$str); $str=str_replace('[/CODE]','[/HTML][/CODE]',$str); $inHTML=false; $out=''; while(true){ if($inHTML){ $end=strpos($str,'[/HTML]'); if($end===false) break; else{ $out.=substr($str,0,$end); $str=substr($str,$end+7); $inHTML=false; } }else{ $offset=strpos($str,'[HTML]'); if($offset===false){ $out.=nl2br($str); break; }else{ $out.=nl2br(substr($str,0,$offset)); $str=substr($str,$offset+6); $inHTML=true; } } } return $out; } function addLinkSense($text,$attributes=''){ return ereg_replace("(^| |\t|\r|\n|\"|')(http://[^ \t\r\n\"']+)","\\1\\2",$text); } function addProtocolSense($url,$protocol='http://'){ return ereg('^[[:alnum:]]+:',$url)?$url:$protocol.$url; } function fetchQueryAll($query,$type=MYSQL_BOTH){ $rows=array(); if($result=mysql_query($query)){ while($row=mysql_fetch_array($result,$type)) array_push($rows,$row); mysql_free_result($result); } return $rows; } function fetchQueryRow($query){ if($result=mysql_query($query)){ if($row=mysql_fetch_array($result)){ mysql_free_result($result); return $row; } mysql_free_result($result); } return ; } function fetchQueryColumn($query){ $column=array(); if($result=mysql_query($query)){ while($row=mysql_fetch_row($result)) array_push($column,$row[0]); mysql_free_result($result); } return $column; } function fetchQueryCell($query){ if($result=mysql_query($query)){ list($cell)=mysql_fetch_row($result); mysql_free_result($result); return $cell; } return ; } function getFileExtension($path){ for($i=strlen($path)-1;$i>=0;$i--){ if($path{$i}=='.') return strtolower(substr($path,$i+1)); if(($path{$i}=='/')||($path{$i}=='\\')) break; } return ''; } function getAttributesFromString($str){ $attributes=array(); foreach(explode(' ',$str) as $value){ $value=trim($value); if(preg_match('/([^= ]+)="([^"]*)/',$value,$matches)){ $attributes[$matches[1]]=$matches[2]; }elseif(preg_match("/([^= ]+)='([^']*)/",$value,$matches)){ $attributes[$matches[1]]=$matches[2]; }elseif(preg_match('/([^= ]+)=([^ ]*)/',$value,$matches)){ $attributes[$matches[1]]=$matches[2]; } } return $attributes; } mysql_connect($database['server'],$database['username'],$database['password']); mysql_select_db($database['database']); if(mysql_query('SET CHARACTER SET utf8')){ $database['utf8']=true; }else{ $database['utf8']=false; function mysql_lessen($str,$length=255,$tail='..'){ return UTF8::lessenAsByte($str,$length,$tail); } } @mysql_query('SET SESSION collation_connection = \'utf8_general_ci\''); function getOwner($name){ global $database; return fetchQueryCell("select owner from {$database['prefix']}BlogSettings where name = '$name'"); } function getOwnerBySecondaryDomain($domain){ global $database; return fetchQueryCell("select owner from {$database['prefix']}BlogSettings where secondaryDomain = '$domain'"); } function getBlogSetting($owner){ global $database; if($result=mysql_query("select * from {$database['prefix']}BlogSettings where owner = $owner")){ return mysql_fetch_array($result); } return false; } function getSkinSetting($owner){ global $database; if($result=mysql_query("select * from {$database['prefix']}SkinSettings where owner = $owner")) return mysql_fetch_array($result); return false; } function getBlogURL($name=null,$domain=null,$path=null,$type=null){ global $service,$blog; if($type===null) $type=$service['type']; if($path===null) $path=$service['path']; if($domain===null) $domain=$service['domain'].(isset($service['port'])?":{$service['port']}":''); if($name===null) $name=$blog['name']; switch($type){ case 'domain': return "http://$name.$domain$path"; case 'path': return "http://$domain$path/$name"; case 'single': default: return "http://$domain$path"; } } function getArchives($owner){ global $database; $archives=array(); $visibility=doesHaveOwnership()?'':'AND visibility > 0'; $result=mysql_query("SELECT EXTRACT(year_month FROM FROM_UNIXTIME(published)) period, COUNT(*) count FROM {$database['prefix']}Entries WHERE owner = $owner AND draft = 0 $visibility AND category >= 0 GROUP BY period ORDER BY period DESC LIMIT 5"); if($result){ while($archive=mysql_fetch_array($result)) array_push($archives,$archive); } return $archives; } function getCalendar($owner,$period){ global $database; $calendar=array('days'=>array()); if(($period===true)||!checkPeriod($period)) $period=Timestamp::getYearMonth(); $calendar['period']=$period; $calendar['year']=substr($period,0,4); $calendar['month']=substr($period,4,2); $visibility=doesHaveOwnership()?'':'AND visibility > 0'; $result=mysql_query("SELECT DISTINCT DAYOFMONTH(FROM_UNIXTIME(published)) FROM {$database['prefix']}Entries WHERE owner = $owner AND draft = 0 $visibility AND category >= 0 AND YEAR(FROM_UNIXTIME(published)) = {$calendar['year']} AND MONTH(FROM_UNIXTIME(published)) = {$calendar['month']}"); if($result){ while(list($day)=mysql_fetch_array($result)) array_push($calendar['days'],$day); } $calendar['days']=array_flip($calendar['days']); return $calendar; } function getAttachmentByOnlyName($owner,$name){ global $database; $name=mysql_escape_string($name); return fetchQueryRow("select * from {$database['prefix']}Attachments where owner = $owner and name = '$name'"); } function getCategories($owner){ global $database; $rows=fetchQueryAll("SELECT * FROM {$database['prefix']}Categories WHERE owner = $owner ORDER BY parent, priority"); $categories=array(); foreach($rows as $category){ if($category['parent']==null){ $category['children']=array(); $categories[$category['id']]=$category; }elseif(isset($categories[$category['parent']])) array_push($categories[$category['parent']]['children'],$category); } return $categories; } function getCategoriesSkin(){ global $database; global $owner,$service; $sql="select * from {$database['prefix']}SkinSettings where owner = $owner"; $setting=fetchQueryRow($sql); $skin=array('name'=>"{$setting['skin']}",'url'=>$service['path']."/image/tree/{$setting['tree']}",'labelLength'=>$setting['labelLengthOnTree'],'showValue'=>$setting['showValueOnTree'],'bgColor'=>"{$setting['bgColorOnTree']}",'itemColor'=>"{$setting['colorOnTree']}",'itemBgColor'=>"{$setting['bgColorOnTree']}",'activeItemColor'=>"{$setting['activeColorOnTree']}",'activeItemBgColor'=>"{$setting['activeBgColorOnTree']}",); return $skin; } function getCommentsWithPagingForGuestbook($owner,$page,$count){ global $database; $sql="SELECT * FROM {$database['prefix']}Comments WHERE owner = $owner"; $sql.=' AND entry = 0 AND parent is null'; $sql.=' ORDER BY written DESC'; return fetchWithPaging($sql,$page,$count); } function getComments($entry){ global $database,$owner; $comments=array(); $authorized=doesHaveOwnership(); $aux=($entry==0?'ORDER BY written DESC':'order by id ASC'); $sql="select * from {$database['prefix']}Comments where owner = $owner and entry = $entry and parent is null $aux"; if($result=mysql_query($sql)){ while($comment=mysql_fetch_array($result)){ if(($comment['secret']==1)&&!$authorized){ $comment['name']=''; $comment['homepage']=''; $comment['comment']=_t('관리자만 볼 수 있는 댓글입니다'); } array_push($comments,$comment); } } return $comments; } function getCommentComments($parent){ global $database,$owner; $comments=array(); $authorized=doesHaveOwnership(); if($result=mysql_query("select * from {$database['prefix']}Comments where owner = $owner and parent = $parent order by id")){ while($comment=mysql_fetch_array($result)){ if(($comment['secret']==1)&&!$authorized){ $comment['name']=''; $comment['homepage']=''; $comment['comment']=_t('관리자만 볼 수 있는 댓글입니다'); } array_push($comments,$comment); } } return $comments; } function getRecentComments($owner){ global $skinSetting,$database; $comments=array(); $sql=doesHaveOwnership()?"SELECT * FROM {$database['prefix']}Comments WHERE owner = $owner AND entry>0 ORDER BY written DESC LIMIT {$skinSetting['commentsOnRecent']}":"SELECT r.* FROM {$database['prefix']}Comments r, {$database['prefix']}Entries e WHERE r.owner = $owner AND r.owner = e.owner AND r.entry = e.id AND e.draft = 0 AND e.visibility > 0 AND entry > 0 ORDER BY r.written DESC LIMIT {$skinSetting['commentsOnRecent']}"; if($result=mysql_query($sql)){ while($comment=mysql_fetch_array($result)){ if(($comment['secret']==1)&&!doesHaveOwnership()){ $comment['name']=''; $comment['homepage']=''; $comment['comment']=_t('관리자만 볼 수 있는 댓글입니다'); } array_push($comments,$comment); } } return $comments; } function getEntriesTotalCount($owner){ global $database; $visibility=doesHaveOwnership()?'':'AND visibility > 0'; return fetchQueryCell("SELECT COUNT(*) FROM {$database['prefix']}Entries WHERE owner = $owner AND draft = 0 $visibility AND category >= 0"); } function getEntriesWithPagingByNotice($owner,$page,$count){ global $database,$folderURL,$suri; $visibility=doesHaveOwnership()?'':'AND visibility = 2'; $sql="SELECT *, '"._t('공지')."' categoryLabel FROM {$database['prefix']}Entries WHERE owner = $owner $visibility AND category = -2 ORDER BY published DESC"; return fetchWithPaging($sql,$page,$count,"$folderURL/{$suri['value']}"); } function getRecentEntries($owner){ global $database,$skinSetting; $entries=array(); $visibility=doesHaveOwnership()?'':'AND visibility > 0'; $result=mysql_query("SELECT id, title, comments FROM {$database['prefix']}Entries WHERE owner = $owner AND draft = 0 $visibility AND category >= 0 ORDER BY published DESC LIMIT {$skinSetting['entriesOnRecent']}"); while($entry=mysql_fetch_array($result)){ array_push($entries,$entry); } return $entries; } function getEntryVisibilityName($visibility){ switch(abs($visibility)){ case 0: return _t('비공개'); case 1: return _t('보호'); case 2: return _t('공개'); case 3: default: return _t('발행'); } } function isFiltered($owner,$mode,$value){ global $database; $value=mysql_escape_string($value); switch($mode){ case 'sitename': $table='URLFilters'; $column='url'; $value=str_replace('http://','',$value); $lastSlashPos=lastIndexOf($value,'/'); if($lastSlashPos>-1){ $value=substr($value,0,$lastSlashPos); } break; case 'name': $table='GuestFilters'; $column='name'; break; case 'address': $table='HostFilters'; $column='address'; break; case 'contents': $table='ContentFilters'; $column='word'; break; default: return false; } if($mode=='contents'){ $result=mysql_query("select $column from {$database['prefix']}$table WHERE owner = $owner"); while($row=mysql_fetch_row($result)){ if(eregi($row[0],$value)){ return true; } } return false; }else{ return mysql_result(mysql_query("select count(*) from {$database['prefix']}$table WHERE owner = $owner AND $column = '$value'"),0,0); } } function getKeywordNames($owner){ return array(); } function getNotices($owner){ global $database; $visibility=doesHaveOwnership()?'':'AND visibility = 2'; return fetchQueryAll("SELECT id, title, published FROM {$database['prefix']}Entries WHERE owner = $owner AND draft = 0 $visibility AND category = -2 ORDER BY published DESC"); } function getLinks($owner){ global $database; $links=array(); if($result=mysql_query("select * from {$database['prefix']}Links where owner = $owner ORDER BY name")){ while($link=mysql_fetch_array($result)) array_push($links,$link); } return $links; } function fetchWithPaging($sql,$page,$count,$url=null,$prefix='?page='){ global $folderURL; if($url===null) $url=$folderURL; $paging=array('url'=>$url,'prefix'=>$prefix,'postfix'=>''); if(empty($sql)) return array(array(),$paging); if(eregi('[[:space:]]{1}(FROM.*)$',$sql,$matches)) $from=$matches[1]; else return array(array(),$paging); $paging['total']=fetchQueryCell("SELECT COUNT(*) $from"); if($paging['total']===null) return array(array(),$paging); $paging['pages']=intval(ceil($paging['total']/$count)); $paging['page']=is_numeric($page)?$page:1; if($paging['page']>$paging['pages']){ $paging['page']=$paging['pages']+1; if($paging['pages']>0) $paging['prev']=$paging['pages']; return array(array(),$paging); } if($paging['page']>1) $paging['prev']=$paging['page']-1; if($paging['page']<$paging['pages']) $paging['next']=$paging['page']+1; $offset=($paging['page']-1)*$count; return array(fetchQueryAll("$sql LIMIT $offset, $count"),$paging); } function getStatistics($owner){ global $database; $stats=array('total'=>0,'today'=>0,'yesterday'=>0); $result=mysql_query("select visits from {$database['prefix']}BlogStatistics where owner = $owner"); if(mysql_num_rows($result)==1) list($stats['total'])=mysql_fetch_array($result); $result=mysql_query("select visits from {$database['prefix']}DailyStatistics where owner = $owner and `date` = ".Timestamp::getDate()); if(mysql_num_rows($result)==1) list($stats['today'])=mysql_fetch_array($result); $result=mysql_query("select visits from {$database['prefix']}DailyStatistics where owner = $owner and `date` = ".Timestamp::getDate(time()-86400)); if(mysql_num_rows($result)==1) list($stats['yesterday'])=mysql_fetch_array($result); return $stats; } function updateVisitorStatistics($owner){ global $database,$blogURL; if(!fireEvent('UpdatingVisitorStatistics',true)) return ; if(doesHaveOwnership()) return ; $id=session_id(); $result=mysql_query("select blog from {$database['prefix']}SessionVisits where id = '$id' and address = '{$_SERVER['REMOTE_ADDR']}' and blog = $owner"); if($result&&(mysql_num_rows($result)>0)) return ; if(mysql_query("insert into {$database['prefix']}SessionVisits values('$id', '{$_SERVER['REMOTE_ADDR']}', $owner)")&&(mysql_affected_rows()>0)){ mysql_query("update {$database['prefix']}BlogStatistics set visits = visits + 1 where owner = $owner"); if(mysql_affected_rows()==0){ if(mysql_query("update {$database['prefix']}BlogStatistics set visits = visits + 1 where owner = $owner")||(mysql_affected_rows()==0)) mysql_query("insert into {$database['prefix']}BlogStatistics values($owner, 1)"); } $period=Timestamp::getDate(); mysql_query("update {$database['prefix']}DailyStatistics set visits = visits + 1 where owner = $owner and `date` = $period"); if(mysql_affected_rows()==0){ if(!mysql_query("insert into {$database['prefix']}DailyStatistics values($owner, $period, 1)")||(mysql_affected_rows()==0)) mysql_query("update {$database['prefix']}DailyStatistics set visits = visits + 1 where owner = $owner and `date` = $period"); } if(!empty($_SERVER['HTTP_REFERER'])){ $referer=parse_url($_SERVER['HTTP_REFERER']); if(!empty($referer['host'])&&(($referer['host']!=$_SERVER['HTTP_HOST'])||(strncmp($referer['path'],$blogURL,strlen($blogURL))!=0))){ requireComponent('Tattertools.Data.Filter'); if(Filter::isFiltered('ip',$_SERVER['REMOTE_ADDR'])||Filter::isFiltered('url',$_SERVER['HTTP_REFERER'])) return ; if(!fireEvent('AddingRefererLog',true,array('host'=>$referer['host'],'url'=>$_SERVER['HTTP_REFERER']))) return ; $host=mysql_escape_string($referer['host']); $url=mysql_escape_string($_SERVER['HTTP_REFERER']); mysql_query("insert into {$database['prefix']}RefererLogs values($owner, '$host', '$url', UNIX_TIMESTAMP())"); mysql_query("delete from {$database['prefix']}RefererLogs where referred < UNIX_TIMESTAMP() - 604800"); if(!mysql_query("update {$database['prefix']}RefererStatistics set count = count + 1 where owner = $owner and host = '$host'")||(mysql_affected_rows()==0)) mysql_query("insert into {$database['prefix']}RefererStatistics values($owner, '$host', 1)"); } } } } function getTrackbacks($entry){ global $database,$owner; $trackbacks=array(); $result=mysql_query("select * from {$database['prefix']}Trackbacks where owner = $owner AND entry = $entry order by written"); while($trackback=mysql_fetch_array($result)) array_push($trackbacks,$trackback); return $trackbacks; } function getRecentTrackbacks($owner){ global $database; global $skinSetting; $trackbacks=array(); $sql=doesHaveOwnership()?"SELECT * FROM {$database['prefix']}Trackbacks WHERE owner = $owner ORDER BY written DESC LIMIT {$skinSetting['trackbacksOnRecent']}":"SELECT t.* FROM {$database['prefix']}Trackbacks t, {$database['prefix']}Entries e WHERE t.owner = $owner AND t.owner = e.owner AND t.entry = e.id AND e.draft = 0 AND e.visibility >= 2 ORDER BY t.written DESC LIMIT {$skinSetting['trackbacksOnRecent']}"; if($result=mysql_query($sql)){ while($trackback=mysql_fetch_array($result)) array_push($trackbacks,$trackback); } return $trackbacks; } function lastIndexOf($string,$item){ $index=strpos(strrev($string),strrev($item)); if($index){ $index=strlen($string)-strlen($item)-$index; return $index; }else return -1; } function getTags($entry){ global $database,$owner; $tags=array(); $result=mysql_query("select * from {$database['prefix']}Tags, {$database['prefix']}TagRelations where id = tag and entry = $entry and owner = $owner group by name order by name"); if($result){ while($tag=mysql_fetch_array($result)) array_push($tags,$tag); } return $tags; } function getRandomTags($owner){ global $database,$skinSetting; $tags=array(); $aux=($skinSetting['tagsOnTagbox']==-1)?'':"limit {$skinSetting['tagsOnTagbox']}"; if($skinSetting['tagboxAlign']==1) $result=mysql_query("select name, count(*) cnt from {$database['prefix']}Tags, {$database['prefix']}TagRelations where id = tag and owner = $owner GROUP BY name ORDER BY cnt DESC $aux"); elseif($skinSetting['tagboxAlign']==2) $result=mysql_query("select distinct name from {$database['prefix']}Tags, {$database['prefix']}TagRelations where id = tag and owner = $owner ORDER BY name $aux"); else $result=mysql_query("select name from {$database['prefix']}Tags, {$database['prefix']}TagRelations where id = tag and owner = $owner GROUP BY name ORDER BY RAND() $aux"); if($result){ while(list($tag)=mysql_fetch_row($result)) array_push($tags,$tag); } return $tags; } function getTagFrequencyRange(){ global $database,$owner; $max=$min=0; $result=mysql_query("select count(entry) cnt from {$database['prefix']}TagRelations where owner = $owner group by tag order by cnt desc limit 1"); if($result){ if(list($count)=mysql_fetch_array($result)) $max=$count; } $result=mysql_query("select count(entry) cnt from {$database['prefix']}TagRelations where owner = $owner group by tag order by cnt limit 1"); if($result){ if(list($count)=mysql_fetch_array($result)) $min=$count; } return array($max,$min); } function getTagFrequency($tag,$max,$min){ global $database,$owner; $count=fetchQueryCell("select count(*) from {$database['prefix']}Tags t, {$database['prefix']}TagRelations r where t.id=r.tag and r.owner = $owner and t.name = '".mysql_escape_string($tag)."'"); $dist=$max/3; if($count==$min) return 5; elseif($count==$max) return 1; elseif($count>=$min+($dist*2)) return 2; elseif($count>=$min+$dist) return 3; else return 4; } $url=isset($_SERVER['REDIRECT_URL'])?$_SERVER['REDIRECT_URL']:$_SERVER['SCRIPT_NAME']; $suri=array('url'=>$url,'value'=>''); $owner=null; $depth=substr_count($service['path'],'/'); if($depth>0){ if(ereg("^((/+[^/]+){{$depth}})(.*)$",$url,$matches)) $url=$matches[3]; else respondNotFoundPage(); } if($service['type']=='single'){ $owner=1; }else{ if($service['type']=='domain'){ if($_SERVER['HTTP_HOST']==$service['domain']){ $owner=1; }else{ $domain=explode('.',$_SERVER['HTTP_HOST'],2); if($domain[1]==$service['domain']){ $owner=getOwner($domain[0]); if($owner===null) $owner=getOwnerBySecondaryDomain($_SERVER['HTTP_HOST']); }else{ $owner=getOwnerBySecondaryDomain($_SERVER['HTTP_HOST']); } } }else{ if($url=='/'){ $owner=1; }elseif(ereg('^/+([^/]+)(.*)$',$url,$matches)){ $owner=getOwner($matches[1]); $url=$matches[2]; }else{ respondNotFoundPage(); } } if($owner===null) respondNotFoundPage(); } $blog=getBlogSetting($owner); $skinSetting=getSkinSetting($owner); $depth=substr_count(ROOT,'/'); if($depth>0){ if(ereg("^((/+[^/]+){{$depth}})/*(.*)$",$url,$matches)){ $suri['directive']=$matches[1]; if($matches[3]!==false) $suri['value']=$matches[3]; }else respondNotFoundPage(); }else{ $suri['directive']='/'; $suri['value']=ltrim($url,'/'); } if(is_numeric($suri['value'])) $suri['id']=$suri['value']; $suri['page']=empty($_POST['page'])?(empty($_GET['page'])?true:$_GET['page']):$_POST['page']; $hostURL="http://{$_SERVER['HTTP_HOST']}".(isset($service['port'])?":{$service['port']}":''); $blogURL=$service['type']=='path'?"{$service['path']}/{$blog['name']}":$service['path']; $folderURL=rtrim($blogURL.$suri['directive'],'/'); unset($url,$domain); if(!file_exists('../../config.php')){ header("Location: $blogURL/setup.php"); exit; } function respondNotFoundPage(){ header('HTTP/1.1 404 Not Found'); header("Connection: close"); exit; } function getMicrotimeAsFloat(){ list($usec,$sec)=explode(" ",microtime()); return ($usec+$sec); } $sessionMicrotime=getMicrotimeAsFloat(); function openSession($savePath,$sessionName){ return true; } function closeSession(){ return true; } function readSession($id){ global $database,$service; if($result=mysql_query("SELECT data FROM {$database['prefix']}Sessions WHERE id = '$id' AND address = '{$_SERVER['REMOTE_ADDR']}' AND updated >= (UNIX_TIMESTAMP() - {$service['timeout']})")){ if($session=mysql_fetch_array($result)) return $session['data']; } return ''; } function writeSession($id,$data){ global $database; global $sessionMicrotime; if(strlen($id)<32) return false; $userid=isset($_SESSION['userid'])?$_SESSION['userid']:'null'; $data=mysql_escape_string($data); $server=mysql_escape_string($_SERVER['HTTP_HOST']); $request=mysql_escape_string($_SERVER['REQUEST_URI']); $referer=isset($_SERVER['HTTP_REFERER'])?mysql_escape_string($_SERVER['HTTP_REFERER']):''; $timer=getMicrotimeAsFloat()-$sessionMicrotime; $result=mysql_query("UPDATE {$database['prefix']}Sessions SET userid = $userid, data = '$data', server = '$server', request = '$request', referer = '$referer', timer = $timer, updated = UNIX_TIMESTAMP() WHERE id = '$id' AND address = '{$_SERVER['REMOTE_ADDR']}'"); if($result&&(mysql_affected_rows()==1)) return true; return false; } function destroySession($id,$setCookie=false){ global $database; if(!isset($_SESSION['userid'])) return ; @mysql_query("DELETE FROM {$database['prefix']}Sessions WHERE id = '$id' AND address = '{$_SERVER['REMOTE_ADDR']}'"); gcSession(); } function gcSession($maxLifeTime=false){ global $database,$service; @mysql_query("DELETE FROM {$database['prefix']}Sessions WHERE updated < (UNIX_TIMESTAMP() - {$service['timeout']})"); $result=@mysql_query("SELECT DISTINCT v.id, v.address FROM {$database['prefix']}SessionVisits v LEFT JOIN {$database['prefix']}Sessions s ON v.id = s.id AND v.address = s.address WHERE s.id IS NULL AND s.address IS NULL"); if($result){ $gc=array(); while($g=mysql_fetch_row($result)) array_push($gc,$g); foreach($gc as $g) @mysql_query("DELETE FROM {$database['prefix']}SessionVisits WHERE id = '{$g[0]}' AND address = '{$g[1]}'"); } return true; } function getAnonymousSession(){ global $database; $result=mysql_query("SELECT id FROM {$database['prefix']}Sessions WHERE address = '{$_SERVER['REMOTE_ADDR']}' AND userid IS NULL AND preexistence IS NULL"); if($result&&(list($id)=mysql_fetch_array($result))) return $id; return false; } function newAnonymousSession(){ global $database; for($i=0;$i<100;$i++){ if(($id=getAnonymousSession())!==false) return $id; $id=dechex(rand(0x10000000,0x7FFFFFFF)).dechex(rand(0x10000000,0x7FFFFFFF)).dechex(rand(0x10000000,0x7FFFFFFF)).dechex(rand(0x10000000,0x7FFFFFFF)); mysql_query("INSERT INTO {$database['prefix']}Sessions(id, address, created, updated) VALUES('$id', '{$_SERVER['REMOTE_ADDR']}', UNIX_TIMESTAMP(), UNIX_TIMESTAMP())"); if(mysql_affected_rows()>0) return $id; } return false; } function setSessionAnonymous($currentId){ $id=getAnonymousSession(); if($id!==false){ if($id!=$currentId) session_id($id); return true; } $id=newAnonymousSession(); if($id!==false){ session_id($id); return true; } return false; } function isSessionAuthorized($id){ global $database; $result=mysql_query("select id from {$database['prefix']}Sessions where id = '$id' and address = '{$_SERVER['REMOTE_ADDR']}' and (userid is not null or preexistence is not null)"); if($result&&(mysql_num_rows($result)==1)) return true; return false; } function setSession(){ $id=empty($_COOKIE[session_name()])?'':$_COOKIE[session_name()]; if((strlen($id)<32)||!isSessionAuthorized($id)) setSessionAnonymous($id); } session_name('TSSESSION'); setSession(); session_set_save_handler('openSession','closeSession','readSession','writeSession','destroySession','gcSession'); session_cache_expire(1); session_set_cookie_params(0,'/',$service['domain']); if(session_start()!==true){ header('HTTP/1.1 503 Service Unavailable'); } function doesHaveMembership(){ return empty($_SESSION['userid'])?false:true; } function getUserId(){ return empty($_SESSION['userid'])?false:$_SESSION['userid']; } function doesHaveOwnership(){ global $owner; if(empty($_SESSION['userid'])||($_SESSION['userid']!=$owner)) return false; return true; } if(doesHaveMembership()){ $user=array('id'=>getUserId()); list($user['loginid'],$user['name'])=fetchQueryRow("select loginid, name from {$database['prefix']}Users where userid = {$user['id']}"); list($user['blog'],$user['timezone'])=fetchQueryRow("select name, timezone from {$database['prefix']}BlogSettings where owner = {$user['id']}"); $user['homepage']=getBlogURL($user['blog']); }else $user=null; Timezone::set(isset($blog['timezone'])?$blog['timezone']:$service['timezone']); mysql_query('SET time_zone = \''.Timezone::getCanonical().'\''); Locale::setDirectory('../../language'); Locale::set(isset($blog['language'])?$blog['language']:$service['language']); $activePlugins=array(); $eventMappings=array(); $tagMappings=array(); if(!empty($owner)){ $activePlugins=fetchQueryColumn("SELECT name FROM {$database['prefix']}Plugins WHERE owner = $owner"); $xmls=new XMLStruct(); foreach($activePlugins as $plugin){ $manifest=@file_get_contents("../../plugins/$plugin/index.xml"); if($manifest&&$xmls->open($manifest)){ if($xmls->doesExist('/plugin/binding/listener')){ foreach($xmls->selectNodes('/plugin/binding/listener') as $listener){ if(!empty($listener['.attributes']['event'])&&!empty($listener['.value'])){ if(!isset($eventMappings[$listener['.attributes']['event']])) $eventMappings[$listener['.attributes']['event']]=array(); array_push($eventMappings[$listener['.attributes']['event']],array('plugin'=>$plugin,'listener'=>$listener['.value'])); } } unset($listener); } if($xmls->doesExist('/plugin/binding/tag')){ foreach($xmls->selectNodes('/plugin/binding/tag') as $tag){ if(!empty($tag['.attributes']['name'])&&!empty($tag['.attributes']['handler'])){ if(!isset($tagMappings[$tag['.attributes']['name']])) $tagMappings[$tag['.attributes']['name']]=array(); array_push($tagMappings[$tag['.attributes']['name']],array('plugin'=>$plugin,'handler'=>$tag['.attributes']['handler'])); } } unset($tag); } }else{ $plugin=mysql_escape_string($plugin); mysql_query("DELETE FROM {$database['prefix']}Plugins WHERE owner = $owner AND name = '$plugin'"); } } unset($xmls); unset($plugin); } function fireEvent($event,$target=null,$mother=null,$condition=true){ global $service,$eventMappings,$pluginURL; if(!$condition) return $target; if(!isset($eventMappings[$event])) return $target; foreach($eventMappings[$event] as $mapping){ include_once ("../../plugins/{$mapping['plugin']}/index.php"); if(function_exists($mapping['listener'])){ $pluginURL="{$service['path']}/plugins/{$mapping['plugin']}"; $target=call_user_func($mapping['listener'],$target,$mother); } } return $target; } function handleTags(&$content){ global $service,$tagMappings,$pluginURL; if(preg_match_all('/\[##_(\w+)_##\]/',$content,$matches)){ foreach($matches[1] as $tag){ if(!isset($tagMappings[$tag])) continue; $target=''; foreach($tagMappings[$tag] as $mapping){ include_once ("../../plugins/{$mapping['plugin']}/index.php"); if(function_exists($mapping['handler'])){ $pluginURL="{$service['path']}/plugins/{$mapping['plugin']}"; $target=call_user_func($mapping['handler'],$target); } } dress($tag,$target,$content); } } } function respondErrorPage($message=''){ global $service;?> <?=TATTERTOOLS_NAME?>
Download Mp3/Mp3 MusicTop Chartsdownload Guns N\ Roses music lyricdownload The Raconteurs music lyricdownload Nina Simone music lyricdownload The Cure music lyricdownload Pendulum music lyricdownload Barenaked Ladies music lyricdownload Spiritualized music lyricdownload The Beach Boys music lyricdownload Natasha Bedingfield music lyricdownload Def Leppard music lyricdownload Gabriella Cilmi music lyricdownload Red Hot Chili Peppers music lyricdownload Toby Keith music lyricdownload Nickelback music lyricdownload Flobots music lyricdownload Tom Waits music lyricdownload Sara Bareilles music lyricdownload Kanye West music lyricdownload Eric Clapton music lyricdownload Fleetwood Mac music lyricdownload Stevie Wonder music lyricdownload Elton John music lyricdownload Fleet Foxes music lyricdownload Sam Sparro music lyricdownload Depeche Mode music lyricsouvenirs most popular vacation travel

souvenirs most popular vacation travel

then debbie branson turtle creek dallas

debbie branson turtle creek dallas

note part time employment ann arbor purple heart

part time employment ann arbor purple heart

mass hotels in ennis ireland

hotels in ennis ireland

and revelations the demon slayer

revelations the demon slayer

late etheridge shire council

etheridge shire council

cause hms glowworm hipper

hms glowworm hipper

horse skate psp themes

skate psp themes

select shelby gallien

shelby gallien

care el paso tx county coroners office

el paso tx county coroners office

felt dr seuss crib mobile

dr seuss crib mobile

wash merrill corporate responsability

merrill corporate responsability

land brighten ski resort

brighten ski resort

fell jack rackam

jack rackam

flower scott elementary school diana salinas

scott elementary school diana salinas

five difference 12 and 12 5 sodium hypochlorite

difference 12 and 12 5 sodium hypochlorite

lady tonkinese cats hawaii

tonkinese cats hawaii

crowd b w woven sample book

b w woven sample book

car drumbuie farm

drumbuie farm

place kel ex agencies

kel ex agencies

problem khtr

khtr

knew skoda sterio wiring diagrams

skoda sterio wiring diagrams

force weddings in gazebos ocala fl

weddings in gazebos ocala fl

power hp pavilion a250n 512 ram chip

hp pavilion a250n 512 ram chip

machine dgeq permanent list of electors

dgeq permanent list of electors

cover lightbody diet

lightbody diet

happy telephone call fowarding

telephone call fowarding

great mendon michigan parks and recreation

mendon michigan parks and recreation

method give heartworm preventive to infected dog

give heartworm preventive to infected dog

continent genessee county isd

genessee county isd

position hypervascular exophytic lesions

hypervascular exophytic lesions

mine biale rebbe

biale rebbe

shell phylosophical

phylosophical

even springfield women hockey massachusetts

springfield women hockey massachusetts

soon mandatos guayaquil

mandatos guayaquil

for dirtworks chasis

dirtworks chasis

copy balderdash trackback url for spam spamming

balderdash trackback url for spam spamming

sentence corky actor on tv

corky actor on tv

train mpa washout in monkey

mpa washout in monkey

through jose p rez

jose p rez

syllable bookshop stanhope england

bookshop stanhope england

sudden vicanto

vicanto

oh pusat kaunseling

pusat kaunseling

gone boule noire aimer d amour

boule noire aimer d amour

world kathy muscari

kathy muscari

produce royal hanboks

royal hanboks

as xpad control driver for windows

xpad control driver for windows

kind allergies to cat dander

allergies to cat dander

quick silestone countertop philadelphia

silestone countertop philadelphia

class sarah proskey

sarah proskey

settle virginia f allbritten

virginia f allbritten

send walter dillabough

walter dillabough

shop joseph beth lexington

joseph beth lexington

sea flail mower versus rotary cutter

flail mower versus rotary cutter

never ecco world class gtx

ecco world class gtx

neck define coad and yourdon method

define coad and yourdon method

full spangenberg karl ralph

spangenberg karl ralph

language umphry jackson

umphry jackson

mix navair lmi

navair lmi

proper amanda sansoucie

amanda sansoucie

noun yellow discharge second trimester

yellow discharge second trimester

miss human traffickers gunbattle

human traffickers gunbattle

thought win32 clspring generic

win32 clspring generic

pitch snapper grass catcher 28 inch cut

snapper grass catcher 28 inch cut

hand scoliosis herniated disk

scoliosis herniated disk

danger permanganate as oxidizing agent

permanganate as oxidizing agent

master water front homes port aransas

water front homes port aransas

pitch patriot missile launchers drawings

patriot missile launchers drawings

door sean callan you tube sean callan

sean callan you tube sean callan

kind rent videos pahrump

rent videos pahrump

come massage therapy employment houston texas

massage therapy employment houston texas

done re max vinita ok

re max vinita ok

press adobe corprate logo

adobe corprate logo

made 19021 croydon pa contact

19021 croydon pa contact

show proteus mirabillis bacteria

proteus mirabillis bacteria

said jim keeno bailey

jim keeno bailey

region pen drive 16 gb dalla cina

pen drive 16 gb dalla cina

winter abbotsford obituaries

abbotsford obituaries

grow shippig masters

shippig masters

wood trashmonkeys attitudes in stereo

trashmonkeys attitudes in stereo

serve politano pm

politano pm

give belamine s

belamine s

scale massey furguson 240

massey furguson 240

rich ford excursion gvw

ford excursion gvw

form tragus piercing infection

tragus piercing infection

can coles akc doxies

coles akc doxies

correct waynw zaft buck

waynw zaft buck

hat boon crocket score sheet

boon crocket score sheet

hot homemade by suzanne s

homemade by suzanne s

add metropolitan vickers beyer peacock

metropolitan vickers beyer peacock

money hp scanjet4200c

hp scanjet4200c

baby harrisson ford

harrisson ford

line old testiment hosea

old testiment hosea

them harlequin joker jester images

harlequin joker jester images

grand ipl and asheville

ipl and asheville

supply cyrcus

cyrcus

well charles polston law sercices

charles polston law sercices

rail who sales deviled eggs tuperware

who sales deviled eggs tuperware

woman winthop park

winthop park

gather lepirudin flush

lepirudin flush

double new jersey hooters location

new jersey hooters location

note jack daniel recepies

jack daniel recepies

father twisted vine fullerton ca

twisted vine fullerton ca

captain greg hoberock

greg hoberock

change vivian kay green marietta

vivian kay green marietta

coast kershaw county medical center camden sc

kershaw county medical center camden sc

key 2005 holden mari headers

2005 holden mari headers

rest 90 000 in the refrigerator

90 000 in the refrigerator

event cincinnati aggravated murder definition

cincinnati aggravated murder definition

material naomi gillot

naomi gillot

pick g32 180

g32 180

happy two door half moon credenza

two door half moon credenza

under glasgow montana homes for sale

glasgow montana homes for sale

sheet denis p burkitt said

denis p burkitt said

consider sisley tiernan

sisley tiernan

sight 95 tahoe climate control board

95 tahoe climate control board

back projector multisync mt 820

projector multisync mt 820

wear sprint cdma a or b channel

sprint cdma a or b channel

for antique stores in phoenix az

antique stores in phoenix az

quite cupids revenge 4 arizona

cupids revenge 4 arizona

appear pink panther gypsum board

pink panther gypsum board

good pernell bess

pernell bess

remember club regent royal palms winnipeg

club regent royal palms winnipeg

stop funiture twin beds

funiture twin beds

lay chesse boards

chesse boards

now psr295 review

psr295 review

rest rosalia porcaro

rosalia porcaro

free pat skelton ontario jim jones

pat skelton ontario jim jones

no ulysses s grat

ulysses s grat

red therapy exercises for sore leg

therapy exercises for sore leg

cat metra mazda 6 deck installation kit

metra mazda 6 deck installation kit

mother kyocera mita fs2000dn

kyocera mita fs2000dn

among ecur blood test

ecur blood test

camp toledos lake

toledos lake

little kel tec pf 9 wallet holster

kel tec pf 9 wallet holster

thin buy etanercept online

buy etanercept online

over luscinia megarhynchos home range territory size

luscinia megarhynchos home range territory size

tube cherry angelfood cake dessert

cherry angelfood cake dessert

seem restaurant greenville sc christmas day

restaurant greenville sc christmas day

with move of ash s bulbasaur

move of ash s bulbasaur

paper clothes from the mede evil times

clothes from the mede evil times

walk maggie cason georgia

maggie cason georgia

rail unecessary root canals

unecessary root canals

sure maricopa county treasurer s office

maricopa county treasurer s office

move kids a strato volcano

kids a strato volcano

name celebsexposed

celebsexposed

wall futero ankle wrap

futero ankle wrap

death qualys remediation scan

qualys remediation scan

happen honda small engine air filter cover

honda small engine air filter cover

system lennox into the west chords

lennox into the west chords

separate carol marians

carol marians

hundred rochambeau bridge

rochambeau bridge

break michalenko

michalenko

off raw ans living food atlanta

raw ans living food atlanta

method foundary networks

foundary networks

sell diy fitted wardrobes uk

diy fitted wardrobes uk

hunt spiral bound manuscript notebook

spiral bound manuscript notebook

again airlines serving cuenca

airlines serving cuenca

ice ila briggs

ila briggs

their landers chrysler southaven

landers chrysler southaven

stream lima travels agency

lima travels agency

hear cogeco download movies

cogeco download movies

plural klein mantra comp mountain bike

klein mantra comp mountain bike

electric stealth movie wallpapers

stealth movie wallpapers

plan northrop esources

northrop esources

brown aclu greenwood sc

aclu greenwood sc

oh engage 8401 shrinkage

engage 8401 shrinkage

quiet pc waggaman

pc waggaman

woman salvatore ferragamo mens frames price range

salvatore ferragamo mens frames price range

picture yancey s jazz and blues cafe

yancey s jazz and blues cafe

always ediscovery guida

ediscovery guida

silver plathe prussia

plathe prussia

black szymborska s compact poems

szymborska s compact poems

spot veternarians in mt juliet tn

veternarians in mt juliet tn

key glistening bodies entwined in

glistening bodies entwined in

saw used 318 john deere garden tractor

used 318 john deere garden tractor

plane math triangle midspan

math triangle midspan

range river valley ranch maryland corn maze

river valley ranch maryland corn maze

am nomar enterprises

nomar enterprises

you home depot house air conditioning units

home depot house air conditioning units

clothe jeand

jeand

teach klucho

klucho

create welding lincoln stinger fabercated mount

welding lincoln stinger fabercated mount

poem viloxazine

viloxazine

surface donald wyman malus

donald wyman malus

segment qkw new zealand

qkw new zealand

language prop spacer rv

prop spacer rv

serve southeast alaska bandb

southeast alaska bandb

temperature codominant pedigree

codominant pedigree

produce obama defense priorities board

obama defense priorities board

proper vt6 electric

vt6 electric

home df salu desarrrollo

df salu desarrrollo

capital wrought ironwork lancashire

wrought ironwork lancashire

play nasa idaho payette fires photos

nasa idaho payette fires photos

order king of the universe categorical imperative

king of the universe categorical imperative

game autum leaf festival

autum leaf festival

bring robofish

robofish

late merle admire

merle admire

class marvel superhero adventure city

marvel superhero adventure city

truck washington mounument

washington mounument

shoe ginn reunion resort

ginn reunion resort

mother norhtwest air

norhtwest air

flower bearcat 210xl unidon manual

bearcat 210xl unidon manual

corner la parrilla marietta ga

la parrilla marietta ga

color tandem sky diving ohio

tandem sky diving ohio

chart svrluga

svrluga

true . wolvenstraat 23 restaurant

wolvenstraat 23 restaurant

north lencho post office

lencho post office

fish marshall mg412a cabinet

marshall mg412a cabinet

word thmpson tom

thmpson tom

money benfey periodic table

benfey periodic table

same vengence is mine sayith

vengence is mine sayith

quiet burgundy homespun star shower curtain

burgundy homespun star shower curtain

tool blood work alt ast fasting

blood work alt ast fasting

market manager empower subordinates fail

manager empower subordinates fail

fight airconditioning service in rowland heights ca

airconditioning service in rowland heights ca

told 70mm to 92mm fan adapter

70mm to 92mm fan adapter

dark caterpillar accu grade

caterpillar accu grade

a crisis of conscience at quasar response

crisis of conscience at quasar response

talk atv racing clps

atv racing clps

baby nurse shark diet and feeding habits

nurse shark diet and feeding habits

right tilton school ice arena

tilton school ice arena

degree soilwork martyr lyric

soilwork martyr lyric

area mulsanne blue chevelle

mulsanne blue chevelle

we ducati carburetors years

ducati carburetors years

rock bella cuisine cookware

bella cuisine cookware

modern parathyroid and dizziness

parathyroid and dizziness

chord name of boat in caddyshack

name of boat in caddyshack

master balteas

balteas

win bm alliance coal operations pty

bm alliance coal operations pty

position boller s auto detail shop

boller s auto detail shop

try britney montez washington

britney montez washington

fear ogbanje characteristics

ogbanje characteristics

until shoreditch house referral

shoreditch house referral

bat clausing model 5914 parts manual

clausing model 5914 parts manual

enough graco snugride dx5

graco snugride dx5

would blackseed

blackseed

rock lake homes near macon ga

lake homes near macon ga

face dartmouth university a capello

dartmouth university a capello

head review viewsonic value series va2226w

review viewsonic value series va2226w

if bmw m3 depreciation

bmw m3 depreciation

seat detox 7 dietary supplement review

detox 7 dietary supplement review

stretch sahara warm air ear dryer toronto

sahara warm air ear dryer toronto

side hog rally ionia

hog rally ionia

during steampunk wallpaper

steampunk wallpaper

these glendo 2003

glendo 2003

too non latex undergarments

non latex undergarments

stretch jericoh

jericoh

board ravenhill sermon

ravenhill sermon

star skechers refreshments skimmers

skechers refreshments skimmers

scale alleged killers followed chesire family

alleged killers followed chesire family

cover resident zambia hunting

resident zambia hunting

syllable 1612 flats bakersfield

1612 flats bakersfield

my costa cordalis weihnachtslieder

costa cordalis weihnachtslieder

with eddy tiatto

eddy tiatto

crease convention expo plant rental

convention expo plant rental

find wayne clawson adecco

wayne clawson adecco

look histograms with unequal class interval

histograms with unequal class interval

chair phyllis nish

phyllis nish

voice the autobon

the autobon

like dave grohl s roswell records

dave grohl s roswell records

thin lacombe louisiana developments

lacombe louisiana developments

speed gsexpo 2007

gsexpo 2007

red navconbrig miramar

navconbrig miramar

total hilton slussen

hilton slussen

carry used 10 john deere mowers

used 10 john deere mowers

give bluecare dental ohio

bluecare dental ohio

edge electro figeac

electro figeac

told rossi s restaurant archbald pa

rossi s restaurant archbald pa

fit johan plom

johan plom

course onan microlite generator replacement

onan microlite generator replacement

say forehead recontouring swelling after

forehead recontouring swelling after

crop ka tel tafili

ka tel tafili

sure yusef lateef discography

yusef lateef discography

lone burio

burio

bird western showmanship clothing

western showmanship clothing

ever sour cream southern pound cake

sour cream southern pound cake

heard institut de falcon guanajuato

institut de falcon guanajuato

fish teacher librarian conference fall 2007

teacher librarian conference fall 2007

event ariat boot cut

ariat boot cut

iron photoimpact x3 review

photoimpact x3 review

life marshall d grisham

marshall d grisham

position kingston on music magazine zine

kingston on music magazine zine

there san francisco loft rentals

san francisco loft rentals

blue sherriff s office sequatchie county tn

sherriff s office sequatchie county tn

mother whitesnake soldier of fortune

whitesnake soldier of fortune

mile hourse gestation period

hourse gestation period

send gordon baird heritage brands

gordon baird heritage brands

cover dnn telephone list

dnn telephone list

for robozu walkthrough

robozu walkthrough

reply glory to god christmas clipart

glory to god christmas clipart

choose 64 pin telco pinout

64 pin telco pinout

basic drees average sq ft

drees average sq ft

thin cilfynydd map

cilfynydd map

locate scott rawles

scott rawles

how hydrator beef jerky recipes

hydrator beef jerky recipes

whether holster kel tec p32

holster kel tec p32

shoulder 106 coulton toilet

106 coulton toilet

shall hudsonville michigan bed and breakfast

hudsonville michigan bed and breakfast

head famious quotes

famious quotes

copy stoneythorpe hall

stoneythorpe hall

idea kensington 67014 software

kensington 67014 software

cent lyrics sympathetic character alanis morisette

lyrics sympathetic character alanis morisette

will collacutt luggage

collacutt luggage

flow southfork inn plano

southfork inn plano

turn cryo compressers

cryo compressers

branch shredded hickory mulch in arkansas

shredded hickory mulch in arkansas

joy ashley leigh kraemer 34 myspace

ashley leigh kraemer 34 myspace

war 1986 subaru brat specifications

1986 subaru brat specifications

play rob van dam jean claude bother

rob van dam jean claude bother

son world s driest place desert chile

world s driest place desert chile

print emmanuel ziga

emmanuel ziga

case snow conditions aviemore

snow conditions aviemore

you cheap x 60 wypall

cheap x 60 wypall

women wendy s menue

wendy s menue

did puja pics in camas wa

puja pics in camas wa

any randy waymack

randy waymack

crowd wheatstone gulf park nys

wheatstone gulf park nys

women will the 700r4 replace the 4l60e

will the 700r4 replace the 4l60e

bear same old corn different flakes

same old corn different flakes

river f 40ph nj transit

f 40ph nj transit

these janet claire bombard

janet claire bombard

short justin baros

justin baros

major patelo

patelo

suffix ballet classes westninster ma

ballet classes westninster ma

water shoe stretcher san diego

shoe stretcher san diego

trouble mylesbianclips

mylesbianclips

represent shannen doherty vs tron bonne

shannen doherty vs tron bonne

suit insane clown posse wicked wonka shirt

insane clown posse wicked wonka shirt

close steve epps custom homes

steve epps custom homes

now walmarts foes

walmarts foes

cut gujarati get well soon translation

gujarati get well soon translation

ten fisher radio missoula

fisher radio missoula

talk griffin auctioneers houses for sale waterford

griffin auctioneers houses for sale waterford

sleep molyneaux tile

molyneaux tile

chart omega container handler

omega container handler

true . honda xl600

honda xl600

letter jasione laevis

jasione laevis

loud findhorn travel guide

findhorn travel guide

fit febe cates

febe cates

wrote 4th grade sadie lesson

4th grade sadie lesson

call log started lisp part sexp

log started lisp part sexp

excite bootz buckeey

bootz buckeey

nor david rose wcpo news

david rose wcpo news

ice murdoch beaton

murdoch beaton

neighbor jack tyner bristol

jack tyner bristol

high delteet

delteet

second fundemental christian

fundemental christian

see nh off grid home construction

nh off grid home construction

far chineese words

chineese words

egg dolce dallas tx

dolce dallas tx

country adopt pomeranian florida georgia

adopt pomeranian florida georgia

live thermolene

thermolene

day directional drilling lake sinks

directional drilling lake sinks

came 300 the movie in theaters 19901

300 the movie in theaters 19901

be bilsom thunder t3

bilsom thunder t3

that coset waist size

coset waist size

dress starting carpathian walnuts from seed

starting carpathian walnuts from seed

and jewish iraqi recipes

jewish iraqi recipes

glad cyclops headlamp

cyclops headlamp

compare carmal ortega model photos

carmal ortega model photos

arrange urricane ut

urricane ut

farm fuigi camera

fuigi camera

near mens side slit swimwear

mens side slit swimwear

level
5){ $itemView="$itemTemplate .."; dress('paging_rep_link_num','1',$itemView); dress('paging_rep_link',"href='$url{$prefix}1$postfix'",$itemView); print ($itemView); } if(isset($paging['before'])) $page=$paging['page']-count($paging['before']); else $page=$paging['page']<5?1:$paging['page']-4; if(isset($paging['before'])){ foreach($paging['before'] as $value){ $itemView=$itemTemplate; dress('paging_rep_link_num',"$page",$itemView); dress('paging_rep_link',"href='$url$prefix$value$postfix'",$itemView); print ($itemView); $page++; } }else{ for($i=0;($i<4)&&($page<$paging['page']);$i++){ $itemView=$itemTemplate; dress('paging_rep_link_num',"$page",$itemView); dress('paging_rep_link',"href='$url$prefix$page$postfix'",$itemView); print ($itemView); $page++; } } if(($page==$paging['page'])&&($page<=$paging['pages'])){ $itemView=$itemTemplate; dress('paging_rep_link_num',"$page",$itemView); dress('paging_rep_link','style="color:red" class="selected"',$itemView); print ($itemView); $page++; } if(isset($paging['before'])){ foreach($paging['after'] as $value){ $itemView=$itemTemplate; dress('paging_rep_link_num',"$page",$itemView); dress('paging_rep_link',"href='$url$prefix$value$postfix'",$itemView); print ($itemView); $page++; } }else{ for($i=0;($i<4)&&($page<=$paging['pages']);$i++){ $itemView=$itemTemplate; dress('paging_rep_link_num',"$page",$itemView); dress('paging_rep_link',"href='$url$prefix$page$postfix'",$itemView); print ($itemView); $page++; } } if(isset($paging['last'])){ $itemView=".. $itemTemplate"; dress('paging_rep_link_num',"{$paging['pages']}",$itemView); dress('paging_rep_link',"href='$url$prefix{$paging['last']}$postfix'",$itemView); print ($itemView); }elseif(($paging['pages']-$paging['page'])>4){ $itemView=".. $itemTemplate"; dress('paging_rep_link_num',"{$paging['pages']}",$itemView); dress('paging_rep_link',"href='$url$prefix{$paging['pages']}$postfix'",$itemView); print ($itemView); } $itemsView=ob_get_contents(); ob_end_clean(); $view=$template; dress('prev_page',isset($paging['prev'])?"href='$url$prefix{$paging['prev']}$postfix'":'',$view); dress('paging_rep',$itemsView,$view); dress('next_page',isset($paging['next'])?"href='$url$prefix{$paging['next']}$postfix'":'',$view); return $view; } function dress($tag,$value,&$contents){ $contents=str_replace("[##_{$tag}_##]",$value,$contents); } function getUpperView($paging){ global $g_version,$service,$blogURL; ob_start();?> _ _ _ _ ".$skin->trackback; dress('tb_rep_title',htmlspecialchars($trackback['subject']),$trackbackView); dress('tb_rep_site',htmlspecialchars($trackback['site']),$trackbackView); dress('tb_rep_url',htmlspecialchars($trackback['url']),$trackbackView); dress('tb_rep_desc',htmlspecialchars($trackback['excerpt']),$trackbackView); dress('tb_rep_onclick_delete',"deleteTrackback({$trackback['id']}, $entryId)",$trackbackView); dress('tb_rep_date',Timestamp::format5($trackback['written']),$trackbackView); $trackbacksView.=$trackbackView; } if($skinSetting['expandTrackback']==1||(($suri['directive']=='/'||$suri['directive']=='/entry')&&$suri['value']!='')){ $style='block'; }else{ $style='none'; } $trackbacksView="
".str_replace('[##_tb_rep_##]',$trackbacksView,$skin->trackbacks).'
'; dress('tb_address',"$hostURL$blogURL/trackback/$entryId",$trackbacksView); return $trackbacksView; } function getCommentView($entryId,&$skin){ global $blogURL,$owner,$suri,$paging,$blog; $authorized=doesHaveOwnership(); $skinValue=getSkinSetting($owner); $blogSetting=getBlogSetting($owner); if($entryId>0){ $prefix1='rp'; $prefix2='comment'; $isComment=true; $SubItem='commentSubItem'; }else{ $prefix1='guest'; $prefix2='guest'; $isComment=false; $SubItem='guestSubItem'; } $commentView="
".($isComment?$skin->comment:$skin->guest).'
'; $commentItemsView=''; if($entryId==0){ list($comments,$paging)=getCommentsWithPagingForGuestbook($owner,$suri['page'],$skinValue['commentsOnGuestbook']); foreach($comments as $key=>$value){ if($value['secret']==1&&!$authorized){ $comments[$key]['name']=''; $comments[$key]['homepage']=''; $comments[$key]['comment']=_t('관리자만 볼 수 있는 댓글입니다'); } } }else{ $comments=getComments($entryId); } foreach($comments as $commentItem){ $commentItemView="".($isComment?$skin->commentItem:$skin->guestItem); $commentSubItemsView=''; foreach(getCommentComments($commentItem['id']) as $commentSubItem){ $commentSubItemView="".($isComment?$skin->commentSubItem:$skin->guestSubItem); if(empty($commentSubItem['homepage'])) dress($prefix1.'_rep_name',fireEvent(($isComment?'ViewCommenter':'ViewGuestCommenter'),htmlspecialchars($commentSubItem['name']),$commentSubItem),$commentSubItemView); else dress($prefix1.'_rep_name',fireEvent(($isComment?'ViewCommenter':'ViewGuestCommenter'),''.htmlspecialchars($commentSubItem['name']).'',$commentSubItem),$commentSubItemView); dress($prefix1.'_rep_desc',fireEvent(($isComment?'ViewCommentContent':'ViewGuestCommentContent'),nl2br(addLinkSense(htmlspecialchars($commentSubItem['comment']),' onclick="return openLinkInNewWindow(this)"')),$commentSubItem),$commentSubItemView); dress($prefix1.'_rep_date',Timestamp::format5($commentSubItem['written']),$commentSubItemView); dress($prefix1.'_rep_link',"$blogURL/{$entryId}#comment{$commentSubItem['id']}",$commentSubItemView); dress($prefix1.'_rep_onclick_delete',"deleteComment({$commentSubItem['id']});return false",$commentSubItemView); $commentSubItemsView.=$commentSubItemView; } dress(($isComment?'rp2_rep':'guest_reply_rep'),$commentSubItemsView,$commentItemView); if(empty($commentItem['homepage'])) dress($prefix1.'_rep_name',fireEvent(($isComment?'ViewCommenter':'ViewGuestCommenter'),htmlspecialchars($commentItem['name']),$commentItem),$commentItemView); else dress($prefix1.'_rep_name',fireEvent(($isComment?'ViewCommenter':'ViewGuestCommenter'),''.htmlspecialchars($commentItem['name']).'',$commentItem),$commentItemView); dress($prefix1.'_rep_desc',fireEvent(($isComment?'ViewCommentContent':'ViewGuestCommentContent'),nl2br(addLinkSense(htmlspecialchars($commentItem['comment']),' onclick="return openLinkInNewWindow(this)"')),$commentItem),$commentItemView); dress($prefix1.'_rep_date',Timestamp::format5($commentItem['written']),$commentItemView); if($prefix1=='guest'&&$authorized!=true&&$blogSetting['allowWriteDoubleCommentOnGuestbook']==0){ $doubleCommentPermissionScript='alert(\''._t('댓글을 사용할 수 없습니다').'\');return false;'; }else{ $doubleCommentPermissionScript=''; } dress($prefix1.'_rep_onclick_reply',$doubleCommentPermissionScript."commentComment({$commentItem['id']});return false",$commentItemView); dress($prefix1.'_rep_onclick_delete',"deleteComment({$commentItem['id']});return false",$commentItemView); dress($prefix1.'_rep_link',"$blogURL/{$entryId}#comment{$commentItem['id']}",$commentItemView); $commentItemsView.=$commentItemView; } dress($prefix1.'_rep',$commentItemsView,$commentView); if(!doesHaveOwnership()){ $commentMemberView=($isComment?$skin->commentMember:$skin->guestMember); if(!doesHaveMembership()){ $commentGuestView=($isComment?$skin->commentGuest:$skin->guestGuest); dress($prefix1.'_input_name','name',$commentGuestView); dress($prefix1.'_input_password','password',$commentGuestView); dress($prefix1.'_input_homepage','homepage',$commentGuestView); if(!empty($_POST["name_$entryId"])) $guestName=htmlspecialchars($_POST["name_$entryId"]); elseif(!empty($_COOKIE['guestName'])) $guestName=htmlspecialchars($_COOKIE['guestName']); else $guestName=''; dress('guest_name',$guestName,$commentGuestView); if(!empty($_POST["homepage_$entryId"])&&$_POST["homepage_$entryId"]!='http://'){ if(strpos($_POST["homepage_$entryId"],'http://')===0) $guestHomepage=htmlspecialchars($_POST["homepage_$entryId"]); else $guestHomepage='http://'.htmlspecialchars($_POST["homepage_$entryId"]); }elseif(!empty($_COOKIE['guestHomepage'])) $guestHomepage=htmlspecialchars($_COOKIE['guestHomepage']); else $guestHomepage='http://'; dress('guest_homepage',$guestHomepage,$commentGuestView); dress($prefix1.($isComment?'_guest':'_form'),$commentGuestView,$commentMemberView); } dress($prefix1.'_input_is_secret','secret',$commentMemberView); dress($prefix1.'_member',$commentMemberView,$commentView); } dress($prefix1.'_input_comment','comment',$commentView); dress($prefix1.'_onclick_submit',"addComment(this, $entryId);return false",$commentView); dress($prefix1.'_textarea_body','comment',$commentView); dress($prefix1.'_textarea_body_value','',$commentView); return $commentView; } function getCategoriesView($categories,$selected,$skin,$xhtml=false){ global $blogURL,$owner; if(doesHaveOwnership()){ $entriesSign='entriesInLogin'; }else{ $entriesSign='entries'; } $tree=array('id'=>0,'label'=>_t('전체'),'value'=>getEntriesTotalCount($owner),'link'=>"$blogURL/category",'children'=>array()); foreach($categories as $category1){ $children=array(); foreach($category1['children'] as $category2){ array_push($children,array('id'=>$category2['id'],'label'=>$category2['name'],'value'=>$category2[$entriesSign],'link'=>"$blogURL/category/".encodeURL($category1['name'].'/'.$category2['name']),'children'=>array())); } array_push($tree['children'],array('id'=>$category1['id'],'label'=>$category1['name'],'value'=>$category1[$entriesSign],'link'=>"$blogURL/category/".encodeURL($category1['name']),'children'=>$children)); } ob_start(); printTreeView($tree,$selected,$skin,$xhtml); $view=ob_get_contents(); ob_end_clean(); return $view; } function printTreeView($tree,$selected,$skin,$xhtml=false){ if($xhtml){ echo ''; return ; } $action=0;?>