MOD WIKIPEDIA
WICHTIG / ATTENTION
- Funktion "simplexml_load_file" steht erst ab PHP5 zur Verfügung ...
- Prüfen, ob der Hoster bei PHP5 die Funktion "simplexml_load_file" aktiviert hat ...
- Erst dann kann diese Modifikation funktionstüchtig installiert werden ...
- Default Wert für image_allow_wiki ist 0, das heisst, der MOD ist erst einmal deaktiviert
------
- Function "simplexml_load_file" works only with PHP5 and above ...
- Check, if HOSTER has activate "simplexml_load_file" ...
- If these Points are OK, than you can install this ...
- Default Value image_allow_wiki is zero, the MOD is after install deactivated
(Danke an mawenzi für den Hinweis.......)
Dieser MOD dient dazu, Artikel die zum Bildnamen passen, bei Wikipedia auszulesen und in deine Homepage zu integrieren.
Dazu sind folgende änderungen notwendig.
This MOD is used to image the article name fit at Wikipedia and use in your website to integrate.
These changes are necessary.
DEMO:
http://rinaldos.homeip.net/img11114.htmSTEP 1
öffne /includes/functions.php
füge über ?> folgendes ein:
:flag_en:
edit /includes/functions.php
insert above ?>
function get_wiki($image_wiki) {
global $user_info, $site_db, $session_info, $config;
ini_set('user_agent', '(Windows; U; Windows NT 6.1; de; rv:1.9.2) Gecko/20100115 Firefox/3.6');
// $image_wiki = preg_replace('/\\W/', '',$image_wiki);
$zeichen = array('#', '?', '§', '$', '%', '&', '/', '(', ')', '=', '^', '°', '*', '@');
$image_wiki = str_replace($zeichen,"",$image_wiki);
if(!$image_wiki) return false;
//Gesamter Test aus der Wiki-API nehmen
$url = "http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=".$image_wiki;
$xml = simplexml_load_file($url);
$text = $xml->parse->text;
if(!$text) return false;
//Zusammenfassung suchen
$reg_exp = '/<p>(.*?)<\/p>/s';
preg_match_all($reg_exp, $text, $match);
$summary = $match[0][0];
$summary .= $match[0][1];
$summary .= $match[0][2];
$summary .= $match[0][3];
$summary .= $match[0][4];
$summary .= $match[0][5];
$summary .= $match[0][6];
$summary = utf8_decode($summary);
//wenn Artikel nicht vorhanden
if($summary == "<p><b>Artikel verschwunden?</b></p>") return false;
//Links auf interne Seite ändern
$summary = ereg_replace('href="/wiki/', '', $summary);
return $summary;
}
für eine Ausgabe mit den richtigen LINKS nach Wikipedia fügt anstelle des o.a. Code folgenden Code in Eure functions.php ein
http://www.4homepages.de/forum/index.php?topic=24975.msg137246#msg137246(Danke an Rembrandt für die andere Darstellung der Ausgabe)
Möchtest du alle Umlaute rausfiltern, ändere den Code wie folgt ab
finde
Do you want to filter all accents, change the code as follows
// $image_wiki = preg_replace('/\\W/', '',$image_wiki);
$zeichen = array('#', '?', '§', '$', '%', '&', '/', '(', ')', '=', '^', '°', '*', '@');
$image_wiki = str_replace($zeichen,"",$image_wiki);
ersetze
replace
$image_wiki = preg_replace('/\\W/', '',$image_wiki);
// $zeichen = array('#', '?', '§', '$', '%', '&', '/', '(', ')', '=', '^', '°', '*', '@');
// $image_wiki = str_replace($zeichen,"",$image_wiki);
STEP 2
öffne /details.php
finde:
open /details.php
find
//-----------------------------------------------------
//--- Print Out ---------------------------------------
//-----------------------------------------------------
füge darüber ein:
insert above
$wiki = "";
if ($image_row['image_allow_wiki'] == 1){
if ($image_row['image_wiki']){
$image_wiki = $image_row['image_wiki'];
$wiki = get_wiki($image_wiki);
}else {
$image_wiki = $image_name;
$wiki = get_wiki($image_wiki);
}
}
suche:
find
"lang_next_image" => $lang['next_image'],
"lang_file_size" => $lang['file_size']
));
füge darüber ein
insert above
"image_wiki" => $wiki,
"lang_wiki" => $lang['wikipedia'],
Step 3:
öffne dein Template Verzeichnis/details.html
finde
edit Your Template Folder/details.html
find
<tr>
<td valign="top" class="row1" width="33%"><b>{lang_description}</b></td>
<td valign="top" class="row1">{image_description}</td>
</tr>
füge darunter ein (oder eben da, wo du den Auszug aus Wikipedia haben magst)
insert after (or at this Place where you want your WIKI will be shown)
{if image_wiki}
<tr class="commentrow1">
<td valign="top" class="row2" width="20%"><b>{lang_wiki}</b></td>
<td valign="top" class="row2" width="80%">{image_wiki}</td>
</tr>
{endif image_wiki}
STEP 4
öffne /lang/deutsch/main.php
füge über ?> folgendes ein:
edit /lang/deutsch/main.php
insert above ?>
$lang['wikipedia'] ="Textpassage aus Wikipedia<br><img src=\"{template_url}/images/wikipedia.jpg\" border=\"0\">";
öffne /lang/english/main.php
füge über ?> folgendes ein:
edit /lang/english/main.php
insert above ?>
$lang['wikipedia'] ="Text from Wikipedia<br><img src=\"{template_url}/images/wikipedia.jpg\" border=\"0\">";
Step 5
kopiere das Bild in dein TEMPLATE ORDNER/images/
copy the Picture into your Template Folder /images/
ADDED LATER ON - SPÄTER HINZUGEKOMMENSTEP 6
öffne /member.php
finde
edit /member.php
find
$image_allow_comments = (isset($HTTP_POST_VARS['image_allow_comments'])) ? intval($HTTP_POST_VARS['image_allow_comments']) : $image_row['image_allow_comments'];
füge darunter ein
insert after
$image_allow_wiki = (isset($HTTP_POST_VARS['image_allow_wiki'])) ? intval($HTTP_POST_VARS['image_allow_wiki']) : $image_row['image_allow_wiki'];
finde
find
$site_template->register_vars(array(
"image_id" => $image_id,
"image_name" => format_text($image_name, 2),
"image_description" => format_text($image_description, 2),
"image_keywords" => format_text($image_keywords, 2),
"image_allow_comments_yes" => ($image_allow_comments) ? " checked=\"checked\"" : "",
"image_allow_comments_no" => (!$image_allow_comments) ? " checked=\"checked\"" : "",
füge darunter ein
insert after
"image_allow_wiki_yes" => ($image_allow_wiki) ? " checked=\"checked\"" : "",
"image_allow_wiki_no" => (!$image_allow_wiki) ? " checked=\"checked\"" : "",
"lang_image_allow_wiki" => $lang['image_allow_wiki'],
finde
finde
"lang_allow_comments" => isset($lang['allow_comments']) ? $lang['allow_comments'] : "",
"lang_submit" => $lang['submit'],
"lang_reset" => $lang['reset'],
"lang_yes" => $lang['yes'],
"lang_no" => $lang['no'],
füge darunter ein
insert after
"lang_image_allow_wiki" => $lang['image_allow_wiki'],
finde
finde
$image_name = un_htmlspecialchars(trim($HTTP_POST_VARS['image_name']));
$image_description = un_htmlspecialchars(trim($HTTP_POST_VARS['image_description']));
$image_keywords = un_htmlspecialchars(trim($HTTP_POST_VARS['image_keywords']));
$image_keywords = preg_replace("/[\n\r]/is", " ", $image_keywords);
$image_keywords = str_replace(","," ",$image_keywords);
$image_keywords = ereg_replace("( ){2,}", " ", $image_keywords);
füge darunter ein
insert after
$image_allow_wiki = $HTTP_POST_VARS['image_allow_wiki'];
STEP 7
öffne DEIN TEMPLATE FOLDER/member_editimage.html
finde
edit YOUR TEMPLATE FOLDER/member_editimage.html
find
<tr class="commentrow1">
<td class="row2" valign="top"><b>{lang_keywords}</b></td>
<td class="row2">
<textarea name="image_keywords" cols="30" rows="10" wrap="virtual" class="textarea">{image_keywords}</textarea>
</td>
</tr>
füge darunter ein
insert after
<tr>
<td class="row1"><b>{lang_image_wiki}</b></td>
<td class="row1">
<input type="text" name="image_wiki" size="30" value="{image_wiki}" class="input" />
</td>
</tr>
<tr>
<td class="row1"><b>{lang_image_allow_wiki}</b></td>
<td class="row1">
<input type="radio" name="image_allow_wiki" value="1" {image_allow_wiki_yes} />
{lang_yes}
<input type="radio" name="image_allow_wiki" value="0" {image_allow_wiki_no} />
{lang_no}
</td>
</tr>
STEP 8
öffne DEIN TEMPLATE FOLDER/member_uploadform.html
finde
edit YOUR TEMPLATE FOLDER/member_uploadform.html
find
<tr>
<td class="row2" valign="top"><b>{lang_keywords}</b></td>
<td class="row2">
<textarea cols="30" class="textarea" rows="10" name="image_keywords">{image_keywords}</textarea>
</td>
</tr>
füge darunter ein
insert after
<tr>
<td class="row1"><b>{lang_image_wiki}</b></td>
<td class="row1">
<input type="text" name="image_wiki" size="30" value="{image_wiki}" class="input" />
</td>
</tr>
<tr>
<td class="row1"><b>{lang_image_allow_wiki}</b></td>
<td class="row1">
<input type="radio" name="image_allow_wiki" value="1" />
{lang_yes}
<input type="radio" name="image_allow_wiki" value="0" />
{lang_no}
</td>
</tr>
STEP 9
öffne includes/db_field_definitions.php
füge über ?> folgendes ein
öffne includes/db_field_definitions.php
insert above ?> these
$additional_image_fields['image_allow_wiki'] = array($lang['image_allow_wiki'], "radio", 0);
$additional_image_fields['image_wiki'] = array($lang['image_wiki'], "text", 0);
STEP 10
öffne /lang/deutsch/main.php
füge über ?> folgendes ein:
edit /lang/deutsch/main.php
insert above ?>
$lang['image_allow_wiki'] = "Wikipedia anzeigen(sofern verfügbar?";
$lang['image_wiki'] = "Wikipedia Suchwort";
öffne /lang/english/main.php
füge über ?> folgendes ein:
edit /lang/english/main.php
insert above ?>
$lang['image_allow_wiki'] = "Show Wikipedia(if available?";
$lang['image_wiki'] = "Wikipedia Keyword";
STEP 11
Führe nun den INSTALLER aus
http .../WIKIPEDIA_INSTALL.PHP
:flag_en:
BROWSE to the INSTALLER
http .../WIKIPEDIA_INSTALL.PHP
Danke an bergblume und alle anderen für die Idee