page-master Опубликовано 20 Декабря 2008 Жалоба Поделиться Опубликовано 20 Декабря 2008 Здраствуйте мастера!Можно ли создать мод, для IP.Board 2.3.6, который автоматически генерировал бы ключевые слова для каждой страницы отдельно. Тоисть добавлял в мета тег "keywords" слова, которые часто встречаются в теме.Я сам очень плохо разбираюсь в PHP, но в интернете нашол код php скрипта для подбора ключевых слов:<?phpclass Counter{ var $origin_arr; var $modif_arr; var $min_word_length = 3; function explode_str_on_words($text){ $search = array ("'ё'", "'<script[^>]*?>.*?</script>'si", // Вырезается javascript "'<[\/\!]*?[^<>]*?>'si", // Вырезаются html-тэги "'([\r\n])[\s]+'", // Вырезается пустое пространство "'&(quot|#34);'i", // Замещаются html-элементы "'&(amp|#38);'i", "'&(lt|#60);'i", "'&(gt|#62);'i", "'&(nbsp|#160);'i", "'&(iexcl|#161);'i", "'&(cent|#162);'i", "'&(pound|#163);'i", "'&(copy|#169);'i", "'(\d+);'e"); $replace = array ("е", " ", " ", "\\1 ", "\" ", " ", " ", " ", " ", chr(161), chr(162), chr(163), chr(169), "chr(\\1)"); $text = preg_replace ($search, $replace, $text); $del_symbols = array(",", ".", ";", ":", "\"", "#", "\$", "%", "^", "!", "@", "`", "~", "*", "-", "=", "+", "\\", "|", "/", ">", "<", "(", ")", "&", "?", "¹", "\t", "\r", "\n", "{","}","[","]", "'", "“", "”", "•", "как", "для", "что", "или", "это", "этих", "всех", "вас", "они", "оно", "еще", "когда", "где", "эта", "лишь", "уже", "вам", "нет", "если", "надо", "все", "так", "его", "чем", "при", "даже", "мне", "есть", "раз", "два", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" ); $text = str_replace($del_symbols, array(" "), $text); $text = ereg_replace("( +)", " ", $text); $this->origin_arr = explode(" ", trim($text)); return $this->origin_arr;} function count_words(){ $tmp_arr = array(); foreach ($this->origin_arr as $val) { if (strlen($val)>=$this->min_word_length) { $val = strtolower($val); if (array_key_exists($val, $tmp_arr)) { $tmp_arr[$val]++; } else { $tmp_arr[$val] = 1; } } } arsort ($tmp_arr); $this->modif_arr = $tmp_arr;} function get_keywords($text){ $this->explode_str_on_words($text); $this->count_words(); $arr = array_slice($this->modif_arr, 0, 30); $str = ""; foreach ($arr as $key=>$val) { $str .= $key . ", "; } return trim(substr($str, 0, strlen($str)-2));}}?> Пользоваться данным php классом очень просто, создаете экземпляр класса функцией new а потом вызываете внутреннюю функцию get_keywords(), класса Counter. Вот пример использования этого класса:$word_counter = new Counter();if (strlen($content)>50000){ $keywords = $word_counter->get_keywords(substr($content, 0, 50000));}else{ $keywords = $word_counter->get_keywords($content);}Можно ли както переделать етот скрипт под IP.Board 2.3.6? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 20 Декабря 2008 Жалоба Поделиться Опубликовано 20 Декабря 2008 http://www.ibresource.ru/forums/index.php?...st&p=326222 - вроде бы и под 2.3.х должно работать... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
page-master Опубликовано 20 Декабря 2008 Автор Жалоба Поделиться Опубликовано 20 Декабря 2008 Етот мод полностью не автоматизирован, в него нужно вписывать(в файл keywords.txt) слова которые должны искатся на странице. Ето неудобно потому что темы форума очень разные(и потому нужно для каждой темы писать свой файл keywords.txt) А я хочу мод, который сам автоматически исчет слова, которые повторяются в теме. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 20 Декабря 2008 Жалоба Поделиться Опубликовано 20 Декабря 2008 скрипт приведенный в теме переделывать не надо, его можно впихнуть в class_display.php Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
page-master Опубликовано 20 Декабря 2008 Автор Жалоба Поделиться Опубликовано 20 Декабря 2008 скрипт приведенный в теме переделывать не надо, его можно впихнуть в class_display.phpТы имееш в виду скрипт который я выложил выше?Есле да, то куда именно его нужно вставлять в class_display.php? И когда вставиш, больше ничего изменять не нужно? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 20 Декабря 2008 Жалоба Поделиться Опубликовано 20 Декабря 2008 нужно его подключить перед выводом, выполнить над тем, что выводится и заменить потом в том, что выводится, заранее подготовленное ключевое слово на набор кейвордов, полученных из скрипта Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
page-master Опубликовано 20 Декабря 2008 Автор Жалоба Поделиться Опубликовано 20 Декабря 2008 нужно его подключить перед выводом, выполнить над тем, что выводится и заменить потом в том, что выводится, заранее подготовленное ключевое слово на набор кейвордов, полученных из скриптаЕсле чесно, то я ничего не понял. Можно подробнее?(без инструкции я его не установлю )Может есть где-то готовый скрипт с инструкцией? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 20 Декабря 2008 Жалоба Поделиться Опубликовано 20 Декабря 2008 А я хочу мод, который сам автоматически исчет слова, которые повторяются в теме.Представляю, какие метакейворды появятся после захода порнобота. Меня не интересует нецелевой трафик, и я не вижу смысла продвигать форум по тем запросам, которые не соответствуют тематике форума. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
page-master Опубликовано 20 Декабря 2008 Автор Жалоба Поделиться Опубликовано 20 Декабря 2008 Меня не интересует нецелевой трафик, и я не вижу смысла продвигать форум по тем запросам, которые не соответствуют тематике форума.А есле форум не имеет единой тематики, что тогда делать? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 20 Декабря 2008 Жалоба Поделиться Опубликовано 20 Декабря 2008 У меня есть форум нескольких тематик, просто кейворды поразнообразней: http://pharm-forum.ru/keywords.txt Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Chib@ Опубликовано 20 Декабря 2008 Жалоба Поделиться Опубликовано 20 Декабря 2008 Аааа....почемумедицин|медицинский форум|1Я думаю ты понял про что я))) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 20 Декабря 2008 Жалоба Поделиться Опубликовано 20 Декабря 2008 Fantasy On (: Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
andripoty Опубликовано 21 Декабря 2008 Жалоба Поделиться Опубликовано 21 Декабря 2008 простите за дурацкий вопрос - а зачем в :медицин|медицинский форум|1в конче дописывается цифра 1 ?? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 21 Декабря 2008 Жалоба Поделиться Опубликовано 21 Декабря 2008 fatal error: class "Fantasy" not found Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 21 Декабря 2008 Жалоба Поделиться Опубликовано 21 Декабря 2008 fatal error: class "Fantasy" not foundFatal error: Class "Fantasy" not found.Attempting to load class "Brain"... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Chib@ Опубликовано 21 Декабря 2008 Жалоба Поделиться Опубликовано 21 Декабря 2008 Attempting to load class "Brain"...Please wait...Please wait...Please wait...Аttempt failed!Class "Brain" is broken.Error in the file "source/action_admin/sanity.php" in 1065 line----Retry? А если серьёзно...? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 21 Декабря 2008 Жалоба Поделиться Опубликовано 21 Декабря 2008 Цифра на конце - использовать или нет в генерации мета-дескрипшна. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Chib@ Опубликовано 21 Декабря 2008 Жалоба Поделиться Опубликовано 21 Декабря 2008 То есть если "1", то это идёт и в поле дескрипшина, а если 0 то нет...ды?Это поддерживается нынешней версией? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 21 Декабря 2008 Жалоба Поделиться Опубликовано 21 Декабря 2008 Да, так сделано у меня на двух форумах.Там еще есть селекция по частоте повторов на странице и ограничения по общему числу. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.