Чем плох этот код?
Всего один недостаток - Битрикс
А почему вы считаете что он чем то плох? Фактически, в рамках CMS которую вы используете, совершенно типовой код.
Видимо следует спросить чем плох Битрикс?