Сначала скопируем шаблон компонента в папку нашего шаблона сайта. Затем создадим внутри скопированной папки шаблона компонента файл .parameters.php, содержащим следующий код:
PHP
В файл .parameters.php находящийся в папке lang/ru/ добавляем строку кода:
PHP
После этого в настройках компонента появятся следующие пункты:
При заполнении этих полей необходимо ввести ID новости, которую нужно «закрепить» и дату в указанном формате, затем сохранить настройки.
Код, который делает всю основную работу размещается в файле шаблона компонента template.php.
PHP
Чтобы визуально отделить «закрепленную» новость от остальных можно провести под ней линию толщиной 1px. Для этого в шаблоне template.php после вывода анонса новости делаем проверку: закреплена ли она? Если новость закреплена, отделяем ее полоской от остальных элементов списка.
PHP
Вот таким простым способом решается задача по «закреплению» новости вверху списка.
Однако тут есть один неприятный момент: предположим у вас много новостей и компонент их выводит постранично. Вам понадобилось «закрепить», какую-нибудь новость, которая находится на странице 3. И здесь нас поджидает сюрприз: новость «закрепится» вверху третьей страницы. Вывести ее в самом начале списка, то есть на первой странице, описанным способом не удастся.
Для решения этой задачи нужно менять код самого компонента "news.list", предварительно скопировав его в папку «своего» пространства имен, например /bitrix/components/mycomponents/.