А вот и код. Можно использовать в любом контроллере где используется ckeditor для сохранения произвольной верстки в базе. Любое уменьшенное изображение, добавленное через редактор ckeditor теперь на фронт-энде грузится не полностью, а уменьшается через model_tool_image->resize. Таким образом увеличиваем скорость загрузки страниц с произвольным текстом и изображениями (делал для модуля новостей)
$entity = html_entity_decode($news_info['description']);
preg_match_all('/<img.*?width\:[^>]+>/i',$entity,$res);
foreach ($res[0] as $rest) {
preg_match('/(?<=src\=\"\/image\/)(.*)(?=\"\sstyle)/i',$rest,$oldsrc);
preg_match('/(?<=width\:\s)(.*)(?=px\;\sh)/i',$rest,$pwidth);
preg_match('/(?<=height\:\s)(.*)(?=px\;\sm)/i',$rest,$pheight);
$newlink = $this->model_tool_image->resize($oldsrc[0],$pwidth[0],$pheight[0]);
$newrest = $rest;
$newrest = preg_replace('/(?<=src\=\")(.*)(?=\"\sstyle)/i',$newlink,$newrest);
$newrest = preg_replace('/width(.*)(?=margin)/i',' ',$newrest);
$newrest = preg_replace('/height(.*)(?=margin)/i',' ',$newrest);
$entity = str_replace($rest,$newrest,$entity);
}
$this->data['description'] = $entity;
P.S. Для уменьшаемых изображений обязательно указание размера, а также margin любой толщины.