Пару вопросов по MVC. Поможете?
 что посоветуете?
1) забудьте об MVC на минутку. Пока мы будем говорить о "модели". Так же пока забудьте о представлении, HTML и т.д. Только PHP, только хардкор.
2) вынесите все действия в отдельные классы, что-бы у вас был по объекту на действие
3) вынесите все дублирование в отдельные объекты (это что бы конкретизировать что подразумевается под вторым пунктом) и вынесите все в зависимости
4) поскольку у вас стало много объектов - воспользуйтесь контейнером зависимостей
5) для работы с базой данных имеет смысл организовать DAO например. То есть что бы все что относится к SQL что бы было как-то сокрыто в них а не размазано по всем объектам. Так же можете почитать на тему Table Data Gateway.
То есть у нас должно сформироваться некое API. Нам нужны новости - достаем объект, который умеет их доставать. Нужно что-то еще - для этого чего-то тоже найдется объект умеющий это. Как он будет это делать - дело третье.
Далее, надо добавить прослойку, которая будет конвертировать данные возвращаемые предыдущим API, в тот формат, в который мы хотим. Это будут контроллеры по сути. Для них нужен роутер, шаблонизатор и т.д. 
Дабы устранить дублирования UI-ки имеет смысл выделить отдельные компоненты (например блок с последними новостями - отдельный UI компонент). То есть страница будет собираться как-бы из кусочков.
Ну как-то так.
в моделе реализуете выборку, в контроллере вызываете модель и передаете ее в шаблон. В шаблоне через цикл выводите данные
Контроллер главной страницы(к примеру) получает запрос, и дергает виджет. Виджет дергает базу данных, которая возвращает ему массив из mysql. Этот массив из модели передается в шаблон виджета. Далее виджет возвращает в контроллер главной страницы уже сформированное представление, которое контроллер главной страницы передает в шаблон.