/*
** Category related functions
*/
// already included --> common.php3
//echo __FILE__ . __LINE__ . " 6 - ASSET_CLASS_SET" . defined("ASSET_CLASS_SET") . "
";
if( !defined("BFOPT_WITH_ALL") ){
require $_SERVER['DOCUMENT_ROOT'] . "/utils/TheBlobAPI.php3";
}
if( !defined("ASSET_CLASS_SET") ){
require $_SERVER['DOCUMENT_ROOT'] . "/utils/TheAssetClass.php3";
}
if( !defined("THE_DB_FORMS_MODULE") ){
require $_SERVER['DOCUMENT_ROOT'] . "/utils/DBForms.php3";
}
//echo __FILE__ . __LINE__ . "ASSET_CLASS_SET" . defined("ASSET_CLASS_SET") . "
";
function GetCategory($CATEGORY_ID){
global $DB, $SLANG;
$CATEGORY_ID = intval($CATEGORY_ID);
$SQL = "select AIV_CATEGORY.*, ASSET_ID from AIV_CATEGORY LEFT JOIN AIV_ASSET ON CATEGORY_ID=RESOURCE_ID AND ASSET_TYPE='CATEGORY' where CATEGORY_ID='$CATEGORY_ID'";
if( $SLANG == "Ru" ){
$CategoryNameFld = "CATEGORY_NAME_Ru";
$CategoryDescFld = "CATEGORY_DESCR_Ru";
$CategoryTitleFld = "CATEGORY_TITLE_HTML_Ru";
}else{
$CategoryNameFld = "CATEGORY_NAME";
$CategoryDescFld = "CATEGORY_DESCR";
$CategoryTitleFld = "CATEGORY_TITLE_HTML";
}
$Category = GetObject($DB, $SQL);
if( trim($Category[$CategoryNameFld]) != "" ){
$Category["CATEGORY_NAME"] = $Category[$CategoryNameFld];
}
if( trim($Category[$CategoryDescFld]) != "" ){
$Category["CATEGORY_DESCR"] = $Category[$CategoryDescFld];
}
if( trim($Category[$CategoryTitleFld]) != "" ){
$Category["CATEGORY_TITLE_HTML"] = $Category[$CategoryTitleFld];
}
return $Category;
} // GetCategory
function ShowCategoryMedia($CATEGORY_ID){
global $MAXIMAGESPERARTICLE;
$CATEGORY_ID = intval($CATEGORY_ID);
if( (!isset($CATEGORY_ID)) || ($CATEGORY_ID=="") || $CATEGORY_ID<=0 ){
return ;
}
$Blobs = new TheBlob;
$Asset = new TheAsset() ;
$Asset->LoadAsset2($CATEGORY_ID, 'CATEGORY');
$Asset->ShowImageList("category image", "Category Images", "CPICKS");
return;
}
function ShowCategoryGallery($CATEGORY_ID){
$CATEGORY_ID = intval($CATEGORY_ID);
if( (!isset($CATEGORY_ID)) || ($CATEGORY_ID=="") || $CATEGORY_ID<=0 ){
return ;
}
$Asset = new TheAsset() ;
$Asset->LoadAsset2($CATEGORY_ID, 'CATEGORY');
// var_dump($Asset) ;
$TBlob = new TheBlob;
$RelatedBlobIDs = $TBlob->FindBlobs($Asset->ASSET_ID, 'IMAGE', "", GetLimitationIDbyName("category gallery"));
// var_dump($TBlob) ;
// var_dump($RelatedBlobIDs) ;
if( is_array($RelatedBlobIDs) && sizeof($RelatedBlobIDs) > 0 ){
echo "ASSET_ID . "\">В галерее изображений:" . sizeof($RelatedBlobIDs) . "";
}else{
echo "В галерее нет изображений";
}
return;
}
function DeleteCategoryArticles($CATEGORY_ID){
}
function DeleteCategoryURLs($CATEGORY_ID){
}
function DeleteCategoryRelatedLinks($CATEGORY_ID){
}
function GetCategoryArticleStats($CATEGORY_ID){
global $DB, $SLANG;
$CATEGORY_ID = intval($CATEGORY_ID);
if( (!isset($CATEGORY_ID)) || $CATEGORY_ID<0 ){
return "error: Bad category ID.";
}
$SQL = "select count(*) as numarts from AIV_ARTICLE where CATEGORY_ID='$CATEGORY_ID' and WORKFLOW_STATUS<>'NEW'";
$Data = GetObject($DB, $SQL);
if( $Data ){
$numarts = $Data["numarts"];
}else{
$numarts = 0;
}
if( $numarts>0 ){
switch( $SLANG ){
case "Ru":
return "В данном разделе $numarts документ(ов).";
default:
return "$numarts article(s) in this category.";
}
}else{
switch( $SLANG ){
case "Ru":
return "В данном разделе нет документов.";
default:
return "No articles in this category.";
}
}
}
function GetCategoryURLStats($CATEGORY_ID){
global $DB;
$Unchecked = 0;
$CATEGORY_ID = intval($CATEGORY_ID);
if( (!isset($CATEGORY_ID)) || ($CATEGORY_ID=="") || $CATEGORY_ID<=0 ){
return "error: Bad category ID.";
}
$SQL = "select count(*) as numURLs from AIV_CATEGORY_URL where CATEGORY_ID='$CATEGORY_ID'";
$Data = GetObject($DB, $SQL);
if( $Data ){
$numURLs = $Data["numURLs"];
$SQL = "select count(*) as Unchecked from AIV_CATEGORY_URL where CATEGORY_ID='$CATEGORY_ID' and STATUS='JUSTIN'";
$DataJI = GetObject($DB, $SQL);
$Unchecked = $DataJI["Unchecked"];
$SQL = "select count(*) as Disabled from AIV_CATEGORY_URL where CATEGORY_ID='$CATEGORY_ID' and STATUS='DISABLED'";
$DataDis = GetObject($DB, $SQL);
$Disabled = $DataDis["Disabled"];
}else{
$numURLs = 0;
$Unchecked = 0;
$Disabled = 0;
}
if( $numURLs>0 ){
return "Количество ссылок в разделе: $numURLs. Непроверенных: $Unchecked. Закрытых: $Disabled. ";
}else{
return "В разделе нет ссылок. ";
}
}
function GetCategoryPollStats($CATEGORY_ID) {
global $DB;
$CATEGORY_ID = intval($CATEGORY_ID);
if( (!isset($CATEGORY_ID)) || $CATEGORY_ID<0 ){
return "error: Bad category ID.";
}
$Result = "";
$SQL = "select count(*) as cnt from AIV_QBASE where originator_id = '$CATEGORY_ID' and originator_class = '0'";
$Data = GetObject($DB, $SQL);
if( $Data ){
$Result .= "Total: ".$Data["cnt"]." poll(s)";
}
$SQL = "select count(*) as cnt from AIV_QBASE where originator_id = '$CATEGORY_ID' and originator_class = '0' and active = 'Y'";
$Data = GetObject($DB, $SQL);
if( $Data ){
$Result .= " Enabled: ".$Data["cnt"]." poll(s)";
}
if ($Result!=""){
return $Result;
}else{
return "No polls in this category";
}
}
/*
**
*/
function AllowCreateCategory($UserID, $BaseCategoryID){
// echo "AC:";
return IsCE($UserID) || IsCategoryGuide($UserID, $BaseCategoryID);
}
function AllowModifyCategory($UserID, $BaseCategoryID){
// echo "AM:";
return IsCE($UserID) || IsCategoryGuide($UserID, $BaseCategoryID);
}
/*
** Really - nothing is deleted!!! we only lock access to data.
*/
function AllowDeleteCategory($UserID, $BaseCategoryID){
global $DB;
// echo "AD:";
return IsCE($UserID) || IsCategoryGuide($UserID, $BaseCategoryID);
}
/*
** Category(Category) display subroutine
*/
function PrepareCategoryImagesAndLinks($folder, $article){
$Blobs = new TheBlob;
$Asset = new TheAsset ;
$Asset->LoadAsset2($folder, 'CATEGORY');
$RelatedBlobIDs = $Blobs->FindBlobs($Asset->ASSET_ID, 'IMAGE', "", GetLimitationIDbyName("category image") );
// var_dump($RelatedBlobIDs);
if( is_array($RelatedBlobIDs) ){
$pattern = "\[IMG[ ]*.*\]" ;
if( !ereg( $pattern, $article ) ){
// no direct image links in article
for($bno = 0; $bno < sizeof($RelatedBlobIDs); $bno++ ){
$Blobs->LoadBlob($RelatedBlobIDs[$bno], 0);
if( ereg_replace($Blobs->CD_CLASS, "", $EXCEPT) != $EXCEPT ){
continue;
}
$replacement = "";
$article = $replacement . $article;
}
}else{
// direct image links in article
for($bno = 0; $bno < sizeof($RelatedBlobIDs); $bno++ ){
$Blobs->LoadBlob($RelatedBlobIDs[$bno], 0);
if( ereg_replace($Blobs->CD_CLASS, "", $EXCEPT) != $EXCEPT ){
continue;
}
$pattern = "\[IMG[ ]*" . $Blobs->CD_NAME . "\]" ;
$replacement = "
CD_WIDTH' height='$Blobs->CD_HEIGHT'>";
$article = ereg_replace($pattern, $replacement, $article);
}
}
}
if( !ereg( "
", $article ) && !ereg( " No symbolic links to current category";
}
return $Output;
} // ModifySuggestionsForm
?>
", $article ) ){
$article = nl2br($article);
}
srand((double)microtime()*1000000);
$randval = rand();
$pattern = "\[RAND\]" ;
$replacement = "$randval";
$article = ereg_replace($pattern, $replacement, $article);
$pattern = "\[/A\]" ;
$replacement = "";
$article = ereg_replace($pattern, $replacement, $article);
return $article;
}
function CreateSymLinkCategory($BaseCategoryID, $ParentCategoryID){
global $DB;
global $UserID;
$Cat = GetCategoryByID($BaseCategoryID);
if( !is_object($Cat) ){
return 0;
}
$Data['CATEGORY_DESCR'] = QuoteAndSlashes($Cat['CATEGORY_DESCR']);
$Data['CATEGORY_PARENT_ID'] = QuoteAndSlashes($ParentCategoryID);
$Data['CATEGORY_NAME'] = QuoteAndSlashes($Cat['CATEGORY_NAME']);
$Data['CATEGORY_ORD'] = QuoteAndSlashes($Cat['CATEGORY_ORD']);
$Data['CATEGORY_GUIDE_MEMBER_ID'] = QuoteAndSlashes(0);
$Data['CATEGORY_CREATOR'] = QuoteAndSlashes($UserID);
$Data['CATEGORY_BASE_ID'] = QuoteAndSlashes($BaseCategoryID);
return DBInsert($DB, 'AIV_CATEGORY', $Data);
} // CreateSymLinkCategory
function GetSymLinkCategories($BaseCategoryID){
global $DB;
$SLC = array() ;
$SQL = "select CATEGORY_ID from AIV_CATEGORY where CATEGORY_BASE_ID='$BaseCategoryID'";
$result = GetArray($DB, $SQL);
if( $result ){
for($cat=0; $cat
EOF;
}else{
$Output = "
EOF;
for($slc=0; $slc<$nrows; $slc++){
$SLCategoryID = $result[$slc]["CATEGORY_ID"];
$PathWithHLinks = "";
$SLCategoryName = DrawThePath($SLCategoryID, $PathWithHLinks, "", $Node1Index, $__BoldDisabled=0, $__Style="", $__FirstCall=1);
$Name = "$SLCategoryName\n";
$Output .=<<Synonyms in Action $Name
EOF;
}
$Output .=<<