Показать сообщение отдельно

  #2  
Старый 28.05.2008, 21:57
serg-php
Участник форума
Регистрация: 28.01.2008
Сообщений: 247
С нами: 9623364

Репутация: 28
По умолчанию

PHP код:

function hwLngCalcPath( $f, $lang )
{
    if ( 
$lang == "en" || strpos( $f, "/Multi_Lang/" ) !== false )
    {
        return 
$f;
    }
    
$f_path = "";
    
$f_dir = dirname( $f );
    
$lang_dir = MOD_DIR."Multi_Lang/language/";
    if ( 
strpos( $f, "modules/" ) )
    {
        if ( 
substr( $f_dir, -4 ) == "/tpl" )
        {
            
$mod = explode( "/", $f );
            
$mod = $mod[count( $mod ) - 3];
            
$f_path = $lang_dir.$lang."/modules/".$mod;
        }
    }
    else if ( 
strpos( $f, FS_DIR."/" ) )
    {
        
$fs = explode( "/", $f );
        
$fs = $fs[count( $fs ) - 2];
        
$f_path = $lang_dir.$lang."/".FS_DIR."/".$fs;
    }
    else if ( 
$f_dir."/" == TPL_PATH )
    {
        
$fn = array_pop( explode( "/", $f ) );
        
$f_path = $lang_dir.$lang;
    }
    if ( 
$f_path )
    {
        
$fn = array_pop( explode( "/", $f ) );
        
$f = $f_path."/".$fn;
    }
    return 
$f;
}

function 
DoNotCache( )
{
    
header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
    
header( "Last-Modified: ".gmdate( "D, d M Y H:i:s" )." GMT" );
    
header( "Cache-Control: no-store, no-cache, must-revalidate" );
    
header( "Cache-Control: post-check=0,pre-check=0", false );
    
header( "Cache-Control: max-age=0", false );
    
header( "Pragma: no-cache" );
}

function 
JSRedirect( $url )
{
    echo 
"<html><script>document.location=\"".$url."\";</script></html>";
}

function 
GetNavigation( $href, $max_rows, $max_cols, $numrows, $off, $ex_p = "" )
{
    if ( 
$numrows <= $max_rows )
    {
        return 
"";
    }
    if ( 
is_array( $ex_p ) )
    {
        
$a_v = $ex_p;
        
$ex_p = "";
        foreach ( 
$a_v as $k => $v )
        {
            if ( 
$v != "" && !is_array( $v ) )
            {
                
$ex_p .= "&{$k}=".urlencode( $v );
            }
        }
        unset( 
$a_v );
    }
    
$a_nav = explode( "|", hwlng( "page_nav" ) );
    
$var_off = "off";
    if ( 
strpos( $off, "=" ) )
    {
        list( 
$var_off, $off ) = explode( "=", $off );
    }
    if ( 
$ex_p && strpos( $ex_p, "&".$var_off."=" ) !== false )
    {
        
$ex_p = preg_replace( "/&".$var_off."=\\d*/", "", $ex_p );
    }
    
$off = abs( ( integer )$off );
    
$pg = intval( $off / $max_cols );
    if ( 
substr( $href, -1 ) == "&" )
    {
        
$f_ch = "";
    }
    else if ( 
strpos( $href, "?" ) )
    {
        
$f_ch = "&";
    }
    else
    {
        
$f_ch = "?";
    }
    if ( 
$ex_p )
    {
        
$ex_p = $f_ch.substr( $ex_p, 1 )."&".$var_off."=";
    }
    else
    {
        
$ex_p = $f_ch.$var_off."=";
    }
    
$nav = "";
    if ( 
$pg != 0 )
    {
        
$nav .= "<a href=\"".$href.$ex_p.( $max_cols * $pg - 1 )."\">".sprintf( $a_nav[0], $max_cols )."</a> &nbsp;";
    }
    if ( 
0 < $off )
    {
        
$nav .= "<a href=\"".$href.$ex_p.( $off - 1 )."\">".$a_nav[1]."</a> &nbsp;";
    }
    
$i = 1;
    for ( ;    
$i <= $max_cols;    ++$i    )
    {
        
$cur_i = $i + $pg * $max_cols;
        if ( 
$numrows <= ( $cur_i - 1 ) * $max_rows )
        {
            break;
        }
        if ( 
$cur_i != $off + 1 )
        {
            
$nav .= "<a href=\"".$href.$ex_p.( $cur_i - 1 )."\">".$cur_i."</a> &nbsp;";
        }
        else
        {
            
$nav .= $cur_i." &nbsp;";
        }
    }
    if ( 
$off + 1 < ceil( $numrows / $max_rows ) )
    {
        
$nav .= "<a href=\"".$href.$ex_p.( $off + 1 )."\">".$a_nav[2]."</a> &nbsp";
    }
    if ( 
$max_rows * $max_cols * ( $pg + 1 ) < $numrows )
    {
        
$nav .= "<a href=\"".$href.$ex_p.$max_cols * ( $pg + 1 )."\">".sprintf( $a_nav[3], $max_cols )."</a> &nbsp";
    }
    return 
"<b>".$nav."</b>";
}

function 
hwGetCatSQL( $cat_f, $sql_extra = "", $tbl_cat = TBL_CAT )
{
    global 
$HW_LANG;
    static 
$A_TBL_LNG = NULL;
    if ( !isset( 
$A_TBL_LNG ) )
    {
        
$A_TBL_LNG = array( );
        if ( 
hwmodgetstate( "Multi_Lang" ) == "A" )
        {
            
$A_TBL_LNG[TBL_CAT] = hwmodtable( "Multi_Lang", "category" );
            
$_tbl = hwmodtable( "Regions", "category" );
            
$A_TBL_LNG[$_tbl] = hwmodtable( "Multi_Lang", "region" );
            
$_tbl = TBL_DEP_MENU_TREE;
            
$A_TBL_LNG[$_tbl] = hwmodtable( "Multi_Lang", "depmenu" );
            unset( 
$_tbl );
        }
    }
    
$cat_f = substr( preg_replace( "/,(?!c\\.)/", ",c.", ",".$cat_f ), 1 );
    if ( 
$HW_LANG != "en" && isset( $A_TBL_LNG[$tbl_cat] ) )
    {
        
$a_f = array( "name" );
        if ( 
$tbl_cat == TBL_CAT )
        {
            
$a_f[] = "descr";
        }
        
$temp_tbl = "_func_cat_sql_".$tbl_cat."_".$HW_LANG;
        static 
$A_TBL_OK = NULL;
        if ( !isset( 
$A_TBL_OK[$temp_tbl] ) )
        {
            
$A_TBL_OK[$temp_tbl] = 1;
            global 
$db;
            
$db->query( "DROP TEMPORARY TABLE IF EXISTS ".$temp_tbl );
            
$db->query( "CREATE TEMPORARY TABLE ".$temp_tbl." SELECT id,".implode( ",", $a_f )." FROM ".$A_TBL_LNG[$tbl_cat]." WHERE lang_id=\"".$HW_LANG."\"" );
        }
        foreach ( 
$a_f as $f )
        {
            
$cat_f = str_replace( "c.{$f}", "IF(m.{$f}<>'',m.{$f},c.{$f}) AS {$f}", $cat_f );
        }
        
$sql = "SELECT ".$cat_f." FROM ".$tbl_cat." c LEFT JOIN ".$temp_tbl." m ON c.id=m.id";
    }
    else
    {
        
$sql = "SELECT ".$cat_f." FROM ".$tbl_cat." c";
    }
    
$sql .= " WHERE 1 ";
    if ( 
$sql_extra )
    {
        
$sql .= " ".$sql_extra;
    }
    return 
$sql;
}

function 
ShowDropDownMultiCategoryList( $cat, $fset = "_ALL_", $hide_id = 0 )
{
    global 
$db;
    include_once( 
SITE_PATH."inc/class.categ_tree.php" );
    
$o_cat =& new HawkCategTree( TBL_CAT );
    
$o_cat->CAT_ORDER = "c.weight DESC,name";
    
$o_cat->CAT_F = "fset";
    if ( 
EN_FSETS && $fset != "_ALL_" )
    {
        
$A_PID = array( );
        if ( 
$cat && ctype_digit( ( boolean )$cat ) )
        {
            
$pid = $cat;
            while ( 
$pid = $db->one_data( "SELECT pid FROM ".TBL_CAT." WHERE id=\"".$pid."\"" ) )
            {
                
$A_PID[] = $pid;
            }
        }
        
$o_cat['SQL_CAT'] .= $A_PID ? " AND (c.fset='{$fset}' OR c.id IN(".implode( ",", $A_PID )."))" : " AND c.fset='{$fset}'";
    }
    if ( 
$hide_id )
    {
        if ( !
is_array( $hide_id ) )
        {
            
$hide_id = array(
                
$hide_id
            
);
        }
        
$hide_id = array_map( "intval", $hide_id );
        
$hide_id = $db->one_col_array( "SELECT id FROM ".TBL_CAT." WHERE id IN(".implode( ",", $hide_id ).")" );
        if ( 
$hide_id )
        {
            
$o_cat['SQL_CAT'] .= " AND c.id NOT IN(".get_daughter_cats( $hide_id ).")";
        }
    }
    
$page = ( boolean )$_GET['page'];
    if ( 
defined( "TBL_CAT_EXTRA" ) && !defined( "ADMIN_AREA" ) && ( $page == "add" || $page == "modify" ) && PHP_SELF_BASE == "index.php" )
    {
        
$no_ids = $db->one_col_array( "SELECT cid FROM ".TBL_CAT_EXTRA." WHERE type=\"H\"" );
        if ( 
$no_ids )
        {
            
$o_cat['SQL_CAT'] .= " AND c.id NOT IN(".implode( ",", $no_ids ).")";
        }
        unset( 
$no_ids );
    }
    
$o_cat->TPL_SHOW = FALSE;
    return 
$o_cat->GetMenuPage( TPL_PATH."cat_menu_multi.htm", $cat );
} 
 
Ответить с цитированием