Autor Zpráva
vazo
Profil
Ahoj,
potřeboval bych poradit, zkoušel jsem instalovat jeden plugin na server, kde běží wordprees, ale při jeho aktivaci mi to hodilo tuhle chybu:
Warning: glob() has been disabled for security reasons in /3w/wz.cz/k/kvalitniweby/wp/wp-content/plugins/slidedeck2/slidedeck2-lite.php on line 143

Warning: Invalid argument supplied for foreach() in /3w/wz.cz/k/kvalitniweby/wp/wp-content/plugins/slidedeck2/slidedeck2-lite.php on line 144

Fatal error: Class 'SlideDeckPointers' not found in /3w/wz.cz/k/kvalitniweby/wp/wp-content/plugins/slidedeck2/slidedeck2-lite.php on line 149

Proto bycho potřeboval poradit jak nahradit glob( SLIDEDECK2_DIRNAME . '/lib/*.php' ); , tak aby to na původní funkci kódu nemělo vliv a tento plugin šel aktivovat. Bohužel nastavení php.ini (a tím povolit glob()) nemohu měnit. Předem moc díky za rady. (V php nejsem zase tolik zběhlý).

// Load all library files used by this plugin
        $lib_files = glob( SLIDEDECK2_DIRNAME . '/lib/*.php' );
        foreach( $lib_files as $filename ) {
            include_once ($filename);
        }

        // WordPress Pointers helper
        $this->Pointers = new SlideDeckPointers( );

        // The Lens primary class
        include_once (SLIDEDECK2_DIRNAME . '/classes/slidedeck-lens.php');
        $this->Lens = new SlideDeckLens( );
ShiraNai7
Profil
Zkus. Podmínkou je PHP 5.3.0+

$lib_files = new DirectoryIterator('glob://'.SLIDEDECK2_DIRNAME.'/lib/*.php');
foreach($lib_files as $file) {
    include_once $file->getPathname();
}

Ale jde to napsat i bez použití glob().. skript jen includne všechny soubory s koncovkou php v daném adresáři. Např:

$dir = SLIDEDECK2_DIRNAME.'/lib';
$handle = opendir($dir);
while($item = readdir($handle)) {
    if('.' === $item || '..' === $item) continue;
    if(!is_file($file = $dir.DIRECTORY_SEPARATOR.$item)) continue;
    if('php' === pathinfo($item, PATHINFO_EXTENSION)) {
        include_once $file;
    }
}
closedir($handle);
vazo
Profil
Verze php je nižší než 5.3.0,takže jsem zkusil tvoji druhou část kódu. Ale bohužel to vyhodilo tuhle chybu:
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in /3w/wz.cz/k/kvalitniweby/wp/wp-content/plugins/slidedeck2/slidedeck2-lite.php on line 156

Na řádku 156 je toto:
$this->Pointers = new SlideDeckPointers( );
Nevíš jak by to mohlo jít poupravit?
ShiraNai7
Profil
vazo:
Na řádku 156 je toto:

A před ním je co? Na samotném řádku, co jsi uvedl, chyba není.
vazo
Profil
No předním jsem dal ten tvůj opravený kód:
$dir = SLIDEDECK2_DIRNAME.'/lib';
$handle = opendir($dir);
while($item = readdir($handle)) {
    if('.' === $item || '..' === $item) continue;
    if(!is_file($file = $dir.DIRECTORY_SEPARATOR.$item)) continue;
    if('php' === pathinfo($item, PATHINFO_EXTENSION)) {
        include_once $file;
    }
}
closedir($handle);
ShiraNai7
Profil
vazo:
Někde nahraj celý ten PHP soubor a dej tu odkaz.. pokud bys tam měl jen můj kód a za tím ten řádek, tak by tam chyba nebyla.
Např. http://pastebin.com/
vazo
Profil
Tady to je:
http://pastebin.com/4iFkH79s
Radek9
Profil
vazo:
V uvedeném kódu není použit kód od ShiraNai7.
ShiraNai7
Profil
Ani chyba syntaxe v něm není.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: