Самый банальный способ
в модели создать метод
public function getRandomBanner() {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "banner_image bi
LEFT JOIN " . DB_PREFIX . "banner_image_description bid ON (bi.banner_image_id = bid.banner_image_id)
WHERE bi.banner_id = '" . (int)$banner_id . "'
AND bid.language_id = '" . (int)$this->config->get('config_language_id') . "'
ORDER BY RAND() LIMIT 0,1");
return $query->rows;
}
Склонировать контроллер модуля, вызвать метод
Учитывая "размеры таблицы, приведенный запрос не сильно нагрузит базу.
Если баннеров много, то метод с запросам можно переделать
public function getRandomBanner() {
$range_id = query( " SELECT MAX(`banner_id`) AS max_id , MIN(`banner_id`) AS min_id FROM `banner_image` ");
$min = $query->row['min_id'];
$max = $query->row['max_id'];
$random = mt_rand( $min , $max_id );
$sql = "SELECT * FROM " . DB_PREFIX . "banner_image bi
LEFT JOIN " . DB_PREFIX . "banner_image_description bid ON (bi.banner_image_id = bid.banner_image_id)
WHERE bi.banner_id >= '" . $random . "'";
$query = $this->db->query($sql);
return $query->rows;
}
писал с листа, если есть ошибки - не обессудьте.