В контроллере нельзя делать echo, иначе он в начало HTML вообще попадёт.
Там нужно перед возвратом вставить нужный скрипт.
Например можно сделать так в контроллере футера.
Это
return $this->load->view('common/footer', $data);
Заменить на это:
return '<script>'.$script_text.'</script>' . $this->load->view('common/footer', $data);
Или можно получить сам скрипт из другого контроллера:
return $this->load->view('extention/module/mymod/script') . $this->load->view('common/footer', $data);
Есть ещё вариант - это сделать изменение событием.