Extension talk:Book

Hi, I cannot get this to work, I get the book.pdf file but it is not looking into the sub categories of the category I am adding action=bookpdf    to.

Any ideas why this isn't working ? thanks Mark

Fix for subcategories and Mediawiki 1.17
There are 2 changes needed to get it working.

Replace function setBook in file BookTree.php /**    * Creates the book. * @param Node $root */       private function setBook($root = null){ if($root == null){ $root = $this->getRoot; }           $title = $root->getHeading; $this->text .= $root->view."\n"; //fetching the text out of the nodes foreach($this->getArticles($title) as $article){ $node = new Node($article); $root->addChild($node); if($node->isCategory){ $this->setBook($node); // Call by reference } else { $this->text .= $node->view."\n"; //fetching the text out of the nodes } 	   }        }

Replace function format in Node.php /**        * This method fixes a few issues like image location and tables * and comments. * @return String */       private function format{ global $wgOut, $wgUser, $wgParser, $wgServer; $opt = ParserOptions::newFromUser($wgUser); $title = $this->getContent->getTitle; $text = $this->content->fetchContent; $text = preg_replace('//s','@@'.'@@$1@@'.'@@',$text); # preserve HTML comments $text .= ''; $opt->setEditSection(false);   # remove section-edit links $wgOut->setHTMLTitle($title->getText);  # use this so DISPLAYTITLE magic works $out = $wgParser->parse($text,$title,$opt,true,true); $text = $out->getText; $text = preg_replace('|(]+?src=")(/.+?>)|',"$1$wgServer$2",$text);           $text = preg_replace('|@{4}([^@]+?)@{4}|s','',$text); # HTML comments hack            $text = preg_replace('| tags for good structure            //TODO: May be anyone can find a cool regex here HINT: preg_replace ('|h([0-9]+)>|e','$1+1',$text); don't work complete            $text = preg_replace('|h8>|','h9>',$text);            $text = preg_replace('|h7>|','h8>',$text);            $text = preg_replace('|h6>|','h7>',$text);            $text = preg_replace('|h5>|','h6>',$text);            $text = preg_replace('|h4>|','h5>',$text);            $text = preg_replace('|h3>|','h4>',$text);            $text = preg_replace('|h2>|','h3>',$text);            $text = preg_replace('|h1>|','h2>',$text);            $text = utf8_decode("$text\n"); return $text; } Happy PDF'ing ... --Wingsofcourage (talk) 14:13, 7 November 2012 (UTC)