Eigene Erweiterung der Enzyklopädie

Begonnen von Elke, 23 Oktober 2009, 17:41:47

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Elke

Hallo zusammen,
Mit xmjay kam ich über die Enzyklopädie zu sprechen und die Änderungen, die ich vorgenommen habe.
Da es ihn interessiert und vielleicht einige mehr, hier meine Anpassungen.
Kopiert ist es ab Zeile 68 in der aktuellen Version die index.php der Enzyklopädie, zum leichteren Finden: die ersten drei Zeilen sind das Original.
Bisher habe ich es nicht reingesetzt, da meine Programmierkenntnisse wirklich nicht gut sind, und ich auf das hier auch keine Gewähr geben kann. Ist eigentlich auch nur zusammenkopiert. Sind bestimmt Fehler drin und andere können es bestimmt besser. Auch habe ich der Bequemlichkeit den Text nicht über die language- Datei hinzugefügt. (Auch wegen Updates, da fehlen dann immer die Worte). Aber bei mir funktioniert es.
WICHTIG: Das habe ich für eine Enzyklopädie gemacht, bei mehreren müssen Änderungen vorgenommen werden.
Vielleicht will das Team ja eine verbesserte Version in die neue Version einbringen???



echo " ]</center><br /><br />\n\n\n";
     encysearch($eid);
    echo "<center>" . _GOBACK . "";


/*Anfang Änderung Menue*/
echo" [&nbsp;<a href=\"modules.php?name=Encyclopedia&op=list_content&eid=$eid\">zum Hauptmenue von #### Name der Enzyklopädie ##### </a>] [&nbsp;<a href=\"modules.php?name=$module_name&amp;op=termsall&eid=$eid\">Gesamtliste ansehen </a>&nbsp;] </center>";
/*Ende Änderung Menue*/

/*Zufallsbegriff Anfang*/
if ($multilingual == 1) {
    $querylang = "AND (alanguage='$currentlang' OR alanguage='')"; /* the OR is needed to display stories who are posted to ALL languages */
} else {
    $querylang = "";
}
$result1 = sql_query("select * from ".$prefix."_encyclopedia", $dbi);
$numrows = sql_num_rows($result1, $dbi);
if ($numrows > 1) {
    $result1 = sql_query("select eid from ".$prefix."_encyclopedia", $dbi);
    while (list($eid) = sql_fetch_row($result1, $dbi)) {
$eid_array .= "$eid-";
    }
    $r_eid = explode("-",$eid_array);
    mt_srand((double)microtime()*1000000);
    $numrows = $numrows-1;
    $eid = mt_rand(0, $numrows);
    $eid = $r_eid[$eid];
} else {
    $eid = 1;
}

$result2 = sql_query("select * from ".$prefix."_encyclopedia_text where eid=$eid", $dbi);
$numrows = sql_num_rows($result2, $dbi);
if ($numrows > 0) {
    $result2 = sql_query("select tid from ".$prefix."_encyclopedia_text where eid=$eid", $dbi);
    while (list($tid) = sql_fetch_row($result2, $dbi)) {
$tid_array .= "$tid-";
    }
    $r_tid = explode("-",$tid_array);
    mt_srand((double)microtime()*1000000);
    $numrows = $numrows-1;
    $tid = mt_rand(0, $numrows);
    $tid = $r_tid[$tid];
} else {
/* Hier die Begriffe und Kategorien ändern bei fehlendem Inhalt: lid = laufende Begriffsnummer, cid ist Nummer der Enzyklopädie */
    $tid = 1;
$eid = 1;
}


$res1 = sql_query("select title, text from ".$prefix."_encyclopedia_text where tid='$tid'", $dbi);
list($title, $text) = sql_fetch_row($res1, $dbi);
  // Alle Tags ausser <br /> entfernen
           // $introtext = trim(strip_tags($text, '<br />'));
            // <br /> am Textbeginn entfernen
          //  $introtext = preg_replace('#^(?:<br\s*/*>\s*)*#is', '', $introtext);
// $introtext = mxCutString($introtext, 500, "&nbsp;...", " ");

$res2 = sql_query("select title from ".$prefix."_encyclopedia where eid='$eid'", $dbi);
list($title2) = sql_fetch_row($res2, $dbi);

echo "<hr width=\"100%\" size=\"1\" noshade=\"noshade\" color=\"#ffcc00\">" ;

###Start Google, den Googlecode zwischen die beiden hochkomma!  Fallsngoogle adsense gewünscht, sonst löschen.
  $werbung = '  ';
###ende Google
###Ausgabe der Werbung

echo "".$werbung."";

echo "<hr width=\"100%\" size=\"1\" noshade=\"noshade\" color=\"#ffcc00\">" ;

     echo"<br>";


echo "<br>Ein zufällig ausgewählter Begriff von #### Name der Enzyklopädie #####<br><br> ";
echo "<center><table border=\"0\"  cellpadding=\"5\" cellspacing=\"0\" bgcolor=\"#ebe5e5\" width=100%><tr><td>";
echo "<b>$title</b></td></tr><tr><td> $text<br>";
echo "<br><a href=\"modules.php?name=Encyclopedia&op=content&tid=$tid\"><b>&raquo; &raquo; &raquo; &raquo; zu diesem Begriff </b></a>";
echo "<br><a href=\"modules.php?name=Encyclopedia&op=list_content&eid=1\"><b>&raquo; &raquo; &raquo; &raquo; zum Hauptmenue von #### Name der Enzyklopädie</b></a></td></tr></table></center><br><br>";


/*Hier kommt bei mir der amazon-Block*/

/*Zufallsbegriff Ende*/


}


/*Funktion Liste zusätzlich*/
function termsall()
{
    global $module_name, $prefix, $pagetitle;
    $eid = (empty($_REQUEST['eid'])) ? 0 : intval($_REQUEST['eid']);
   
    $count = -1;
    $items = 2; // Anzahl gewünschter Spalten
    $result = sql_query("select active, title from " . $prefix . "_encyclopedia where eid=" . intval($eid));
    list($active, $title) = sql_fetch_row($result);
    $pagetitle = _ENCYCLOPEDIA . ', ' . $title;
    include("header.php");
    title(_ENCYCLOPEDIA);
    OpenTable();
    if (($active == 1) OR (MX_IS_ADMIN)) {
        if (($active != 1) AND (MX_IS_ADMIN)) {
            echo "<center>" . _YOURADMINENCY . "</center><br /><br />";
        }
        echo "<center>" . _SECTIONSTERMSINENCY . " &quot;<strong>{$title}</strong>&quot;:</center><br /><br />"
         . "<table border=\"0\" align=\"center\">";
        $result = sql_query("select tid, title from " . $prefix . "_encyclopedia_text WHERE eid=" . intval($eid) . " ORDER BY title");
        if (sql_num_rows($result) == 0) {
            echo "<center><i>" . _NOCONTENTFORLETTER . " $ltr.</i></center>";
        } while (list($tid, $title) = sql_fetch_row($result)) {
            if ($count == -1) {
                $count = 0;
                echo "<tr>";
            }
            $count = $count + 1;
            echo "<td>&nbsp;&middot;&nbsp;<a href=\"modules.php?name=$module_name&amp;op=content&amp;tid=$tid\"><font class=\"option\">$title</font></a></td>";
            if ($count == $items) {
                $count = 0;
                echo "</tr><tr>";
            }
        }
        $fill = $items - $count;
        if ($fill != 0) {
            echo "<td colspan=\"{$fill}\">&nbsp;</td>";
        }
        if ($count == 0) {
            echo "</tr>";
        }
        echo "</tr></table><br /><br />";
        alpha($eid);
    } else {
        echo "<center>" . _ENCYNOTACTIVE . '<br /><br />' . _GOBACK . "</center>";
    }
    CloseTable();
    include("footer.php");
}
/*Ende Funktion Liste*/


und dann unten muss das noch hin

case "termsall":
        termsall();
        break;



Hoffe, das ist jetzt beim Kopieren kein nonsens geworden... ist schon ne Weile her, dass ich das gemacht habe.
Und vielleicht kann es ja einer brauchen. Ein Block kommt auch noch dazu.

Wer es sehen will:
http://www.zuhause-in-aachen.de/Encyclopedia-op-list_content-eid-1.html

viele Grüße
Elke

Elke

Und hier der versprochene Block. Eigene Namen müssen noch eingefügt werden, schaut nach ####
wie gesagt, keine Gewähr. Für den Download-Bereich fürchte ich, ist es einfach nicht professionel genug.
Vielleicht kann es aber doch jemand brauchen.


<?
<?php
/************************************************************************/
/* PHP-NUKE: Web Portal System                                          */
/* ===========================                                          */
/*                                                                      */
/* Copyright (c) 2002 by Francisco Burzi (fbc@mandrakesoft.com)         */
/* http://phpnuke.org                                                   */
/* geändert von Elke Döbbeler            */
/* http://www.zuhause-in-aachen.de                                                                  */
/* This program is free software. You can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 2 of the License.       */
/************************************************************************/

if (eregi("block-#####GIB-IHM-EINEN-NAMEN#####.php",$PHP_SELF)) {
    
Header("Location: index.php");
    die();
        }
global 
$prefix$multilingual$currentlang$dbi$tipath$user$cookie;

$r_options "";
if (isset(
$cookie[4])) { $r_options .= "&amp;mode=$cookie[4]"; }
if (isset(
$cookie[5])) { $r_options .= "&amp;order=$cookie[5]"; }
if (isset(
$cookie[6])) { $r_options .= "&amp;thold=$cookie[6]"; }

if (
$multilingual == 1) {
    
$querylang "AND (alanguage='$currentlang' OR alanguage='')"/* the OR is needed to display stories who are posted to ALL languages */
} else {
    
$querylang "";
}

$result sql_query("select * from ".$prefix."_encyclopedia"$dbi);
$numrows sql_num_rows($result$dbi);
if (
$numrows 1) {
    
$result sql_query("select eid from ".$prefix."_encyclopedia"$dbi);
    while (list(
$eid) = sql_fetch_row($result$dbi)) {
        
$eid_array .= "$eid-";
    }
    
$r_eid explode("-",$eid_array);
    
mt_srand((double)microtime()*1000000);
    
$numrows $numrows-1;
    
$eid mt_rand(0$numrows);
    
$eid $r_eid[$eid];
} else {
    
$eid 1;
}

$result2 sql_query("select * from ".$prefix."_encyclopedia_text where eid=$eid"$dbi);
$numrows sql_num_rows($result2$dbi);
if (
$numrows 0) {
    
$result2 sql_query("select tid from ".$prefix."_encyclopedia_text where eid=$eid"$dbi);
    while (list(
$tid) = sql_fetch_row($result2$dbi)) {
        
$tid_array .= "$tid-";
    }
    
$r_tid explode("-",$tid_array);
    
mt_srand((double)microtime()*1000000);
    
$numrows $numrows-1;
    
$tid mt_rand(0$numrows);
    
$tid $r_tid[$tid];
} else {
/* Hier die Begriffe und Kategorien ändern bei fehlendem Begriff lid = laufende Begriffsnumme, cid ist Nummer der Enzyklopädie */
    
$tid 1;
        
$eid 1;
}


$res1 sql_query("select title, text from ".$prefix."_encyclopedia_text where tid='$tid'"$dbi);
list(
$title$text) = sql_fetch_row($res1$dbi);
  
// Alle Tags ausser <br /> entfernen
            
$introtext trim(strip_tags($text'<br />'));
            
// <br /> am Textbeginn entfernen
            
$introtext preg_replace('#^(?:<br\s*/*>\s*)*#is'''$introtext);
 
$introtext mxCutString($introtext500"&nbsp;..."" ");
 
$res2 sql_query("select title from ".$prefix."_encyclopedia where eid='$eid'"$dbi);
list(
$title2) = sql_fetch_row($res2$dbi);

$content="<hr width=\"100%\" size=\"1\" noshade=\"noshade\" color=\"#ffcc00\">" ;
$content .="<br>Ein zufällig ausgewählter Begriff von #### Name der Enzyklopädie ######:<br><br> ";
$content .="<center><table border=\"0\"  cellpadding=\"5\" cellspacing=\"0\" bgcolor=\"#ebe5e5\" width=100%><tr><td>";
$content .="<b>$title</b></td></tr><tr><td> $introtext<br>";
$content .="<br><a href=\"modules.php?name=Encyclopedia&op=content&tid=$tid\"><b>&raquo; &raquo; &raquo; &raquo; zu diesem Begriff mit mehr Infos und Photos (falls vorhanden)</b></a>";
$content .="<br><a href=\"modules.php?name=Encyclopedia&op=list_content&eid=1\"><b>&raquo; &raquo; &raquo; &raquo; zu #### Name der Enzyklopädie ######</b></a></td></tr></table></center>";


$content .="<hr width=\"100%\" size=\"1\" noshade=\"noshade\" color=\"#ffcc00\">" ;
?>



viele Grüße
Elke

xmjay

CMS-Version: pragmaMx 1.12.3 | PHP-Version: 5.2.12 | MySQL-Version: 5.1.66

trulla

 :thumbup:
Das sieht ja super aus. Ich habe aber mehrere ency am Start. Muss ich mal gucken, ob ich das gebrauchen kann.

Elke

Du müsstest dann die Stellen allgemein machen, die den Namen der Enzeklopädie ausmachen, also per Variabel ausgeben lassen.
Und überprüfen, ob die Datenbankabfrage, auch diese Variable abfragt.
Dann müsste das eigentlich auch mit mehren Enzy funktionieren. Der Block ist allgemein gehalten.

xmjay

#5
Hi !

Der Block funktioniert (die erste Zeile löschen "<?"), zufällige Begriffe aus Enzys werden angezeigt.

Mit eingeschaltetem Debug-Mode erscheinen 3 Meldungen:

Notice: Undefined variable: PHP_SELF in /.../block-Encyclopedia_random.php on line 15
Notice: Undefined variable: eid_array in /.../block-Encyclopedia_random.php on line 37
Notice: Undefined variable: tid_array in /.../block-Encyclopedia_random.php on line 53

Ein Blick in diese Zeilen der Datei bringen mich nich zur Lösung.

line 15: if (eregi("block-Encyclopedia_random.php",$PHP_SELF)) {
line 37: $eid_array .= "$eid-";
line 53: $tid_array .= "$tid-";

Die Blockdatei hängt als *.zip dran, wäre liehp, wenn sich das jemand mit Codekenntnissen anschaut.
Danke.
CMS-Version: pragmaMx 1.12.3 | PHP-Version: 5.2.12 | MySQL-Version: 5.1.66

Elke

Habe mir das nochmals angesehen:

Zitat von: xmjay am 24 Oktober 2009, 19:30:39
Hi !

Der Block funktioniert (die erste Zeile löschen "<?"), zufällige Begriffe aus Enzys werden angezeigt.

Mit eingeschaltetem Debug-Mode erscheinen 3 Meldungen:

Notice: Undefined variable: PHP_SELF in /.../block-Encyclopedia_random.php on line 15
Notice: Undefined variable: eid_array in /.../block-Encyclopedia_random.php on line 37
Notice: Undefined variable: tid_array in /.../block-Encyclopedia_random.php on line 53

Ein Blick in diese Zeilen der Datei bringen mich nich zur Lösung.

line 15: if (eregi("block-Encyclopedia_random.php",$PHP_SELF)) {
line 37: $eid_array .= "$eid-";
line 53: $tid_array .= "$tid-";

Die Blockdatei hängt als *.zip dran, wäre liehp, wenn sich das jemand mit Codekenntnissen anschaut.
Danke.

also, Zeile 15 ist klar, schaut man die anderen Blöcke an, haben sich die anderen Angaben geändert, das war noch zu sehr php nuke, hab ich entsprechent ersetzt.
Zeile 37 zeigt mir keinen Fehler an, Zeile 53 schon.
Warum ist mir unklar, da ich da als Laie keinen Unterschied zwischen beiden entdecken kann.

Ich habe dies vor langer Zeit entsprechend dem Block von zufälliger Auswahl aus den Weblinks kopiert.
Leider gibt es im jetzigen Nuke keinen solchen Block mehr, so dass ich da nicht nachsehen kann.

Vielleicht kann doch nochmal jemand reinschauen und uns weiterhelfen???

viele Grüße
Elke