the only way i found was:
SilverStripe\Core\Injector\Injector:
SilverStripe\SiteConfig\SiteConfigLeftAndMain:
class: FaviconSiteConfigLeftAndMain
and:
<?php
use SilverStripe\SiteConfig\SiteConfig;
use SilverStripe\SiteConfig\SiteConfigLeftAndMain;
use SilverStripe\ORM\DataObject;
use SilverStripe\Dev\Debug;
use SilverStripe\Dev\Backtrace;
class FaviconSiteConfigLeftAndMain extends SiteConfigLeftAndMain
{
public function save_siteconfig($data, $form)
{
$data = $form->getData();
$siteConfig = DataObject::get_by_id(SiteConfig::class, $data['ID']);
$form->saveInto($siteConfig);
$siteConfig->write();
if ($siteConfig->hasExtension(RecursivePublishable::class)) {
$siteConfig->publishRecursive();
}
if($data['DoRefreshFavicon'] == 1){
//Debug::show($data);
$response = 'Favicon was updated successfully! You might empty your browser-cache to take effect!';
}else{
$response = _t('SilverStripe\\Admin\\LeftAndMain.SAVEDUP', 'Saved.');
}
$this->response->addHeader(
'X-Status',
rawurlencode($response)
);
return $form->forTemplate();
}
}