An error occurred while loading the file. Please try again.
-
Patrick Barroca authored4adf7d17
inject_bokeh_url.php 2.46 KiB
<?php
if(!isset($argv[1])) {
echo "\nFatal Error : Missing Bokeh folder name to inject.\n\n";
exit;
}
$prefix = $argv[1];
require_once 'console.php';
$injector = function($value) use($prefix) {
if(false === strpos($value, '/userfiles/'))
return $value;
if (false === strpos($value, $prefix))
$value = str_replace('//', '/', '/' . $prefix . '/' . $value);
if ('//' == substr($value, 0, 2))
$value = substr($value, 1);
return $value;
};
// profils
echo "\nStarting inject : " . $prefix;
echo "\n\nPhase profil\n";
foreach (Class_Profil::findTopProfils() as $profile) {
echo '.';
$config = $profile->getCfgSiteAsArray();
$changed = false;
foreach(['header_img',
'favicon',
'logo_gauche_img',
'logo_droite_img',
'header_css',
'header_js'] as $name) {
if((!isset($config[$name])) || (!$config[$name]))
continue;
$old_value = $config[$name];
$config[$name] = $injector($old_value);
if($old_value != $config[$name])
$changed = true;
}
if ($changed)
$profile->setCfgSite($config)->save();
}
foreach (Class_Profil::findAllBy(['parent_id not' => null]) as $profile) {
echo '.';
$config = $profile->getCfgSiteAsArray();
if((!isset($config['page_css'])) || (!$config['page_css']))
continue;
$old_value = $config['page_css'];
$config['page_css'] = $injector($old_value);
if($old_value != $config['page_css'])
$profile->setCfgSite($config)->save();
}
Class_Profil::clearCache();
//domains
echo "\n\nPhase domain\n";
foreach(Class_Catalogue::findAllBy(['where' => 'url_img like "%/userfiles/%"']) as $domain) {
echo '.';
$old_value = $domain->getUrlImg();
$new_url = $injector($old_value);
if($old_value != $new_url)
$domain->setUrlImg($new_url)->save();
}
Class_Catalogue::clearCache();
// articles
echo "\n\nPhase article\n";
$injector = function($value) use ($prefix) {
$pattern = '/=(["\'])[^"\']*\/userfiles\/([^"\']*)/i';
return str_replace('/userfiles/userfiles/',
'/userfiles/',
preg_replace($pattern, '=$1/' . $prefix . '/userfiles/$2', $value));
};
foreach(Class_Article::findAllBy(['where' => 'concat(description,contenu) like "%/userfiles/%"'])
as $article) {
echo '.';
$article->setDescription($injector($article->getDescription()))
->setContenu($injector($article->getContenu()))
->save();
}
Class_Article::clearCache();
echo "\n\nInjection terminated\n";