За сортировку отвечает этот файл:
По поводу самых популярных есть вариант решения, но уж без реализации. Добавляем в таблицу смайлов столбец count, например. Кроном с определенными интервалами делаем выборку всех смайлов из базы данных (текстов сообщений). Для простоты, лучше переименовать все смайлы в что-то в стиле :smiley_***: - выборку соответственно делать по нему же. К каждому смайлику в таблице считать число совпадений и вставлять это число в столбик count. Ну и в файле, на который я скинул ссылку, делать сортировку по нему. Посты, естественно, надо выбирать не за все время, а то список будет постоянный. А за месяц, например.