Hola,
lang ist's her, nun wage ich mich mal wieder an mein erstes Modul. Ich habe hier und da gelesen, auch natürlich in der genannten Wiki ...
Aber um es kurz zu machen: Es funzt immer noch nicht und ich verstehe einfach nicht warum!
Unabhängig davon, ob die Joomla! API Funktionen zum auslesen eines Ordners zur Verfügung stellt oder nicht, dass Problem taucht schon viel früher auf und ist in meinen Augen nicht logisch nachzuvollziehen.
Fehlermeldung:
Fatal error: Call to a member function get() on a non-object in /Applications/MAMP/htdocs/www.exil.de/modules/mod_slideshow/helper.php on line 19
In Zeile 19 steht nichts anderes als:
PHP-Code:
$ordner = $params->get('derordner');
Ich habe auch eine Kontrollfunktion, die die Parameter als Text ausgibt (s. Code unten). Dort benutze ich die selbe Zeile und es werden die im Backend eingetragenen Werte brav ausgegeben. Wie kann es sein, dass die selbe Zeile in der nächsten Funktion zu einem Fehler führt?
helper.php:
PHP-Code:
<?php
defined('_JEXEC') or die( 'Restricted access' );
class modSlideshowHelper{
public function getText(&$params){
$text = $params->get('fullsize');
$ordner = $params->get('derordner');
$blubb = $text . '=Text<br/>' . $ordner . '=Ordner';
return $blubb;
}
public function wosinddiebilder(&$params) {
$ordner = $params->get('derordner');
$files = array();
$handle = opendir($ordner);
while (false !== ($filename = readdir($handle))) {
if($filename != '.' && $filename != '..') {
$files[] = $filename;
}
}
return $files;
}
public function baueliste(&$params) {
$bilderordner = $params->get('derordner');
$ordner_full = $params->get('fullsize');
$fileArray = modSlideshowHelper::wosinddiebilder($bilderordner);
if($fileArray) {
$fileArray[] = $bilderordner;
$fileArray[] = $ordner_full;
}
return $fileArray;
}
}
?>
mod_slideshow.php:
PHP-Code:
<?php
defined('_JEXEC') or die('Restricted access');
// helper.php aufrufen
JLoader::import('mod_slideshow.helper', JPATH_SITE.DS.'modules');
//$test = modSlideshowHelper::getText($params);
$slideshow = modSlideshowHelper::baueliste($params);
require(JModuleHelper::getLayoutPath('mod_slideshow'));
?>
default.php:
PHP-Code:
<?php
defined('_JEXEC') or die( 'Restricted access' );
//echo $slideshow;
$indizes = count($slideshow) - 1;
$bilderordner = $slideshow[$indizes-1];
$ordner_full = $slideshow[$indizes];
echo '<h1>' . $indizes . '</h1>';
$i = 0;
echo '<ul id="mycarousel" class="jcarousel-skin-atlantica">';
foreach($slideshow as $file) {
if($i <= $indizes-2) {
echo '<li><a href="' . $bilderordner . '/' . $ordner_full . '/' . $file . '" rel="gallery[Portfolio]">';
echo '<img src="' . $bilderordner . '/' . $file . '" />';
echo '</a></li>';
$i++;
}
}
echo '</ul>';
echo '<h1>' . $test . '</h1>';
?>
Wahrscheinlich ist die Lösung ganz einfach und ich beblöde mich einfach nur ... aber ich komm nicht drauf. Wäre toll, mich mich einer mit der Nase drauf stoßen könnte
Sonnige Grüße,
Tom
Lesezeichen