Author Topic: MOD WIKIPEDIA  (Read 147693 times)

0 Members and 1 Guest are viewing this topic.

rinaldos

  • Guest
MOD WIKIPEDIA
« 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_name2),
    
"image_description" => format_text($image_description2),
    
"image_keywords" => format_text($image_keywords2),
    
"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}&nbsp;&nbsp;&nbsp
              <
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}&nbsp;&nbsp;&nbsp
              <
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&uuml;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
« Last Edit: March 02, 2011, 09:00:56 PM by Rembrandt »

Offline mawenzi

  • Moderator
  • 4images Guru
  • *****
  • Posts: 4.500
    • View Profile
Re: MOD WIKIPEDIA
« Reply #1 on: June 05, 2009, 01:15:48 PM »
... und danke für die Umsetzung und Veröffentlichung ...
... verschoben nach "Mods & Plugins (Releases & Support)" ...
Your first three "must do" before you ask a question ! ( © by V@no )
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

You are on search for top 4images MOD's ?
- then please search here ... Mawenzi's Top 100+ MOD List (unsorted sorted) ...

Rembrandt

  • Guest
Re: MOD WIKIPEDIA
« Reply #2 on: June 05, 2009, 01:17:26 PM »
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

Offline bergblume

  • Sr. Member
  • ****
  • Posts: 463
  • on to the top!
    • View Profile
Re: MOD WIKIPEDIA
« Reply #3 on: June 05, 2009, 01:30:48 PM »
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!!

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.805
  • I ♥ 4I
    • View Profile
Re: MOD WIKIPEDIA
« Reply #4 on: June 05, 2009, 02:13:26 PM »
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

rinaldos

  • Guest
Re: MOD WIKIPEDIA
« Reply #5 on: June 05, 2009, 02:21:32 PM »
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ß



Offline bergblume

  • Sr. Member
  • ****
  • Posts: 463
  • on to the top!
    • View Profile
Re: MOD WIKIPEDIA
« Reply #6 on: June 05, 2009, 02:27:15 PM »
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)

dann einfach folgenden map-overlay verwenden:

search for:
Code: [Select]
map.addControl(new GScaleControl());
add below:
Code: [Select]
map.addOverlay(new GLayer(\"org.wikipedia.de\"));
Beispiel auf: Tour Alpspitze

gruss, bergblume

Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.805
  • I ♥ 4I
    • View Profile
Re: MOD WIKIPEDIA
« Reply #7 on: June 05, 2009, 02:29:23 PM »
@ 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?

rinaldos

  • Guest
Re: MOD WIKIPEDIA
« Reply #8 on: June 05, 2009, 02:35:48 PM »
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ß




Rembrandt

  • Guest
Re: MOD WIKIPEDIA
« Reply #9 on: June 05, 2009, 05:38:54 PM »
Hi!

kannst du den mod noch erweitern,
das man sich aussuchen kann bei welchen bild wiki angezeigt wird, oder nicht angezeigt wird?

mfg Andi

rinaldos

  • Guest
Re: MOD WIKIPEDIA
« Reply #10 on: June 05, 2009, 05:45:38 PM »
@rembrandt

Wer soll sich das aussuchen? Der User, der ein Bild sieht, der, der ein Bild hochlädt, oder der ADMIN?

Gruß


Offline Sunny C.

  • Addicted member
  • ******
  • Posts: 1.805
  • I ♥ 4I
    • View Profile
Re: MOD WIKIPEDIA
« Reply #11 on: June 05, 2009, 06:13:04 PM »
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

  • Guest
Re: MOD WIKIPEDIA
« Reply #12 on: June 05, 2009, 06:18:59 PM »
@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

Offline 4ella

  • Jr. Member
  • **
  • Posts: 90
    • View Profile
    • http://www.dancersrecruit.com/pictures/
Re: MOD WIKIPEDIA
« Reply #13 on: June 05, 2009, 07:05:35 PM »
Quote
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

http://www.dancersrecruit.com/pictures/
4IMAGES 1.7.6 version/default theme
Apache version   2.2.11 (Unix)
PHP version   5.2.9
MySQL version   5.0.75-community-log
Architecture   x86_64
Operating system   Linux

rinaldos

  • Guest
Re: MOD WIKIPEDIA
« Reply #14 on: June 05, 2009, 07:06:01 PM »
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

« Last Edit: June 04, 2010, 02:35:03 PM by rinaldos »