4images Forum & Community
4images Modifications / Modifikationen => Mods & Plugins (Releases & Support) => Topic started by: rinaldos on June 05, 2009, 01:02:35 PM
-
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.......)
:flag-de:
Dieser MOD dient dazu, Artikel die zum Bildnamen passen, bei Wikipedia auszulesen und in deine Homepage zu integrieren.
Dazu sind folgende änderungen notwendig.
:flag-en:
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.htm
STEP 1
:flag-de:
ö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)
:flag-de:
Möchtest du alle Umlaute rausfiltern, ändere den Code wie folgt ab
finde
:flag-en:
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);
:flag-de:
ersetze
:flag-en:
replace
$image_wiki = preg_replace('/\\W/', '',$image_wiki);
// $zeichen = array('#', '?', '§', '$', '%', '&', '/', '(', ')', '=', '^', '°', '*', '@');
// $image_wiki = str_replace($zeichen,"",$image_wiki);
STEP 2
:flag-de:
öffne /details.php
finde:
:flag-en:
open /details.php
find
//-----------------------------------------------------
//--- Print Out ---------------------------------------
//-----------------------------------------------------
:flag-de:
füge darüber ein:
:flag-en:
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);
}
}
:flag-de:
suche:
:flag-en:
find
"lang_next_image" => $lang['next_image'],
"lang_file_size" => $lang['file_size']
));
:flag-de:
füge darüber ein
:flag-en:
insert above
"image_wiki" => $wiki,
"lang_wiki" => $lang['wikipedia'],
Step 3:
:flag-de:
öffne dein Template Verzeichnis/details.html
finde
:flag-en:
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>
:flag-de:
füge darunter ein (oder eben da, wo du den Auszug aus Wikipedia haben magst)
:flag-en:
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
:flag-de:
öffne /lang/deutsch/main.php
füge über ?> folgendes ein:
:flag-en:
edit /lang/deutsch/main.php
insert above ?>
$lang['wikipedia'] ="Textpassage aus Wikipedia<br><img src=\"{template_url}/images/wikipedia.jpg\" border=\"0\">";
:flag-de:
öffne /lang/english/main.php
füge über ?> folgendes ein:
:flag-en:
edit /lang/english/main.php
insert above ?>
$lang['wikipedia'] ="Text from Wikipedia<br><img src=\"{template_url}/images/wikipedia.jpg\" border=\"0\">";
Step 5
:flag-de:
kopiere das Bild in dein TEMPLATE ORDNER/images/
:flag-en:
copy the Picture into your Template Folder /images/
ADDED LATER ON - SPÄTER HINZUGEKOMMEN
STEP 6
:flag-de:
öffne /member.php
finde
:flag-en:
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'];
:flag-de:
füge darunter ein
:flag-en:
insert after
$image_allow_wiki = (isset($HTTP_POST_VARS['image_allow_wiki'])) ? intval($HTTP_POST_VARS['image_allow_wiki']) : $image_row['image_allow_wiki'];
:flag-de:
finde
:flag-en:
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\"" : "",
:flag-de:
füge darunter ein
:flag-en:
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'],
:flag-de:
finde
:flag-en:
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'],
:flag-de:
füge darunter ein
:flag-en:
insert after
"lang_image_allow_wiki" => $lang['image_allow_wiki'],
:flag-de:
finde
:flag-en:
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);
:flag-de:
füge darunter ein
:flag-en:
insert after
$image_allow_wiki = $HTTP_POST_VARS['image_allow_wiki'];
STEP 7
:flag-de:
öffne DEIN TEMPLATE FOLDER/member_editimage.html
finde
:flag-en:
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>
:flag-de:
füge darunter ein
:flag-en:
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
:flag-de:
öffne DEIN TEMPLATE FOLDER/member_uploadform.html
finde
:flag-en:
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>
:flag-de:
füge darunter ein
:flag-en:
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
:flag-de:
öffne includes/db_field_definitions.php
füge über ?> folgendes ein
:flag-en:
ö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
:flag-de:
öffne /lang/deutsch/main.php
füge über ?> folgendes ein:
:flag-en:
edit /lang/deutsch/main.php
insert above ?>
$lang['image_allow_wiki'] = "Wikipedia anzeigen(sofern verfügbar?";
$lang['image_wiki'] = "Wikipedia Suchwort";
:flag-de:
öffne /lang/english/main.php
füge über ?> folgendes ein:
:flag-en:
edit /lang/english/main.php
insert above ?>
$lang['image_allow_wiki'] = "Show Wikipedia(if available?";
$lang['image_wiki'] = "Wikipedia Keyword";
STEP 11
:flag-de:
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
-
... und danke für die Umsetzung und Veröffentlichung ...
... verschoben nach "Mods & Plugins (Releases & Support)" ...
-
Hi!
also ich muß noch immer lachen :D was es nicht alles für sachen gibt.
ich glaube der MOD wird der HIT. :thumbup:
mfg Andi
-
der MOD wird nicht der HIT - der MOD ist der Hit....
v.a. auch in verbindung mit der Anzeige von wikipedia artikeln in googlemaps :D
vielen dank nochmal an Ingo für die Hilfestellung zur Verwirklichung dieser Idee!!
-
Was ist denn mit "Möchtest du alle Umlaute rausfiltern, ändere den Code wie folgt ab" gemeint?
Werden dann öäü nicht umgewandelt oder doch!?
Ps.: GEILE MOD
-
Umlaute sind unter anderem Ä Ö Ü usw. Desweiteren werden damit auch alle Sonderzeichen §$%&/()=? und so aus dem Dateinamen gefilter.
Je nach Land gibt es eben einige Zeichen nicht und Wikipedia kommt mit den SONDERZEICHEN im Namen nicht klar. Daher bleibt es jedem selber überlassen, was er zulassen mag.
Sonderzeichen um Namen bringen unweigerlich Fehlermeldungen, daher mein Tip an alle. Nehmt keine Sonderzeichen im Namen. Also ein name wie: Tom & Jerry funktioniert, da & rausgenommen wird, aber Tom & Jerry & Daisy, macht schon Probleme.....
Mit dem \\W werden eben auch bei TOM & JERRY & DAISY die Zeichen entfernt. Dann kommt eben nur TOM JERRY DAISY raus ....
Gruß
-
zusätzlich zu diesem genialen mod kann man sich die wikipedia artikel auch in der googlemap anzeigen lassen (voraussetzung ist hierfür allerdings dieser MOD (http://www.4homepages.de/forum/index.php?topic=16533.0))
dann einfach folgenden map-overlay verwenden:
search for:
map.addControl(new GScaleControl());
add below:
map.addOverlay(new GLayer(\"org.wikipedia.de\"));
Beispiel auf: Tour Alpspitze (http://www.tourendatenbank.com/details.php?image_id=61)
gruss, bergblume
-
@ rinaldos,
kannst du das nicht erweitern? Also, dass z.B & dann in - umgewandelt wird?
Ebenso, dass Ä Ö Ü ä ö ü in - AE OE UE ae oe ue | Umgewandelt wird?
-
Eine Erweiterung bringt dir ja nichts. Da dieser MOD ja noch dem Bildnamen bei WIKI sucht. Und WIKI sich leider nicht nach unseren bzw deinen Bildnamen richtet. Ein TOM - Jerry wirst du genausowenig bei WIKI finden wie TOM JERRY. ggf. findest du Tom und Jerry. Ich denke das würde den Rahmen Sprengen, solange die Wörter verändern bis das auch eine Anzeige von WIKI kommt.
Daher habe ich einfach diese Zeichen entfernt und ein paar Bilder bei mir umbenannt. Zum Beispiel habe ich ein Bild mit dem Titel die Zwei, das stellt zwei Gänse dar, und laut Wiki sind diese beiden Gänse nun ein Teil der Filmreihe Die Zwei :-)
http://rinaldos.homeip.net/img11106.search.htm?l=deutsch
Gruß
-
Hi!
kannst du den mod noch erweitern,
das man sich aussuchen kann bei welchen bild wiki angezeigt wird, oder nicht angezeigt wird?
mfg Andi
-
@rembrandt
Wer soll sich das aussuchen? Der User, der ein Bild sieht, der, der ein Bild hochlädt, oder der ADMIN?
Gruß
-
Ich würde sagen, der, der ein Bild hoch lädt und der Admin.
Ich würde gerne auch noch eine kleine Erweiterung begrüßen und zwar:
Kann man das Wiki auch in der Kategorieansicht ausegen?
Also der Name der Kategorie, soll im Wiki gesucht werden!?
-
@rembrandt
Wer soll sich das aussuchen? Der User, der ein Bild sieht, der, der ein Bild hochlädt, oder der ADMIN?
der admin, b.z.w der es hochladet
bei reportage bilder die keine namen haben sondern z.b. nur nummern wäre das sehr praktisch.
mfg Andi
-
Kann man das Wiki auch in der Kategorieansicht ausegen?
Also der Name der Kategorie, soll im Wiki gesucht werden!?
@Benny - das interesiert mich auch
Wissen jemand , ob ist das moglich fur kategorien diese Mod auch benutzen oder kategorien name (nicht Bilde name ) im detail abnehmen ? For example alles bilden mit Deutschland Thema im Deutschland kategorie wurde Wikipedia Deutschland info haben ,
Danke Daniel
Does anybody knows if is this possible to use this for Wkipedia Category ? or to use Category name for Image Wikipedia info description (in details.html) it means that for example all Germany pictures in Germany category will use Germany category name to have Germany Wiki info description (pictures should have different names )Thanks Daniel
-
ADDON für KATEGORIEN
öffne /includes/functions.php
füge über ?> folgendes ein
function get_wiki_cat($cat_name) {
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_name = preg_replace('/\\W/', '',$image_name);
$zeichen = array('#', '?', '§', '$', '%', '&', '/', '(', ')', '=', '^', '°', '*', '@');
$cat_name = str_replace($zeichen,"",$cat_name);
if(!$cat_name) return false;
//Gesamter Test aus der Wiki-API nehmen
$url = "http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=".$cat_name;
$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);
$summary .= "<a href = 'http://de.wikipedia.org/wiki/$cat_name'>Quelle: Wikipedia</a>";
//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;
}
Damit weniger Informationen dargestellt werden einfach folgende Zeilen entfernen. Achtet darauf das Ihr RÜCKWÄRTS entfernt. Nicht einfach zwischendrin eine Zeile entfernen!!!!!!!
$summary .= $match[0][1];
$summary .= $match[0][2];
$summary .= $match[0][3];
$summary .= $match[0][4];
$summary .= $match[0][5];
$summary .= $match[0][6];
Öffne /categories.php
finde:
//-----------------------------------------------------
//--- Print Out ---------------------------------------
//-----------------------------------------------------
füge darüber ein:
$cat_name = format_text($cat_cache[$cat_id]['cat_name'], 2);
$wiki = get_wiki_cat($cat_name);
finde
$site_template->register_vars(array(
"msg" => $msg,
füge darunter ein
"cat_wiki" => $wiki,
"lang_wiki" => $lang['wikipedia'],
öffnet DEIN TEMPLATE FOLDER/categories.html
finde:
<br />{cat_description} (Hits: {cat_hits})
ersetze mit: (DESIGN IS YOURS)
{if cat_description}<small>{cat_description} (Hits: {cat_hits})</small>{endif cat_description}
{if cat_wiki}<br><small>{lang_wiki}<br>{cat_wiki}</small>{endif cat_wiki}
DEMO:
http://rinaldos.homeip.net/cat307.htm?l=deutsch
-
:D super
-
WoW, das muss getestet werden
LG
-
Danke vielmals für das Addon!
Habs noch nicht eingebaut, läuft das unter der 1.7.7 ? Dann hau ich das in meiner Liste rein:
http://www.4homepages.de/forum/index.php?topic=24888.0
-
Hi!
...
Habs noch nicht eingebaut, läuft das unter der 1.7.7 ? ...
ja sicher, du liest eindeutig zu wenig, hast du meine antwort hier nicht gelesen?
http://www.4homepages.de/forum/index.php?topic=24961.msg136670#msg136670
@rinaldos
ich habe zusätzlich bei mir die Quelle des Artikels angegeben:
vor:
$summary = utf8_decode($summary);
habe ich diese zeile eingefügt:
$summary .= "<a href = 'http://de.wikipedia.org/wiki/$cat_name'>Quelle: Wikipedia</a>";
mfg Andi
-
Codeupdate im ersten POST. Schritte 6 - 11 sind neu hinzugekommen, sowie ein INSTALLER. Nun kann beim UPLOAD, bzw. beim IMAGE_EDITIEREN entschieden werden, ob WIKI Infos angezeigt werden.
Wichtig für alle die bisher die Version installiert hatten. STEP 2 wurde geändert.
finde in details.php
$wiki = get_wiki($image_name);
ersetze durch
if ($image_row['image_allow_wiki'] == 1){
$wiki = get_wiki($image_name);
}else {
$wiki = "";
}
Das sollte es dann auch gewesen sein ......
-
$summary .= "<a href = 'http://de.wikipedia.org/wiki/$cat_name'>Quelle: Wikipedia</a>";
mfg Andi
Hab ich mit aufgenommen :-) Danke :-)
-
Saubere Arbeit! :lol: 8)
-
Hi, einiges ist ja erst ab PHP 5 verfügbar, wie soll denn diese Stelle in PHP 4 lauten ?
$xml = simplexml_load_file($url);
LG Harald
-
@Jan-Lukas
... ich denke mal mit PHP4 wirst du mit diesem MOD dann nicht weiter kommen ... leider ...
... andererseits haben auch nicht alle Hoster die Funktion "simplexml_load_file" selbst bei PHP5 aktiviert ...
... da heist es dann meist aus "Sicherheitsgründen" nicht aktiviert ...
@rinaldos
... auf diese event. Einschränkungen solltest du in der MOD-Beschreibung hinweisen ...
... sonst kommen später immer die selben Fragen, wenn der Thread länger wird ...
... also ...
- 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 ...
-
Hier wird aber ein Weg beschrieben, nur kann ich da nichts mit anfangen :cry:
weiss auch noch gar nicht ob der Mod bei uns was bringt, nur würde es gerne mal testen.
http://www.yagemi.de/tipps-und-tricks/php/xml-verarbeitung-in-php4-und-php5/
-
@Jan-Lukas
... dein Link zeigt einen interessanten Lösungsansatz, den man unter PHP4 sicher mal testen sollte ...
... und der MOD bei dir ...
... ich denke mal, wenn du mit den Bild-Namen bei dir nach Wiki-Inhalten suchst, so wird sich oft 'ne leere Seite zeigen ...
... die Frage nach dem Sinn bei dir ist also berechtigt ...
@Alle
... da der Bildname nicht immer (meistens sogar nicht) den gewünschten Wiki-Inhalt bringt, habe ich mal andere Varianten getestet ...
... 1.Variante ... Suche nach Wiki-Inhalten mit dem ersten Keyword ... ist schon besser, hatte bei mir aber noch "Nebenwirkungen" ...
... 2.Variante ... Ich habe ein neues Image_Field : image_wiki angelegt ... das läuft schon wesentlich besser ...
... das Feld kann beim Upload frei gewählt werden und durch Editieren es Bildes auch schnell geändert werden ...
... und so ist die Suche nach sinnvollen Wiki-Inhalten erfolgreicher ...
... neues Image_Field : http://www.4homepages.de/forum/index.php?topic=20748.0 ...
-
Hi!
hier die funktion für PHP 4
ladet euch die vorher diese datei (http://www.media-palette.de/xml-line.zip) herrunter, und kopiert sie in den ordner " includes"
require_once("xml-line.php");
function get_wiki_cat($cat_name) {
global $user_info, $site_db, $session_info, $config;
// $image_name = preg_replace('/\\W/', '',$image_name);
$zeichen = array('#', '?', '§', '$', '%', '&', '/', '(', ')', '=', '^', '°', '*', '@');
$cat_name = str_replace($zeichen,"",$cat_name);
if(!$cat_name) return false;
//Gesamter Text aus der Wiki-API nehmen
$xmlfile = "http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=$cat_name";
$xml = new xml_line($xmlfile,"xml");
$xml->get_record(1,"text");
$xml->xml_stream();
$text = $xml->table_result[1][1]['text'];
$text = $xml->get_output();
$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 .= "<a href = 'http://de.wikipedia.org/wiki/$cat_name'>Quelle: Wikipedia</a>";
$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;
}
mfg Andi
-
Supi, kann es aber erst heute Abend testen, und werde es mit der Variante von Detlev testen
... 2.Variante ... Ich habe ein neues Image_Field : image_wiki angelegt ... das läuft schon wesentlich besser ...
-
@MAWENZI,
ich habe deine IDEE mit dem extra Feld gerade umgesetzt. Poste gleich die Änderungen.
Neuerungen:
- Extra IMAGE_FELD für das Wiki Suchwort
- Wenn kein WIKI Suchwort angegeben, dann wird der Bildname genommen.
folgende Änderungen für die, die bisher den MOD installiert haben.
ONLY UPDATE, IF YOU HAVE INSTALLED THIS MOD BEFORE 06.06.2009 0940z
NUR UPDATE, SOFERN DU DIESEN MOD VOR DEM 06.06. 0940z (1140 MEST) INSTALLIERT HAST
insert above ?>
/includes/db_field_definitions.php
$additional_image_fields['image_wiki'] = array($lang['image_wiki'], "text", 0);
/lang/deutsch/main.php
insert above?>
$lang['image_wiki'] = "Wikipedia Suchwort";
/lang/english/main.php
insert above?>
$lang['image_wiki'] = "Wikipedia Keyword";
/includes/functions.php
replace the whole wiki function
function get_wiki($image_wiki) {
global $user_info, $site_db, $session_info, $config;
// $image_name = preg_replace('/\\W/', '',$image_name);
$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;
}
/details.php
find
if ($image_row['image_allow_wiki'] == 1){
$wiki = get_wiki($image_name);
}else {
$wiki = "";
}
ersetze / replace
$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);
}
}
füge in DEIN TEMPLATEFOLDER/member_editimage.html
<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>
füge in DEIN TEMPLATEFOLDER/member_uploadform.html
<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>
Datenbank mit phpmyadmin / INSTALLER FOLGT
ALTER TABLE `4images_images` ADD `image_wiki` VARCHAR( 255 ) NOT NULL ;
MODCODE UPDATE FOLGT!!
-
Sauber ^^, wird ja immer besser :D
-
Will you help me have a Turkish character problem.
-
I will try, which character makes the Problem?
-
http://www.elemegim.info/r-haber-resimler-30-civciv-4204.html?l=turkce
There are links, please review
-
Sorry, i can not help you, everytime i will be redirect to start Page, and you have a limitation with 5 pictures per guest.
Your link you posted doesn't work for me, if i click there, i will redirect to:
http://www.elemegim.info/?l=turkce
Greets
-
ok sorry now edit.
http://www.elemegim.info/r-test-64-tavuk-4205.html?l=turkce
-
Ok, but there is the wiki infos shown. What kind of Problem do you have exactly?
-
(familyas?ndan evcille?tirilebilir bir ku? türüdür ve genelde çiftliklerde yeti?tirilir?)
Turkish state in this manner must be
familyasýndan evcilleþtirilebilir bir kuþ türüdür ve genelde çiftliklerde yetiþtirilir)
proplem:
ý=?
þ=?
ö=?
ð=?
-
did you gave a special keyword for wiki, or is it from the filename. Maybe there are problems with some turkish character :-(
-
please to look the original topic
the orginal topic no proplem
http://tr.wikipedia.org/wiki/Tavuk
-
Thats a Bigger Problem. It depends on the ISO CHARACTER SET. Your Website ist formated in charset=iso-8859-9 (turkish), The Artikel in WIKI is formated in UTF-8.
if you remove these line in functons.php
$summary = utf8_decode($summary);
and you will reload your website, there are several special charackters. Now change the charset in the Webbrowser to UTF-8 and everything will be shown ok. Maybe you have to reorganize your Website completly to UTF-8.
Otherwise there is a hint on php.net: http://www.php.net/utf8_encode (look for iso-8859-9). To make your Problem a little bit smaller,
add above ?> in functions.php
function str_encode_iso_8859 ($string,$to="iso-8859-9",$from="utf8") {
$str_array = array(
chr(196).chr(177) => chr(253),
chr(196).chr(176) => chr(221),
chr(195).chr(182) => chr(246),
chr(195).chr(150) => chr(214),
chr(195).chr(167) => chr(231),
chr(195).chr(135) => chr(199),
chr(197).chr(159) => chr(254),
chr(197).chr(158) => chr(222),
chr(196).chr(159) => chr(240),
chr(196).chr(158) => chr(208),
chr(195).chr(188) => chr(252),
chr(195).chr(156) => chr(220)
);
return str_replace(array_keys($str_array), array_values($str_array), $string);
return $string;
}
ach change
$summary = utf8_decode($summary);
to
$summary = str_encode_iso_8859($summary);
The result is:
WIKI
2003 yılında 24 milyar nüfus ile, Dünya'da en fazla bulunan kuş türüdür. İnsanlara iki çeşit sık kullanılan besin kaynağı sunarlar: etleri ve yumurtaları. Tavuklar uçamayan kuşlardandır. Yumurta ile çoğalırlar. Akciğerleri ile nefes alan tavuklar, otçul hayvanlardır.
And with the new function
2003 yýlýnda 24 milyar nüfus ile, Dünya'da en fazla bulunan kuþ türüdür. Ýnsanlara iki çeþit sýk kullanýlan besin kaynaðý sunarlar: etleri ve yumurtalarý. Tavuklar uçamayan kuþlardandýr. Yumurta ile çoðalýrlar. Akciðerleri ile nefes alan tavuklar, otçul hayvanlardýr.
Not exactly the same, but i think a little bit better. To solve the whole Problem, is to format the Webpage to UTF-8 character. I think. Sorry, i have no more Idea :-(
Greets
ingo
-
Was perfect. Thank you very much.
the link : http://www.elemegim.info/r-test-64-tavuk-4205.html?l=turkce
-
ich habe noch eine frage:
wie kann ich z.b. diesen wikipedia-artikel bei mir integrieren?
http://de.wikipedia.org/wiki/Hirschberg_(Bayern)
ich habe bereits als eingabe folgendes probiert:
Hirschberg_(Bayern)
Hirschberg (Bayern)
bei beiden Einträgen erscheint dann nichts...
wenn ich nur "Hirschberg" eingebe, wird diese Seite http://de.wikipedia.org/wiki/Hirschberg ausgespuckt (die ich aber nicht haben möchte)
daher die frage zum umgang bei wiki-artikeln mit Nachsatz in Klammern....
-
Hi!
in deinem wunschlink ist die letzte klammer nicht mit verlinkt.
edit: soeben bei mir ausprobiert, funktioniert.
mfg Andi
-
was hast du in dein wiki-feld eingetragen??
-
Hirschberg_(Bayern)
mfg Andi
-
hi andi,
danke für deine antwort...
bei mir funktioniert es leider (noch) nicht...
kannst du mir mal bitte deinen wiki-code aus deiner functions.php hier kurz posten...
danke!
-
na sicher.
ich habe ihn ein bischen geändert damit die textausgabe richtig dargestellt wird.
function get_wiki($image_wiki) {
global $user_info, $site_db, $session_info, $config;
// $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 = utf8_decode($summary);
$summary = str_replace('?','"',$summary);
$image_wiki = str_replace(' ','_', $image_wiki);
$summary .= "<a href='http://de.wikipedia.org/wiki/$image_wiki' onclick=\"void(window.open(this.href, '', '')); return false;\" >Quelle:Wikipedia</a>";
//wenn Artikel nicht vorhanden
if($summary == "<p><b>Artikel verschwunden?</b></p>") return false;
//Links auf interne Seite ändern
$summary = str_replace('href="#',"href=\"http://de.wikipedia.org/wiki/$image_wiki#", $summary);
$summary = str_replace('href="/wiki/', 'href="http://de.wikipedia.org/wiki/', $summary);
return $summary;
}
mfg Andi
-
danke-.....
mhhmmm.....
also bei mir klappt das immer noch nicht :?
normal "hirschberg" klappt aber "hirschberg_(bayern)" klappt nicht...
-
hast du die funktion genauso übernommen?
edit: sehe gerade auf deiner seite fehlen im link die klammern,
unten in der statuszeile vom IE explorer sieht man sehr schön den link wenn man über "quelle: wikipedia" fährt
-
@Bergblume
Rinaldo helped me out like this , maybe will help you too
I had the problems with Austria(33).jpg , Austria was correct
Rinaldo hab mir gehillft :
http://www.4homepages.de/forum/index.php?topic=24928.msg136689#msg136689
-
hast du die funktion genauso übernommen?
edit: sehe gerade auf deiner seite fehlen im link die klammern,
unten in der statuszeile vom IE explorer sieht man sehr schön den link wenn man über "quelle: wikipedia" fährt
ja, aber es funktioneirt nicht ... http://www.tourendatenbank.com/details.php?image_id=384
Edit: doch jetzt klappt es!! danke, andi!!! habe meinen cache leeren müssen!!!
folgenden code vor ?> in der functions.php habe ich verwendet:
function get_wiki($image_wiki) {
global $user_info, $site_db, $session_info, $config;
// $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;
}
-
rofl, wollte es gerade schreiben :D
na fein ist das auch erledigt, wünsche dir eine gute nacht!
mfg Andi
-
ebenso! danke nochmals!
-
Hallo Leute,
den MOD von rinaldos finde ich klasse.
Vom ersten Beitrag bis jetzt sind ja viele Sachen dazu bzw. abgeändert worden. Da ich nicht so fit bin in der Sache wollte fragen, ob es quasi eine aktuelle Beschreibung ( wie Post Nr. 1 ) noch einmal geben wird. So das auch "Dummis" den durchblick haben.
Für mich ist die Funktion wichtig, das der Admin bzw. User ( der ein Bild hochlädt ) bestimmen kann ob Wiki angezeigt werden kann. Wiki quasi einmal in der ausführlichen Version oder in der kurzversion
Gruss
Tom
-
@tom69,
dann nimm den POSt 1, der funktioniert. Der link zwischendrin ist nur eine andere Darstellung vom REMBRANDT, oder die Postings danach, behandeln die Probleme der einzelnen User. Also POST 1 sollte so wie er ist funktionieren....
LG
Ingo
-
Help me pls,
http://www.tourendatenbank.com/details.php?image_id=410
this page description rss , wikipedia rss not!
http://www.tourendatenbank.com/rss.php?action=comments&image_id=410
description + wkipedian rss feed add?
Help pls?
:oops: :cry:
-
Ein HALLO in die Runde, :D
Dieser MOD ist natürlich klasse, nur leider bekomme ich ihn nicht hin.
Fatal error: Call to undefined function: simplexml_load_file() in /homepages/31/d34389461/htdocs/Flash/4images/includes/functions.php on line 1798
Die Funktion "simplexml_load_file" müsste vorhanden sein laut 1und1, der Index Datei habe ich die Endung .php5 gegeben damit php5 angesprochen wird,
Desweiteren habe ich eine weitere Date eingebaut ".htaccess" mit diesem Inhalt
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
Alles damit PHP5 angesprochen wird, aber es klappt nicht, ich habe Step 6-8 nicht durchgeführt weil ich keine Member habe, dass wird ja wohl nicht der Grund sein?! :?
Hat jemand ein TIP?
Lg
UssVoyager :roll:
-
Hi!
...
Alles damit PHP5 angesprochen wird, aber es klappt nicht, ich habe Step 6-8 nicht durchgeführt weil ich keine Member habe, dass wird ja wohl nicht der Grund sein?! :?
...
nein das ist nicht der grund.
versuche es halt mal damit: http://www.4homepages.de/forum/index.php?topic=24975.msg136738#msg136738
mfg Andi
-
Help me pls,
http://www.tourendatenbank.com/details.php?image_id=410
this page description rss , wikipedia rss not!
http://www.tourendatenbank.com/rss.php?action=comments&image_id=410
description + wkipedian rss feed add?
Help pls?
:oops: :cry:
hey help me pls,
this e print rss , wkipedia
image decription + wikipedia --> rss print
pls help
-
Hi Andi,
das klappt leider auch nicht :? schade.
Fatal error: Call to undefined function: get_wiki()
Laut 1und1 Support dürfte es keine Probleme geben.
1und1 Support:
SimpleXML ist vorhanden.
Eine Liste der installierten PHP-Module und -Einstellungen (phpinfo())
finden Sie hier:
Version 4 (.php/.php4):
http://ihre-webhosting-domain.de/php/phpinfo.php
Version 5 (.php5):
http://ihre-webhosting-domain.de/php/phpinfo.php5
PHP5 ist bereits auf Ihrer Präsenz verfügbar. Skripte, welche durch den
PHP5-Parser analysiert werden sollen, müssen die Endung ".php5" tragen
(für PHP4 die Endung ".php4").
Alternativ können Sie eine Datei namens ".htaccess" (ohne
Anführungszeichen) mit folgendem Inhalt in dasselbe Verzeichnis ablegen,
in dem sich auch die betroffenen Skripte befinden:
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
Damit werden alle PHP-Skripte als PHP5-Dateien behandelt.
MFG
UssVoyager
-
...
PHP5 ist bereits auf Ihrer Präsenz verfügbar. Skripte, welche durch den
PHP5-Parser analysiert werden sollen, müssen die Endung ".php5" tragen
(für PHP4 die Endung ".php4").
Alternativ können Sie eine Datei namens ".htaccess" (ohne
Anführungszeichen) mit folgendem Inhalt in dasselbe Verzeichnis ablegen,
in dem sich auch die betroffenen Skripte befinden:
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php....
wenn du eine htaccess date erstellt hast, darfst du die dateiendungen nicht *php5 bennen.
das klappt leider auch nicht schade.
Fatal error: Call to undefined function: get_wiki()
ist auch klar, wenn du meinen post den ich dir verlinkt habe, unverändert übernimmst.
in meinen post geht es um die categorie, (get_wiki_cat) und nicht wie bei dir um get_wiki.
mfg Andi
-
Hi Andi,
Deine Verlinkung aus der vorletzten Nachricht verstehe ich als Plan "B" wenn PHP5 nicht zur Verfügung steht, ich habe PHP5 Endungen beseitigt und die ".htaccess" weiter nach Vorne gesetzt, die Seite (Detail-Ansicht) wird jetzt zumindest angezeigt, mit 3 Fehlermeldungen, vorher wurde sie gar nicht angezeigt, ich würde also noch an Plan "A" festhalten so wie vorne im Mod beschrieben.
An welcher Stelle wir die "1" vorgegeben, dass Wiki angezeigt wird, ich würde gerne ein "0" davon machen, denn dann habe ich zumindest schon mal keine Fehlermeldung mehr.
Warning: simplexml_load_file() [function.simplexml-load-file]: URL file-access is disabled in the server configuration in /homepages/31/d34389461/htdocs/Flash/4images/includes/functions.php on line 1798
Warning: simplexml_load_file(http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=Duisburg%20Hochfeld%201940) [function.simplexml-load-file]: failed to open stream: no suitable wrapper could be found in /homepages/31/d34389461/htdocs/Flash/4images/includes/functions.php on line 1798
Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=Duisburg%20Hochfeld%201940" in /homepages/31/d34389461/htdocs/Flash/4images/includes/functions.php on line 1798
ich hoffe Du hast noch Geduld mit mir
ralf
-
....
An welcher Stelle wir die "1" vorgegeben, dass Wiki angezeigt wird, ich würde gerne ein "0" davon machen, denn dann habe ich zumindest schon mal keine Fehlermeldung mehr.
..
siiischa siiiischa.... :)
in der datenbank wird die "1" vorgegeben, das habe ich bei mir auch auf "0" gestellt.
kopier die htaccess auch mal in den admin ordner.
und die ".htaccess" weiter nach Vorne gesetzt,
wie meinst du das?
mfg Andi
-
HI
wie meinst du das?
in einen übergeordneten Ordner, sie wirkt dann ja für alle Unterordner, so habe ich zumindest gelesen.
Ich habe .htaccess jetzt im Admin Ordner aber keine Änderung!
Nachtrag:( Der Nachtrag hat sich auch schon erledigt,es geht, wer Wiki nicht aktiviert haben möchte, die beiden Nullen unten (BLAU) in der WIKIPEDIA_INSTALL eintragen.)
Wenn ich in der WIKIPEDIA-INSTALL die beiden Blauen "0" eintrage, kann ich dann noch mal drüber installieren, so das ich alle Bilder mit null habe, denn jetzt habe ich alle mit einer eins, und nach meiner Änderung von Hand werden nur die neuen mit null abgespeichert?
Oder kann es beim drüber installieren Probleme geben?
"WIKIPEDIA-INSTALL"
$sql_data = array(
"ALTER TABLE ".IMAGES_TABLE." ADD `image_allow_wiki` TINYINT( 1 ) NOT NULL DEFAULT '0'",
"ALTER TABLE ".IMAGES_TEMP_TABLE." ADD `image_allow_wiki` TINYINT( 1 ) NOT NULL DEFAULT '0'",
"ALTER TABLE ".IMAGES_TABLE." ADD `image_wiki` VARCHAR( 255 ) NOT NULL"
Lg
ralf
Aktueller Stand : http://www.die-bildersammlung.de/details.php?image_id=670
Es wird nichts angezeigt das Bild müsste einen WIKI Eintrag haben, bin diesen Weg jetzt gegangen http://www.4homepages.de/forum/index.php?topic=24975.msg136738#msg136738
-
Hi!
lösche doch die tabellen ganz einfach, und erstell sie dann mit default "0" neu.
mfg Andi
-
Hi Andi,
habe ich ja gemacht, habe die alte Datenbank wiederhergestellt und mit "WIKIPEDIA-INSTALL" neu Installiert, natürlich mit default "o".
Ist denn jemand bei 1und1 der diesen MOD am laufen hat?
Lg
ralf
-
Ich bekomme diesen Fehlerhinweis...
Kann mir mal wieder jemand einen Tip geben? ;-)
Fatal error: Call to undefined function: get_wiki() in /var/www/XXX/html/Galerie/details.php on line 941
-
Hi
Hast du auch die Änderungen in der functions.php durchgeführt? Der Fehler zeigt nur an, das er die Funktion nicht findet.
Anscheinend hast du entweder einen Tipfehler, oder die Änderung nicht durchgeführt.
Gruß
-
Ja, hab ich. Allerdings hab ich " $xml = simplexml_load_file($url); " mal rausgelöscht, da diese Funktion nicht geht...
-
Das habe ich extra in ROT ganz am Anfang geschrieben. Diese Funktion muss dein Hoster anbieten. Ansonsten wird es nicht funktionieren.
Ich habe auch noch keinen anderen Weg gesehen......
Gruß
-
@Fryz
... " $xml = simplexml_load_file($url); " ist die absolute Grundlage für die Wikipedia Modifikation ... ;) ...
... sollte diese Funktion für deinen Webspace nicht aktiviert sein, so hat sich diese Modifikation für dich erledigt ... sorry ...
...edit ... rinaldos was faster ... :D
-
Ok, alles klar. Ich danke dir :-)
-
Hi!
...... sollte diese Funktion für deinen Webspace nicht aktiviert sein, so hat sich diese Modifikation für dich erledigt ... sorry ...
....
und mit dem gehts nicht?
http://www.4homepages.de/forum/index.php?topic=24975.msg136738#msg136738
mfg Andi
-
Nein, leider nicht. Ich habs versucht...
-
Hallo Andi,
... danke für den Hiweis ...
... irgendwie habe ich diesem Post noch nicht genug Beachtung geschenkt und die Sache so noch nicht getestet ...
... werde es dann nachholen ...
-
Nein, leider nicht. Ich habs versucht...
was kommt den für eine fehlermeldung, b.z.w. welche php version hast du?
mfg Andi
-
Hab grad gesehen, daß ich PHP 5 benutzen kann (http://gallery.house-of-qubus.de/phpinfo.php (http://gallery.house-of-qubus.de/phpinfo.php)
Der Fehlerhinweis ist: Fatal error: Call to undefined function get_wiki() in /var/www/XXX/html/Galerie/details.php on line 941
-
Hab grad gesehen, daß ich PHP 5 benutzen kann (http://gallery.house-of-qubus.de/phpinfo.php (http://gallery.house-of-qubus.de/phpinfo.php)
dann stell deine galerie auf php5 um dann funktioniert auch dieser mod,
Der Fehlerhinweis ist: Fatal error: Call to undefined function get_wiki() in /var/www/XXX/html/Galerie/details.php on line 941
@rinaldos hat dir das schon gesagt, da hast du was beim einbau falsch gemacht.
-
hi ingo - hallo andi,
unser toller Wiki-MOD scheint leider nicht mehr zu funktionieren - sowohl bei dir als auch bei mir kommt nun folgende Fehlermeldung:
Warning: simplexml_load_file(http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=K%FCken) [function.simplexml-load-file]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /srv/www/rinaldos/includes/functions.php on line 4298
Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=K%FCken" in /srv/www/rinaldos/includes/functions.php on line 4298
wie können wir das problem lösen?
Gruss, bergblume
-
... bis gestern lief noch alles bestens ...
... offensichtlich stellt Wikipedia die API nicht mehr zur Verfügung ...
... die Fragen sind : ... ist das temporär ? , ... oder dauerhaft ? ... und gibt es eine Alternative ?
... ähnliche Vorfälle gab es auch bei der Google-Wetter-API ... doch diese wurde immer nur geändert ...
... muss mich bergblume anschließen : gibt es Erkenntnisse dazu ... ?
-
Komisch ist ja nur, wenn ich via Webbrowser http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=Liebe den Link aufrufe, wird mir auch alles angezeigt.
Vielleicht geht es ja bald von selber wieder, in der Zwischenzeit werde ich mir das mal ein wenig genauer anschauen, mit deren API :-)
Gruß
Stoff zum lesen gibbet hier :-)
http://de.wikipedia.org/w/api.php
-
@ rinaldos ...
... sehr reichlich zu lesen ... ;)
... ich denke auch, bevor wir hier in Panik verfallen, sollten wir zunächst noch etwas abwarten ...
... eventuell renkt sich die API ja wieder von alleine ein (also alles temporär) ...
-
ja, ich hoffe auch, dass es nur ein temporäres problem ist..
wie gesagt - heute ist es mir zum ersten mal aufgefallen... gestern ging es auch bei mir noch...
-
zum kurzfristigen deaktivieren, einfach in der details.php folgende Zeile ändern
if ($image_row['image_allow_wiki'] == 1){
nach
if ($image_row['image_allow_wiki'] == 2){
Gruß
P.S. Nur merken, nicht das nachher wild Fehler gesucht wird, wie man den MOD wieder aktiviert :-)
-
@rinaldos ...
... da die xml-Datei ja angezeigt wird, so muss man davon ausgehen, dass die API noch funktionstüchtig ist ...
... offensichtlich hat Wikipedia ( analog Google bei der Wetter-API ) Code-Änderungen vorgenommen ...
... und so werden die gewünschten Textpassagen nicht mehr an der bisherigen Stelle gefunden ...
... das Parsen der xml-Datei für diesem MOD müsste also überarbeitet werden ...
-
Ich habe die Funktion nun nur um einen USER_AGENT erweitert. Anscheinend sperrt WIKI nun alle Browser_USER_AGENT von PHP.
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_name = preg_replace('/\\W/', '',$image_name);
$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);
$summary = str_replace('?','"',$summary);
$image_wiki = str_replace(' ','_', $image_wiki);
$summary .= "<a href='http://de.wikipedia.org/wiki/$image_wiki' onclick=\"void(window.open(this.href, '', '')); return false;\" >Quelle:Wikipedia</a>";
//wenn Artikel nicht vorhanden
if($summary == "<p><b>Artikel verschwunden?</b></p>") return false;
//Links auf interne Seite ändern
$summary = str_replace('href="#',"href=\"http://de.wikipedia.org/wiki/$image_wiki#", $summary);
$summary = str_replace('href="/wiki/', 'href="http://de.wikipedia.org/wiki/', $summary);
// $summary = ereg_replace('</a>', '', $summary);
return $summary;
}
Damit klappt es nun bei mir, fraglich wie lange....... Wäre schön wenn das jemand mit dieser funktion, bzw mit der Erweiterung
ini_set('user_agent', '(Windows; U; Windows NT 6.1; de; rv:1.9.2) Gecko/20100115 Firefox/3.6');
bestätigen könnte.......
Gruß
-
servus ingo!
du bist genial (bin immer wieder erstaunt, wie du/ ihr solche probleme so schnell lösen könnt 8O )
also bei mir funktioniert es nun wieder einwandfrei" :thumbup:
gruss, bergblume
-
Google war eben mein Freund, und in irgendeinem Forum hatte zufällig einer so ein ähnliches Problem, und als er einen USER Agenten definiert hatte, klappte es bei ihm.
Nur eben die Sucherei die dauert manchmal :-) Aber schön das es im Moment wieder geht. Schauen wir mal wie lange noch .....
Hast du nur den "USER AGENT" hinzugefügt?
Gruß
-
ja, ich habe exakt nur die zeile in meiner functions.php hinzugefügt:
ini_set('user_agent', '(Windows; U; Windows NT 6.1; de; rv:1.9.2) Gecko/20100115 Firefox/3.6');
mehr nicht!
-
POST auf Seite 1 (Schritt 1) wurde mit
ini_set('user_agent', '(Windows; U; Windows NT 6.1; de; rv:1.9.2) Gecko/20100115 Firefox/3.6');
aktualisert.
An alle die immer noch Probleme mit dem Fehler
Warning: simplexml_load_file(http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=K%FCken) [function.simplexml-load-file]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden
haben, bitte Schritt 1 erneut ausführen!.
Gruß
Ingo
-
...ini_set('user_agent', '(Windows; U; Windows NT 6.1; de; rv:1.9.2) Gecko/20100115 Firefox/3.6');
...
astrein :thumbup:
mfg Andi
-
Ingo Du bist genial :thumbup:
Gruß Helge
-
... danke Ingo für die schnelle Lösung ...
... gaukeln wir nun alle Wikipedia vor, dass wir direkt mit Firefox die xml-Datei betrachten ... ;)
-
... bis wikipedia die server ip nicht sperrt (wegen abusivem handling)
dann... haleluja ;)
lieber nachfragen, warum es geändert wurde
-
Wie kann ich denn in der Datenbank alle Bilder auf null stellen, habe den Mod installiert, und ich würde gerne die Bilder selber aktivieren, stehen aber schon in der Datenbank mit "1"
mit Hand wäre das was mühselig :wink:
LG
Edit: hat sich erledigt, hab die Install geändert
LG
-
Mit phpmyadmin
Du wählst deine Tabelle 4images_images aus, und gibst dann bei SQL folgendes ein:
update 4images_images SET image_allow_wiki = 0 WHERE image_allow_wiki = 1
Damit sollte eigentlich das ganze für alle Bilder deaktiviert werden. Weiterhin in den Feldeigenschaften image_allow_wiki solltest du die default Werte auf 0 setzen, sofern die nicht schon darauf stehen.
Der MOD ist nun schon etwas älter, werde den mir morgen mal zu Gemüte führen :-)
Gruß
Ingo
-
Danke, aber habe wie gesagt, die Install abgeändert, da ich noch am testen bin, war das die einfachste Lösung :wink:
solltest Du aber generell auf "null" stehen lassen.
TOP Mod, klappt so auch in der 1.7.7
LG
-
Habe einen neuen Installer hochgeladen, der MOD ist nun nach der Installation erst einmal deaktiviert.
Gruß
-
kannst Du oder Andy evtl. die Erweiterung von Andy da noch mit einbauen (Links zu Wiki)
http://www.4homepages.de/forum/index.php?topic=24975.msg137246#msg137246
die müsste nämlich neu angepasst werden, weil sie so eine Fehlermeldung ausgibt.
http://www.4homepages.de/forum/index.php?topic=24975.msg145620#msg145620
LG
-
kannst Du oder Andy evtl. die Erweiterung von Andy da noch mit einbauen (Links zu Wiki)
....
^
wer...wie...was...wo? fehlermeldung?
die geschichte mit dem useragent hast du eingebaut? http://www.4homepages.de/forum/index.php?topic=24975.msg145631#msg145631
-
Autsch, den hab ich übersehen ;) klappt jetzt
Kann man etwas gegen die roten Links machen, die erzeugen ja einen Link zur eigenen (nicht vorhandenen Seite)
Danke für den Schubs :wink:
LG
-
...
Kann man etwas gegen die roten Links machen, die erzeugen ja einen Link zur eigenen (nicht vorhandenen Seite)...
meinst du die links in den eckigen klammern, das ist auch in dem von mir verlinkten post.
nach
//Links auf interne Seite Ändern
//Links auf interne Seite Ändern
$summary = str_replace('href="#',"href=\"http://de.wikipedia.org/wiki/$image_wiki#", $summary);
$summary = str_replace('href="/wiki/', 'href="http://de.wikipedia.org/wiki/', $summary);
mfg Andi
-
Die Geschichte mit dem Useragenten ist aber auch im FIRST POST :-) Ich habe nur den INSTALLER aktualisiert, da JAN meinte es wäre sinnvoll, das der MOD nicht von vornerein aktiv ist. Hat er ja auch recht :-)
Mal schauen wann wir den IE als User-Agenten nehmen müssen....
Gruß
-
...
Kann man etwas gegen die roten Links machen, die erzeugen ja einen Link zur eigenen (nicht vorhandenen Seite)...
meinst du die links in den eckigen klammern, das ist auch in dem von mir verlinkten post.
nach
//Links auf interne Seite Ändern
//Links auf interne Seite Ändern
$summary = str_replace('href="#',"href=\"http://de.wikipedia.org/wiki/$image_wiki#", $summary);
$summary = str_replace('href="/wiki/', 'href="http://de.wikipedia.org/wiki/', $summary);
mfg Andi
Nein, die klappen, ich meine diese roten (siehe Bild)
mache mal ein Testbild mit dem Suchwort "Für immer Shrek" oder nur "Shrek"
dann solltest Du die auch haben, oder bei mir stimmt was nicht ;)
die Url lautet dann http://www.meineTestseite/w/index.php
LG
-
...
Nein, die klappen, ich meine diese roten (siehe Bild)...
so.. die rot eingestellten, sind links wo noch kein artikel darüber verfasst wurde....
wenn du diese zeile in deinen code hast kommentiere sie mittels vorangestellten // aus:
$summary = str_replace('?','"',$summary);
und nach:
$summary = str_replace('href="/wiki/', 'href="http://de.wikipedia.org/wiki/', $summary);
füge diese zeile ein:
$summary = str_replace('href="/w/', 'href="http://de.wikipedia.org/w/', $summary);
mfg Andi
-
habe ich glatt gemacht :wink:
Wie immer "TOP"
Danke
Harald
-
Wie unterschiedlich doch die Menschen sind ;)
OK, in meiner zweiten Galerie, ist mein Admin auch begeistert von diesem Mod, nur er möchte nur den Text haben, also ganz ohne Links.
Dazu habe ich den Code aus dem ersten Posting eingefügt, nur werden dort ja die roten Links auch angezeigt.
Wie bekomme ich diese auch noch raus, das alles ohne Link ist, und mein Admin zufrieden ist ;)
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;
}
glaube dann haben wir hier alle Möglichkeiten durchgekaut :D
LG Harald
PS,
um das auch noch aufzuführen, ihr könnt natürlich auch ausser dem Bild Namen, auch anderen Datenbankfeldern aufrufen laasen.
ändert dazu einfach in der detail.php das $image_wiki = $image_name; in eurem Wert.
Bei mir z.B. nach Hersteller = image_hersteller (selbst erstellte Tabelle)
$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);
}
}
-
$summary = str_replace('href="/w/', '', $summary);
mfg Andi
-
leider nicht, dann gibt es wieder falsche normale Link, aber so klappt es
$summary = str_replace('href="', '', $summary);
dann wird kein Link mehr angezeigt
LG Harald
-
achso ich dachte du wolltes jetzt nur mehr die roten....
-
in Step 9 bitte ändern, damit es auch in diesem Mod klappt
[MOD] Batch Copy/Move/Edit
http://www.4homepages.de/forum/index.php?topic=6759.msg147741;topicseen#msg147741
$additional_image_fields['image_allow_wiki'] = array($lang['image_allow_wiki'], "text", 0);
$additional_image_fields['image_wiki'] = array($lang['image_wiki'], "text", 0);
LG
-
Dann muss aber auch das Datenbankfeld geändert werden ....
:-)
Nachtrag. Ich nehme alles zurück.
Ich habe das bei mir so drinne, und auhc im ersten POSt nun angepasst
$additional_image_fields['image_allow_wiki'] = array($lang['image_allow_wiki'], "radio", 0);
$additional_image_fields['image_wiki'] = array($lang['image_wiki'], "text", 0);
Gruss
-
Hi all -
when I tried to install this mod for categories.. I got the following error message in my server error log..
[Fri Jun 04 07:46:42 2010] [error] [client 207.46.xxx.xxxx] PHP Warning: simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: I/O warning : failed to load external entity "http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=Amanda%20Bynes" in /home/xxxxxx/public_html/includes/functions.php on line 1959
[Fri Jun 04 07:46:42 2010] [error] [client 207.46.xxx.xxx] PHP Warning: simplexml_load_file(http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=Amanda%20Bynes) [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: failed to open stream: no suitable wrapper could be found in /home/xxxxxxx/public_html/includes/functions.php on line 1959
[Fri Jun 04 07:46:42 2010] [error] [client 207.46.xxx.xxx] PHP Warning: simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: URL file-access is disabled in the server configuration in /home/xxxxxx/public_html/includes/functions.php on line 1959
Could anyone please let me know, how to fix this issue ?
Thanks,
batu544
-
Hi
replace
function get_wiki_cat($cat_name) {
global $user_info, $site_db, $session_info, $config;
with
function get_wiki_cat($cat_name) {
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');
I fixed post with addon for categories
-
Hi rinaldos,
I applied the above fix.. but no result.. still I am getting the same error message,.. :(
For your information. I only made the changes in 3 files..
1. functions.php
2. categories.php
3. categories.html
Thanks,
batu544
-
Thats correct, only 3 files. I have the same code in my HP which i postet for the categories :-)
Maybe, use the originally code, without Modification. And if there are no changes, please send me yout functions and your categories please ....
-
Hi,
I tried the same code in my local machine and it worked fine.. but in the server, it not working.. and I think this is because of allow_url_fopen option is off .. this is just a guess and I think ini_set is not working with my host..
so, I tried some other way to bypass this thing and now its working..
but now the problem is all the internal links are not working ..
Is there anyway to remove those internal links .. ?? I don't want those internal links and if possible <p> </P> tags also in the output...
rinaldos,
here is my get_wiki_cat function..
function get_wiki_cat($cat_name) {
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');
$sign = array('#', '?', '§', '$', '%', '&', '/', '(', ')', '=', '^', '°', '*', '@', ' ');
$cat_name = str_replace($sign,"_",$cat_name);
if(!$cat_name) return false;
//The whole test from the API take Wiki
if (!ini_get('allow_url_fopen') && !ini_get('allow_url_include'))
{
# Force allow_url_fopen=on and allow_url_include=off
stream_wrapper_unregister('http');
require('http_wrapper.php');
stream_wrapper_register('http', 'moo_stream_wrapper_http');
}
$url = "http://en.wikipedia.org/w/api.php?format=xml&action=parse&page=".$cat_name;
$xml = simplexml_load_file($url);
$text = $xml->parse->text;
if(!$text) return false;
//Search summary
$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 = utf8_decode($summary);
$summary .= "<a href = 'http://en.wikipedia.org/wiki/$cat_name'>Source: Wikipedia</a>";
//If item is not available
if($summary == "<p><b>Article content ??</b></p>") return false;
//Links to internal pages
$summary = ereg_replace('href="/wiki/', '', $summary);
return $summary;
}
-
I think, the wrapper deactivate now all the links .... Sorry, i have at the moment no solution for your problem. Maybe some other guys....
Gruß
Ingo
-
I think, the wrapper deactivate now all the links .... Sorry, i have at the moment no solution for your problem. Maybe some other guys....
Gruß
Ingo
:) Will it help you, if I provide you the wrapper file ?
Is there any other way to remove the <p> and </p> tags from the generated output ?
-
...
Is there any other way to remove the <p> and </p> tags from the generated output ?
function get_wiki_cat($cat_name) {
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');
$sign = array('#', '?', '§', '$', '%', '&', '/', '(', ')', '=', '^', '°', '*', '@', ' ');
$cat_name = str_replace($sign,"_",$cat_name);
if(!$cat_name) return false;
//The whole test from the API take Wiki
if (!ini_get('allow_url_fopen') && !ini_get('allow_url_include'))
{
# Force allow_url_fopen=on and allow_url_include=off
stream_wrapper_unregister('http');
require('http_wrapper.php');
stream_wrapper_register('http', 'moo_stream_wrapper_http');
}
$url = "http://en.wikipedia.org/w/api.php?format=xml&action=parse&page=".$cat_name;
$xml = simplexml_load_file($url);
$text = $xml->parse->text;
if(!$text) return false;
//Search summary
$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 = utf8_decode($summary);
$summary .= "<a href = 'http://en.wikipedia.org/wiki/$cat_name'>Source: Wikipedia</a>";
//If item is not available
if($summary == "<p><b>Article content ??</b></p>") return false;
//Links to internal pages
$remove= array('<p>','</p>');
$summary = str_replace($remove, "", $summary);
$summary = ereg_replace('href="/wiki/', '', $summary);
return $summary;
}
mfg Andi
-
Rembrandt,
Thanks for your modified code..
rinaldos ,
The wrapper is not removing the links .. The below line in the function actually removes the links..
$summary = ereg_replace('href="/wiki/', '', $summary);
but the issue is it's not removing the links completely. Its only removing the " href="/wiki/" part and not the </a> part. For this reason it still looks like a link but not clickable..
I just found one more function to get the pure text as the output by removing all the html tags..Here I have posted the complete code.
<?php
/**
* Remove HTML tags, including invisible text such as style and
* script code, and embedded objects. Add line breaks around
* block-level tags to prevent word joining after tag removal.
*/
function strip_html_tags( $text )
{
$text = preg_replace(
array(
// Remove invisible content
'@<head[^>]*?>.*?</head>@siu',
'@<style[^>]*?>.*?</style>@siu',
'@<script[^>]*?.*?</script>@siu',
'@<object[^>]*?.*?</object>@siu',
'@<embed[^>]*?.*?</embed>@siu',
'@<applet[^>]*?.*?</applet>@siu',
'@<noframes[^>]*?.*?</noframes>@siu',
'@<noscript[^>]*?.*?</noscript>@siu',
'@<noembed[^>]*?.*?</noembed>@siu',
// Add line breaks before and after blocks
'@</?((address)|(blockquote)|(center)|(del))@iu',
'@</?((div)|(h[1-9])|(ins)|(isindex)|(p)|(pre))@iu',
'@</?((dir)|(dl)|(dt)|(dd)|(li)|(menu)|(ol)|(ul))@iu',
'@</?((table)|(th)|(td)|(caption))@iu',
'@</?((form)|(button)|(fieldset)|(legend)|(input))@iu',
'@</?((label)|(select)|(optgroup)|(option)|(textarea))@iu',
'@</?((frameset)|(frame)|(iframe))@iu',
),
array(
' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',
"\n\$0", "\n\$0", "\n\$0", "\n\$0", "\n\$0", "\n\$0",
"\n\$0", "\n\$0",
),
$text );
return strip_tags( $text );
}
function get_wiki_cat($cat_name) {
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');
$sign = array('#', '?', '§', '$', '%', '&', '/', '(', ')', '=', '^', '°', '*', '@', ' ');
$cat_name = str_replace($sign,"_",$cat_name);
if(!$cat_name) return false;
//The whole test from the API take Wiki
if (!ini_get('allow_url_fopen') && !ini_get('allow_url_include'))
{
# Force allow_url_fopen=on and allow_url_include=off
stream_wrapper_unregister('http');
require('http_wrapper.php');
stream_wrapper_register('http', 'moo_stream_wrapper_http');
}
$url = "http://en.wikipedia.org/w/api.php?format=xml&action=parse&page=".$cat_name;
$xml = simplexml_load_file($url);
$text = $xml->parse->text;
if(!$text) return false;
//Search summary
$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);
$summary = strip_html_tags( $summary );
$summary .= "<a href = 'http://en.wikipedia.org/wiki/$cat_name'>Source: Wikipedia</a>";
//If item is not available
if($summary == "<p><b>Article content ??</b></p>") return false;
//Links to internal pages
// $summary = ereg_replace('href="/wiki/', '', $summary);
return $summary;
}
?>
Please let me know if anyone have a better/efficient code ...
Thanks,
batu544
-
Gibt es eine Lösung auch Stichworte in Klammern anzeigen zu lassen ??
z.B. BP (Konzern), leider wird dann kein Text angezeigt, und Wiki bietet nur das eine an.
LG
-
Ich habe überlegt den MOD zu installieren und mich durch alle Seiten in diesem Thread gelesen. Aber da sich ja hier lange nichts getan hat und alle angegebenen Demo-Seiten nicht funktionieren, kann ich mir die Mühe wohl sparen, oder? Kann jemand sagen, ob der Mod noch bzw. wider läuft?
-
.. Kann jemand sagen, ob der Mod noch bzw. wider läuft?
der läuft und läuft und läuft (http://www.vienna-pictures.com/details.php?image_id=2807)...
unten auf dem bild auf "bildinformation"
oder bei den bild (http://www.vienna-pictures.com/details.php?image_id=2734)
mfg Andi
-
Hi osnapicture,
It works.. You can see the demo here also ==> http://www.bhwallpapers.com/k-louise-glover-114.htm ( at the bottom of the page "About Louise Glover.." section )
Thanks
batu544
-
Genial! Vielen Dank!
Habe gleich damit begonnen das zu installieren. Allerdings habe ich ein Problem: Bei der Detailansich der Fotos taucht folgende Fehlermeldung auf:
Warning: simplexml_load_file() [function.simplexml-load-file]: URL file-access is disabled in the server configuration in /meinedomain/includes/functions.php on line 1937
Warning: simplexml_load_file(http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=Karin%20Dor) [function.simplexml-load-file]: failed to open stream: no suitable wrapper could be found in /meinedomain/includes/functions.php on line 1937
Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=Karin%20Dor" in /meinedomain/includes/functions.php on line 193
Wenn ich Schritt 9 aus der Anleitung rückgängig mache und folgende Zeilen aus der includes/db_field_definitions.php entferne, ist der Fehler weg:
$additional_image_fields['image_allow_wiki'] = array($lang['image_allow_wiki'], "radio", 0);
$additional_image_fields['image_wiki'] = array($lang['image_wiki'], "text", 0);
Allerdings ist das ja nicht Sinn der Sache, weil der MOD dann nicht funktioniert.
Kann mir vielleicht jemand helfen und sagen, wo der Fehler liegen könnte?
-
....Habe gleich damit begonnen das zu installieren. Allerdings habe ich ein Problem: Bei der Detailansich der Fotos taucht folgende Fehlermeldung auf:
....
wenn man einen mod installiert sollte man wenigsten die ersten 3 zeilen lesen. :)
Funktion "simplexml_load_file" steht erst ab PHP5 zur Verfügung
abhilfe: http://www.4homepages.de/forum/index.php?topic=24975.msg136738#msg136738
meine persönliche empfehlung wechsel den provider wenn der jetzt noch immer auf php4 herrumgurkt.
mfg Andi
-
Danke für die schnelle Antwort.
Bin eigentlich davon ausgegangen, dass simplexml_load_file bei mir funktioniert. Ich bin bei 1&1. In der php Info steht: PHP Version 5.2.17
Habe Deinen Beitrag zur Abhilfe schon gelesen. Mir ist aber nicht ganz klar in welche Datei und an welche Stelle ich den Code dort kopieren muss. Auch weiß ich nicht welche Datei aus der Zip-Datei ich in den includes-Ordner kopieren muss. Alle Dateien darin oder nur die xml-line.php?
Für eine Antwort wäre ich sehr dankbar.
-
...Bin eigentlich davon ausgegangen, dass simplexml_load_file bei mir funktioniert.....
....
das kannst du in der der phpinfo.php im ACP nachlesen.
du brauchst nur die "xml-line.php" in den includes ordner kopieren.
.... Mir ist aber nicht ganz klar in welche Datei und an welche Stelle ich den Code dort kopieren muss. ....
jetzt ist mir nicht klar was du damit meinst?
mfg Andi
-
Super, jetzt dürfte ich der Lösung näher kommen. Die xml-line.php habe ich jetzt in den Include-Ordner kopiert.
Jetzt muss ich nur noch wissen, wo der folgende Code aus Deinem Lösungsansatz hin muss:
require_once("xml-line.php");
function get_wiki_cat($cat_name) {
global $user_info, $site_db, $session_info, $config;
// $image_name = preg_replace('/\\W/', '',$image_name);
$zeichen = array('#', '?', '§', '$', '%', '&', '/', '(', ')', '=', '^', '°', '*', '@');
$cat_name = str_replace($zeichen,"",$cat_name);
if(!$cat_name) return false;
//Gesamter Text aus der Wiki-API nehmen
$xmlfile = "http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=$cat_name";
$xml = new xml_line($xmlfile,"xml");
$xml->get_record(1,"text");
$xml->xml_stream();
$text = $xml->table_result[1][1]['text'];
$text = $xml->get_output();
$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 .= "<a href = 'http://de.wikipedia.org/wiki/$cat_name'>Quelle: Wikipedia</a>";
$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;
}
-
wie hier beschrieben:
http://www.4homepages.de/forum/index.php?topic=24975.msg136709#msg136709
-
Irgendwie stehe ich gerade auf dem Schlauch.
Ich habe alle Schritte der Installationsanleitung am Anfang ausgeführt, dann habe ich die Datei xml-line.php in den includes-ordner kopiert und zuletzt den folgenden Code ans Ende der functions.php kopiert
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;
}
require_once("xml-line.php");
function get_wiki_cat($cat_name) {
global $user_info, $site_db, $session_info, $config;
// $image_name = preg_replace('/\\W/', '',$image_name);
$zeichen = array('#', '?', '§', '$', '%', '&', '/', '(', ')', '=', '^', '°', '*', '@');
$cat_name = str_replace($zeichen,"",$cat_name);
if(!$cat_name) return false;
//Gesamter Text aus der Wiki-API nehmen
$xmlfile = "http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=$cat_name";
$xml = new xml_line($xmlfile,"xml");
$xml->get_record(1,"text");
$xml->xml_stream();
$text = $xml->table_result[1][1]['text'];
$text = $xml->get_output();
$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 .= "<a href = 'http://de.wikipedia.org/wiki/$cat_name'>Quelle: Wikipedia</a>";
$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;
}
War das alles so richtig? Wahrscheinlich nicht. Die eingangs beschriebene Fehlermeldung bleibt trotzdem. Was habe ich falsch gemacht?
-
du hast ja wieder die function get_wiki aus dem @TO genommen,das ist klar das die nicht funktioniert.
du hättest meine nehmen sollen.
versuche mal das:
require_once("xml-line.php");
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');
$zeichen = array('#', '?', '§', '$', '%', '&', '/', '=', '^', '°', '*', '@');
$image_wiki = str_replace($zeichen,"",$image_wiki);
if(!$image_wiki) return false;
//Gesamter Test aus der Wiki-API nehmen
$xmlfile = "http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=$cat_name";
$xml = new xml_line($xmlfile);
$xml->get_record(0,"item");
$result = $xml->xml_stream();
$text= $xml->table_result;
$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 = utf8_decode($summary);
$image_wiki = str_replace(' ','_', $image_wiki);
$summary .= "<a href='http://de.wikipedia.org/wiki/$image_wiki' onclick=\"void(window.open(this.href, '', '')); return false;\" >Quelle:Wikipedia</a>";
//wenn Artikel nicht vorhanden
if($summary == "<p><b>Artikel verschwunden?</b></p>") return false;
//Links auf interne Seite ändern
$summary = str_replace('href="#',"href=\"http://de.wikipedia.org/wiki/$image_wiki#", $summary);
$summary = str_replace('href="/wiki/', 'href="http://de.wikipedia.org/wiki/', $summary);
$summary = str_replace('href="/w/', 'href="http://de.wikipedia.org/w/', $summary);
return $summary;
}
-
hallo!
ich habe den mod eigentlich erfolgreich eingebaut.
nur wird es in der detailseite etwas merkwürdig ausgelesen:
zB.
Seeadler kann bedeuten:
Quelle:Wikipedia
weiter nichts. ich kann nur ein paar worte auslesen. woran kann es liegen?
-
...
weiter nichts. ich kann nur ein paar worte auslesen. woran kann es liegen?
welchen suchbegriff hast du verwendet?
sehe schon du hast "seeadler" verwendet, da findet wiki nichts.
das kannst du ja selber überprüfen in dem du den begriff bei wiki eingibst und die genaue schreibweise in den wikiartikel übernimmst b.z.w. von dort rauskopierst.
mit "Seeadler (Art)" findet er das was du möchtest.
-
ok, danke, habe den fehler erkannt.
-
du hättest meine nehmen sollen.
versuche mal das:
Ich bin Dir echt dankbar für Deine Mühe, aber irgendwie schein ich nicht in der Lage zu sein. Jetzt habe ich folgende Fehlermeldung:
Warning: fopen() [function.fopen]: URL file-access is disabled in the server configuration in /meinedomain/includes/xml-line.php on line 439
Warning: fopen(http://de.wikipedia.org/w/api.php?format=xml&action=parse&page=) [function.fopen]: failed to open stream: no suitable wrapper could be found in /meinedomain/includes/xml-line.php on line 439
could not open XML input
Woran könnte das jetzt liegen?
-
du kannst die version von mir mal probieren,falls das eine andere ist(attachment), aber ich befürchte da ist ein provider problem, google ist voll davon.
mein empfehlung wie immer "all-inkl".
mfg Andi
-
aber ich befürchte da ist ein provider problem
Du dürftest Recht haben. Bei mir bzw. bei 1&1 steht "allow_url_fopen" tatsächlich auf "off".
Google sagt dazu: "falls dieser fehler im browser erscheint, erstellen sie bitte eine php.ini mit folgendem inhalt: "full_url_include = On"
Bei meinem Provider gibt es eine Hilfeseite zum Thema: http://hilfe-center.1und1.de/sp-service/sofort_hilfe_faq/technische_fragen/web_hosting/scripte_cgi_php_asp_etc_/php/6.html
Dort steht: "Sie können, falls Sie diese Option trotzdem nutzen möchten, eine php.ini mit folgenden Inhalt in das betreffende Verzeichnis des Scriptes ablegen: allow_url_fopen = on"
Ich frage mich nur, was das betreffende Verzeichnis des Scrips wäre? Das 4images Root-Verzeichnis? Das include-Verzeichnis? Ein anderes Verzeichnis? Habe alle probiert, aber die Funktion bleibt trotzdem auf "Off"
-
keine ahnung ob dein provider das auslesen einer php.ini erlaubt da müstest du beim provider nachfragen.
erstell eine datei mit dem namen "php.ini" und kopiere sie in deinen root.
suche mal in google nach "1und1 php.ini" :mrgreen:
-
Jetzt haben wir zeitgleich gepostet. Hatte meinen vorherigen Beitrag noch einmal geändert. Laut 1&1 müsste das problemlos möglich sein. Komisch ist nur, wenn ich eine php.ini ins root Verzeichnis kopiere, steht im ACP bei phpinfo hinter allow_url_fopen trotzdem "off"
-
kopier die php.ini zusätzlich in den includes ordner.
irgendwo sollte sie greifen.
-
kopier die php.ini zusätzlich in den includes ordner.
irgendwo sollte sie greifen.
Leider nein
-
dann wende dich doch an den support von deinen provider
-
Werde ich jetzt auch machen. Leider hat mir die Aktion jetzt alles zerschossen. Ich komme jetzt nicht mehr ins ACP. Egal ob ich die php.ini lösche oder nicht. Ich bekomme nur eine weiße Seite mit einigen wenigen komischen Zeichen: ""
-
Werde ich jetzt auch machen. Leider hat mir die Aktion jetzt alles zerschossen. Ich komme jetzt nicht mehr ins ACP. Egal ob ich die php.ini lösche oder nicht. Ich bekomme nur eine weiße Seite mit einigen wenigen komischen Zeichen: ""
ja macht ja nicht, schau mal deine letzten änderungen an, ein fehler in der functions.php vielleicht.
anscheinend greift die php.ini ja doch
-
Ich will Deine Hilfe ja nicht überstrapazieren, aber ich habe das Gefühl, dass ich jetzt kurz vor dem Ziel bin. Ohne zu wissen warum, läuft jetzt alles ohne Fehlermeldung.
Ich habe ein Testbild hochgeladen, darunter ein Suchwort für Wikipedia eingegeben, den Schalter für Wikipedia auf "ein" gesetzt, aber es wird leider gar nichts angezeigt. Außer "Textpassage aus Wikipedia" und die Wikipedia-Grafik
-
welches suchwort?
-
Juhu, ich habe es geschafft und bin jetzt super glücklich. Ich habe keine Ahnung warum es jetzt läuft, aber es läuft - nur das ist wichtig. Vielen Dank für die große Hilfe. Alleine hätte ich das nie ans Laufen bekommen.
Jetzt habe ich nur noch eine letzte Frage: Ich habe reichlich Fotos in meiner Galerie. Es soll bei jedem ein Wikipedia Eintrag angezeigt werden. Muss ich jetzt für jedes Foto einzeln den Schalter auf "Wikipedia-Eintrag anzeigen" legen oder kann ich irgendwo einstellen, dass grundsätzlich überall Wikipedia gezeigt wird?
-
Juhu, ich habe es geschafft und bin jetzt super glücklich. ...
na gott sei dank :)
eigentlich sollte alles auf "ja " stehen?
hm.. ich sehe gerade in der wikipedia_install sollte eigentlich lauten:
"ALTER TABLE ".IMAGES_TABLE." ADD `image_allow_wiki` TINYINT( 1 ) NOT NULL DEFAULT '1'",
"ALTER TABLE ".IMAGES_TEMP_TABLE." ADD `image_allow_wiki` TINYINT( 1 ) NOT NULL DEFAULT '1'",
und nicht:
TINYINT( 0 )
vielleicht liegt es daran.
in der DB kannst du die beiden felder umstellen, versuche das mal
-
Jau, super! Vielen herzlichen Dank! Jetzt läuft alles einwandfrei und ich kann mich dem nächsten Problem widmen - dem mit den Umlauten.... Aber dazu werde ich mir jetzt die 35.000 Threads dazu durchlesen. Der Wikipedia-MOD ist dank Dir fertig installiert.
-
Hallo,
ich hatte dem Wikipedia Mod vor einiger Zeit auf meiner details.html und categories.html eingebaut.
Funktionierte auch super.
Leider bekomme ich seit geraumer Zeit so eigenartige Zeichen angezegt.
Die o.g. html-Dateien habe ich in utf-8 ohne BOM konvertiert. Meine Mysql-Datenbank liegt in "utf8_general_ci" vor.
Hier gehts zu einem Bsp.-Link: http://matzlpage.de/details.php?image_id=13439&sessionid=7ltflijh3kc5ag01jsit0aecj7 (http://matzlpage.de/details.php?image_id=13439&sessionid=7ltflijh3kc5ag01jsit0aecj7)
Viele Grüße
Heinier
-
...
Die o.g. html-Dateien habe ich in utf-8 ohne BOM konvertiert.....
Meine Seite funktioniert nach wie vor Wunderbar, die HTML Dateien sind ganz normal nach ANSI konvertiert.
Außerdem fehlt auf deiner Verlinkten Seite die Doctype Deklaration.
mfg Andi
-
Hallo Rembrandt,
vielen Dank für deine Antwort.
Ich habe festgestellt, dass der Browser, egal welcher, nicht automatisch erkennt, dass es sich um die westliche Zeichencodierung handelt.
Wo kann ich denn das in den html-Dateien einstellen? Ansonsten müsste man die Umstellung auf jeder Seite durchführen. Macht niemand!
Viele Grüße,
Heinier
-
... Macht niemand!
Das ist ja auch der Sinn und Zweck eines CMS.
Du solltest dir wirklich mal den Quelltext deiner Galerie ansehen, jetzt ist der Datei Header zwei mal drinnen.
-
Hallo Rembrandt,
ich habe das Problem gefunden.
Es lag an der PHP-Version. Statt 5.6 musste ich nur auf 5.4 umstellen.
Jetzt funktionierts erstmal.
Kann es sein, dass 4images höhere php-Versionen nicht so richtig unterstützt?
Gruß Heinier