GetUserByID($UserID); if( $CATEGORY_ID==0 ){ return $TUser->IsCE(); } if( $TUser->IsCE() ) return true; $SQL = "select count(*) as cnt from AIV_GUIDE where member_id='$UserID' and resource_id='$CATEGORY_ID' and resource_type='$ResourceType'"; if( isset($__UserGuideHASH[$SQL]) ){ return ($__UserGuideHASH[$SQL] == 1) ? true : false; } // echo $SQL . "
\n\n"; $result = GetObject($DB, $SQL); if( $result ){ $cnt = $result["cnt"]; if( $cnt>0 ){ // got it!!! if( $UserID == $TUser->id ){ $__UserGuideHASH[$SQL] = 1; return true; }else{ $__UserGuideHASH[$SQL] = -1; return false; } }else{ // try to check up level resources... if( $ResourceType=='CATEGORY' ){ // only if resource is a category $SQL2 = "select CATEGORY_PARENT_ID from AIV_CATEGORY where CATEGORY_ID='$CATEGORY_ID'"; $result = GetObject($DB, $SQL2); if( $result ){ $CATEGORY_PARENT_ID = $result["CATEGORY_PARENT_ID"]; $__res = IsCategoryGuide($UserID, $CATEGORY_PARENT_ID, $ResourceType); $__UserGuideHASH[$SQL] = $__res; return $__res; }else{ $__UserGuideHASH[$SQL] = -1; return false; } }else{ $__UserGuideHASH[$SQL] = -1; return false; } } } $__UserGuideHASH[$SQL] = -1; return false; } // IsCategoryGuide($UserID, $CATEGORY_ID, $ResourceType='CATEGORY') function GetCategoryGuide($CATEGORY_ID){ GLOBAL $DB, $DBID; $CATEGORY_ID = GetBaseCategoryID($CATEGORY_ID); if( $CATEGORY_ID==0 ){ return GetCE(); } $SQL = "select CATEGORY_GUIDE_MEMBER_ID, CATEGORY_PARENT_ID from AIV_CATEGORY where CATEGORY_ID='$CATEGORY_ID'"; $result = GetObject($DB, $SQL); if( $result ){ $CATEGORY_GUIDE_MEMBER_ID = $result["CATEGORY_GUIDE_MEMBER_ID"]; $TUser = new Member; $TUser->GetUserByID($CATEGORY_GUIDE_MEMBER_ID); if( is_object($TUser) ){ return $TUser; }else{ $CATEGORY_PARENT_ID = $result["CATEGORY_PARENT_ID"]; return GetCategoryGuide($CATEGORY_PARENT_ID); } } return 0; } // GetCategoryGuide($CATEGORY_ID) /* ** returns number of articles in current theme ($THEME_ID) and all sub themes. */ function CountArticles($CATEGORY_ID, &$NumEdited, $CEMode = 0){ global $DB, $DBID; $SQL = "select count(*) as numarticles from AIV_ARTICLE ". "where CATEGORY_ID='$CATEGORY_ID' and (WORKFLOW_STATUS='PUBLISHED' or WORKFLOW_STATUS = 'EDITED')"; $resultART = GetObject($DB, $SQL); $nArticlesInCategory = $resultART["numarticles"]; $SQL = "select count(*) as numarticles from AIV_ARTICLE where CATEGORY_ID='$CATEGORY_ID' and WORKFLOW_STATUS='EDITED'"; $resultART = GetObject($DB, $SQL); $NumEdited = $resultART["numarticles"]; $incrementor = 0; $SQL = "select CATEGORY_ID from AIV_CATEGORY where CATEGORY_PARENT_ID='$CATEGORY_ID'"; $resultSUBS = GetArray($DB, $SQL); for($subtheme=0;$subthemeLoadTemplate("_NAVIGATION_PATH_SEPARATOR"); $_NAVIGATION_PATH_SEPARATOR = $_NAVIGATION_PATH_SEPARATOR->PrepareTemplate($_PATH_HASH, $Evaluatecode=0, $UsePrecompiled=1); $_NAVIGATION_PATH = new TheTemplate(); $_NAVIGATION_PATH->LoadTemplate("_NAVIGATION_PATH"); $_NAVIGATION_PATH_ITEM = new TheTemplate(); $_NAVIGATION_PATH_ITEM->LoadTemplate("_NAVIGATION_PATH_ITEM"); $_NAVIGATION_PATH_ITEM_FINAL = new TheTemplate(); $_NAVIGATION_PATH_ITEM_FINAL->LoadTemplate("_NAVIGATION_PATH_ITEM_FINAL"); define ('PATH_FINAL_CATEGORY', 1); define ('PATH_FINAL_ARTICLE', 2); define ('PATH_FINAL_USERPAGE', 3); function DrawThePath($CATEGORY_ID, &$PathWithHLinks, $TARGETURL=_CD_URL_PATH, &$Node1Index, $BoldHiddenCategories=0, $LinkStyle = "", $FirstCall=1, $ReverseOrder=0, $PathFinal=PATH_FINAL_CATEGORY, $PathFinaleExtraID=0){ global $DB, $DBID, $SITE_TEXT_NAME, $SITE_TEXT_NAME_Ru, $SLANG; global $__DrawThePathHASH; global $_PATH_HASH, $_NAVIGATION_PATH_SEPARATOR, $_NAVIGATION_PATH, $_NAVIGATION_PATH_ITEM, $_NAVIGATION_PATH_ITEM_FINAL; if( $SLANG=="Ru" ){ $HOME_PAGE_NAME = $SITE_TEXT_NAME_Ru; $CategoryNameFld = "CATEGORY_NAME_Ru"; $CategoryDescFld = "CATEGORY_DESCR_Ru"; }else{ $HOME_PAGE_NAME = $SITE_TEXT_NAME; $CategoryNameFld = "CATEGORY_NAME"; $CategoryDescFld = "CATEGORY_DESCR"; } /* if( $TARGETURL != "" ){ if( strpos($TARGETURL, "?") === false ){ $TARGETURL .= "?"; } if( !(strpos($TARGETURL, "&") === false) ){ $TARGETURLEXTRA = "&"; } // echo "=="; }else{ // $TARGETURLEXTRA = "&"; // echo "++"; } */ $_PATH_HASH["NAVIGATION_PATH"] = ""; $_PATH_HASH["PATH_ID"] = ""; $_PATH_HASH["PATH_NAME"] = ""; if( $CATEGORY_ID == 0 ){ // $_PATH_HASH["PATH_ID"] = $TARGETURL . $TARGETURLEXTRA . "id=0" ; if( $TARGETURL == _CD_URL_PATH ){ $_PATH_HASH["PATH_ID"] = "/" ; }else{ $_PATH_HASH["PATH_ID"] = $TARGETURL . $TARGETURLEXTRA . "0" ; } $_PATH_HASH["PATH_NAME"] = "\"$HOME_PAGE_NAME\"" ; // $HOME_PAGE_NAME; $PathWithHLinks = $_NAVIGATION_PATH_ITEM->PrepareTemplate($_PATH_HASH, $Evaluatecode=0, $UsePrecompiled=1); $PathToCurrent = $HOME_PAGE_NAME; }else{ if( isset($__DrawThePathHASH[$CATEGORY_ID]) ){ $result = $__DrawThePathHASH[$CATEGORY_ID]; }else{ $SQL = "select CATEGORY_ID, CATEGORY_REDIRECT_URL, CATEGORY_NAME, CATEGORY_NAME_Ru, CATEGORY_PARENT_ID, CATEGORY_STATUS from AIV_CATEGORY where CATEGORY_ID='$CATEGORY_ID'"; $result = GetObject($DB, $SQL); $__DrawThePathHASH[$CATEGORY_ID] = $result; } if( $result ){ $CATEGORY_ID = $result["CATEGORY_ID"]; if( trim($result[$CategoryNameFld]) != "" ){ $result["CATEGORY_NAME"] = $result[$CategoryNameFld]; } $CATEGORY_NAME = $result["CATEGORY_NAME"]; $CATEGORY_PARENT_ID = $result["CATEGORY_PARENT_ID"]; $CATEGORY_STATUS = $result["CATEGORY_STATUS"]; if( $CATEGORY_PARENT_ID == 0 ){ $Node1Index = $CATEGORY_ID; } if( ($CATEGORY_STATUS == "DISABLED") && $BoldHiddenCategories ){ if( $ReverseOrder ){ $PathToCurrent = "[" . $CATEGORY_NAME . "]" . $_NAVIGATION_PATH_SEPARATOR . DrawThePath($CATEGORY_PARENT_ID, $PathWithHLinks, $TARGETURL, $Node1Index, $BoldHiddenCategories, $LinkStyle, 0, $ReverseOrder); }else{ $PathToCurrent = DrawThePath($CATEGORY_PARENT_ID, $PathWithHLinks, $TARGETURL, $Node1Index, $BoldHiddenCategories, $LinkStyle, 0, $ReverseOrder) . $_NAVIGATION_PATH_SEPARATOR . "[" . $CATEGORY_NAME . "]"; } if( $FirstCall ){ // $PathWithHLinks = $PathWithHLinks . $_NAVIGATION_PATH_SEPARATOR . "[$CATEGORY_NAME]"; // $_PATH_HASH["NAVIGATION_PATH"] = $PathWithHLinks; // $PathWithHLinks = $_NAVIGATION_PATH->PrepareTemplate($_PATH_HASH, $Evaluatecode=0, $UsePrecompiled=1); if( $result["CATEGORY_REDIRECT_URL"] != "" ){ $_PATH_HASH["PATH_ID"] = $result["CATEGORY_REDIRECT_URL"] ; }else{ $_PATH_HASH["PATH_ID"] = $TARGETURL . $CATEGORY_ID . "/"; } $_PATH_HASH["PATH_NAME"] = "[" . $CATEGORY_NAME . "]"; $NodeLink = $_NAVIGATION_PATH_ITEM_FINAL->PrepareTemplate($_PATH_HASH, $Evaluatecode=0, $UsePrecompiled=1); $PathWithHLinks = $PathWithHLinks . $_NAVIGATION_PATH_SEPARATOR . $NodeLink; }else{ if( $result["CATEGORY_REDIRECT_URL"] != "" ){ $_PATH_HASH["PATH_ID"] = $result["CATEGORY_REDIRECT_URL"] ; }else{ $_PATH_HASH["PATH_ID"] = $TARGETURL . $CATEGORY_ID . "/"; } $_PATH_HASH["PATH_NAME"] = $CATEGORY_NAME; $NodeLink = $_NAVIGATION_PATH_ITEM->PrepareTemplate($_PATH_HASH, $Evaluatecode=0, $UsePrecompiled=1); $PathWithHLinks = $PathWithHLinks . $_NAVIGATION_PATH_SEPARATOR . $NodeLink; } }else{ if( $ReverseOrder ){ $PathToCurrent = $CATEGORY_NAME . $_NAVIGATION_PATH_SEPARATOR . DrawThePath($CATEGORY_PARENT_ID, $PathWithHLinks, $TARGETURL, $Node1Index, $BoldHiddenCategories, $LinkStyle, 0, $ReverseOrder); }else{ $PathToCurrent = DrawThePath($CATEGORY_PARENT_ID, $PathWithHLinks, $TARGETURL, $Node1Index, $BoldHiddenCategories, $LinkStyle, 0, $ReverseOrder) . $_NAVIGATION_PATH_SEPARATOR . $CATEGORY_NAME ; } if( $FirstCall ){ if( $result["CATEGORY_REDIRECT_URL"] != "" ){ $_PATH_HASH["PATH_ID"] = $result["CATEGORY_REDIRECT_URL"] ; }else{ $_PATH_HASH["PATH_ID"] = $TARGETURL . $CATEGORY_ID . "/"; } $_PATH_HASH["PATH_NAME"] = $CATEGORY_NAME; $NodeLink = $_NAVIGATION_PATH_ITEM_FINAL->PrepareTemplate($_PATH_HASH, $Evaluatecode=0, $UsePrecompiled=1); $PathWithHLinks = $PathWithHLinks . $_NAVIGATION_PATH_SEPARATOR . $NodeLink; }else{ if( $result["CATEGORY_REDIRECT_URL"] != "" ){ $_PATH_HASH["PATH_ID"] = $result["CATEGORY_REDIRECT_URL"] ; }else{ $_PATH_HASH["PATH_ID"] = $TARGETURL . $CATEGORY_ID . "/"; } $_PATH_HASH["PATH_NAME"] = $CATEGORY_NAME; $NodeLink = $_NAVIGATION_PATH_ITEM->PrepareTemplate($_PATH_HASH, $Evaluatecode=0, $UsePrecompiled=1); $PathWithHLinks = $PathWithHLinks . $_NAVIGATION_PATH_SEPARATOR . $NodeLink; } } }else{ $PathToCurrent = ""; $PathWithHLinks = ""; $PathToCurrent = DrawThePath(0, $PathWithHLinks, $TARGETURL, $Node1Index, $BoldHiddenCategories, $LinkStyle, 0, $ReverseOrder); } } return $PathToCurrent; } // DrawThePath($CATEGORY_ID, &$PathWithHLinks, $TARGETURL, &$Node1Index, $BoldHiddenCategories=0, $LinkStyle="", $FirstCall=1, $ReverseOrder=0) function GetCategorySymPath($CATEGORY_ID){ global $DB, $DBID, $CACHE_WEB_PATH; $CATEGORY_ID = intval($CATEGORY_ID); if( $CATEGORY_ID == 0 ){ return $CACHE_WEB_PATH; }else{ $SQL = "select CATEGORY_ID, CATEGORY_SYMNAME, CATEGORY_PARENT_ID from AIV_CATEGORY where CATEGORY_ID='$CATEGORY_ID'"; $result = GetObject($DB, $SQL); if( $result ){ $CATEGORY_ID = $result["CATEGORY_ID"]; $CATEGORY_SYMNAME = $result["CATEGORY_SYMNAME"]; $CATEGORY_PARENT_ID = $result["CATEGORY_PARENT_ID"]; if( trim($CATEGORY_SYMNAME) != "" ){ return "/" . trim($CATEGORY_SYMNAME); }else{ return _CD_URL_PATH . $CATEGORY_ID; } // return GetCategorySymPath($CATEGORY_PARENT_ID) . "/" . ( ($CATEGORY_SYMNAME!="")?$CATEGORY_SYMNAME:"id".$CATEGORY_ID ); }else{ return ""; } } } // GetCategorySymPath($CATEGORY_ID) function CheckCategorySymName($CATEGORY_ID, $name){ global $DB, $DBID, $CACHE_WEB_PATH; if( $name == "" ) return true; $CATEGORY_ID = intval($CATEGORY_ID); $name = addslashes($name); $SQL = "select count(C2.CATEGORY_SYMNAME) as NumSyns from AIV_CATEGORY as C1 left join AIV_CATEGORY as C2 on C1.CATEGORY_PARENT_ID = C2.CATEGORY_PARENT_ID where C1.CATEGORY_ID = '$CATEGORY_ID' and C2.CATEGORY_SYMNAME='$name'"; $result = GetObject($DB, $SQL); return $result["NumSyns"] <= 1; } // CheckCategorySymName($CATEGORY_ID, $name) function GetCategoryName($CATEGORY_ID){ global $DB, $DBID, $SITE_TEXT_NAME, $SLANG; $CATEGORY_ID = GetBaseCategoryID($CATEGORY_ID); if( $SLANG=="Ru" ){ $HOME_PAGE_NAME = "Главная страница"; $CategoryNameFld = "CATEGORY_NAME_Ru"; $CategoryDescFld = "CATEGORY_DESCR_Ru"; }else{ $HOME_PAGE_NAME = "Home page"; $CategoryNameFld = "CATEGORY_NAME"; $CategoryDescFld = "CATEGORY_DESCR"; } if( $CATEGORY_ID == 0 ){ return $HOME_PAGE_NAME; } else { $SQL = "select CATEGORY_NAME, CATEGORY_NAME_Ru from AIV_CATEGORY where CATEGORY_ID = '$CATEGORY_ID'"; $result = getObject($DB, $SQL); if( $result ){ if( trim($result[$CategoryNameFld]) != "" ){ $result["CATEGORY_NAME"] = $result[$CategoryNameFld]; } return $result["CATEGORY_NAME"]; }else{ return "UNKNOWN CATEGORY ($CATEGORY_ID)"; } } } // GetCategoryName($CATEGORY_ID) /* /Category related routines */ function GenerateCategorySelectList($CategoryParentID, $CategoryID, $Filter){ global $DB; global $DBHOST; global $UserID; $Filter = trim($Filter) ; $Option = ""; $SearchPrompt = "Type first letters (two min) of the category name to search our category database:" ; if( IsCE( $UserID ) ){ echo IntellySelector('AIV_CATEGORY', 'CATEGORY_ID', 'CATEGORY_NAME', $Filter, $CategoryID, ORDERBYNAME, "Filter", "CATEGORY_FIND_ID", "Find", " (CATEGORY_BASE_ID=0) and (CATEGORY_NAME<>'-') ", 1, $Option, "Go", $SearchPrompt); }else{ if( $Filter == "" ){ echo IntellySelector('AIV_CATEGORY', 'CATEGORY_ID', 'CATEGORY_NAME', $Filter, $CategoryID, 1, "Filter", "CATEGORY_FIND_ID", "Find", " (CATEGORY_PARENT_ID='$CategoryParentID') and (CATEGORY_BASE_ID=0) and (CATEGORY_NAME<>'-')", 1, $Option,"Go", $SearchPrompt); }else{ echo IntellySelector('AIV_CATEGORY', 'CATEGORY_ID', 'CATEGORY_NAME', $Filter, $CategoryID, 1, "Filter", "CATEGORY_FIND_ID", "Find", " (CATEGORY_BASE_ID=0) and (CATEGORY_NAME<>'-') ", 1, $Option,"Go", $SearchPrompt); } } return; } // GenerateCategorySelectList($CategoryParentID, $CategoryID, $Filter) function DrawCategoryElements($PARENT_ID, $PARENT_CATEGORY_NAME){ global $DB; global $PHP_SELF; global $LongLockMessage; global $SITE_NAME, $SLANG; global $CATEGORY_MSG_ORDNO, $CATEGORY_MSG_URL; $SQL = "select CATEGORY_ID, CATEGORY_NAME, CATEGORY_NAME_Ru, CATEGORY_DESCR, CATEGORY_DESCR_Ru, CATEGORY_ORD, CATEGORY_SYMNAME, CATEGORY_STATUS from AIV_CATEGORY ". "where CATEGORY_PARENT_ID='$PARENT_ID' order by CATEGORY_ORD, CATEGORY_NAME"; $result = GetArray($DB, $SQL); if( $result && count($result)>0 ){ echo "\n"; if( $PARENT_CATEGORY_NAME != "" ){ echo ""; }else{ echo ""; } echo ""; echo "\n"; for($rec=0; $rec"; }else{ $NAME = $result[$rec]["CATEGORY_NAME"]; $DESCR = substr(strip_tags($result[$rec]["CATEGORY_DESCR"]),0,200)."...
"; } $CategorySymPath = GetCategorySymPath($CATEGORY_ID); echo "
"; echo "\n"; } echo "
"$PARENT_CATEGORY_NAME" subcategories
$SITE_NAME top categories
CategoryDescription
$NAME
$CATEGORY_MSG_URL $CategorySymPath
$CATEGORY_MSG_ORDNO $CATEGORY_ORD
$DESCR
". GetCategoryArticleStats($CATEGORY_ID) ."
". GetCategoryURLStats($CATEGORY_ID) ."
$LockMSG
\n"; } } // DrawCategoryElements($PARENT_ID, $PARENT_CATEGORY_NAME) function CategoryRecurciveLockUnlock($CATEGORY_ID, $DoUnlock, $RFlag=0){ global $DB; $CATEGORY_ID = intval($CATEGORY_ID); if( !$CATEGORY_ID ) return; /* Don't delete anything!!! DeleteCategoryArticles($CATEGORY_ID); DeleteCategoryURLs($CATEGORY_ID); DeleteCategoryRelatedLinks($CATEGORY_ID); */ if( $DoUnlock == 1 ){ $NEW_STATUS = "ENABLED"; }else{ $NEW_STATUS = "DISABLED"; } unset($_tupd); $_tupd['CATEGORY_STATUS'] = QuoteAndSlashes($NEW_STATUS); DBUpdate($DB, 'AIV_CATEGORY', $_tupd, "CATEGORY_ID=$CATEGORY_ID"); IndexifyCategory($CATEGORY_ID); if( $RFlag ){ // do recurcive action on children $SQL = "SELECT CATEGORY_ID from AIV_CATEGORY where CATEGORY_PARENT_ID=$CATEGORY_ID"; $res = GetArray($DB, $SQL); if( $res ){ for($i=0;$i$val ){ if( $val["CATEGORY_SUBNODES_List"]!="" ){ $Subs = $val["CATEGORY_SUBNODES_List"]; }else{ $Subs = GetSubCategoryList($val["CATEGORY_ID"]); unset($_tupd); $_tupd['CATEGORY_SUBNODES_List'] = QuoteAndSlashes($Subs); DBUpdate($DB, 'AIV_CATEGORY', $_tupd, "CATEGORY_ID=".$val["CATEGORY_ID"]); } $List .= "," . $Subs ; } } $__GetSubCategoryList[$id] = $List; return $List; } // GetSubCategoryList($id = 0) function CategoryTree($node=0, $LinkStyle = "class=\"menu\"", $BaseLink=_CD_URL_PATH){ global $DB, $SLANG; $node = intval($node); $SQL = "select CATEGORY_ID, CATEGORY_NAME, CATEGORY_NAME_Ru from AIV_CATEGORY where CATEGORY_PARENT_ID=$node and CATEGORY_STATUS='ENABLED' order by CATEGORY_ORD asc, CATEGORY_NAME asc"; $Data = GetArray($DB, $SQL); $List = ""; if( is_array($Data) ){ $List .= ""; } return $List; } // CategoryTree($node=0, $LinkStyle = "class=\"menu\"") function CategoryTreeForum($node=0){ global $DB, $SLANG; $node = intval($node); $SQL =<<"; if( is_array($Data) ){ /* Список, элемент списка категорий для ссылок на форум.. */ $T__AbstractListItem_CategoryFoum = new TheTemplate(); $T__AbstractListItem_CategoryFoum->LoadTemplate("_AbstractListItem_CategoryForum"); foreach($Data as $aCategory){ if( $SLANG == "Ru" && $aCategory["CATEGORY_NAME_Ru"]!="" ){ $CategoryDisplayName = $aCategory["CATEGORY_NAME_Ru"]; }else{ $CategoryDisplayName = $aCategory["CATEGORY_NAME"]; } $HASH__AbstractListItem_CategoryFoum["CAT_ID"] = $aCategory["CATEGORY_ID"]; $HASH__AbstractListItem_CategoryFoum["CAT_NAME"] = $CategoryDisplayName; $HASH__AbstractListItem_CategoryFoum["NUM_COMMENTS"] = $aCategory["_NUMC"]; $List .= $T__AbstractListItem_CategoryFoum->PrepareTemplate($HASH__AbstractListItem_CategoryFoum, $Evaluatecode=0, $UsePrecompiled=1); $List .= CategoryTreeForum($aCategory["CATEGORY_ID"]); } unset($T__AbstractListItem_CategoryFoum); unset($HASH__AbstractListItem_CategoryFoum); /* Список оболочка */ $T__AbstractListEnvelope = new TheTemplate(); $T__AbstractListEnvelope->LoadTemplate("_AbstractListEnvelope"); $HASH__AbstractListEnvelope["ListData"] = $List; //Now we can prepare it. With evaluate option coz... $List = $T__AbstractListEnvelope->PrepareTemplate($HASH__AbstractListEnvelope, $Evaluatecode=0, $UsePrecompiled=1); unset($T__AbstractListEnvelope); unset($HASH__AbstractListEnvelope); } return $List; } // CategoryTree($node=0, $LinkStyle = "class=\"menu\"") function CategoryTreeDocuments($node=0, $LinkStyle = "class=\"menu\"", $LinkPath=_CD_URL_PATH, $level=0 ){ global $DB,$SLANG; /* if( strpos($LinkPath, "?") === false ){ $LinkPath .= "?"; $LinkPathEXTRA = "&"; }else{ $LinkPathEXTRA = "&"; } */ $node = intval($node); $SQL = "select AIV_CATEGORY.CATEGORY_ID, IF('$SLANG'='Ru',AIV_CATEGORY.CATEGORY_NAME_Ru,AIV_CATEGORY.CATEGORY_NAME) AS CNAME, AIV_CATEGORY.CATEGORY_BASE_STORY_ID from AIV_CATEGORY where CATEGORY_PARENT_ID=$node and CATEGORY_STATUS='ENABLED' group by AIV_CATEGORY.CATEGORY_ID order by CATEGORY_ORD asc, CNAME asc"; $Data = GetArray($DB, $SQL); $List = ""; if( is_array($Data) ){ $List .= "
    \n"; foreach($Data as $aCategory){ $SQLa = "select count(ARTICLE_ID) as NumDocuments from AIV_ARTICLE where CATEGORY_ID=" . $aCategory["CATEGORY_ID"] . " and ARTICLE_ID<>'" . $aCategory["CATEGORY_BASE_STORY_ID"] . "' and WORKFLOW_STATUS='PUBLISHED'"; $Counter = GetObject($DB, $SQLa); if( $Counter["NumDocuments"] ){ $NumDocs = "[" . $Counter["NumDocuments"] . "]"; }else{ $NumDocs = ""; } $List .= "
  • " . $aCategory["CNAME"] . " $NumDocs
  • \n"; $List .= CategoryTreeDocuments($aCategory["CATEGORY_ID"], $LinkStyle, $LinkPath, $level+1); } $List .= "
\n"; } return $List; } // CategoryTreeDocuments($node=0, $LinkStyle = "class=\"menu\"") function CategoryAlphabeticDocuments(){ // uses: // global _GET[ALPHA] - буква для которой показывать документы... // global _GET[id] - идентификатор активного раздела... // global $DB, $LoggedInUser; $Pattern = trim($_GET[ALPHA]); $PatternSQL = QuoteAndSlashes($Pattern); $node = intval($_GET[id]); $SubNodeList = GetSubCategoryList($node); $SQLAlpha = "SELECT LEFT(HEADLINE,1) AS ALPHA, COUNT(*) AS NUMARTS FROM AIV_ARTICLE WHERE WORKFLOW_STATUS='PUBLISHED' AND CATEGORY_ID IN ($SubNodeList) GROUP BY ALPHA ORDER BY ALPHA"; $DataAlpha = GetArray($DB, $SQLAlpha); $AlphaList = ""; $Self = RemoveArgFromURL($_SERVER["REQUEST_URI"], "ALPHA"); /* Глоссарий: выбранная буква... */ $T_GLOSSARY_ALPHA_SELECTED = new TheTemplate(); $T_GLOSSARY_ALPHA_SELECTED->LoadTemplate("GLOSSARY_ALPHA_SELECTED"); /* Глоссарий: буква со ссылкой... */ $T_GLOSSARY_ALPHA_LINK = new TheTemplate(); $T_GLOSSARY_ALPHA_LINK->LoadTemplate("GLOSSARY_ALPHA_LINK"); // echo ""; if( is_array($DataAlpha) ){ foreach($DataAlpha as $key => $val){ $alpha = $val[ALPHA]; $numarts = $val[NUMARTS]; if( $alpha == $Pattern ){ $HASH_GLOSSARY_ALPHA_SELECTED["ALPHA"] = $alpha; $HASH_GLOSSARY_ALPHA_SELECTED["NUM_ARTICLES"] = $numarts; $AlphaList .= $T_GLOSSARY_ALPHA_SELECTED->PrepareTemplate($HASH_GLOSSARY_ALPHA_SELECTED, $Evaluatecode=0, $UsePrecompiled=1); }else{ // if( strpos($Self, "?") === false ){ // $AlphaRef="$Self?ALPHA=".rawurlencode($alpha); // }else{ $AlphaRef="$Self&ALPHA=".rawurlencode($alpha); // } $HASH_GLOSSARY_ALPHA_LINK["ALPHA"] = $alpha; $HASH_GLOSSARY_ALPHA_LINK["ALPHA_LINK"] = $AlphaRef; $HASH_GLOSSARY_ALPHA_LINK["NUM_ARTICLES"] = $numarts; $AlphaList .= $T_GLOSSARY_ALPHA_LINK->PrepareTemplate($HASH_GLOSSARY_ALPHA_LINK, $Evaluatecode=0, $UsePrecompiled=1); } } } if( $Pattern != "" ){ $SQLCount = "SELECT count(*) as NumTerms FROM AIV_ARTICLE ". "LEFT JOIN AIV_MEMBER on AIV_ARTICLE.MEMBER_AUTHOR=AIV_MEMBER.id " . "LEFT JOIN AIV_CATEGORY on AIV_ARTICLE.CATEGORY_ID=AIV_CATEGORY.CATEGORY_ID " . "WHERE LEFT(HEADLINE,1)=$PatternSQL AND WORKFLOW_STATUS='PUBLISHED' AND AIV_ARTICLE.CATEGORY_ID IN ($SubNodeList)"; $SQLArtList = "SELECT ARTICLE_ID, HEADLINE FROM AIV_ARTICLE ". "LEFT JOIN AIV_MEMBER on AIV_ARTICLE.MEMBER_AUTHOR=AIV_MEMBER.id " . "LEFT JOIN AIV_CATEGORY on AIV_ARTICLE.CATEGORY_ID=AIV_CATEGORY.CATEGORY_ID " . "WHERE LEFT(HEADLINE,1)=$PatternSQL AND WORKFLOW_STATUS='PUBLISHED' AND AIV_ARTICLE.CATEGORY_ID IN ($SubNodeList)"; }else{ $SQLCount = "SELECT count(*) as NumTerms FROM AIV_ARTICLE ". "LEFT JOIN AIV_MEMBER on AIV_ARTICLE.MEMBER_AUTHOR=AIV_MEMBER.id " . "LEFT JOIN AIV_CATEGORY on AIV_ARTICLE.CATEGORY_ID=AIV_CATEGORY.CATEGORY_ID " . "WHERE WORKFLOW_STATUS='PUBLISHED' AND AIV_ARTICLE.CATEGORY_ID IN ($SubNodeList)"; $SQLArtList = "SELECT ARTICLE_ID, HEADLINE FROM AIV_ARTICLE ". "LEFT JOIN AIV_MEMBER on AIV_ARTICLE.MEMBER_AUTHOR=AIV_MEMBER.id " . "LEFT JOIN AIV_CATEGORY on AIV_ARTICLE.CATEGORY_ID=AIV_CATEGORY.CATEGORY_ID " . "WHERE WORKFLOW_STATUS='PUBLISHED' AND AIV_ARTICLE.CATEGORY_ID IN ($SubNodeList)"; } $KeyWordQuery = ParseQueryString($_POST['TERM']); if( $KeyWordQuery ){ $SQLCount .= "AND($KeyWordQuery)"; $SQLArtList .= "AND($KeyWordQuery)"; } $Data = GetObject($DB, $SQLCount); $NumTerms = $Data[NumTerms]; $PageSize = intval($_POST[PageSize])>0 ? $_POST[PageSize] : $LoggedInUser->UserProperties['PageSize']; if( $PageSize != $LoggedInUser->UserProperties['PageSize'] ){ SetPropertyValue($LoggedInUser->id, $PropID='PageSize', $PageSize); } $NumPages = ceil($NumTerms / $PageSize); switch($_POST[NP]){ case "p": if( $_POST[PG]>1 ){ $CurrPage = $_POST[PG]-1; }else{ $CurrPage = 1; } break; case "1": $CurrPage = 1; break; case "n":; if( $_POST[PG]<$NumPages ){ $CurrPage = $_POST[PG]+1; }else{ $CurrPage = $NumPages; } break; } if( !isset($CurrPage) ) $CurrPage = 1; $SQLArtList .= " ORDER BY AIV_ARTICLE.HEADLINE ASC "; $SQLArtList .= " LIMIT " . (($CurrPage-1)*$PageSize) . "," . $PageSize; // echo "
$SQLCount
$SQLArtList
"; $ArtList = ""; /* Элемент списка документов глоссария */ $T_GLOSSARY_ARTICLE_LINK = new TheTemplate(); $T_GLOSSARY_ARTICLE_LINK->LoadTemplate("GLOSSARY_ARTICLE_LINK"); $HASH_GLOSSARY_ARTICLE_LINK["ARTICLE_ID"] = ""; $HASH_GLOSSARY_ARTICLE_LINK["HEADLINE"] = ""; /* Глоссарий: оболочка списка статей */ $T_GLOSSARY_LIST_ENVELOP = new TheTemplate(); $T_GLOSSARY_LIST_ENVELOP->LoadTemplate("GLOSSARY_LIST_ENVELOP"); $ArtData = GetArray($DB, $SQLArtList); if( is_array($ArtData) ){ foreach( $ArtData as $k => $v ){ $HASH_GLOSSARY_ARTICLE_LINK["ARTICLE_ID"] = $v[ARTICLE_ID]; $HASH_GLOSSARY_ARTICLE_LINK["HEADLINE"] = $v[HEADLINE]; $ArtList .= $T_GLOSSARY_ARTICLE_LINK->PrepareTemplate($HASH_GLOSSARY_ARTICLE_LINK, $Evaluatecode=0, $UsePrecompiled=1); } $HASH_GLOSSARY_LIST_ENVELOP["ALPHA"] = $Pattern; $HASH_GLOSSARY_LIST_ENVELOP["ART_LIST"] = $ArtList; $HASH_GLOSSARY_LIST_ENVELOP["START_NO"] = (($CurrPage-1)*$PageSize)+1; $ArtList = $T_GLOSSARY_LIST_ENVELOP->PrepareTemplate($HASH_GLOSSARY_LIST_ENVELOP, $Evaluatecode=0, $UsePrecompiled=1); } $ART_PP = ParseEnum( GetPropertyValue( $UserId=0, $PropID='PageSize', $DefaultValue="10|20|30|*40|50|60|70|80|90|100|110|120|130|140|150" ), $LATEST_ARTICLES_LIST_LENGTH ); ob_start(); GenericSelector( $selectorname = "PageSize", $currentvalue = $PageSize, $ART_PP, $KeyEqValue=0, $ExtraClass=" ONCHANGE=\"this.form.submit()\" ", $Quote=true); $APP_Selector = ob_get_contents(); ob_end_clean(); /* Глоссарий: оболочка общая */ $T_GLOSSARY = new TheTemplate(); $T_GLOSSARY->LoadTemplate("GLOSSARY"); $HASH_GLOSSARY["ALPHABET"] = $AlphaList; $HASH_GLOSSARY["PAGER_NAVIGATOR"] = ""; $HASH_GLOSSARY["TERMINLIST"] = $ArtList; $HASH_GLOSSARY["FORM_ACTION_URL"] = $_SERVER['REQUEST_URI']; $HASH_GLOSSARY["PG"] = $CurrPage; $HASH_GLOSSARY["PG_SZ_SELECTOR"] = $APP_Selector;; $HASH_GLOSSARY["TOTAL_PAGES"] = $NumPages; $HASH_GLOSSARY["TERM"] = $_POST[TERM]; return $T_GLOSSARY->PrepareTemplate($HASH_GLOSSARY, $Evaluatecode=0, $UsePrecompiled=1); } // function CategoryIndex($node=0, $LinkStyle = "class=\"menu\""){ global $DB; $node = intval($node); $SQL = "select CATEGORY_ID, CATEGORY_NAME from AIV_CATEGORY where CATEGORY_PARENT_ID=$node and CATEGORY_STATUS='ENABLED' order by CATEGORY_ORD asc, CATEGORY_NAME asc"; $Data = GetArray($DB, $SQL); $List = ""; // echo "$SQL $node " . count($Data). "\n"; flush(); if( is_array($Data) ){ $List .= "

\n"; foreach($Data as $aCategory){ $List .= " " . $aCategory["CATEGORY_NAME"] . "
\n"; } $List .= "

\n"; } return $List; } // CategoryIndex($node=0, $LinkStyle = "class=\"menu\"") function CreateCategoryHashDirs(){ } function CategoryArticleList( $node = 11, $LinkStyle = "class=\"menu\""){ global $DB; $node = intval($node); // and AIV_ARTICLE.ARTICLE_ID<>AIV_CATEGORY.CATEGORY_BASE_STORY_ID $SQL = "select ARTICLE_ID, SHORT_ARTICLE, CATEGORY_BASE_STORY_ID from AIV_ARTICLE left join AIV_CATEGORY on AIV_ARTICLE.CATEGORY_ID=AIV_CATEGORY.CATEGORY_ID where AIV_ARTICLE.CATEGORY_ID=$node and AIV_ARTICLE.WORKFLOW_STATUS='PUBLISHED' order by HEADLINE asc"; $Data = GetArray($DB, $SQL); $List = ""; // echo "$SQL $node " . count($Data). "\n"; flush(); if( is_array($Data) ){ $List .= "

\n"; foreach($Data as $aArticle){ if( $aArticle["CATEGORY_BASE_STORY_ID"] <> $aArticle["ARTICLE_ID"] ) $List .= " " . $aArticle["SHORT_ARTICLE"] . "
\n"; } } return $List; } function CategoryTreeSelect($SelectorName="CategoryTreeSelect", $Default=0, $Except=-1, $Node=0, $CallLevel=0, $MaxRecur=-1){ global $DB, $SITE_TEXT_NAME; $Default = intval($Default); $Except = intval($Except); $Node = intval($Node); $CallLevel = intval($CallLevel); $SQL = "select CATEGORY_ID, CATEGORY_STATUS as CSTATUS, CATEGORY_NAME AS CNAME from AIV_CATEGORY where CATEGORY_PARENT_ID=$Node and CATEGORY_ID<>$Except order by CATEGORY_ORD, CATEGORY_NAME"; $Data = GetArray($DB, $SQL); $Selector = ""; if( is_array($Data) ){ if( !$CallLevel ){ $Selector = "\n"; } return $Selector; } function CategoryUserTreeSelect($SelectorName="CategoryTreeSelect", $Default=0, $Except=-1, $Node=0, $CallLevel=0, $MaxRecur=-1){ global $DB, $SITE_TEXT_NAME, $LoggedInUser, $SLANG; $Default = intval($Default); $Except = intval($Except); $Node = intval($Node); $CallLevel = intval($CallLevel); $SQL = "select CATEGORY_ID, CATEGORY_STATUS as CSTATUS, IF('Ru'='" . $SLANG . "', CATEGORY_NAME_Ru, CATEGORY_NAME) AS CNAME from AIV_CATEGORY where CATEGORY_PARENT_ID=$Node and CATEGORY_ID<>$Except order by CATEGORY_ORD, CNAME"; $Data = GetArray($DB, $SQL); $Selector = ""; if( is_array($Data) ){ if( !$CallLevel ){ $Selector = "\n"; } return $Selector; } ?>