Hi, I’m upgrading to the latest version (3.42) but I’m having an error on the page.update:after hook. The error is the following:
Exception: Error
Call to a member function template() on null
The weird thing is that I’m having this error only on the update:after event, while others event seem to run correctly (the first hook in the code below).
Any hint?
'hooks' => [
//Scrive su db l'articolo una volta aggiornato
//---------------------------------------------
'page.update:after' => function ($newpage, $oldpage) {
if($newpage->template() == "article")
{
//Aggiorna l'articolo su db
articleUpdate($newpage);
}
elseif ($newpage->template() == "selezione")
{
//Aggiorna la selezione
saveSelezioneToDB($newpage);
}
elseif ($newpage->template() == "longform-plist")
{
//Aggiorna l'id del longform playlist
updateArtSpecialID($newpage);
}
},
//Scrive su db l'articolo quando cambio titolo
//---------------------------------------------
'page.changeTitle:after' => function ($page,$oldpage) {
if($page->template() == "article")
{
//Articoli
articleUpdate($page);
}
elseif ($page->template() == "selezione")
{
//Liste
saveSelezioneToDB($page);
}
},
//Quando cambia il path di un longform playlist,
//viene cambiato il path di tutti gli articoli che ne fanno parte
//---------------------------------------------------------------
'page.changeSlug:after' => function ($page,$oldpage) {
if($page->template() == "longform-plist") articleListMove($page);
},
//Scrive lo stato della pagina quando passa da invisibile a visibile
//------------------------------------------------------------------
'page.changeStatus:after' => function ($page,$oldpage) {
if($page->template() == "article")
{
//Articoli
articleUpdate($page);
}
elseif ($page->template() == "selezione")
{
//Liste
saveSelezioneToDB($page);
}
},
//Elimina un articolo dal db quando viene eliminato dal panel
//-----------------------------------------------------------
'page.delete:after' => function ($status, $page) {
if($page->template() == "article")
{
deleteArticleFromDb($page);
}
else if ($page->template() == "selezione")
{
deleteSelezioneFromDb($page);
}
},
//Impedisce il salvataggio di alcune specifiche pagine a chi non ha i permessi
//-----------------------------------------------------------
'page.update:before' => function ($page, $values, $strings) {
//if ($page->template() == 'lungo')
//{
//Exception
//throw new Exception('Non hai i permessi!');
//}
}
]
];