Navi: create_function() is deprecated

Alles rund um Module und Plugins in CONTENIDO 4.10.
Antworten
shi
Beiträge: 219
Registriert: Fr 5. Nov 2004, 14:12
Kontaktdaten:

Navi: create_function() is deprecated

Beitrag von shi » Mi 27. Mär 2019, 14:59

In den Logs taucht die Meldung auf "Function create_function() is deprecated". ich glaube es kommt von main_navigation.

Code: Alles auswählen

<?php

/**
 * description: main navigation
 *
 * @package Module
 * @subpackage NavigationMain
 * @author marcus.gnass@4fb.de
 * @copyright four for business AG <www.4fb.de>
 * @license http://www.contenido.org/license/LIZENZ.txt
 * @link http://www.4fb.de
 * @link http://www.contenido.org
 */

// assert framework initialization
defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');

// get client settings
$rootIdcat = getEffectiveSetting('navigation_main', 'idcat', 1);
$depth = getEffectiveSetting('navigation_main', 'depth', 3);

// get category tree
$categoryHelper = cCategoryHelper::getInstance();
$categoryHelper->setAuth(cRegistry::getAuth());
$tree = $categoryHelper->getSubCategories($rootIdcat, $depth);

// get path (breadcrumb) of current category
$filter = create_function('cApiCategoryLanguage $item', 'return $item->get(\'idcat\');');
$path = array_map($filter, $categoryHelper->getCategoryPath(cRegistry::getCategoryId(), 1));

// use template to display navigation
$smarty = cSmartyFrontend::getInstance();
$smarty->assign('ulId', 'active');
$smarty->assign('tree', $tree);
$smarty->assign('path', $path);
$smarty->display('get.tpl');

?>
Wie muss das Modul geändert werden damit es auch PHP 7.2 unterstützt?

xmurrix
Beiträge: 2744
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Navi: create_function() is deprecated

Beitrag von xmurrix » Mi 27. Mär 2019, 15:22

Hallo shi,

in CONTENIDO 4.10.0 wird create_function() nicht verwendet und bei einem Update werden Module nicht aktualisiert, daher musst du die Modulcodes selber anpassen.

Vergleiche einfach den Modulcode aus der CONTENIDO 4.10.0 Installation (siehe setup/data/examples/data/modules/navigation_main/php/navigation_main_output.php) mit dem, was du hast und übernehme die Änderungen in deine Modulausgabe.

In der Modulausgabe des Moduls "navigation_main" aus CONTENIDO 4.10.0 steht z. B. folgendes drin:

Code: Alles auswählen

...
// get path (breadcrumb) of current category
$filter = function(cApiCategoryLanguage $item) {
    return $item->get('idcat');
};
$path = array_map($filter, $categoryHelper->getCategoryPath(cRegistry::getCategoryId(), 1));
...
Gruß
xmurrix

Antworten