m@}{ Опубликовано 17 Марта 2008 Жалоба Поделиться Опубликовано 17 Марта 2008 искал целый день нашел для ipb 2 переделал код <? //#####################Installation##################// // Updated Feb 23, 2005 by: Mohamed Sallam (sallam) // Rewritten Feb 19, 2003 by: P.H. Johansson (josini) // Hack rewritten according to Google restriction of max. 90 links in one page. // Updated for IPB 2 Feb 22, 2005 by: P.H. Johansson (josini) // Also the need of changing table-names have been changed to using the standard DB-class // // Installation: // 1) Now the only thing you have to do is to verify that you want 90 links on each page in $navlimit // 2) Add any forum ids you do not want to be in the sitemap (ie admin) to $admin_forums (seperate ids with commas) // 3) Upload this file to the root directory of your Board (same folder that has index.php and admin.php) // 4) Make sure that show_sitemap.php resides in that directory too...!!! // //##################End installation#################// //-------------------------------------------------------------------------- // config //-------------------------------------------------------------------------- // This file can be saved as any name, but upload to your forum dir. // But should you wish to rename this file make sure that show_sitemap.php contains the correct URL // Only real variables for you to change. Include the trailing / $navlimit=600; // How many entries do you want on each page?? $admin_forums = ""; // The Forum Ids for your admin forums that you want to hide eg $admin_forums = "3,5"; // If you have no admin forums you need to hide keep this string empty; //------------------------------------------------------------------------------- // Do Not touch anything else below this line unless you know what you are doing //------------------------------------------------------------------------------- //----------------------------------------------- // USER CONFIGURABLE ELEMENTS //----------------------------------------------- // Root path define( 'ROOT_PATH' , "./" ); define( 'KERNEL_PATH', ROOT_PATH.'ips_kernel/' ); // Enable module usage? // (Vital for some mods and IPB enhancements) define ( 'USE_MODULES', 1 ); // Enable shut down features? // Uses PHPs register_shutdown_function to save // low priority tasks until end of exec define ( 'USE_SHUTDOWN', 1 ); $templates_dir = ROOT_PATH."ssi_templates"; $max_show = 100; // Maximum number of topics possible to show... $allow_syndication = 1; // To turn off, use $allow_syndication = 0; //----------------------------------------------- // NO USER EDITABLE SECTIONS BELOW //----------------------------------------------- define ( 'IN_IPB', 1 ); define ( 'IN_DEV', 0 ); error_reporting (E_ERROR | E_WARNING | E_PARSE); set_magic_quotes_runtime(0); class info { var $input = array(); var $base_url = ""; var $vars = ""; function info() { global $sess, $std, $DB, $INFO; $this->vars = &$INFO; } } //-------------------------------- // Import $INFO, now! //-------------------------------- require ROOT_PATH."conf_global.php"; //-------------------------------- // Require our global functions //-------------------------------- require ROOT_PATH."sources/functions.php"; $std = new FUNC; //-------------------------------- // Load the DB driver and such //-------------------------------- $INFO['sql_driver'] = ! $INFO['sql_driver'] ? 'mysql' : strtolower($INFO['sql_driver']); //require ( KERNEL_PATH.'class_db_'.$INFO['sql_driver'].".php" ); require ( "sources/Drivers/mySQL.php" ); $DB = new db_driver; $DB->obj['sql_database'] = $INFO['sql_database']; $DB->obj['sql_user'] = $INFO['sql_user']; $DB->obj['sql_pass'] = $INFO['sql_pass']; $DB->obj['sql_host'] = $INFO['sql_host']; $DB->obj['sql_tbl_prefix'] = $INFO['sql_tbl_prefix']; $DB->obj['query_cache_file'] = ROOT_PATH.'sources/sql/'.$INFO['sql_driver'].'_queries.php'; $DB->obj['use_shutdown'] = USE_SHUTDOWN; //----------------------------------- // Required vars? //----------------------------------- if ( is_array( $DB->connect_vars ) and count( $DB->connect_vars ) ) { foreach( $DB->connect_vars as $k => $v ) { $DB->connect_vars[ $k ] = $INFO[ $k ]; } } //-------------------------------- // Get a DB connection //-------------------------------- $DB->connect(); ?> <html> <head> <title><?=$INFO[board_name]?> -> Site Map</title> <meta name="description" content=""> <meta name="keywords" content=""> <style> h1 { font-family: tahoma; font-size: 14pt; color: #666666 } h2 { font-family: tahoma; font-size: 12pt; color: #666666 } body { font-family: tahoma; font-size: 8pt; color: #666666 } p,td { font-family: tahoma; font-size: 8pt; color: #666666 } </style> </head> <body> <?php if (trim($admin_forums)!="") { // Create the where-clause for admin_forums; $tok = strtok($admin_forums,","); while ($tok !== FALSE) { $toks[] = $tok; $tok = strtok(","); } while (list($k,$v) = each($toks)) { $where[] = "t.forum_id != $v"; $where_forumcount[] = "id != $v"; } $admin_exclude = "AND ".implode(" AND ", $where); $admin_exclude_forumcount = "AND ".implode(" AND ", $where_forumcount); $admin_exclude_topiccount = "WHERE ".implode(" AND ", $where); } $DB->query("SELECT * FROM ibf_forums where password ='' $admin_exclude_forumcount"); $forum_count = $DB->get_num_rows(); $DB->query("SELECT * FROM ibf_topics t $admin_exclude_topiccount"); $topic_count = $DB->get_num_rows(); if (!$start) {$start=0;}; $start = intval($start); if ($limit=="NO") {$sqllimit = "";} else {$sqllimit="LIMIT $start,$navlimit";} $DB->query("SELECT f.name as fname, f.id as fid, f.description as fdescription,t.title as ttitle,t.tid as ttid,t.forum_id as tforum_id,t.description as tdescription FROM ibf_forums f, ibf_topics t where f.id=t.forum_id and f.password ='' $admin_exclude ORDER BY f.id asc, t.title asc $sqllimit"); $rowcount=$DB->get_num_rows(); echo "\r\n<h1>$INFO[board_name] -> SiteMap</h1>\r\n"; echo "\r\n<p>click here to return <a href=$INFO[board_url]/index.php>$INFO[board_name]</a></p>\r\n"; echo "<b>Number of Forums: </b>".$forum_count." - <b>Number of topics: </b>".$topic_count." - "; echo "<b>Number of links on this page: </b>".$rowcount; $oforumid = ""; $counter=0; $fcount=0; echo "<TABLE><TR><TD>"; while($row = $DB->fetch_row($result) and ($counter<$navlimit)) { if ($row[tdescription]!="") {$tdescription = " [".$row[tdescription]."]";} else {$tdescription="";}; if ($row[fdescription]!="") {$fdescription = " [".$row[fdescription]."]";} else {$fdescription="";}; if ($oforumid != $row[fid]) { $counter+=1; //$INFO[board_url]/show.php/act/SF/f/$row[fid] echo "</TD></TR><TR><TD><a href=index.php?showforum=$row[fid] class=link7><B>$row[fname]</B></a> ".$row[fdescription]; $counter+=1; //$INFO[board_url]/show.php/act/ST/f/$row[tforum_id]/t/$row[ttid] echo "<BR>- <a href=index.php?showtopic=$row[ttid] class=link7>$row[ttitle]</a> ".$row[tdescription]; $oforumid = $row[fid]; $fcount+=1; } else { $counter+=1; // Count one for each topic //$INFO[board_url]/show.php/act/ST/f/$row[tforum_id]/t/$row[ttid] echo "<BR>- <a href=index.php?showtopic=$row[ttid] class=link7>$row[ttitle]</a> ".$row[tdescription]; } } echo "</TD></TR></TABLE>"; $next = $start+$navlimit-$fcount; if ($next<$topic_count) { echo "<P><TABLE WIDTH=100%><TR>"; //$INFO[board_url]/show_sitemap.php/ofcount/$fcount/start/$next echo "<TD align=left><h2><a href=sitemap.php?start=$next>Next</a></TD>"; echo "</TR></TABLE>\r\n"; } ?> </body> </html> ссылки на карту сайта внизу форума http://rax.su/ карта сайта http://rax.su/sitemap.php Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 18 Марта 2008 Жалоба Поделиться Опубликовано 18 Марта 2008 Биг гранд респект!!! Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
elcomnet Опубликовано 19 Марта 2008 Жалоба Поделиться Опубликовано 19 Марта 2008 (изменено) Фильтрацию к ссылке NEXT добавь, а то кавычку ставишь и ппц....http://rax.su/sitemap.php?start=1' А так да, зачодно. Изменено 19 Марта 2008 пользователем elcomnet Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
m@}{ Опубликовано 20 Марта 2008 Автор Жалоба Поделиться Опубликовано 20 Марта 2008 Фильтрацию к ссылке NEXT добавь респект, не предусмотрел а так все совершенно правильно если бы карта выводила все 5000 топиков, то от нее был бы только вред а так, мы в карте обозначаем сколько топиков выводить ( например 600 ) а с главной ставим ссылки на карту, каждый раз увеличивая переменную start на это количество Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 20 Марта 2008 Жалоба Поделиться Опубликовано 20 Марта 2008 Фильтрацию к ссылке NEXT добавь респект, не предусмотрел Я после строкиif (!$start) {$start=0;};добавил$start = intval($start); Теперь буду думать, как добавить вывод журналов...У меня наверное треть контента в журналах. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
m@}{ Опубликовано 20 Марта 2008 Автор Жалоба Поделиться Опубликовано 20 Марта 2008 Фильтрацию к ссылке NEXT добавь респект, не предусмотрел Я после строкиif (!$start) {$start=0;};добавил$start = intval($start); Теперь буду думать, как добавить вывод журналов...У меня наверное треть контента в журналах. FatCat опередил я только зашел выложить исправление в первый поста оно уже выолжено первый пост исправлен - мы добавили проверку на кавычки Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
elcomnet Опубликовано 20 Марта 2008 Жалоба Поделиться Опубликовано 20 Марта 2008 Можно было проверку is_numeric, !is_numeric Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 20 Марта 2008 Жалоба Поделиться Опубликовано 20 Марта 2008 Я тут спрашивал, чем плоха карта из множества топиков.Но пост куда-то пропал. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 21 Марта 2008 Жалоба Поделиться Опубликовано 21 Марта 2008 Я в качестве карты просто скормил RSS, гуглу понравилось. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
elcomnet Опубликовано 21 Марта 2008 Жалоба Поделиться Опубликовано 21 Марта 2008 (изменено) Гугль доволен, накушался))))Вообще-то с rss-ом нужно попробовать.... Изменено 21 Марта 2008 пользователем elcomnet Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 21 Марта 2008 Жалоба Поделиться Опубликовано 21 Марта 2008 Сделал вывод mJornal.Показываются только открытые всем и открытые всем кроме гостей.В этих журналах показываются записи кроме закрытых.sitemap.txt Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
elcomnet Опубликовано 21 Марта 2008 Жалоба Поделиться Опубликовано 21 Марта 2008 А можно в пример рабочую установленную версию?Так сказать наглядное пособие... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 21 Марта 2008 Жалоба Поделиться Опубликовано 21 Марта 2008 А можно в пример рабочую установленную версию?Так сказать наглядное пособие...http://vesvalo.net/sitemap.php Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
sudmed Опубликовано 21 Марта 2008 Жалоба Поделиться Опубликовано 21 Марта 2008 Карты с числом ссылок 500 и более на странице, они для кого - для ботов или людей? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 22 Марта 2008 Жалоба Поделиться Опубликовано 22 Марта 2008 Карты с числом ссылок 500 и более на странице, они для кого - для ботов или людей? Для ботов.Пообщался с гуглой, гугла предпочла все ссылки на одной странице, поэтому у себя в карте сделал лимит 60 000 - дабы наверняка все в одной оказались. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FarStar Опубликовано 24 Марта 2008 Жалоба Поделиться Опубликовано 24 Марта 2008 А я где-то встречал, что гугл любит короткие страницы с числом ссылок менее 100. Поэтому лимит ставят 90-100. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 24 Марта 2008 Жалоба Поделиться Опубликовано 24 Марта 2008 А я где-то встречал, что гугл любит короткие страницы с числом ссылок менее 100. Поэтому лимит ставят 90-100.Я в "инструментах вебмастера гугл" специально посмотрел: лимит текстового файла 10 Мб; число ссылок не лимитировано.На php гугл ругнулся (хочет *.xml или *.txt), мол формат неверный, но втихаря схомячил, и в течение суток проиндексировал ВСЕ страницы из этого файла. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Dizs Опубликовано 28 Марта 2008 Жалоба Поделиться Опубликовано 28 Марта 2008 а для 2.2.2 как сделать? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 30 Марта 2008 Жалоба Поделиться Опубликовано 30 Марта 2008 Добавил для многостраничных топиков линки на страницы.Разбивка на страницы сделана так, как отдается поисковкам: в топиках по 15 постов; в журналах по 10 комментариев на страницу.Файл в Сообщении #11 заменил Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
NetJunky Опубликовано 2 Апреля 2008 Жалоба Поделиться Опубликовано 2 Апреля 2008 А для более новых версий имеется? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Dizs Опубликовано 7 Мая 2008 Жалоба Поделиться Опубликовано 7 Мая 2008 а для 2.2.2 как сделать?так есть или нету? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
doomSerg Опубликовано 12 Мая 2008 Жалоба Поделиться Опубликовано 12 Мая 2008 Никто не подскажет, как сделать, чтобы через эту карту сайта не отображались темы скрытые от гостей? А то все темы для модераторов палятся как на ладони. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 12 Мая 2008 Жалоба Поделиться Опубликовано 12 Мая 2008 Никто не подскажет, как сделать, чтобы через эту карту сайта не отображались темы скрытые от гостей? А то все темы для модераторов палятся как на ладони.Можно посмотреть, как у меня сделано для скрытых записей в журналах, и сделать по аналогии для топиков форума. Заодно не худо добавить разбивку на страницы для длинных топиков. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
doomSerg Опубликовано 12 Мая 2008 Жалоба Поделиться Опубликовано 12 Мая 2008 Не подскажешь примерно какие строки смотреть в твоей версии карты сайта для журналов? Буду очень благодарен. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 12 Мая 2008 Жалоба Поделиться Опубликовано 12 Мая 2008 Не подскажешь примерно какие строки смотреть в твоей версии карты сайта для журналов? Буду очень благодарен.$DB->query("SELECT j.pid, j.author_id, j.author_name, j.title, m.id, m.j_public, j.comments FROM ibf_jposts j, ibf_member_extra m WHERE j.author_id = m.id and j.closed = 0 and m.j_public <> 0 and m.j_public <> 2 ORDER BY j.author_name asc, j.title asc LIMIT 0 ,".($navlimit-$rowcount-2));У меня модифицированы журналы: Помимо возможного j_public = 0 (только для друзей) у меня сделано возможным j_public = 2 (никому никогда).Таким образом, в самом запросе к БД отсекаются закрытые записи. Остается поискать в твоей версии форума: в каких полях какой таблицы записывается, что топик скрыт от пользователей и гостей, и какое значение там записано; и сделать отсев в запросе. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.