doomSerg Опубликовано 13 Мая 2008 Жалоба Поделиться Опубликовано 13 Мая 2008 Всё получилось. Огромное спасибо. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
cthu Опубликовано 16 Мая 2008 Жалоба Поделиться Опубликовано 16 Мая 2008 Всё получилось. Огромное спасибо.А как поставить на 2.3.5Ошибки выдаёт, и реально такого файла там нет Warning: main(./sources/functions.php) [function.main]: failed to open stream: No such file or directory in /home/yasonco/forum/sitemap.php on line 100 Warning: main(./sources/functions.php) [function.main]: failed to open stream: No such file or directory in /home/yasonco/forum/sitemap.php on line 100 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 13 Июня 2008 Жалоба Поделиться Опубликовано 13 Июня 2008 Сделал для гуглы txt-копию:При открытии страницы sitemap.php, автоматически генерится текстовая версия в файл sitemap.txt, который можно скормить гугле через "инструменты вебмастера".Вот мой файл:<? //#####################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=60000; // 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(); $DB->query("SELECT j.pid, j.author_id, j.author_name, j.title, m.id, m.j_public 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"); $journal_count = $DB->get_num_rows(); $DB->query("SELECT distinct j.author_id, j.author_name, m.id, m.j_public 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"); $journals_count = $DB->get_num_rows(); if (!$start) {$start=0;} $start = intval($start); $print1 = "\r\n<h1>$INFO[board_name] -> карта сайта</h1>\r\n"; $print1 .= "\r\n<p>На главную <a href=$INFO[board_url]/index.php>$INFO[board_name]</a></p>\r\n"; $print1 .= "<b>Форумов: </b>".$forum_count." - <b>Топиков: </b>".$topic_count." - <b>Журналов: </b>".$journals_count." - <b>Записей в журналах: </b>".$journal_count." - "; if ($start<$topic_count) { //Еще не кончились топики $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, t.posts 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(); $oforumid = ""; $counter=0; $counter2=0; $fcount=0; $print2 = "<TABLE><TR><TD>"; $print_txt = ""; 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] $print2 .= "</TD></TR><TR><TD><a href=index.php?showforum=$row[fid] class=link7><B>$row[fname]</B></a> ".$row[fdescription]; $print_txt .= "$INFO[board_url]/index.php?showforum=$row[fid]\r\n"; $counter+=1; //$INFO[board_url]/show.php/act/ST/f/$row[tforum_id]/t/$row[ttid] $print2 .= "<BR>- <a href=index.php?showtopic=$row[ttid] class=link7>$row[ttitle]</a> ".$row[tdescription]; $print_txt .= "$INFO[board_url]/index.php?showtopic=$row[ttid]\r\n"; if($row[posts] > 14) { $print2 .= " (Страницы: "; $strtn = ( ($row[posts]+1-($row[posts]+1)%15)/15 ) ; for ($x=0; $x<$strtn; $x++) { $print2 .= " <a href=index.php?showtopic=$row[ttid]&st=".(($x+1)*15)." class=link7>".($x+2)."</a>"; $print_txt .= "$INFO[board_url]/index.php?showtopic=$row[ttid]&st=".(($x+1)*15)."\r\n"; $counter2+=1; } $print2 .= ")"; } $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] $print2 .= "<BR>- <a href=index.php?showtopic=$row[ttid] class=link7>$row[ttitle]</a> ".$row[tdescription]; $print_txt .= "$INFO[board_url]/index.php?showtopic=$row[ttid]\r\n"; if($row[posts] > 14) { $print2 .= " (Страницы: "; $strtn = ( ($row[posts]+1-($row[posts]+1)%15)/15 ) ; for ($x=0; $x<$strtn; $x++) { $print2 .= " <a href=index.php?showtopic=$row[ttid]&st=".(($x+1)*15)." class=link7>".($x+2)."</a>"; $print_txt .= "$INFO[board_url]/index.php?showtopic=$row[ttid]&st=".(($x+1)*15)."\r\n"; $counter2+=1; } $print2 .= ")"; } } } if($rowcount<$navlimit){ //Мало линков на топики, надо выводить журналы $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)); $ojournalid = ""; $journalcounter=0; $journalcount=0; while($row = $DB->fetch_row($result) and ($counter<$navlimit)) { if ($ojournalid != $row[author_id]) { $journalcount+=1; //$INFO[board_url]/show.php/act/SF/f/$row[fid] $print2 .= "</TD></TR><TR><TD><a href=journal.php?user=$row[author_id] class=link7><B>Журнал $row[author_name]</B></a>"; $print_txt .= "$INFO[board_url]/journal.php?user=$row[author_id]\r\n"; $journalcount+=1; if($row[title] == ""){$row[title]="...";} //$INFO[board_url]/show.php/act/ST/f/$row[tforum_id]/t/$row[ttid] $print2 .= "<BR>- <a href=journal.php?user=$row[author_id]&comm=$row[pid] class=link7>$row[title]</a>"; $print_txt .= "$INFO[board_url]/journal.php?user=$row[author_id]&comm=$row[pid]\r\n"; $ojournalid = $row[author_id]; $journalcount+=1; } else { $journalcount+=1; // Count one for each topic //$INFO[board_url]/show.php/act/ST/f/$row[tforum_id]/t/$row[ttid] $print2 .= "<BR>- <a href=journal.php?user=$row[author_id]&comm=$row[pid] class=link7>$row[title]</a>"; $print_txt .= "$INFO[board_url]/journal.php?user=$row[author_id]&comm=$row[pid]\r\n"; if($row[comments] > 10) { $print2 .= " (Страницы: "; $strtn = ( ($row[comments]-1-($row[comments]-1)%10)/10 ) ; for ($x=0; $x<$strtn; $x++) { $print2 .= " <a href=journal.php?user=$row[author_id]&comm=$row[pid]&st=".(($x+1)*10)." class=link7>".($x+2)."</a>"; $print_txt .= "$INFO[board_url]/journal.php?user=$row[author_id]&comm=$row[pid]&st=".(($x+1)*10)."\r\n"; $counter2+=1; } $print2 .= ")"; } } } } // Закончили вывод журналов на стыке страниц echo "</TD></TR></TABLE>"; } else{ //Пошли по журналам $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 ".($start-$topic_count).",".($navlimit-2)); $ojournalid = ""; $journalcounter=0; $journalcount=0; $print2 = "<TABLE><TR><TD>"; while($row = $DB->fetch_row($result) and ($counter<$navlimit)) { if ($ojournalid != $row[author_id]) { $journalcount+=1; //$INFO[board_url]/show.php/act/SF/f/$row[fid] $print2 .= "</TD></TR><TR><TD><a href=journal.php?user=$row[author_id] class=link7><B>Журнал $row[author_name]</B></a>"; $print_txt = "$INFO[board_url]/journal.php?user=$row[author_id]\r\n"; $journalcount+=1; if($row[title] == ""){$row[title]="...";} //$INFO[board_url]/show.php/act/ST/f/$row[tforum_id]/t/$row[ttid] $print2 .= "<BR>- <a href=journal.php?user=$row[author_id]&comm=$row[pid] class=link7>$row[title]</a>"; $print_txt .= "$INFO[board_url]/journal.php?user=$row[author_id]&comm=$row[pid]\r\n"; $ojournalid = $row[author_id]; $journalcount+=1; } else { $journalcount+=1; // Count one for each topic //$INFO[board_url]/show.php/act/ST/f/$row[tforum_id]/t/$row[ttid] $print2 .= "<BR>- <a href=journal.php?user=$row[author_id]&comm=$row[pid] class=link7>$row[title]</a>"; $print_txt .= "$INFO[board_url]/journal.php?user=$row[author_id]&comm=$row[pid]\r\n"; if($row[comments] > 10) { $print2 .= " (Страницы: "; $strtn = ( ($row[comments]-1-($row[comments]-1)%10)/10 ) ; for ($x=0; $x<$strtn; $x++) { $print2 .= " <a href=journal.php?user=$row[author_id]&comm=$row[pid]&st=".(($x+1)*10)." class=link7>".($x+2)."</a>"; $print_txt .= "$INFO[board_url]/journal.php?user=$row[author_id]&comm=$row[pid]&st=".(($x+1)*10)."\r\n"; $counter2+=1; } $print2 .= ")"; } } } } $fh = fopen("sitemap.txt", "w"); fwrite($fh, $print_txt); fclose($fh); echo $print1; echo "<b>Линков на этой странице: </b>".($rowcount+$journalcount+$counter2); echo $print2; $next = $start+$navlimit-$fcount; if ($next<($topic_count+$journal_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> Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Тормоз Опубликовано 14 Ноября 2008 Жалоба Поделиться Опубликовано 14 Ноября 2008 Скажите, а для версии 2.3 есть такая карта? И как ее ставить, поясните плиз!FatCat в первую очередь в Вашу сторону взор кидаю! Вы добрый, я знаю Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 14 Ноября 2008 Жалоба Поделиться Опубликовано 14 Ноября 2008 Скажите, а для версии 2.3 есть такая карта?Структура БД для хранения самих сообщений осталась одинаковой, но права доступа к форумам теперь задаются совсем иначе.Потребуется полностью переделывать функцию проверки разрешений просмотра гостям.Плюс, в двушках синтаксис поменялся.Не возьмусь, у меня и двушки в пользовании нет, чтобы можно было в процессе переделки мода тестировать работоспособность. Да и не люблю я двушки... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
BESTRAFER Опубликовано 21 Ноября 2008 Жалоба Поделиться Опубликовано 21 Ноября 2008 искал целый день нашел для ipb 2где нашел? можно линк, хотя бы в ПМ? заранее благодарен Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
wild_t Опубликовано 7 Февраля 2009 Жалоба Поделиться Опубликовано 7 Февраля 2009 искал целый день нашел для ipb 2где нашел? можно линк, хотя бы в ПМ? заранее благодарен вот тоже очень интересно... ищу Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Haktar Опубликовано 18 Июня 2009 Жалоба Поделиться Опубликовано 18 Июня 2009 Никто не подскажет, как сделать, чтобы через эту карту сайта не отображались темы скрытые от гостей? А то все темы для модераторов палятся как на ладони.Присоединяюсь к этому вопросу. Хотелось чтоб была версия карты сайта которая показывала темы, которые отображаються только именно для гостей. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 18 Июня 2009 Жалоба Поделиться Опубликовано 18 Июня 2009 (изменено) Там же уже есть переменная $admin_forums - список форумов через запятую, из которых топики не забираются.Ее и можно "дозаправить" простым кодом:$DB->query("SELECT id, read_perms, password from ibf_forums"); while($row = $DB->fetch_row($result)) { $row['read_perms'] .= ","; if( !stristr($row['read_perms'],"3,") or $row['password'] != "" ) { if($admin_forums == "")$admin_forums .= $row['id']; else $admin_forums .= ",".$row['id']; } } А если еще и mJournal установлен под 1.х, то можно и его в сайтмеп вынести - те ветки тех журналов, которые доступны гостям. А заодно при каждом обращении к этой страницы сделать перегенерацию sitemap.txt, валидного для всех поисковок. Давно сделал себе такое. Приаттачиваю, если кому понадобится.sitemap.php Изменено 18 Июня 2009 пользователем FatCat Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Haktar Опубликовано 18 Июня 2009 Жалоба Поделиться Опубликовано 18 Июня 2009 Там же уже есть переменная $admin_forums - список форумов через запятую, из которых топики не забираются.Спасибо, получилось Сделал для гуглы txt-копию:При открытии страницы sitemap.php, автоматически генерится текстовая версия в файл sitemap.txt, который можно скормить гугле через "инструменты вебмастера".Вот мой файл:Тоесть Гугл не воспринимает имено sitemap в php-варианте? Заодно не худо добавить разбивку на страницы для длинных топиков.Да не плохо было бы это реализовать. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 18 Июня 2009 Жалоба Поделиться Опубликовано 18 Июня 2009 Тоесть Гугл не воспринимает имено sitemap в php-варианте?Если скормить через панель вебмастера, не ест, хочет xml или txt Заодно не худо добавить разбивку на страницы для длинных топиков.Да не плохо было бы это реализовать.У меня это реализовано, не помню уже, было так, или я потом дописал. Возьми мой прицепленный файл, поудаляй те функции, которые собирают контент из таблиц ibf_jpost и ibf_jcomment, если не используешь журнал, и останется как раз то что нужно: когда php-файл прилинкован к главной как страница "карта сайта", на него постоянно влетают то поисковые боты, то кто-нибудь из посетителей; в результате файл sitemap.txt так или иначе обновляется практически ежедневно. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Leben Опубликовано 19 Сентября 2009 Жалоба Поделиться Опубликовано 19 Сентября 2009 интересно, а можно реализовать аналогичное для 2.3.6но чтоб ещё выводило заголовки спойлеров и вложенных в них спойлеров заголовки тоже из вот этого спойлер мода http://forums.ibresource.ru/index.php?showtopic=57660 может кто возьмётся... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 19 Сентября 2009 Жалоба Поделиться Опубликовано 19 Сентября 2009 чтоб ещё выводило заголовки спойлеров и вложенных в них спойлеров заголовки тожеВ карту сайта?Это что-то совершенно незнакомое для меня. Можно поподробнее саму идею? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
ankasvibla Опубликовано 13 Февраля 2017 Жалоба Поделиться Опубликовано 13 Февраля 2017 Собственно вопрос: карта сайта ссылки на все услуги/категории товаров в футере на всех старницах - это хорошо или плохо для SEO? Больше интересует Google. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 13 Февраля 2017 Жалоба Поделиться Опубликовано 13 Февраля 2017 ссылки на все услуги/категории товаровНа форуме? хорошо или плохо для SEO?Хорошо для магазина, рекламируемого через форум. Плохо для форума. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.