Seite 1 von 1

Wikipedia in eine Tabelle zwingen

Verfasst: Mo 30.Mai, 2005 09:34
von Dungeonwatcher
Moin! :cool:

So gaaaaaaaanz langsam erschliesst sich mir ein klein bischen der Syntax von PHP. :rolleyes:

Dank @Oxpus klappt das einbinden meines selbsterstellten Menüs mittlerweile bestens. Allerdings widersetzte sich der Wikipedia Mod bisher allen meinen Versuchen auch dort das Menü einzufügen. Nun kam mir doch die rettende Idee. Ich schrien mir ein eigenes Template (wikipedia.tpl):

Code: Alles auswählen

<table width="100%" cellspacing="2" cellpadding="2" border="0">
  <tr>
    <td class="maintitle"><a href="{topicreplies.URL}">Wikipedia</a></td>
  </tr>
  <tr>
    <td class="nav"><a href="{U_INDEX}">{L_INDEX}</a> &raquo; <a href="wikipedia.php">Wikipedia</a></td>
  </tr>
</table>

{MENUE}
Damit das Template auch in die "wikipedia.php" mit eingebunden wird, habe ich analog zum Menü in die "page_header.php" folgendes eingetragen werden:

Code: Alles auswählen

//
// Parse and show the Wikipedia.
//
$template->set_filenames(array(
    'wikipedia' => 'wikipedia.tpl')
);

$template->assign_var_from_handle('WIKIPEDIA', 'wikipedia');
Desweiteren gehört in die "wikipedia.php" noch dieser Eintrag:

Code: Alles auswählen

//
// Parse and show the Menue.
//
$template->assign_var_from_handle('wikipedia', 'wikipedia');
$template->pparse('wikipedia');
direkt nach:

Code: Alles auswählen

include($phpbb_root_path . 'includes/page_header.'.$phpEx);
und vor:

Code: Alles auswählen

function callback($wikibuffer)
{
Das ganze sieht dann bereits so aus: Wikipedia

Das nächste Problem besteht jetzt darin das Wikipedia in eine Tabelle zu zwingen, damit es dann wie hier aussieht.

Wer hat die Lösung parat? :rolleyes:

Bye/2

Verfasst: Mo 30.Mai, 2005 09:50
von oxpus
Wie schaut denn das Wikipedia-Script nochmal aus?

Verfasst: Mo 30.Mai, 2005 10:03
von Dungeonwatcher
Moin! :cool:

So sieht die von mir leicht angepasste Version aus:

Code: Alles auswählen

<?php

/***************************************************************************
 *                            wikipedia.php
 *                            -------------------
 *     copyright            : (C) 2005 ChaosLord
 *     email                : goccl@web.de
 *
 ****************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

// Start Session Management
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

header("Content-type: text/html; charset=utf-8");
//header("Content-type: text/html; charset=iso-5859-1");
header("Cache-Control: no-cache, pre-check=0, post-check=0, max-age=0");

$title = ( isset($HTTP_POST_VARS['title']) ) ? $HTTP_POST_VARS['title'] : $HTTP_GET_VARS['title'];
$action = ( isset($HTTP_POST_VARS['action']) ) ? $HTTP_POST_VARS['action'] : $HTTP_GET_VARS['action'];
$section = ( isset($HTTP_POST_VARS['section']) ) ? $HTTP_POST_VARS['section'] : $HTTP_GET_VARS['section'];

$page_title = 'Wikipedia :: '.$title;

include($phpbb_root_path . 'includes/page_header.'.$phpEx);

//
// Parse and show the Menue.
//
$template->assign_var_from_handle('wikipedia', 'wikipedia');
$template->pparse('wikipedia');

function callback($wikibuffer)
{
        $wikibuffer = substr( $wikibuffer, strpos( $wikibuffer, '<!-- start content -->' ) );
        $wikibuffer = substr( $wikibuffer, 0, strpos( $wikibuffer, '<div class="printfooter">' ) );
        $wikibuffer = str_replace( "/wiki/", "wikipedia.php?title=", $wikibuffer );
        $wikibuffer = str_replace( "/w/index.php?title=", "wikipedia.php?title=", $wikibuffer );
        $wikireplace = array(

	'</b>'   => '</b >',
	'<p>'    => '<span class="gen">',
	'</p>'   => '</span>',
//	'<ul>'   => '<span class="genmed"><ul>',
//	'</ul>'  => '</ul></span>',

//	'<a' =>'<a class="genmed"',
//	' class="printfooter">'=>' class="printfooter"><hr />',
//	' class="new"' =>' class="genmed"',
//	' class=\'external\'' =>' class="genmed"',
	'/skins/common/images/magnify-clip.png' =>'http://de.wikipedia.org/skins/common/images/magnify-clip.png',
	'/math/' => 'http://de.wikipedia.org',
	'.orgwiki' =>'.org/wiki/wiki',
//	'\n' =>'\n<br>\n',
//	'<img' =>'<img border="0"',
	'Siehe auch' =>'<b>Siehe auch</b><br />',
//	'Weblinks' =>'Weblinks<br />',

	'background-color:#F8F8FF' => 'background-color:#272727',
	'background-color:#f8f8ff' => 'background-color:#272727',
	'background-color:#FCFCFC' => 'background-color:#272727',
	'background-color:#fcfcfc' => 'background-color:#272727',
	'background-color:#ffffff' => 'background-color:#272727',
	'background-color:#FFFFFF' => 'background-color:#272727',
	'background-color:#F8F8FF' => 'background-color:#272727',
	'background-color:#f8f8ff' => 'background-color:#272727',
	'background-color:#EFEFEF' => 'background-color:#272727',
	'background-color:#efefef' => 'background-color:#272727',
	'background-color:#dfefdf' => 'background-color:#272727',
	'background-color:#F7F7F7' => 'background-color:#272727',
	'background-color:#f7f7f7' => 'background-color:#272727',
	'background-color:#FFFFF8' => 'background-color:#272727',
	'background-color:#FFFFF8' => 'background-color:#272727',
	'background-color:#FFFAF0' => 'background-color:#272727',
	'background-color:#FAF0E6' => 'background-color:#272727',
	'background-color:#f7f8ff' => 'background-color:#272727',
	'background-color:white'   => 'background-color:#272727',
	'background-color: #F8F8F8' => 'background-color:#272727',
	'background-color:#f9f9f9' => 'background-color:#272727',

	'background:#CCA394' => 'background:#272727',
	'background:#efefef' => 'background:#272727',
	'background:#ffffff' => 'background:#272727',
	'background:#FDF5E6' => 'background:#272727',
	'background:white'   => 'background:#272727',
	'background:#dddddd' => 'background:#272727',
	'background:#FFDAB9' => 'background:#272727',

	'bgcolor="#FFFFFF"' => 'bgcolor="#272727"',
	'bgcolor="#FFDEAD"' => 'bgcolor="#272727"',
	'bgcolor="#EFEFEF"' => 'bgcolor="#272727"',

	'<table width="100%">' => '<table class="forumline" width="100%" cellspacing="1" cellpadding="0" border="0">',

	'class="image border="0""' => 'class="image" border="0"',

	'class="center' => 'class="gen',
	'class="floatnone' => 'class="gen',
	'class="plainlinks' => 'class="gen',
	'class="extiw' => 'class="gen',
	'class="tocindent' => 'class="nav',
	'class="tocline' => 'class="nav',
	'class="toctoggle' => 'class="nav',
	'class="image"' => '',

	'editsection' => 'gen',
	'external' => 'gen',
	'urlexpansion' => 'gen',

        );
        $wikibuffer = strtr($wikibuffer, $wikireplace);
        $wikibuffer = preg_replace( '/\(<i>http(.*)wiki.phtml(.*)<\/i>\)/', "", $wikibuffer );
        return $wikibuffer;

	$wiki_a = "/skins/common/images/magnify-clip.png";
	$wiki_b = "http://de.wikipedia.org/skins/common/images/magnify-clip.png";
	$wikibuffer = preg_replace( $wiki_a, $wiki_b, $wikibuffer );

}

if( $action != "" )
{
        if( $action == "edit" )
        {
                ob_start("callback");
                include 'http://de.wikipedia.org/w/index.php?title='.$title.'&action='.$action.'&section'.$section;
                ob_end_flush();
        }
}
else
{
        ob_start("callback");
        include 'http://de.wikipedia.org/wiki/?title=' . $title;
        ob_end_flush();
}

include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

?>

---
PS: Hmmm, hattest du hier nicht mal die Möglichkeit solche Quote-/Code-Fenster verkleinert darzustellen?

Verfasst: Mo 30.Mai, 2005 11:42
von oxpus
PS: Hmmm, hattest du hier nicht mal die Möglichkeit solche Quote-/Code-Fenster verkleinert darzustellen?
Ist wieder ausgebaut.

Ja, die Möglichkeit für eine Tabelle schaue ich mir nachher mal an.
Ich melde mich dann wieder.

Verfasst: Mo 30.Mai, 2005 12:20
von Dungeonwatcher
[quote="oxpus - Mo 30.Mai, 2005 11:42";p="33782"]Ist wieder ausgebaut.[/quote]

Schade, ich fand es nicht schlecht.
Ja, die Möglichkeit für eine Tabelle schaue ich mir nachher mal an.
Ich melde mich dann wieder.
THNX

Verfasst: Mo 30.Mai, 2005 13:13
von helluvaguy
Gibt es eigentlich auch eine Möglichkeit, die Artikel, die man anklicken kann, in eine .tpl zu "zwingen", da sie sonst so unformatiert angeziegt werden?

Verfasst: Mo 30.Mai, 2005 13:18
von oxpus
Keine Ahnung. Ich weiß noch nicht, wie diese "ankommen".

Verfasst: Mo 30.Mai, 2005 14:40
von Dungeonwatcher
[quote="helluvaguy - Mo 30.Mai, 2005 13:13";p="33799"]Gibt es eigentlich auch eine Möglichkeit, die Artikel, die man anklicken kann, in eine .tpl zu "zwingen", da sie sonst so unformatiert angeziegt werden?[/quote]

Hmmm, genau das versuche ich doch gerade. Aber "unformatiert" würde ich das momentane Ergebnis nicht bezeichnen. Die Formatierung sieht genauso aus wie das Orginal. Die farbliche Umsetzung einzelner Elemente kannst du doch im PHP-Script festlegen.

Verfasst: Mo 30.Mai, 2005 15:07
von helluvaguy
Nimm nur mal bitte "Angela Merkel" als Beispiel (oben rechts bei aktuelle Ereignisse). Der dort aufgerufene Artikel ist ja im Gegensatz zum Forum unformatiert, als dass er nicht vor einem Zellenhintergrund, sondern dem Hintergrund(bild) des Forums erscheint.
Deswegen meinte ich in ein .tpl "zwingen", damit es leichter lesbar wird. Es würde ja schon helfen, wenn der Text nicht als Times New Roman sondern Arial angezigt werden würde.

Den Artikeltext in eine Zelle zu zwängen ist sicherlich schwer, aber es muß doch möglich sein, die Schriftart zu definieren, damit sie besser an die des Forums passt.

Verfasst: Di 31.Mai, 2005 09:50
von oxpus
Hm, wenn ich mir den Quellcode der erzeugten Seite anschaue, ist es schwer, hier eine phpBB-ähnliche Tabellenstruktur rein zu bekommen.
Der Wiki-Parser arbeitet sehr viel mit div und Listen. Da müsste viel zerlegt und neu zusammengesetzt werden, wobei man die Startseite berücksichtigen müsste, die nicht unbedingt zerstört werden sollte...

Verfasst: Fr 03.Jun, 2005 15:04
von helluvaguy
In wiefern muß denn die wikipedia.php verändert werden, damit sie so wie hier im Forum ohne den page_header aufgerufen werden soll? Nehme ich nur

Code: Alles auswählen

include($phpbb_root_path . 'includes/page_header.'.$phpEx);
raus, fehlt ja der Verweis auf den .tpl

Verfasst: Fr 03.Jun, 2005 15:34
von oxpus
Davor diese Zeile einfügen:

Code: Alles auswählen

$gen_simple_header = TRUE;
Nicht mehr und nicht weniger.

Verfasst: Fr 03.Jun, 2005 16:56
von Dungeonwatcher
Hi! :cool:

Mein Hauptanliegen, einen Rahmen rund um die Wiki-Anzeige zu bekommen, ist gelöst. Dazu habe ich zwei Templates erstellt:

wikipedia_oben.tpl

Code: Alles auswählen

{MENUE}

<table width="100%" cellpadding="1" cellspacing="1" border="0" class="wikiline">
  <tr>
    <td
wikipedia_unten.tpl

Code: Alles auswählen

    </td>
  </tr>
<table width="100%" cellpadding="1" cellspacing="1" border="0" class="forumline">
Diese habe ich so in die wikipedia.php eingebunden:

Code: Alles auswählen

# --- suche:

function callback($wikibuffer)
{

# --- davor:

$template->pparse('wikipedia_oben');

# ---suche:

$template->assign_var_from_handle('wikipedia_oben', 'wikipedia_oben');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);

# --- davor:

$template->assign_var_from_handle('wikipedia_unten', 'wikipedia_unten');
$template->pparse('wikipedia_unten');
Dann noch in die page_header.php:

Code: Alles auswählen

$template->set_filenames(array(
    'wikipedia_oben' => 'wikipedia_oben.tpl')
);

$template->assign_var_from_handle('WIKIPEDIA_OBEN', 'wikipedia_oben');

$template->set_filenames(array(
    'wikipedia_unten' => 'wikipedia_unten.tpl')
);
eingefügt und schwupps war der Rahmen da. :rolleyes:

Oder geht's auch einfacher?

Bye/2

Verfasst: Fr 03.Jun, 2005 18:42
von oxpus
Also ich hab mich schon verzweifelt daran versucht, daher sage ich mal:
Nein, das ist einfach genug. Bislang.

Verfasst: Fr 03.Jun, 2005 19:41
von Dungeonwatcher
'n Abend! :cool:

Schön das ich auch mal was produktives beitragen konnte. ^q

PS: Dein Smiliefenster "Weitere Smilies ansehen" geht nach kurzer Zeit alleine wieder zu. Das gefällt mir. Wo gibt's den Mod dafür?? :rolleyes:

Bye/2

Verfasst: Fr 03.Jun, 2005 20:44
von oxpus
<!-- Off-Topic -->
http://www.oxpus.de/fpost-34230.html#34230
<!-- ON Topic -->

Verfasst: So 05.Jun, 2005 09:38
von helluvaguy

Code: Alles auswählen

 # ---suche:

 $template->assign_var_from_handle('wikipedia_oben', 'wikipedia_oben');
 include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
Davon kann ich aber nur die zweite Zeile finden.

Und wo soll der Code für den page_header.php hin? Ich habe ihn direkt hinter

Code: Alles auswählen

//
// Parse and show the Wikipedia.
//
$template->set_filenames(array(
    'wikipedia' => 'wikipedia.tpl')
);
gepackt, alles hochgeladen, doch der umschießende rahmen bleibt bei mir aus.

Dungeonwatcher könntest Du mal bitte deine wikipedia.php hier als zip dranhängen, damit ich mal vergleichen kann?