diff --git a/conlite/plugins/chains/createmetatags/include.chain.content.createmetatags.php b/conlite/plugins/chains/createmetatags/include.chain.content.createmetatags.php index c827743..c2b2c88 100644 --- a/conlite/plugins/chains/createmetatags/include.chain.content.createmetatags.php +++ b/conlite/plugins/chains/createmetatags/include.chain.content.createmetatags.php @@ -1,4 +1,5 @@ = 5.3 -if(version_compare(PHP_VERSION, "5.3", "<")) { - cInclude("plugins", "chains/createmetatags/includes/keyword_density_php52.php"); -} else { - cInclude("plugins", "chains/createmetatags/includes/keyword_density.php"); -} + +cInclude("plugins", "chains/createmetatags/includes/keyword_density.php"); cInclude("plugins", "chains/createmetatags/classes/class.metatag.creator.html5.php"); function cecCreateMetatags($metatags) { global $cfg, $lang, $idart, $client, $cfgClient, $idcat, $idartlang; - - $bIsHTML5 = ((getEffectiveSetting('generator', 'html5', 'false') == 'false') ? false : true); - - if($bIsHTML5) { + + $bIsHTML5 = ((getEffectiveSetting('generator', 'html5', 'false') == 'false') ? false : true); + + if ($bIsHTML5) { $aConfig = array( 'cachetime' => 3600, - 'cachedir' => $cfgClient[$client]['path']['frontend'] . "cache/" + 'cachedir' => $cfgClient[$client]['path']['frontend'] . "cache/" ); - - $oHtml5MetaCreator = new MetaTagCreatorHtml5($metatags, $aConfig); + + $oHtml5MetaCreator = new MetaTagCreatorHtml5($metatags, $aConfig); return $oHtml5MetaCreator->generateMetaTags(); - } + } //Basic settings $cachetime = 3600; // measured in seconds @@ -59,8 +55,8 @@ function cecCreateMetatags($metatags) { $metatags = array(); } - $hash = 'metatag_'.md5($idart.'/'.$lang); - $cachefilename = $cachedir.$hash.'.tmp'; + $hash = 'metatag_' . md5($idart . '/' . $lang); + $cachefilename = $cachedir . $hash . '.tmp'; #Check if rebuilding of metatags is necessary $reload = true; @@ -70,7 +66,7 @@ function cecCreateMetatags($metatags) { if (file_exists($cachefilename)) { $fileexists = true; - $diff = time() - filemtime($cachefilename); + $diff = time() - filemtime($cachefilename); if ($diff > $cachetime) { $reload = true; @@ -84,7 +80,7 @@ function cecCreateMetatags($metatags) { $db = new DB_ConLite(); #Get encoding - $sql = "SELECT * FROM ".$cfg['tab']['lang']." WHERE idlang=".(int)$lang; + $sql = "SELECT * FROM " . $cfg['tab']['lang'] . " WHERE idlang=" . (int) $lang; $db->query($sql); if ($db->next_record()) { $sEncoding = strtoupper($db->f('encoding')); @@ -95,12 +91,12 @@ function cecCreateMetatags($metatags) { #Get idcat of homepage $sql = "SELECT a.idcat FROM - ".$cfg['tab']['cat_tree']." AS a, - ".$cfg['tab']['cat_lang']." AS b + " . $cfg['tab']['cat_tree'] . " AS a, + " . $cfg['tab']['cat_lang'] . " AS b WHERE (a.idcat = b.idcat) AND (b.visible = 1) AND - (b.idlang = ".Contenido_Security::toInteger($lang).") + (b.idlang = " . Contenido_Security::toInteger($lang) . ") ORDER BY a.idtree LIMIT 1"; $db->query($sql); @@ -112,7 +108,7 @@ function cecCreateMetatags($metatags) { $availableTags = conGetAvailableMetaTagTypes(); #Get first headline and first text for current article - $oArt = new Article ($idart, $client, $lang); + $oArt = new Article($idart, $client, $lang); #Set idartlang, if not set if ($idartlang == '') { @@ -140,7 +136,7 @@ function cecCreateMetatags($metatags) { } $sHeadline = strip_tags($sHeadline); - $sHeadline = substr(str_replace(chr(13).chr(10),' ',$sHeadline),0,100); + $sHeadline = substr(str_replace(chr(13) . chr(10), ' ', $sHeadline), 0, 100); $arrText1 = $oArt->getContent("html"); $arrText2 = $oArt->getContent("text"); @@ -163,19 +159,19 @@ function cecCreateMetatags($metatags) { } $sText = strip_tags(urldecode($sText)); - $sText = keywordDensity ('', $sText); + $sText = keywordDensity('', $sText); //Get metatags for homeapge $arrHomepageMetaTags = array(); - $sql = "SELECT startidartlang FROM ".$cfg["tab"]["cat_lang"]." WHERE (idcat=".Contenido_Security::toInteger($idcat_homepage).") AND(idlang=".Contenido_Security::toInteger($lang).")"; + $sql = "SELECT startidartlang FROM " . $cfg["tab"]["cat_lang"] . " WHERE (idcat=" . Contenido_Security::toInteger($idcat_homepage) . ") AND(idlang=" . Contenido_Security::toInteger($lang) . ")"; $db->query($sql); - if($db->next_record()){ + if ($db->next_record()) { $iIdArtLangHomepage = $db->f('startidartlang'); #get idart of homepage - $sql = "SELECT idart FROM ".$cfg["tab"]["art_lang"]." WHERE idartlang =".Contenido_Security::toInteger($iIdArtLangHomepage); + $sql = "SELECT idart FROM " . $cfg["tab"]["art_lang"] . " WHERE idartlang =" . Contenido_Security::toInteger($iIdArtLangHomepage); $db->query($sql); @@ -186,10 +182,10 @@ function cecCreateMetatags($metatags) { $t1 = $cfg["tab"]["meta_tag"]; $t2 = $cfg["tab"]["meta_type"]; - $sql = "SELECT ".$t1.".metavalue,".$t2.".metatype FROM ".$t1. - " INNER JOIN ".$t2." ON ".$t1.".idmetatype = ".$t2.".idmetatype WHERE ". - $t1.".idartlang =".$iIdArtLangHomepage. - " ORDER BY ".$t2.".metatype"; + $sql = "SELECT " . $t1 . ".metavalue," . $t2 . ".metatype FROM " . $t1 . + " INNER JOIN " . $t2 . " ON " . $t1 . ".idmetatype = " . $t2 . ".idmetatype WHERE " . + $t1 . ".idartlang =" . $iIdArtLangHomepage . + " ORDER BY " . $t2 . ".metatype"; $db->query($sql); @@ -197,7 +193,7 @@ function cecCreateMetatags($metatags) { $arrHomepageMetaTags[$db->f("metatype")] = $db->f("metavalue"); } - $oArt = new Article ($iIdArtHomepage, $client, $lang); + $oArt = new Article($iIdArtHomepage, $client, $lang); $arrHomepageMetaTags['pagetitle'] = $oArt->getField('title'); } @@ -206,12 +202,12 @@ function cecCreateMetatags($metatags) { foreach ($availableTags as $key => $value) { $metavalue = conGetMetaValue($idartlang, $key); - if (strlen($metavalue) == 0){ + if (strlen($metavalue) == 0) { //Add values for metatags that don't have a value in the current article - switch(strtolower($value["name"])){ + switch (strtolower($value["name"])) { case 'author': //Build author metatag from name of last modifier - $oArt = new Article ($idart, $client, $lang); + $oArt = new Article($idart, $client, $lang); $lastmodifier = $oArt->getField("modifiedby"); $oUser = new User(); $oUser->loadUserByUserID(md5($lastmodifier)); @@ -224,7 +220,7 @@ function cecCreateMetatags($metatags) { break; case 'date': //Build date metatag from date of last modification - $oArt = new Article ($idart, $client, $lang); + $oArt = new Article($idart, $client, $lang); $lastmodified = $oArt->getField("lastmodified"); $iCheck = CheckIfMetaTagExists($metatags, 'date'); @@ -260,7 +256,6 @@ function cecCreateMetatags($metatags) { // save metatags in cache file file_put_contents($cachefilename, serialize($metatags)); - } else { #Get metatags from file system cache $metatags = unserialize(file_get_contents($cachefilename)); @@ -269,7 +264,6 @@ function cecCreateMetatags($metatags) { return $metatags; } - /** * Checks if the metatag allready exists inside the metatag list. * @@ -295,4 +289,5 @@ function CheckIfMetaTagExists($arrMetatags, $sCheckForMetaTag) { // metatag doesn't exists, return next position return count($arrMetatags); } + ?> \ No newline at end of file diff --git a/conlite/plugins/chains/createmetatags/includes/keyword_density_php52.php b/conlite/plugins/chains/createmetatags/includes/keyword_density_php52.php deleted file mode 100644 index 887f9c4..0000000 --- a/conlite/plugins/chains/createmetatags/includes/keyword_density_php52.php +++ /dev/null @@ -1,221 +0,0 @@ - $b) ? -1 : 1; -} - -/** - * - * @param array $singlewordcounter - * @param int $maxKeywords - * @return array Array with valued keywords - */ -function stripCount($singlewordcounter, $maxKeywords = 15) { - // strip all with only 1 - $tmp = array(); - $result = array(); - $tmpToRemove = 1; - - foreach ($singlewordcounter as $key => $value) { - if ($value > $tmpToRemove) { - $tmp[$key] = $value; - } - } - - if (sizeof($tmp) <= $maxKeywords) { - foreach ($tmp as $key => $value) { - $result[] = $key; - } - } else { - $dist = array(); - foreach ($tmp as $key => $value) { - $dist[$value]++; - } - uksort($dist, "__cmp"); - reset($dist); - $count = 0; - $resultset = array(); - $useQuantity = array(); - - foreach ($dist as $key => $value) { - $_count = $count + $value; - if ($_count <= $maxKeywords) { - $count += $value; - $useQuantity[] = $key; - } else { - break; - } - } - // run all keywords and select by quantities to use - foreach ($singlewordcounter as $key => $value) { - if (in_array($value, $useQuantity)) { - $result[] = $key; - } - } - } - return $result; -} - -/** - * Generate keywords from content - * - * @version 1.0 - * @since 2.0.0 - * @author Ortwin Pinke - * - * @param string $sHeadline - * @param string $sText - * @param string $sEncoding - * @param int $iMinLen - * @return mixed commaseparated string of keywords or false - */ -function keywordDensity($sHeadline, $sText, $sEncoding = "UTF-8", $iMinLen = 5) { - global $aAllWords; - $sHeadline = strip_tags($sHeadline); - $sText = strip_tags($sText); - $sText = clHtmlEntityDecode($sText, ENT_QUOTES, $sEncoding); - - $aSingleWordHeadline = str_word_count($sHeadline, 1); - // double array for higher valenz of headline - $aSingleWordHeadline = array_merge($aSingleWordHeadline,$aSingleWordHeadline); - $aSingleWordHeadline = array_count_values($aSingleWordHeadline); - - $aSingleWordText = str_word_count($sText, 1); - $aSingleWordText = array_count_values($aSingleWordText); - - $aAllWords = array_merge($aSingleWordHeadline, $aSingleWordText); - array_walk($aAllWords, create_function('&$n, $key, $iLen', ' - global $aAllWords; - if(strlen($key) < $iLen || clIsStopWord($key)) { - unset($aAllWords[$key]); - }'), $iMinLen); - arsort($aAllWords, SORT_NUMERIC); - $aAllWords = stripCount($aAllWords); - if(is_array($aAllWords)) { - return implode(', ', $aAllWords); - } - return false; -} - -/** - * Check keyword against stopword list - * - * @version 1.0 - * @since 2.0.0 - * @author Ortwin Pinke - * @todo move stopwords to sqlite - * - * @global int $lang - * @global array $encoding - * @param string $sWord - * @return boolean - */ -function clIsStopWord($sWord) { - global $lang, $encoding; - $aStopWords = array(); - $aStopWords['de_DE'] = array("aber", "als", "am", "an", "auch", "auf", "aus", "bei", "bin", - "bis", "bist", "da", "dadurch", "daher", "darum", "das", "daß", "dass", "dein", - "deine", "dem", "den", "der", "des", "dessen", "deshalb", "die", "dies", "dieser", "dieses", - "doch", "dort", "du", "durch", "ein", "eine", "einem", "einen", "einer", "eines", "er", - "es", "euer", "eure", "für", "hatte", "hatten", "hattest", "hattet", "hier", "hinter", - "ich", "ihr", "ihre", "im", "in", "ist", "ja", "jede", "jedem", "jeden", "jeder", "jedes", - "jener", "jenes", "jetzt", "kann", "kannst", "können", "könnt", "machen", "mein", - "meine", "mit", "muß", "mußt", "musst", "müssen", "müßt", "nach", "nachdem", "nein", - "nicht", "nun", "oder", "seid", "sein", "seine", "sich", "sie", - "sind", "soll", "sollen", "sollst", "sollt", "sonst", "soweit", "sowie", "und", "unser", - "unsere", "unter", "vom", "von", "vor", "wann", "warum", "was", "weiter", "weitere", "wenn", - "wer", "werde", "werden", "werdet", "weshalb", "wie", "wieder", "wieso", "wir", "wird", - "wirst", "wo", "woher", "wohin", "zu", "zum", "zur", "über"); - $aStopWords['en_EN'] = $aStopWords['en_US'] = array("a", "able", "about", "above", "abst", - "accordance", "according", "accordingly", "across", "act", "actually", "added", "adj", - "affected", "affecting", "affects", "after", "afterwards", "again", "against", "ah", "all", - "almost", "alone", "along", "already", "also", "although", "always", "am", "among", - "amongst", "an", "and", "announce", "another", "any", "anybody", "anyhow", "anymore", - "anyone", "anything", "anyway", "anyways", "anywhere", "apparently", "approximately", - "are", "aren", "arent", "arise", "around", "as", "aside", "ask", "asking", "at", "auth", - "available", "away", "awfully", "b", "back", "be", "became", "because", "become", "becomes", - "becoming", "been", "before", "beforehand", "begin", "beginning", "beginnings", "begins", - "behind", "being", "believe", "below", "beside", "besides", "between", "beyond", "biol", - "both", "brief", "briefly", "but", "by", "c", "ca", "came", "can", "cannot", "can't", - "cause", "causes", "certain", "certainly", "co", "com", "come", "comes", "contain", - "containing", "contains", "could", "couldnt", "d", "date", "did", "didn't", "different", - "do", "does", "doesn't", "doing", "done", "don't", "down", "downwards", "due", "during", - "e", "each", "ed", "edu", "effect", "eg", "eight", "eighty", "either", "else", "elsewhere", - "end", "ending", "enough", "especially", "et", "et-al", "etc", "even", "ever", "every", - "everybody", "everyone", "everything", "everywhere", "ex", "except", "f", "far", "few", - "ff", "fifth", "first", "five", "fix", "followed", "following", "follows", "for", "former", - "formerly", "forth", "found", "four", "from", "further", "furthermore", "g", "gave", "get", - "gets", "getting", "give", "given", "gives", "giving", "go", "goes", "gone", "got", "gotten", - "h", "had", "happens", "hardly", "has", "hasn't", "have", "haven't", "having", "he", "hed", - "hence", "her", "here", "hereafter", "hereby", "herein", "heres", "hereupon", "hers", - "herself", "hes", "hi", "hid", "him", "himself", "his", "hither", "home", "how", "howbeit", - "however", "hundred", "i", "id", "ie", "if", "i'll", "im", "immediate", "immediately", - "importance", "important", "in", "inc", "indeed", "index", "information", "instead", "into", - "invention", "inward", "is", "isn't", "it", "itd", "it'll", "its", "itself", "i've", "j", - "just", "k", "keep", "keeps", "kept", "kg", "km", "know", "known", "knows", "l", "largely", - "last", "lately", "later", "latter", "latterly", "least", "less", "lest", "let", "lets", - "like", "liked", "likely", "line", "little", "'ll", "look", "looking", "looks", "ltd", "m", - "made", "mainly", "make", "makes", "many", "may", "maybe", "me", "mean", "means", "meantime", - "meanwhile", "merely", "mg", "might", "million", "miss", "ml", "more", "moreover", "most", - "mostly", "mr", "mrs", "much", "mug", "must", "my", "myself", "n", "na", "name", "namely", - "nay", "nd", "near", "nearly", "necessarily", "necessary", "need", "needs", "neither", - "never", "nevertheless", "new", "next", "nine", "ninety", "no", "nobody", "non", "none", - "nonetheless", "noone", "nor", "normally", "nos", "not", "noted", "nothing", "now", "nowhere", - "o", "obtain", "obtained", "obviously", "of", "off", "often", "oh", "ok", "okay", "old", - "omitted", "on", "once", "one", "ones", "only", "onto", "or", "ord", "other", "others", - "otherwise", "ought", "our", "ours", "ourselves", "out", "outside", "over", "overall", "owing", - "own", "p", "page", "pages", "part", "particular", "particularly", "past", "per", "perhaps", - "placed", "please", "plus", "poorly", "possible", "possibly", "potentially", "pp", "predominantly", - "present", "previously", "primarily", "probably", "promptly", "proud", "provides", "put", - "q", "que", "quickly", "quite", "qv", "r", "ran", "rather", "rd", "re", "readily", "really", - "recent", "recently", "ref", "refs", "regarding", "regardless", "regards", "related", - "relatively", "research", "respectively", "resulted", "resulting", "results", "right", - "run", "s", "said", "same", "saw", "say", "saying", "says", "sec", "section", "see", - "seeing", "seem", "seemed", "seeming", "seems", "seen", "self", "selves", "sent", "seven", - "several", "shall", "she", "shed", "she'll", "shes", "should", "shouldn't", "show", - "showed", "shown", "showns", "shows", "significant", "significantly", "similar", "similarly", - "since", "six", "slightly", "so", "some", "somebody", "somehow", "someone", "somethan", - "something", "sometime", "sometimes", "somewhat", "somewhere", "soon", "sorry", "specifically", - "specified", "specify", "specifying", "still", "stop", "strongly", "sub", "substantially", - "successfully", "such", "sufficiently", "suggest", "sup", "sure", "t", "take", "taken", - "taking", "tell", "tends", "th", "than", "thank", "thanks", "thanx", "that", "that'll", - "thats", "that've", "the", "their", "theirs", "them", "themselves", "then", "thence", - "there", "thereafter", "thereby", "thered", "therefore", "therein", "there'll", "thereof", - "therere", "theres", "thereto", "thereupon", "there've", "these", "they", "theyd", "they'll", - "theyre", "they've", "think", "this", "those", "thou", "though", "thoughh", "thousand", - "throug", "through", "throughout", "thru", "thus", "til", "tip", "to", "together", "too", - "took", "toward", "towards", "tried", "tries", "truly", "try", "trying", "ts", "twice", - "two", "u", "un", "under", "unfortunately", "unless", "unlike", "unlikely", "until", "unto", - "up", "upon", "ups", "us", "use", "used", "useful", "usefully", "usefulness", "uses", "using", - "usually", "v", "value", "various", "'ve", "very", "via", "viz", "vol", "vols", "vs", "w", - "want", "wants", "was", "wasn't", "way", "we", "wed", "welcome", "we'll", "went", "were", - "weren't", "we've", "what", "whatever", "what'll", "whats", "when", "whence", "whenever", - "where", "whereafter", "whereas", "whereby", "wherein", "wheres", "whereupon", "wherever", - "whether", "which", "while", "whim", "whither", "who", "whod", "whoever", "whole", "who'll", - "whom", "whomever", "whos", "whose", "why", "widely", "willing", "wish", "with", "within", - "without", "won't", "words", "world", "would", "wouldn't", "www", "x", "y", "yes", "yet", - "you", "youd", "you'll", "your", "youre", "yours", "yourself", "yourselves", "you've", "z", "zero"); - - if(is_int($lang) && is_array($encoding)) { - $sUseEnc = $encoding[$lang]; - if(empty($sUseEnc) || !array_key_exists($sUseEnc, $aStopWords)) { - $sUseEnc = "de_DE"; - } - } - - if(in_array(utf8_encode($sWord), $aStopWords['de_DE'])) { - return true; - } - return false; -} -?> \ No newline at end of file