GetTheAsset2($ResorceId, $ResourceType); if( $Asset->error ){ // no asset for this object. create new one... // just return... return; } $Asset->SetAssetStatus('DISABLED'); $Asset->SaveAsset(); CleanupKeywordList($AssetID); } // CleanUpResourceLinks($ResorceId, $ResourceType) function PrepareWordList($document){ // no newlines $document = ereg_replace("\n", " ", $document); $document = ereg_replace("\r", " ", $document); // deHTML text $document = ereg_replace("<[a-zA-Z0-9/]{1,12}[^<]*>", " ", $document); $document = ereg_replace(""", " ", $document); $document = ereg_replace("&", " ", $document); $document = ereg_replace("<", " ", $document); $document = ereg_replace(">", " ", $document); // no digits // $document = ereg_replace("[0-9]+", " ", $document); // no leading / trailing dashes $document = ereg_replace("- ", " ", $document); $document = ereg_replace(" -", " ", $document); // no special chars $document = ereg_replace('"', " ", $document); $document = ereg_replace(" '", " ", $document); $document = ereg_replace(" `", " ", $document); $document = ereg_replace("#", " ", $document); $document = ereg_replace("\?", " ", $document); $document = ereg_replace("\.", " ", $document); $document = ereg_replace(",", " ", $document); $document = ereg_replace("<", " ", $document); $document = ereg_replace(">", " ", $document); $document = ereg_replace(":", " ", $document); $document = ereg_replace(";", " ", $document); // $document = ereg_replace("\\", " ", $document); $document = ereg_replace("\|", " ", $document); $document = ereg_replace("/", " ", $document); // $document = ereg_replace("//", "/", $document); $document = ereg_replace("\[", " ", $document); $document = ereg_replace("]", " ", $document); $document = ereg_replace("\{", " ", $document); $document = ereg_replace("}", " ", $document); $document = ereg_replace("\(", " ", $document); $document = ereg_replace(")", " ", $document); $document = ereg_replace("~", " ", $document); $document = ereg_replace("!", " ", $document); $document = ereg_replace("@", " ", $document); $document = ereg_replace("#", " ", $document); $document = ereg_replace("$", " ", $document); $document = ereg_replace("%", " ", $document); $document = ereg_replace("^", " ", $document); $document = ereg_replace("&", " ", $document); $document = ereg_replace("\*", " ", $document); $document = ereg_replace("=", " ", $document); $document = ereg_replace("_", " ", $document); $document = ereg_replace("\+", " ", $document); // repeated spaces converted to one $document = trim(ereg_replace(" +", " ", $document)); $document = strtolower($document); // echo "Trimmed document:
" . $document . "\n
[END]
"; $warr = explode(" ", $document) ; // echo sizeof($warr) . " words
"; // sort ( $warr ) ; $whash = array(); for($w=0; $wResults:
"; $wc = 0; unset($WList); foreach( $whash as $key=>$val ){ if( strlen($key)>2 ){ // echo "$key => $val
"; $WList[$wc] = $key ; $wc ++ ; } } unset($whash); if( !isset($WList) ){ return false; }else{ return $WList; } } // PrepareWordList function InitAssetKeyWords($AssetID, $AssetText){ global $DB ; CleanupKeywordList($AssetID); $WList = PrepareWordList($AssetText); if( !is_array($WList) ){ return 0; } $NWords = sizeof($WList); $SQL = "INSERT IGNORE INTO AIV_KEYWORD (keyword) VALUES " ; for($w=0; $w<$NWords; $w++){ if( $w > 0 ){ $SQL = $SQL . ", ('" . addslashes($WList[$w]) . "')" ; }else{ $SQL = $SQL . " ('" . addslashes($WList[$w]) . "')" ; } } DBExec($DB, $SQL); // complex insert multivalues $SQL = "insert into AIV_KEYWORD_ASSET (keyword_id, asset_id) SELECT keyword_id, '$AssetID' from AIV_KEYWORD WHERE " ; for($w=0; $w<$NWords; $w++){ if( $w > 0 ){ $SQL = $SQL . "or (keyword='" . addslashes($WList[$w]) . "')" ; }else{ $SQL = $SQL . " (keyword='" . addslashes($WList[$w]) . "')" ; } } DBExec($DB, $SQL); // complex insert multivalues return $NWords ; } // InitAssetKeyWords($AssetID, $AssetText) DEFINE('CONCAT_ACTION_AND' , " and " ); DEFINE('CONCAT_ACTION_OR' , " or " ); function GenerateDirectWordList($document, $keyfieldname, $concataction = CONCAT_ACTION_OR){ if( $keyfieldname == "" ){ return ""; } $WList = PrepareWordList($document); if( !is_array($WList) ){ return ""; } for($w=0; $w $v){ $keyword_id = $v["keyword_id"]; if( $Nfound == 0 ){ $RetSQL = "($keyfieldname = '$keyword_id')" ; $Nfound++; }else{ $RetSQL = $RetSQL . $concataction . "($keyfieldname = '$keyword_id')" ; } } } } return $RetSQL ; } // GenerateIDWordList($document, $keyfieldname, $concataction = CONCAT_ACTION_OR) ///////////////////////////////////////// function GetURLByID($UrlID){ global $DB; /* | URL_ID | int(11) | | PRI | 0 | auto_increment | | URL | varchar(80) | | MUL | | | | CATEGORY_ID | int(11) | | | 0 | | | PUBDATE | datetime | YES | | NULL | | | MEMBER_ID | int(11) | | | 0 | | | URLDESCRIPTION | varchar(255) | YES | | | | | STATUS | char(1) | YES | | N | | */ $SQL = "select AIV_CATEGORY_URL.*, AIV_CATEGORY.CATEGORY_NAME, login from AIV_CATEGORY_URL " . " left join AIV_CATEGORY on AIV_CATEGORY_URL.CATEGORY_ID=AIV_CATEGORY.CATEGORY_ID " . " left join AIV_MEMBER on AIV_CATEGORY_URL.MEMBER_ID=AIV_MEMBER.id where AIV_CATEGORY_URL.URL_ID='$UrlID'"; return GetObject($DB, $SQL); } // end GetURLByID function IndexifyURL($UrlID){ $TheURL = GetURLByID($UrlID); if( !$TheURL ){ return 0; } $SOMETEXT = stripslashes($TheURL['URLDESCRIPTION']) . " " . stripslashes($TheURL['URL']) . " " . stripslashes($TheURL['CATEGORY_NAME']) . " " . $TheURL['login'] ; $Asset = new TheAsset; $Asset->GetTheAsset2($TheURL['URL_ID'], 'WEB_LINK'); if( $Asset->error ){ // no asset for this object. create new one... $Asset->error = 0; $Asset->GetTheAsset3($TheURL['URL_ID'], 'WEB_LINK', $TheURL['MEMBER_ID'] ); } $Asset->SetAssetCaption( $TheURL['URL'], $TheURL['URL'] ); $Asset->SetAssetStatus('PUBLISHED'); if( $TheURL->STATUS=='ENABLED' ){ $Asset->SetAssetStatus('PUBLISHED'); }else{ $Asset->SetAssetStatus('DISABLED'); } $Asset->PUBDATE = $TheURL['PUBDATE']; $Asset->SaveAsset(); if( $TheURL['STATUS']=='ENABLED' ){ InitAssetKeyWords($Asset->ASSET_ID, $SOMETEXT); }else{ CleanupKeywordList($Asset->ASSET_ID); } return 1; } // end IndexifyURL ///////////////////////////////////////// function IndexifyUser($TUID){ $User = new Member ; $User->GetUserByID($TUID); if( !is_object($User) ){ return 0; } $SOMETEXT = $User->login . " " . $User->birthplace . " " . stripslashes($User->first_name) . " " . stripslashes($User->middle_name) . " " . stripslashes($User->last_name) . " " . stripslashes($User->addr_street) . " " . stripslashes($User->addr_city) . " " . stripslashes($User->addr_province) . " " . stripslashes($User->occupation_name) . " " . stripslashes($User->industry_name) . " " . stripslashes($User->AIV_MS_NAME) . " " . stripslashes($User->country_name) . " " . stripslashes($User->state_name) . " " . stripslashes($User->self_descr) . " " . stripslashes($User->quote) ; // $User-> . " " . $Asset = new TheAsset; $Asset->GetTheAsset2($TUID, 'PERSONALITY'); if( $Asset->error ){ // no asset for this category. create new one... $Asset->error = 0; $Asset->GetTheAsset3($TUID, 'PERSONALITY', $TUID ); } $Asset->SetAssetCaption($User->login, $User->login); if( $User->status != "DISABLED" ){ $Asset->SetAssetStatus('PUBLISHED'); }else{ $Asset->SetAssetStatus('DISABLED'); } $Asset->PUBDATE = $User->registry_date; $Asset->SaveAsset(); $wc = InitAssetKeyWords($Asset->ASSET_ID, $SOMETEXT); return 1; } /////////////////////////////////////////////// function GetCategoryByID($CategoryID){ global $DB; $SQL="select AIV_CATEGORY.* from AIV_CATEGORY where CATEGORY_ID='$CategoryID'"; return GetObject($DB, $SQL); } // end GetCategoryByID function IndexifyCategory($CATEGORY_ID){ $Category = GetCategoryByID($CATEGORY_ID); if( !$Category ){ return 0; } $SOMETEXT = stripslashes($Category['CATEGORY_NAME']) . " " . stripslashes($Category['CATEGORY_NAME_Ru']) . " " . stripslashes($Category['CATEGORY_DESCR']) . " " . stripslashes($Category['CATEGORY_DESCR_Ru']) . " " . stripslashes($Category['CATEGORY_TITLE_HTML']) . " " . stripslashes($Category['CATEGORY_TITLE_HTML_Ru']) . " " . stripslashes($Category['CATEGORY_KEYWORDS_HTML']) . " " . stripslashes($Category['CATEGORY_DESCRIPTION_HTML']) . " " ; $Asset = new TheAsset; $Asset->GetTheAsset2($CATEGORY_ID, 'CATEGORY'); if( $Asset->error ){ // no asset for this category. create new one... $Asset->error = 0; $Asset->GetTheAsset3($CATEGORY_ID, 'CATEGORY', $Category['CATEGORY_CREATOR']); } $Asset->SetAssetCaption($Category['CATEGORY_NAME'], $Category['CATEGORY_NAME_Ru']); // var_dump($Category->CATEGORY_NAME_Ru); if( $Category['CATEGORY_STATUS'] == "DISABLED" ){ $Asset->SetAssetStatus('DISABLED'); }else{ $Asset->SetAssetStatus('PUBLISHED'); } $Asset->SaveAsset(); // var_dump($Asset); if( $Category['CATEGORY_STATUS'] == "DISABLED" ){ CleanupKeywordList($Asset->ASSET_ID); }else{ $wc = InitAssetKeyWords($Asset->ASSET_ID, $SOMETEXT); } return 1; } // end IndexifyCategory /////////////////////////////////// function IndexifyArticle( $ARTICLE_ID ){ $Article = new TheArticle( $ARTICLE_ID ); if( !is_object($Article) ){ return 0; } $SOMETEXT = $Article->MEMBER_AUTHOR_NAME . " " . stripslashes($Article->SHORT_ARTICLE) . " " . stripslashes($Article->HEADLINE) . " " . stripslashes($Article->GetDocument()) ; $Asset = new TheAsset; $Asset->GetTheAsset2($Article->ARTICLE_ID, 'ARTICLE'); if( $Asset->error ){ // no asset for this category. create new one... $Asset->error = 0; $Asset->GetTheAsset3($Article->ARTICLE_ID, 'ARTICLE', $Article->MEMBER_AUTHOR ); } $Asset->SetAssetCaption($Article->HEADLINE, $Article->HEADLINE); if( ($Article->WORKFLOW_STATUS == "PUBLISHED") || ($Article->WORKFLOW_STATUS == "EDITED") ){ $Asset->SetAssetStatus('PUBLISHED'); }else{ $Asset->SetAssetStatus('NEW'); } $Asset->PUBDATE = $Article->PUBDATE; $Asset->SaveAsset(); if( ($Article->WORKFLOW_STATUS == "PUBLISHED") || ($Article->WORKFLOW_STATUS == "EDITED") ){ $wc = InitAssetKeyWords($Asset->ASSET_ID, $SOMETEXT); }else{ CleanupKeywordList($Asset->ASSET_ID); } return 1; } // end IndexifyArticle /////////////////////////////////////// function GetForumByID($FORUM_ID){ global $DB; /* | forum_id | int(11) | | PRI | 0 | auto_increment | | forum_name | varchar(100) | | UNI | | | | forum_admin | int(11) | | | 0 | | | forum_issystem | char(1) | | | Y | | | forum_active | char(1) | | | Y | | | forum_desc | text | YES | | NULL | | | forum_verified | char(1) | | | N | | | forum_class | varchar(128) | | | | | | forum_regdate | datetime | | | 0000-00-00 00:00:00 | | */ // $SQL = "select AIV_FORUM.*, AIV_MEMBER.login, AIV_MEMBER.self_descr, AIV_MEMBER.quote from AIV_FORUM " . $SQL = "select AIV_FORUM.*, AIV_MEMBER.login from AIV_FORUM " . "left join AIV_MEMBER on CATEGORY_GUIDE_MEMBER_ID=AIV_MEMBER.id " . "where forum_id='$FORUM_ID'"; return GetObject($DB, $SQL); } // end GetForumByID function IndexifyForum($FORUM_ID){ $Forum = GetForumByID($FORUM_ID); if( !$Forum ){ return 0; } $FORUM_NAME = stripslashes($Forum['forum_name']); $FORUM_DESC = stripslashes($Forum['forum_desc']); $FORUM_REGD = $Forum['forum_regdate']; $FORUM_CLSS = stripslashes($Forum['forum_class']); $FORUM_ADMINID = $Forum['forum_admin']; if( $FORUM_ADMINID>0 ){ $FORUM_ADMIN = $Forum['login']; // $FORUM_ADMSD = $Forum['self_descr']; // $FORUM_ADMQT = $Forum['quote']; }else{ $FORUM_ADMIN = ""; // $FORUM_ADMSD = ""; // $FORUM_ADMQT = ""; } $SOMETEXT = $FORUM_NAME . " " . $FORUM_DESC . " " . $FORUM_ADMIN . " " . // $FORUM_ADMSD . " " . // $FORUM_ADMQT . " " . $FORUM_CLSS ; $Asset = new TheAsset; $Asset->GetTheAsset2($FORUM_ID, 'FORUM'); if( $Asset->error ){ // no asset for this category. create new one... $Asset->error = 0; $Asset->GetTheAsset3($FORUM_ID, 'FORUM', $FORUM_ADMINID ); } $Asset->SetAssetCaption($FORUM_NAME, $FORUM_NAME); $Asset->SetAssetStatus('PUBLISHED'); $Asset->PUBDATE = $FORUM_REGD; $Asset->SaveAsset(); $wc = InitAssetKeyWords($Asset->ASSET_ID, $SOMETEXT); } // end IndexifyForum /////////////////////////////////////// function GetForumMessageByID($FORUMMSG_ID){ global $DB; $SQL = "select AIV_COMMENTS.*, login from AIV_COMMENTS ". "left join AIV_MEMBER on AIV_COMMENTS.COMMENTS_WRITER_ID=AIV_MEMBER.id " . "where COMMENTS_ID='$FORUMMSG_ID'"; return GetObject($DB, $SQL); } // end GetForumMessageByID function IndexifyForumMessage($FORUMMSG_ID){ $ForumMsg = GetForumMessageByID($FORUMMSG_ID); if( !$ForumMsg ){ return 0; } $SOMETEXT = stripslashes($ForumMsg['COMMENTS_SUBJ']) . " " . stripslashes($ForumMsg['COMMENTS_TEXT']) . " " . $ForumMsg['login']; $Asset = new TheAsset; $Asset->GetTheAsset2($FORUMMSG_ID, 'FORUM_MESSAGE'); if( $Asset->error ){ // no asset for this category. create new one... $Asset->error = 0; $Asset->GetTheAsset3($FORUMMSG_ID, 'FORUM_MESSAGE', $ForumMsg['COMMENTS_WRITER_ID'] ); // echo "(+)"; } $Asset->SetAssetCaption( $ForumMsg['COMMENTS_SUBJ'], $ForumMsg['COMMENTS_SUBJ'] ); $Asset->SetAssetStatus('PUBLISHED'); $Asset->PUBDATE = $ForumMsg['COMMENTS_PUBDATE']; $Asset->SaveAsset(); $wc = InitAssetKeyWords($Asset->ASSET_ID, $SOMETEXT); return 1; } // end IndexifyForumMessage function GetGlossaryItemById($GLOSSARY_ID) { global $DB; $SQL="select AIV_GLOSSARY.*, login from AIV_GLOSSARY ". "left join AIV_MEMBER on AIV_GLOSSARY.GLOSSARY_MEMBER_ID=AIV_MEMBER.id ". "where GLOSSARY_ID=$GLOSSARY_ID and GLOSSARY_ACTIVE='Y'"; return GetObject($DB, $SQL); } function IndexifyGlossaryItem( $GLOSSARY_ID ) { global $DB; global $AssetID; $GlossaryItem=GetGlossaryItemById($GLOSSARY_ID); if( !$GlossaryItem ) return 0; $SOMETEXT = stripslashes($GlossaryItem['GLOSSARY_WORD']) . " " . stripslashes($GlossaryItem['GLOSSARY_DESCRIPTION']) . " ". $GlossaryItem['login'] ; // echo " SOMETEXT = $SOMETEXT .
"; $Asset = new TheAsset; $Asset->GetTheAsset2($GLOSSARY_ID, 'GLOSSARY_ITEM'); if( $Asset->error ){ // no asset for this category. create new one... $Asset->error = 0; $Asset->GetTheAsset3($GLOSSARY_ID, 'GLOSSARY_ITEM', $GLOSSARY_ID ); } $Asset->SetAssetCaption($GlossaryItem['GLOSSARY_WORD'], $GlossaryItem['GLOSSARY_WORD']); if( $GlossaryItem['GLOSSARY_ACTIVE'] == "Y" ){ $Asset->SetAssetStatus('PUBLISHED'); }else{ $Asset->SetAssetStatus('DISABLED'); } $Asset->PUBDATE = $GlossaryItem['GLOSSARY_MODIFY_DATE']; $Asset->SaveAsset(); $AssetID=$Asset->ASSET_ID; if( $GlossaryItem['GLOSSARY_ACTIVE'] == "Y" ) $wc = InitAssetKeyWords($Asset->ASSET_ID, $SOMETEXT); else CleanupKeywordList($Asset->ASSET_ID); return 1; } // end IndexifyGlossaryItem function GetNewsItemById($id) { global $DB; $SQL="select ppl_newsdb.* from ppl_newsdb ". "where id=$id and published='Y'"; return GetObject($DB, $SQL); } // GetNewsItemById function IndexifyNewsItem( $id ) { global $DB; global $AssetID; $NewsItem=GetNewsItemById($id); if( !$NewsItem ) return 0; $SOMETEXT = stripslashes($NewsItem['author']) . " " . stripslashes($NewsItem['message']) . " " . stripslashes($NewsItem['title']) . " " ; $Asset = new TheAsset; $Asset->GetTheAsset2($id, 'NEWS_ITEM'); if( $Asset->error ){ // no asset for this category. create new one... $Asset->error = 0; $Asset->GetTheAsset3($id, 'NEWS_ITEM', $id ); } $Asset->SetAssetCaption($NewsItem['title'], $NewsItem['title']); if( $NewsItem['published'] == "Y" ){ $Asset->SetAssetStatus('PUBLISHED'); }else{ $Asset->SetAssetStatus('DISABLED'); } $Asset->PUBDATE = $NewsItem['regdate']; $Asset->SaveAsset(); $AssetID=$Asset->ASSET_ID; if( $NewsItem['published'] == "Y" ){ $wc = InitAssetKeyWords($Asset->ASSET_ID, $SOMETEXT); }else{ CleanupKeywordList($Asset->ASSET_ID); } return 1; } // end IndexifyNewsItem