GaRRiLL
Silver Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Gumanoid Там не сложно. Добавлять нужно только одну строку. В двух словах объясню: Вот. require_once("includes/blocks_news.php"); Содержание этого файла: Код: function blocks($side) { global $storynum, $prefix, $multilingual, $currentlang, $dbi, $admin, $user, $block_side; // $block_side added by Somara Sem if ($multilingual == 1) { $querylang = "AND (blanguage='$currentlang' OR blanguage='')"; } else { $querylang = ""; } $side = strtolower($side[0]); // Added by Somara Sem $block_side = $side; // Added by Somara Sem if (strtolower($side[0]) == "l") { $pos = "l"; } elseif (strtolower($side[0]) == "r") { $pos = "r"; } elseif (strtolower($side[0]) == "c") { $pos = "c"; } $side = $pos; $result = sql_query("select bid, bkey, title, content, url, blockfile, view from ".$prefix."_news_blocks where position='$pos' AND active='1' $querylang ORDER BY weight ASC", $dbi); while(list($bid, $bkey, $title, $content, $url, $blockfile, $view) = sql_fetch_row($result, $dbi)) { if ($bkey == userbox) { userblock(); } elseif ($bkey == "") { if ($view == 0) { render_blocks($side, $blockfile, $title, $content, $bid, $url); } elseif ($view == 1 AND is_user($user) || is_admin($admin)) { render_blocks($side, $blockfile, $title, $content, $bid, $url); } elseif ($view == 2 AND is_admin($admin)) { render_blocks($side, $blockfile, $title, $content, $bid, $url); } elseif ($view == 3 AND !is_user($user) || is_admin($admin)) { render_blocks($side, $blockfile, $title, $content, $bid, $url); } } } } function headlines($bid, $cenbox=0) { global $prefix, $dbi; $result = sql_query("select title, content, url, refresh, time from ".$prefix."_news_blocks where bid='$bid'", $dbi); list($title, $content, $url, $refresh, $otime) = sql_fetch_row($result, $dbi); $past = time()-$refresh; if ($otime < $past) { $btime = time(); $rdf = parse_url($url); $fp = fsockopen($rdf['host'], 80, $errno, $errstr, 15); if (!$fp) { $content = ""; //$content = "<font class=\"content\">"._RSSPROBLEM."</font>"; $result = sql_query("update ".$prefix."_news_blocks set content='$content', time='$btime' where bid='$bid'", $dbi); $cont = 0; if ($cenbox == 0) { themesidebox($title, $content); } else { themecenterbox($title, $content); } return; } if ($fp) { fputs($fp, "GET " . $rdf['path'] . "?" . $rdf['query'] . " HTTP/1.0\r\n"); fputs($fp, "HOST: " . $rdf['host'] . "\r\n\r\n"); $string = ""; while(!feof($fp)) { $pagetext = fgets($fp,300); $string .= chop($pagetext); } fputs($fp,"Connection: close\r\n\r\n"); fclose($fp); $items = explode("</item>",$string); $content = "<font class=\"content\">"; for ($i=0;$i<10;$i++) { $link = ereg_replace(".*<link>","",$items[$i]); $link = ereg_replace("</link>.*","",$link); $title2 = ereg_replace(".*<title>","",$items[$i]); $title2 = ereg_replace("</title>.*","",$title2); if ($items[$i] == "") { $content = ""; sql_query("update ".$prefix."_news_blocks set content='$content', time='$btime' where bid='$bid'", $dbi); $cont = 0; if ($cenbox == 0) { themesidebox($title, $content); } else { themecenterbox($title, $content); } return; } else { if (strcmp($link,$title)) { $cont = 1; $content .= "<strong><big>·</big></strong><a href=\"$link\" target=\"new\">$title2</a><br>\n"; } } } } sql_query("update ".$prefix."_news_blocks set content='$content', time='$btime' where bid='$bid'", $dbi); } $siteurl = ereg_replace("http://","",$url); $siteurl = explode("/",$siteurl); if (($cont == 1) OR ($content != "")) { $content .= "<br><a href=\"http://$siteurl[0]\" target=\"blank\"><b>"._HREADMORE."</b></a></font>"; } elseif (($cont == 0) OR ($content == "")) { $content = "<font class=\"content\">"._RSSPROBLEM."</font>"; } if ($cenbox == 0) { themesidebox($title, $content); } else { themecenterbox($title, $content); } } | Посмотрев внимательно, то таких файлов у меня 10. Отличаются они только обращением к разным таблицам. Тут select bid, bkey, title, content, url, blockfile, view from ".$prefix."_news_blocks. А в файле forums-blocks.php вот select bid, bkey, title, content, url, blockfile, view from ".$prefix."_forums_blocks Чтобы установить дополнительную таблицу, надо в пхпmyAdmin послать Код: CREATE TABLE nuke_article_blocks ( bid int(10) NOT NULL auto_increment, bkey varchar(15) NOT NULL, title varchar(60) NOT NULL, content text NOT NULL, url varchar(200) NOT NULL, position char(1) NOT NULL, weight int(10) DEFAULT '1' NOT NULL, active int(1) DEFAULT '1' NOT NULL, refresh int(10) DEFAULT '0' NOT NULL, time varchar(14) DEFAULT '0' NOT NULL, blanguage varchar(30) NOT NULL, blockfile varchar(255) NOT NULL, view int(1) DEFAULT '0' NOT NULL, PRIMARY KEY (bid) ); # # Dumping data for table 'nuke_article_blocks' # INSERT INTO nuke_article_blocks VALUES ( '1', '', 'Modules', '', '', 'l', '2', '1', '0', '', '', 'block-Modules.php', '0'); INSERT INTO nuke_article_blocks VALUES ( '4', '', 'Поиск', '', '', 'l', '1', '1', '0', '', '', 'block-Search.php', '0'); INSERT INTO nuke_article_blocks VALUES ( '7', 'userbox', 'User\'s Custom Box', '', '', 'r', '1', '0', '0', '', '', '', '1'); INSERT INTO nuke_article_blocks VALUES ( '8', '', 'Категории новостей', '', '', 'l', '3', '1', '0', '', '', 'block-Categories.php', '0'); INSERT INTO nuke_article_blocks VALUES ( '12', '', 'Архив', '', '', 'l', '4', '0', '0', '', '', 'block-Old_Articles.php', '0'); | Также в файл www\admin\links\links.blocks.php нужно будет добавить adminmenu("admin.php?op=BlocksAdmin&blockfor=article", ""._BLOCKS."", "blocks.gif"); И всё. Редактируется это дело одни скриптом, который обращается к таблицам исходя из разных урлов: если урл admin.php?op=BlocksAdmin&blockfor=article, то ты настираиваешь блоки для статейных страниц modules.php?name=News&file=article&sid=315 , а если урл admin.php?op=BlocksAdmin&blockfor=forums, то для форумов. На сайте потом будут подробные мануалы. Мы будем таким образом подгонять к себе ВСЕ модули PHPNuke, а кто их пишет сам, то такую операцию будет несложно выполнить. Добавлено Antuan Цитата: Не получается с закачкой? - давай я к себе закачаю и дам ссылку на Русских Нюкерах | Ага. пишет собака, что файл не праильно, типа, назван, хотя нормально под юних назвал. Сейчас разбираюсь с их доками. За помощь спасибо, но надо же там это сделать, хорошая скорость, да и все нормальные люди, которые имеют что-то на SF качают всё туда. Может, Voll подскажет. Добавлено До мэнэ допёрло как их закачивать. Уже 5% прошло. Тепрь получится. Надо было сгонять на FTP. |