Skip to content
Snippets Groups Projects
Commit aecab068 authored by Patrick Barroca's avatar Patrick Barroca
Browse files

rel #36298 : introduce urls replacement in article description and content

parent 1df551a0
Branches
Tags
6 merge requests!1553Master,!1519Master,!1506Master,!1502Master,!1491Master,!1464Dev#36298 migration finale typo3 le 1er fevrier
<?php
require_once './console.php';
class Article_Url_Migrator {
use Trait_MemoryCleaner;
public function run() {
echo "\nStarted at " . date('c') . "\n";
$current = 0;
$total = Class_Article::count();
$count = 0;
while($models = Class_Article::findAllBy(['order' => 'id_article',
'limitPage' => [$current, 1000]])) {
$this->_runPage($models);
$count += count($models);
echo $count . '/'. $total . "\n";
$this->_cleanMemory();
$current++;
}
echo "\nFinished at " . date('c') . "\n";
}
protected function _runPage($models) {
foreach($models as $model)
$this->_runModel($model);
}
protected function _runModel($model) {
$model
->setDescription($this->_migrateAll($model->getDescription()))
->setContenu($this->_migrateAll($model->getContenu()))
->save()
;
}
protected function _migrateAll($data) {
foreach(['uploads\/' => '/userfiles/typouploads/',
'fileadmin\/fichiers\/' => '/userfiles/typofileadmin/fichiers/',
'fileadmin\/user_upload\/' => '/userfiles/typofileadmin/user_upload/']
as $pattern => $replacement)
$data = $this->_migrate($data, $pattern, $replacement);
return $data;
}
protected function _migrate($data, $pattern, $replacement) {
$regs = '/(< *(a|img)[^>]*(href|src) *= *["\'])(http:\/\/[^"\']*\/)?' . $pattern . '([^"\']*)/i';
return preg_replace($regs, '$1'.$replacement.'$5', $data);
}
}
(new Article_Url_Migrator())->run();
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment