it-swarm-eu.dev

0 - Usando $ this quando non nel contenuto dell'oggetto

Ho spostato un sito Web dal server (PHP 5.6.38) a localhost (PHP 7.2.10). E ricevo questo errore nel titolo della pagina (nella scheda chrome):

0 - Usando $ this quando non nel contenuto dell'oggetto

Durante la ricerca online ho scoperto che devo sostituire tutte le istanze di JSite::getMenu() con JFactory::getApplication()->getMenu(), l'ho fatto senza fortuna. Ho cambiato il tema e l'errore è scomparso, quindi probabilmente è qualcosa con il tema. Ho provato a modificare il tema ma ricevo questo errore:

C'è stato un errore.

0 errore di sintassi, imprevisto '}', in attesa di elseif (T_ELSEIF) o altro (T_ELSE) o endif (T_ENDIF)

Ritorna al pannello di controllo

Ma non ci sono informazioni su dove si trova questo errore.

Ho scaricato di nuovo i file modello dal server, sostituendo quelli locali ma ricevo ancora lo stesso errore, mentre sul server live non esiste tale errore

[~ ~ #] modifica [~ ~ #]

Ho abilitato error_reporting e ottengo questo errore:

Errore di analisi: errore di sintassi, "}" imprevisto in C: ...\html\modules.php sulla riga 64

Il problema è che il file è identico a quello sul server e sul server non ottengo alcun errore ...

Ecco il codice:

function modChrome_myCatMod($module, &$params, &$attribs)
{
    $moduleTag      = $params->get('module_tag', 'div');
    $headerTag      = htmlspecialchars($params->get('header_tag', 'h3'));
    $bootstrapSize  = (int) $params->get('bootstrap_size', 0);
    $moduleClass    = $bootstrapSize != 0 ? ' span' . $bootstrapSize : '';

    // Temporarily store header class in variable
    $headerClass    = $params->get('header_class');
    $headerClass    = ($headerClass) ? ' class="' . htmlspecialchars($headerClass) . '"' : '';

    if (!empty ($module->content)) : ?>
        <<?php echo $moduleTag; ?> class="moduletable<?php echo htmlspecialchars($params->get('moduleclass_sfx')) . $moduleClass; ?>" id="Mod<?php echo $module->id;?>">
            <?php if ((bool) $module->showtitle) : ?>
                <?php $com_content_categories = $params->get('com_content_categories'); if(!empty($com_content_categories)): 
                    $caturl = ContentHelperRoute::getCategoryRoute ( $com_content_categories[0] );
                ?>
                <<?php echo $headerTag . $headerClass . '>' ?><a href="<?php echo $caturl;?>"><?php  echo $module->title; ?></a></<?php echo $headerTag; ?>>                                                    
                <?php else : ?>             
                <<?php echo $headerTag . $headerClass . '>' . $module->title; ?></<?php echo $headerTag; ?>>                    
                <? endif;?>

            <?php endif; ?><?php echo $module->content; ?>
        </<?php echo $moduleTag; ?>>
    <?php endif; 
}     //////////////////////////////////error line
2
dvn22

Non citarmi su questo, ma ho la sensazione che potrebbe essere dovuto al mix di parentesi graffe e sintassi alternativa.

Ho riscritto il tuo modChrome usando le parentesi graffe:

function modChrome_myCatMod($module, &$params, &$attribs)
{
    $moduleTag      = $params->get('module_tag', 'div');
    $headerTag      = htmlspecialchars($params->get('header_tag', 'h3'));
    $bootstrapSize  = (int) $params->get('bootstrap_size', 0);
    $moduleClass    = $bootstrapSize != 0 ? ' span' . $bootstrapSize : '';

    // Temporarily store header class in variable
    $headerClass    = $params->get('header_class');
    $headerClass    = ($headerClass) ? ' class="' . htmlspecialchars($headerClass) . '"' : '';

    if (!empty ($module->content))
    {
        echo '<' . $moduleTag . ' class="moduletable' . htmlspecialchars($params->get('moduleclass_sfx')) . $moduleClass . '" id="Mod' . $module->id . '">';
            if ((bool) $module->showtitle)
            {
                $com_content_categories = $params->get('com_content_categories');

                if (!empty($com_content_categories))
                {
                    $caturl = ContentHelperRoute::getCategoryRoute($com_content_categories[0]);
                    echo '<' . $headerTag . $headerClass . '><a href="' . $caturl . '">' . $module->title . '</a></' . $headerTag . '>';
                }
                else
                {
                    echo '<' . $headerTag . $headerClass . '>' . $module->title . '</' . $headerTag . '>';
                }

                }
            echo $module->content;
        echo '</' . $moduleTag . '>';
    }
}

Spero che questo risolva il problema.

Detto questo, se non hai fornito l'intero contenuto di questo file nella tua domanda, ti suggerirei di farlo poiché l'errore potrebbe effettivamente derivare da una riga diversa.

1
Lodder