Zeigen Sie eine Bestellung in WordPress mit EXEC-PHP an

Lesezeit: 3 Minuten

Freds Benutzeravatar
Fred

Ich arbeite an einem WordPress-Blog. Die vorherigen Entwickler verwendeten “Exec-PHP”, um ein PHP-Skript auf einer Seite auszuführen.

Die folgende Anzeige auf der http://url-of-the-page/ eine Liste von Dateien, die in “/homez.406/xxx/www/wp-content/xxx/xxx/” enthalten sind.

Ich möchte die Dateien nach Datum sortieren, aber ich weiß nicht, wie das geht! Benutzt das schon jemand?

<!--?php showContent('/homez.406/xxx/www/wp-content/xxx/xxx/','http://url-of-the-page/',false,false); ?-->

Das habe ich in der functions.php gefunden

function showContent($path,$webpath,$adminclear,$adminup){

if ($handle = opendir($path))
{
   if ($adminclear==true)

   {
    global $user_ID; if( $user_ID ) :
    if( current_user_can('level_10') ) :
    $auth=true;
    else : 
    $auth=false;
    endif; 
    endif; 
   }

   if ($adminup==true)

   {
    global $user_ID; if( $user_ID ) :
    if( current_user_can('level_10') ) :
    $authup=true;
    else : 
    $authup=false;
    endif; 
    endif; 
   }

   else{$auth=true;$authup=true;}



   if ((isset($_POST['dlfile']))&&($auth==true))
   {
   $removefile=$_POST['dlfile'];
    unlink ($removefile);

   }


   while (false !== ($file = readdir($handle)))
   {
       if ($file != "." && $file != "..")
       {
           $fName  = $file;
           $goodpath=$webpath.$fName;
           $file   = $path.$file;
           $abpath=$path.$fName;


           if(is_file($file)) {
               echo "<p><a href="http://www.otrmd.com/wp-content/themes/FactoryWP/dl.php?p=".$goodpath."&f=".$fName."">".$fName."</a><br/> Uploaded on ".date ('d-m-Y H:i:s', filemtime($file))."<br/>Size: ".filesize($file)." bytes</p>";

               if($auth==true)
               {
               echo "<form method='post' action=".$_SERVER['REQUEST_URI'].">
               <input type="hidden" name="dlfile" value="".$abpath."">
               <input type="submit" value="Clear File">
               </form><br/>";
               }
           } elseif (is_dir($file)) {
               print "<p><a href="".$_SERVER["PHP_SELF']."?path=$file'>$fName</a></p><br/><br/>";
           }
       }
   }

   closedir($handle);
}    
if ($authup==true)
   {

   echo ("[uploadify folder="".$path."" multi=true]");

   }

}

  • Können wir den Code der sehen showContent() Funktion ?

    – Mexiko1

    27. November 2012 um 13:27 Uhr

  • Hier ist es. Kann Ihnen die “echte” URL nicht zeigen, aber ich denke, es ist in Ordnung

    – Fred

    27. November 2012 um 13:37 Uhr


  • Ich bin mir ziemlich sicher, dass mexique1 den Code meinte Innerhalb das showContent() Funktion. So wie es aussieht, sagt diese Frage nichts darüber aus wie Sie zeigen die Dateien, damit wir Ihnen nicht wirklich helfen können. =)

    – J. Steen

    27. November 2012 um 13:58 Uhr


  • Ok, ich habe in die function.php geschaut und meine Frage aktualisiert.

    – Fred

    27. November 2012 um 14:14 Uhr


Benutzeravatar von mexique1
Mexiko1

Das Problem dabei ist die Funktion readdir verwendet wird, und das Dokument sagt:

The entries are returned in the order in which they are stored by the filesystem.

Daher empfehle ich die Verwendung scandir kombiniert mit uasortum Dateien zu sortieren filemtime

Ersetzen

while (false !== ($file = readdir($handle)))

Durch

$files = scandir($path);
uasort($files, 'sort_by_filemtime');
foreach ($files as $file) {
    ...

Und deklarieren Sie die folgende Callback-Funktion am Anfang des Skripts

function sort_by_filemtime($file1, $file2) {
    global $path;
    $file1mtime = filemtime($path.$file1);
    $file2mtime = filemtime($path.$file2);
    if ($file1mtime == $file2mtime) {
        return 0;
    }
    return $file1mtime > $file2mtime ? 1 : -1;
}

  • Ich hatte gerade keine Gelegenheit, es zu versuchen (zu beschäftigt mit einer anderen Arbeit). Ich werde es dieses Wochenende ausprobieren!

    – Fred

    30. November 2012 um 17:53 Uhr

1428940cookie-checkZeigen Sie eine Bestellung in WordPress mit EXEC-PHP an

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy