Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Скрипт не віполняет функцию поиска |

26.05.2008, 18:04
|
|
Участник форума
Регистрация: 28.01.2008
Сообщений: 247
Провел на форуме: 205760
Репутация:
28
|
|
Скрипт не віполняет функцию поиска
Код:
<?php
/*********************/
/* */
/* Version : 5.1.0 */
/* Author : RM */
/* Comment : 071223 */
/* */
/*********************/
function ExportAdsData( $ql )
{
$o_ex =& new ExportData( );
$o_ex->TBL = TBL_AD;
$o_ex->SQL = str_replace( "COUNT(*)", "*", $ql );
$o_ex->Export( );
}
function Sv_GetAdmSelAdv( $a_v, $s_cur )
{
$s = "";
$f_sel = $s_cur ? 0 : 1;
if ( $a_v )
{
foreach ( $a_v as $v )
{
list( $k, $v ) = explode( "|", $v );
$s .= "<option";
if ( !$f_sel && $k == $s_cur )
{
$f_sel = 1;
$s .= " selected";
}
$s .= " value=\"".$k."\">".$v;
}
}
return $s;
}
if ( !defined( "SITE_PATH" ) )
{
exit( "Access Denied" );
}
checkloggedinadm( );
$whitelist = array(
"cid" => array( "type" => "int" ),
"MAX_F" => array( "type" => "int" ),
"r_d" => array( "type" => "option", "options" => "int" ),
"rlid" => array( "type" => "option", "options" => "int" ),
"off" => array( "type" => "int" ),
"per_row" => array( "type" => "int" ),
"f_type" => array(
"type" => "option",
"options" => array( "disabled", "enabled", "expired", "pending" )
),
"s_by" => array( "type" => "regexp", "pattern" => "/^\\w+(,\\w+)?\$/" ),
"exp1" => array( "type" => "regexp", "pattern" => "/^\\d{4}-\\d{2}-\\d{2}\$/" ),
"exp2" => array( "type" => "regexp", "pattern" => "/^\\d{4}-\\d{2}-\\d{2}\$/" ),
"sort_by" => array( "type" => "regexp", "pattern" => "/^\\w+(,\\w+)?\$/" ),
"a_d" => array(
"type" => "option",
"options" => array( "asc", "desc" )
)
);
$clean = esfilter( $_REQUEST, $whitelist );
$MAX_F = $clean['MAX_F'];
if ( $MAX_F < 0 )
{
$MAX_F = 5;
}
if ( $_REQUEST['go'] && hwistokenok( ) )
{
if ( $clean['r_d'] )
{
$ql = "SELECT * FROM ".TBL_AD." WHERE link_id IN(\"".implode( "\",\"", $clean['r_d'] )."\")";
hwdeleteads( $ql );
}
if ( $clean['rlid'] )
{
include_once( SITE_PATH.ADMIN_DIR."/approval_notify.php" );
foreach ( $clean['rlid'] as $id )
{
$apr = $_REQUEST['r_on'][$id] ? "1" : "0";
approvalnotify( $apr, $id );
$db->query( "UPDATE ".TBL_AD." SET approved=\"".$apr."\" WHERE link_id=\"".$id."\"" );
}
}
}
$per_row = $clean['per_row'];
if ( !$per_row )
{
$per_row = 10;
}
if ( !$clean['off'] || $_SERVER['REQUEST_METHOD'] != "GET" )
{
$clean['off'] = 0;
}
$num = $clean['off'] * $per_row;
$ql = "SELECT COUNT(*) FROM ".TBL_AD." a WHERE 1".hwadmfiltergetsql( );
$today = date( "Y-m-d" );
$exp1 = $clean['exp1'] ? $clean['exp1'] : "0000-00-00";
$exp2 = $clean['exp2'] ? $clean['exp2'] : $today;
switch ( $clean['f_type'] )
{
case "disabled" :
$ql .= " AND a.approved=\"0\"";
break;
case "enabled" :
$ql .= " AND a.approved=\"1\"";
break;
case "expired" :
$day_time = $exp2 == $today ? date( "H:i:s" ) : "23:59:59";
$ql .= " AND a.exp_date BETWEEN '{$exp1}' AND '{$exp2} {$day_time}'";
break;
case "pending" :
$ql .= " AND a.exp_date=\"0000-00-00\"";
break;
}
$fset = "";
#####################
$q = trim((boolean)$_REQUEST['q'] );
######################################
$s_by = $clean['s_by'];
if ( $q != "" && $s_by )
{
list( $s_by_field, $fset ) = explode( ",", $s_by );
$quoted_q = addcslashes( $db->quote( $q ), "%_" );
if ( substr( $s_by_field, -3 ) == "_ex" )
{
$s_by_field = substr( $s_by_field, 0, -3 );
if ( hwtablecolumnexists( TBL_AD, $s_by_field ) )
{
$ql .= " AND a.".$s_by_field." = \"".$quoted_q."\"";
}
}
else if ( hwtablecolumnexists( TBL_AD, $s_by_field ) )
{
$ql .= " AND a.{$s_by_field} LIKE '%".$quoted_q."%'";
}
}
$sort_by = $clean['sort_by'];
$cid = $clean['cid'];
if ( $cid )
{
$ql .= " AND a.catid IN(".get_daughter_cats( $cid ).")";
}
if ( $_REQUEST['submexport'] )
{
exportadsdata( $ql );
}
$numrecs = $db->one_data( $ql );
$f_type = $clean['f_type'];
$sort_by = $clean['sort_by'] ? $clean['sort_by'] : "link_id_ex";
list( $sort_by_col ) = explode( ",", $sort_by );
if ( substr( $sort_by_col, -3 ) == "_ex" )
{
$sort_by_col = substr( $sort_by_col, 0, -3 );
}
if ( !hwtablecolumnexists( TBL_AD, $sort_by_col ) )
{
$sort_by_col = "link_id";
}
$a_d = $clean['a_d'] ? $clean['a_d'] : "desc";
$nav = getnavigation( "index.php", $per_row, 10, $numrecs, $clean['off'], compact( "page", "MAX_F", "f_type", "per_row", "s_by", "cid", "q", "exp1", "exp2", "sort_by", "a_d" ) );
$tpl =& new HawkTpl( );
$tpl->InitArray( "row" );
$ql = str_replace( "COUNT(*)", "a.*,UNIX_TIMESTAMP(a.hw_added) AS fdate,UNIX_TIMESTAMP(a.hw_updated) AS udate", $ql )." ORDER BY ".$sort_by_col." ".$a_d." LIMIT ".$num.",".$per_row;
if ( $fset )
{
$ql = str_replace( TBL_AD." a WHERE", TBL_AD." a, ".TBL_CAT." c WHERE a.catid=c.id AND c.fset=".$db->esc( $fset )." AND", $ql );
}
$res = $db->query( $ql );
if ( mysql_num_rows( $res ) == 0 )
{
$tpl->AddCell( "row", "", "no" );
}
else
{
$z = array( );
while ( $v = mysql_fetch_assoc( $res ) )
{
$O_FS =& Factory::singleton( "FieldsSet", hwgetfsbycat( $v['catid'] ) );
$z['cust_fields'] = "";
$cur_field = 0;
$v = $O_FS->FillCustomFieldsArray( $v );
$O_FS->AdjustCustomFields( $v );
$O_FS->rewind( );
while ( $o_f =& $O_FS->next( ) )
{
$f_id = $o_f->ID;
$f_v = strip_tags( $v[$f_id] );
if ( 2255 < strlen( $f_v ) )
{
$f_v = substr( $f_v, 0, 2255 )."..";
}
$z['cust_fields'] .= "<b>".$o_f->TITLE.":</b> ".$f_v."<br>";
++$cur_field;
if ( $MAX_F < $cur_field )
{
break;
}
}
$z['cat_path'] = showcategorypath( $v['catid'], "index.php?page=admin&pid=##cid##" );
if ( $v['images'] )
{
$z['images'] = explode( "\n", $v['images'] );
$z['images_num'] = count( $z['images'] );
$z['images'] = $z['images'][0];
}
else
{
$z['images'] = "";
$z['images_num'] = 0;
}
$z['number'] = ++$num;
$a_f = array( "link_id", "catid", "userid", "approved", "fdate", "udate", "hw_lang_id" );
foreach ( $a_f as $_f )
{
$z[$_f] = $v[$_f];
}
$z['approved'] = $z['approved'] ? "checked" : "";
$z['fdate'] = strftime( $DATE_FMT, $z['fdate'] );
$z['udate'] = strftime( $DATE_FMT, $z['udate'] );
$tpl->AddCell( "row", $z );
}
}
$a_no_search = array( "date", "datetime", "hidden", "checkboxes", "depmenu" );
$O_LFS =& Factory::singleton( "FieldsSet" );
if ( !EN_FSETS )
{
$a_v = array( "link_id_ex" => "{ID}", "userid_ex" => "{User_ID}", "hw_pay_plan" => "{Price_Plan}" );
$a_sort_extra = array( );
$O_LFS->rewind( );
while ( $o_f =& $O_LFS->next( ) )
{
if ( in_array( $o_f->TYPE, $a_no_search ) )
{
$a_sort_extra[] = $o_f->DB_F;
continue;
}
$f_db = $o_f->DB_F;
$a_v[$f_db] = $o_f->TITLE;
}
$s_by = getadmsel( $a_v, $s_by );
$sort_by = getadmsel( array_merge( $a_v, $a_sort_extra ), $sort_by );
}
else
{
$a_v = array( "link_id_ex|{ID}", "userid_ex|{User_ID}", "hw_pay_plan|{Price_Plan}" );
$a_sort_extra = array( );
$O_LFS->rewind( );
$started = false;
while ( $o_f =& $O_LFS->next( ) )
{
if ( $o_f->DB_F == "exp_date" )
{
$started = true;
}
if ( $o_f->ACTIVE || in_array( $o_f->TYPE, $a_no_search ) || !$started )
{
if ( $started )
{
$a_sort_extra[] = $o_f->DB_F."|".$o_f->TITLE;
continue;
}
}
$f_db = $o_f->DB_F;
$a_v[] = $f_db."_ex|".$o_f->TITLE;
}
$ql = "SELECT DISTINCT(fset) FROM ".TBL_CAT;
if ( $cid )
{
$ql .= " WHERE id IN(".get_daughter_cats( $cid ).")";
}
$ql .= " ORDER BY fset";
$a_fs = $db->one_col_array( $ql );
foreach ( $a_fs as $fs )
{
$a_v[] = "|=== {$fs} ===";
$O_LFS->Init( $fs );
$O_LFS->rewind( );
while ( $o_f =& $O_LFS->next( ) )
{
if ( !$o_f->ACTIVE || in_array( $o_f->TYPE, $a_no_search ) )
{
continue;
}
$f_db = $o_f->DB_F;
$a_v[] = "{$f_db},{$fs}|".$o_f->TITLE;
}
}
$s_by = sv_getadmseladv( $a_v, $s_by );
$sort_by = sv_getadmseladv( array_merge( $a_sort_extra, $a_v ), $sort_by );
}
$a_v = array( "10" => "10", "15" => "15", "20" => "20", "25" => "25", "30" => "30", "40" => "40", "50" => "50", "75" => "75", "100" => "100" );
$per_row = getadmsel( $a_v, $per_row );
$a_v = array( "enabled" => "{Enabled}", "disabled" => "{Disabled}" );
if ( EN_EXP_DATE )
{
$a_v['expired'] = "{Expired}";
$a_v['pending'] = "{Pending}";
}
$f_type = getadmsel( $a_v, $clean['f_type'] );
$a_v = array( "asc" => "{Ascendant}", "desc" => "{Descendant}" );
$a_d = getadmsel( $a_v, $a_d );
$cat = $cid ? showcategorypath( $cid ) : "{All_Categories}";
$q = htmlspecialchars( $q, ENT_QUOTES, $CHARSET );
$tpl->Parse( ADM_TPL_PATH."items_list.htm", "\$numrecs,\$cid,\$q,\$MAX_F,\$exp1,\$exp2,\$nav,\$f_type,\$per_row,\$a_d,\$cat,\$s_by,\$sort_by", 1 );
?>
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|