<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:georss="http://www.georss.org/georss">
<channel>
<title>Мысли вслух - ПафНутиЙ-Блог</title>
<link>https://pafnuty.name/</link>
<language>ru</language><item>
<title>[Глобальный хак] Индекс сортировки новостей в DLE или как вывести новости в нужном порядке</title>
<link>https://pafnuty.name/thinking/139-dle-sort-index.html</link>
<pdalink>https://pafnuty.name/thinking/139-dle-sort-index.html</pdalink>
<guid>https://pafnuty.name/thinking/139-dle-sort-index.html</guid>
<pubDate>Thu, 14 Mar 2013 23:37:21 +0400</pubDate>
<category>index</category>

<enclosure url="http://pafnuty.name/uploads/posts/2013-03/thumbs/1363287698_sort_index.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-03/thumbs/1363289321_img.gif" type="image/gif" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-03/1363287736_2013-03-13_005935.png" type="image/png" />
<content:encoded><![CDATA[<div align="center"><a href="http://pafnuty.name/uploads/posts/2013-03/1363287698_sort_index.png" class="highslide" target="_blank" rel="noopener external"><img src="http://pafnuty.name/uploads/posts/2013-03/thumbs/1363287698_sort_index.png" style="max-width:100%;" alt=""></a></div><br>Вы когда нибудь задумывались над вопросом произвольной сортировки новостей в DLE? <br>Т.е. такой порядок вывода новостей, который не будет зависеть от даты, просмотров, рейтинга или имени новости по умолчанию в DLE не возможен и плясками с использованием fixed и изменением даты новости тут не обойдёшься. <br>Нужен некий параметр, согласно значения которого будут сортироваться новости, в bitrix есть такой параметр и называется он индекс сортировки.<br><br><h2>Суть индекса сортировки проста</h2> В БД заводим новое поле, по умолчанию его значение равно 500. Чем больше значение этого индекса отличается от исходного, тем выше или ниже будет стоять новость в списке новостей.<br>Все новости сортируются сначала по значению этого поля, а уже потом по дате добавления (настройка по умолчанию DLE). Конечно же фиксированные новости будут в любом случаи выше, но и там они будут сортироваться сначала по индексу сортировки, а потом по дате.<br><br><h3>Что это даст и зачем нужно?</h3> Представьте ситуацию, когда нужно по какой то причине "поднять новости выше остальных", например товары в каталоге, но при этом у вас уже есть несколько зафиксированных новостей выше которых не должна подниматься никакая новость, или рекламная статья, за просмотры которой вам платит рекламодатель, но фиксированные новости имеют другой внешний вид, или у вас кинотеатр и нужно вытянуть несколько фильмов на верх в определённом порядке. Вот в этих случаях и нужен индекс сортировки.<br><br><h3>Собственно о самом хаке</h3>Установка детально расписана, не слишком сложная, а запрос в БД можно выполнить в автоматическом режиме непосредственно из инструкции по установке.<br>После установки у всех новостей будет установлен индекс сортировки равным 500, а в админке, в разделе Настройка системы, на вкладке "Настройки вывода новостей" появится вот такая настройка:<br><br><div align="center"><a href="http://pafnuty.name/uploads/posts/2013-03/1363289321_img.gif" class="highslide" target="_blank" rel="noopener external"><img src="http://pafnuty.name/uploads/posts/2013-03/thumbs/1363289321_img.gif" style="max-width:100%;" alt=""></a></div><br>Можно включить или отключить учёт индекса сортировки (пока глобально, по всему сайту) и выбрать направление сортировки.<br><br>В форме добавления и радактирования новостей в админке так же появится дополнительное поле индекса сортировки:<br><br><div align="center"><img src="http://pafnuty.name/uploads/posts/2013-03/1363287736_2013-03-13_005935.png" style="max-width:100%;" data-maxwidth="480" alt="[Глобальный хак] Индекс сортировки новостей в DLE или как вывести новости в нужном порядке"></div><br><br>Это первая версия глобального хака, если будет интересно и востребовано - буду постепенно добавлять возможности более тонкой настройки вывода в категориях и т.п.<br><br><div class="downloadlink"><p>Скачать хак можно только с github т.к. там удобнее поддерживать код и всегда актуальная версия.<br>Там же живут и все остальные </p></div><br><b>Жду ваших мнений!</b>]]></content:encoded>
</item><item>
<title>Sublime Text 2 - краткий обзор, примеры и плагины</title>
<link>https://pafnuty.name/thinking/137-sublime-text.html</link>
<pdalink>https://pafnuty.name/thinking/137-sublime-text.html</pdalink>
<guid>https://pafnuty.name/thinking/137-sublime-text.html</guid>
<pubDate>Tue, 15 Jan 2013 19:59:09 +0400</pubDate>
<category>index</category>

<enclosure url="http://pafnuty.name/uploads/posts/2013-01/1358262103_0.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262086_1.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262111_2.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/1358262098_4.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/1358262122_3.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262081_5.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262099_6.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262084_7.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262084_7.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/1358262102_8.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/1358262138_10.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262139_11.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/1358262159_12.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262119_13.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262164_14.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262098_15.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/1358262079_16.png" type="image/png" />
<enclosure url="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358275449_h_1342611880_6720086_a964ae6f11.png" type="image/png" />
<content:encoded><![CDATA[<div align="center"><img src="http://pafnuty.name/uploads/posts/2013-01/1358262103_0.png" style="max-width:100%;" data-maxwidth="480" alt="Sublime Text 2 - краткий обзор, примеры и плагины"></div><br><br>Как и обещал - сегодня я расскажу о красивом и удобном текстовом редакторе Sublime Text 2.<br><br>Раньше для вёрстки я пользовался двумя отличными программами и (TopStyle и сейчас иногда пользуюсь) и меня всё полностью устраивало.<br>И вот однажды я увидел видео с демонстрацией текстового редактора и решил попробовать – не понравился т.к. немного непривычно было и времени разбираться в англоязычных конфигах не было. Потом я прочитал статью в у Димы Dimox&#96;a и поставил программу ещё раз, и снова "не пошло". И только с третьей попытки я понял что это за зверь и теперь вряд ли на что-то променяю Sublime Text. Так что сразу могу сказать, что вам придётся потратить на настройку и освоение редактора некоторое время, и чем дольше вы в нём работаете, тем больше для вас будет открываться приятных мелочей и не очевидных, но очень удобных и экономящих нервы и время фишек! <br><b>Но обо всё по порядку.</b><br><br><h2>Особенности редактора</h2> <br><h3>Быстрый и красивый</h3> Просто взгляните на скриншоты – ничего лишнего, только нужное. <br><br><div align="center"><a href="http://pafnuty.name/uploads/posts/2013-01/1358262086_1.png" class="highslide" target="_blank" rel="noopener external"><img src="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262086_1.png" style="max-width:100%;" alt=""></a></div><br><div align="center"><a href="http://pafnuty.name/uploads/posts/2013-01/1358262111_2.png" class="highslide" target="_blank" rel="noopener external"><img src="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262111_2.png" style="max-width:100%;" alt=""></a></div><br><br>Запуск происходит в считанные секунды, что положительно влияет на психику, а простая и красивая анимация интерфейса и различные цветовые схемы лишь дополняют приятные ощущения от работы в редакторе.<br> <br><h3>Крайне гибкий в настройках</h3> Особенностью ST2 является хранение всех настроек в файлах. <br>Конечно можно настроить его и через UI, но в меню представлены лишь общие настройки, тонкости придётся настраивать самостоятельно в файлах, однако это не столь сложно, как кажется на первый взгляд, достаточно открыть файл пользовательских настроек, скопировать необходимые настройки из файла настроек по умолчанию и подправить под себя, а разобраться в них поможет .<br><br><div align="center"><img src="http://pafnuty.name/uploads/posts/2013-01/1358262098_4.png" style="max-width:100%;" data-maxwidth="480" alt=""></div><br><br><h3>Лёгкая расширяемость функционала</h3>Для ST2 существует уже огромное количество плагинов, наборов готовых сниппетов, цветовых схем и прочих полезностей, существенно расширяющих его функционал.<br>О некоторых плагинах я кратко расскажу в конце статьи.<br><br><h3>Собственные горячие клавиши</h3> Хоткеи можно назначать для практически любого действия и не только.<br>Тут не совсем уместно понятие горячие клавиши, т.к. "горячей" может стать любая клавиша, по вашему желанию. <br>К примеру мой файл конфигурации пользовательских хоткеев выглядит так:<br><br><pre><code>[<br>{ "keys": ["{"], "command": "insert_snippet", "args": {"contents": "{nt$0nt}"}, "context":<br> [<br> { "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },<br> { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },<br> { "key": "selector", "operator": "equal", "operand": "source.css", "match_all": true },<br> { "key": "following_text", "operator": "regex_contains", "operand": "^(?:t| |)|]|}|$)", "match_all": true }<br> ]<br> },<br>{<br> "keys": ["shift+alt+w"], <br> "command": "wrap_as_you_type", <br> "context": [{<br> "operand": false, <br> "operator": "equal", <br> "key": "setting.is_widget"<br> }]<br>}<br>]<br></code></pre> <br>Первый большой кусок кода – определённая расстановка фигурных скобок в CSS-файлах, я люблю, когда код выглядит каскадно:<br><pre><code><br>.class {<br> color: #000;<br> background: none;<br> }<br> .class p {<br> color: #fff;<br> background: #000;<br> }<br></code></pre><br>В своё время были у нас некие разногласия относительно каскадного подхода к написанию CSS, но после того, как выяснилось, что <b>такой код отлично сворачивается</b> – разногласия пропали сами собой (просто попробуйте свернуть первую строку).<br><br>Второй кусок – переопределение сочетания клавиш <b>shift+alt+w</b> для удобного обёртывания кода в плагине emmet.<br>Но никто не мешает добавить/переназначить любую клавишу или сочетание клавиш радактора? достаточно проделать действия, аналогичные пользовательским настройкам.<br><br><div align="center"><img src="http://pafnuty.name/uploads/posts/2013-01/1358262122_3.png" style="max-width:100%;" data-maxwidth="480" alt=""></div><br><br><h3>Удобнейшее мультивыделение и полноценное мультиредактироване</h3> Мультивыделение отлично работает даже с Punto Switcher, в отличии от np++<br>К примеру из списка категорий<br><div align="center"><a href="http://pafnuty.name/uploads/posts/2013-01/1358262081_5.png" class="highslide" target="_blank" rel="noopener external"><img src="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262081_5.png" style="max-width:100%;" alt=""></a></div><br>нам нужно сверстать ненумерованный список, где ссылки будут иметь title соответствующий названию категории, занятие не из приятных, если нет мультивыделения, а ещё лучше вооружиться плагином emmet. Тогда последовательность действий будет примерно такая:<br><ol type="1"><li> Ctrl+A<br></li><li> Ctrl+Shif+L<br></li><li> Ctrl+C<br></li><li> Shift+Alt+W<br></li><li> Печатаем li&gt;a[title] и жмём enter, печатаем #, <br></li><li> Ctrl+Alt+→<br></li><li> Ctrl+V<br></li><li> Ctrl+A<br></li><li> Shift+Alt+W<br></li><li> Печатаем ul<br></li><li> Всё<br></li></ol> <div align="center"><a href="http://pafnuty.name/uploads/posts/2013-01/1358262099_6.png" class="highslide" target="_blank" rel="noopener external"><img src="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262099_6.png" style="max-width:100%;" alt=""></a></div><br>Фокус в том, что если выделить количество строк, равным количеству скопированных строк - каждая строка вставится в своё место ) <br>На первый взгляд сложно, но когда вам попадётся список из 200+ пунктов - подобный подход здорово сэкономит время )<br><br><h3>Мгновенный, живой поиск по открытым файлам и проекту</h3> (о проектах подробнее расскажу ниже)<br><br><div align="center"><a href="http://pafnuty.name/uploads/posts/2013-01/1358262084_7.png" class="highslide" target="_blank" rel="noopener external"><img src="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262084_7.png" style="max-width:100%;" alt=""></a></div><br>На скриншоте в проекте закинута папка с DLE. Открыт один файл, не имеющий отношения к DLE. Я нажал <b>Ctrl+P</b> и набрал слово <b>show</b> - моментально открылся для просмотра (без открытия отдельной вкладки) первый файл, название которого совпало с вводимыми символами, если перемещаться по списку стрелками на клавиатуре - будут открываться для просмотра другие файлы, если нажать <b>Enter</b> - файл откроется в отдельной вкладке. И всё это происходит мгновенно!<br><br><h3>Проекты</h3> <br><div align="center"><a href="http://pafnuty.name/uploads/posts/2013-01/1358262084_7.png" class="highslide" target="_blank" rel="noopener external"><img src="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262084_7.png" style="max-width:100%;" alt=""></a></div><br>Проекты это крайне удобная фишка редактора. <br>Для добавления папки в проект достаточно просто перетащить нужную папку с файлами в левую колонку. Как видно на скриншоте проект представляет из себя подобие левой колонки проводника windows. Можно сохранять проект в виде специального файла и переключаться между проектами при необходимости - очень удобно, не нужно постоянно держать открытым TotalCommander с кучей вкладок и бегать туда-сюда в поисках нужного файла, достаточно открыть нужный проект и нажать <b>Ctrl+P</b> вписав часть имени файла.<br><br><h3>Миникарта</h3> <br><div align="center"><img src="http://pafnuty.name/uploads/posts/2013-01/1358262102_8.png" style="max-width:100%;" data-maxwidth="480" alt=""></div><br>Миникарта располагается в правой колонке, отображает несколько экранов кода и её можно использовать в т.ч. как скроллбар. А так же можно написать комментарий "большими буквами" с помощью плагина ASCII-Decorator и вы не потеряете нужный кусок к примеру CSS-файла.<br><br><h3>Сниппеты – архи полезная вещь!</h3> По началу я не предавал значения сниппетам и не совсем понимал для чего они вообще нужны, ведь есть заготовки кода, которые удобно разложены по папкам. <br>Теперь я открываю эти папки лишь для того, чтобы скопировать оттуда код и вставить в новый сниппет, который потом буду вызывать либо хоткеем, либо выбирать в автокомплите. <br>К примеру, если я набираю текст <b>bx</b> и жму <b>Ctrl+Space</b> – я вижу меню автокомплита такого содержания:<br><br><div align="center"><img src="http://pafnuty.name/uploads/posts/2013-01/1358262138_10.png" style="max-width:100%;" data-maxwidth="480" alt=""></div><br>Это некоторые часто (и не очень) используемые сниппеты, которые я добавил для удобства создания шаблонов под bitrix, т.к. всё запомнить нереально, а лазить каждый раз в типовые шаблоны или документацию - лень.<br>При выборе нужного сниппета я получаю вот такой код:<br><br><div align="center"><a href="http://pafnuty.name/uploads/posts/2013-01/1358262139_11.png" class="highslide" target="_blank" rel="noopener external"><img src="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262139_11.png" style="max-width:100%;" alt=""></a></div><br>обратите внимание – часть текста уже выделена при вставке, его можно удалить, если он не нужен в данном шаблоне. Делается подобное выделение очень просто:<br><br><div align="center"><img src="http://pafnuty.name/uploads/posts/2013-01/1358262159_12.png" style="max-width:100%;" data-maxwidth="480" alt=""></div><br>Выбираем в меню <b>Инструменты - &gt; Новый сниппет</b> и получаем заготовку для нового сниппета.<br><br><div align="center"><a href="http://pafnuty.name/uploads/posts/2013-01/1358262119_13.png" class="highslide" target="_blank" rel="noopener external"><img src="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262119_13.png" style="max-width:100%;" alt=""></a></div><br>Вместо <pre><code>Hello, ${1:this} is a ${2:snippet}.</code></pre><br>вставляем любой исходный код. И соблюдаем ряд правил, про которые хорошо написано на . Если нужно вставить знак <b>$</b> - то экранируем его обратным слешем <b>\</b><br><br><h3>Умные закладки</h3> Просто попробуйте выделить некий кусок текста и нажмите <b>Ctrl+F2</b> - поставится закладка, потом можно править код в другом месте, а если нужно вернуться к закладке – жмите <b>F2</b> и будете приятно удивлены тем, что закладка находится в том же состоянии, в котором вы её поставили, т.е. если был выделен текст - он будет в точности так же выделен.<br><br><h3>Умное комментирование</h3> Для каждого синтаксиса существуют свои комментарии, так вот не зависимо от синтаксиса Sublime Text правильно ставит и снимает правильные комментарии по нажатию на <b>Ctrl+/</b><br>К примеру если в выделенном, закомментированном куске кода есть вложенный комментарий - он не будет раскомментирован при раскомментровании всего куска.<br><br><h3>Удобное сворачивание кода</h3> <br><div align="center"><a href="http://pafnuty.name/uploads/posts/2013-01/1358262164_14.png" class="highslide" target="_blank" rel="noopener external"><img src="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262164_14.png" style="max-width:100%;" alt=""></a></div><br>Можно сворачивать отдельные уровни, конкретный кусок кода или атрибуты тегов - что очень удобно, если таковых много и нужно взглянуть на код без атрибутов.<br><br><h3>Волшебная кнопка</h3> А точнее сочетание <b>Ctrl+Shift+P</b> - <b>запомните его</b> - это сочетание даёт доступ к всевозможным командам и вообще всему что есть в ST2, достаточно начать набирать текст.<br>К примеру чтобы сменить подсветку синтаксиса наприме на html достаточно набрать <b>sshtml</b>, редактор сам подставит <b>Set Syntax: HTML</b>.<br>Порой проще нажать <b>Ctrl+Shift+P</b> и набрать часть нужного слова, чем искать нужный пункт меню.<br><br>Я описал лишь самые очевидные плюсы редактора, об остальных вы сможете узнать самостоятельно, начав использовать Sublime Text. <br>Так же хочу немного рассказать про плагины, которыми пользуюсь сам и советую другим.<br><br><h2>Плагины</h2><ul><li> - ставить в обязательном порядке, этот плагин существенно облегчает установку/удаление других плагинов.<br><br>Все, представленные ниже (как и любые другие) плагины рекомендую устанавливать через Package control (нажимаем Ctrl+Shift+P, пишем list, жмём enter или выбираем пункт "Package Control: List Packages") введя название плагина в строку поиска.<br></li><li> - наследник ZenCoding превзошедший своего прародителя! Если вы верстаете - это первый плагин, который обязателен к установке, сказать, что он облегчает жизнь верстальщика - не сказать ничего, просто потыкайте по ссылкам в и вы всё поймёте.<br></li><li> - я поставил этот плагин для того, что бы точно знать в какой кодировке открыт файл, а то бывали небольшие фэйлы с неправильным отображением текста на сайте))<br></li><li> - подсветка парных скобок, кавычек. Делает их более заметными, что удобно когда смотришь чужой код и не только.<br></li><li> - Превращает маленькие буквы в большие, написанные различными символами (символы и шрифт зависят от настроек).<br></li><li> - минимизация js-скриптов и CSS-файлов - полезный плагин для уменьшения их веса при сдаче проекта заказчику.<br></li><li> - полезнейший плагин для управления и работы с html-тегами <br><div align="center"><a href="http://pafnuty.name/uploads/posts/2013-01/1358262098_15.png" class="highslide" target="_blank" rel="noopener external"><img src="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358262098_15.png" style="max-width:100%;" alt=""></a></div><br></li><li> - выравнивание кода. просто выделяем неровный код, жмём Ctrl+Alt+A и наслаждаемся стройного вида кодом )<br><div align="center"><img src="http://pafnuty.name/uploads/posts/2013-01/1358262079_16.png" style="max-width:100%;" data-maxwidth="480" alt=""></div><br></li><li> - набор сниппетов для jquery - просто упрощает написание jQ-функций )<br></li></ul><br><br><b>Небольшая ложка дёгтя?</b><br>Редактор платный, но платный условно - т.е. периодически, после сохранения файла, вылезет предложение купить, но закрывается по Esc и не доставляет каких-либо неудобств и ни кто не настаивает на покупке, можно пользоваться сколько угодно бесплатно!<br><br><b>В завершение обзора дам несколько полезных ссылок</b><br>- <br>- <br>- - гораздо проще осваивать программу на великом могучем, чем на инглише ) Я пошёл дальше и перевёл в своём редакторе всё, что посчитал нужным перевести (это можно увидеть на скриншотах).<br>- , хоть некоторые и устарели. <br><br>Шпаргалка по стандартным хоткеям:<br><div align="center"><a href="http://pafnuty.name/uploads/posts/2013-01/1358275449_h_1342611880_6720086_a964ae6f11.png" class="highslide" target="_blank" rel="noopener external"><img src="http://pafnuty.name/uploads/posts/2013-01/thumbs/1358275449_h_1342611880_6720086_a964ae6f11.png" style="max-width:100%;" alt=""></a></div><br><br>На этом, пожалуй, закончу этот небольшой обзор. <br><b>Задавайте вопросы,</b> с радостью отвечу и <b>помогу, чем смогу</b> в освоении столь замечательного редактора.<br><s>Если есть желающие - поделюсь собственным, уже настроенным и готовым к бою, редактором (портабельный под Windows)</s><br><br><div class="downloadlink"><p>Делюсь (портабельный под Windows 32bit): </p></div>]]></content:encoded>
</item><item>
<title>Проблема position:relative и dle_js.js в DLE 9.0-9.2</title>
<link>https://pafnuty.name/thinking/93-problema-positionrelative-i-dle_jsjs-v-dle-90-92.html</link>
<pdalink>https://pafnuty.name/thinking/93-problema-positionrelative-i-dle_jsjs-v-dle-90-92.html</pdalink>
<guid>https://pafnuty.name/thinking/93-problema-positionrelative-i-dle_jsjs-v-dle-90-92.html</guid>
<pubDate>Wed, 16 Feb 2011 11:48:41 +0300</pubDate>
<category>index</category>

<content:encoded><![CDATA[При вёрстке шаблонов для DLE я часто использую приём для размещения блоков на сайте с помощью position:relative; и position:absolute; - это очень удобный, семантически-правильный, валидный и т.д. способ решения сложных, на первый взгляд вариантов оформления. <br>Примером может служить тот же шаблон <a href="http://pafnuty.name/portfolio/shablony/82-turnion.html" target="_blank" rel="noopener external">Turnion</a>.<br>Но вот незадача: при использовании position: relative; для блоков, расположенных на странице (по расчётам браузера) ниже позиции top: 0px; (а это все блоки, кроме шапки) и являющихся родителем для комментариев, возникает очень неприятный "эффект" при добавлении, редактировании и удалении комментариев - страница прокручивается не до верха комментария, а до верха страницы. <br><br>А дело всё в том, что в DLE 9.2 <b>в файле engine/classes/js/dle_js.js</b> (для версии 9.0 это js_edit.js) есть функция <b>scrollTop</b> - это эффект прокрутки страницы до редактируемого, удаляемого или добавляемого комментария.<br>И функция эта использует для определения позиции текущего элемента функцию , которая <b><span style="font-family:'Courier New';">получает значение позиции элемента top и left относительно отступов его предка.</span></b>, а так как у предка задано свойство position:relative; скрипт думает что его позиция top:0; left:0; и соответственно проматывает страницу в позицию top: 70; left: 0; что и даёт столь неприятный эффект прокрутки до начала страницы.<br><br>Я уже давно обещался заняться этой проблемой (когда даже толком и не знал чем она вызвана), и вот наконец, нашлось время. <br>Почитал документацию по jquery и легко нашёл альтернативную функцию определения позиции элемента - - она <b><span style="font-family:'Courier New';">получает текущие значения отступов относительно документа для первого элемента в наборе</span></b>, что в нашем случаи более разумный подход, в принципе как и в любом другом.<br><br><b>Ну и подведя итог всему вышесказанному - инструкция по "излечению" этого бага будет выглядеть так:</b><br><br>- <b>открываем</b> engine/classes/js/dle_js.js (для версии 9.0 это js_edit.js) любым текстовым редактором (лучше notepad++);<br>- <b>находим</b> все вхождения <b>position()</b>, их будет 4 для DLE 9.2 (для DLE 9.0 - 3);<br>- <b>заменяем</b> все вхождения на <b>offset()</b>;<br>- <b>надеемся</b> на то, что разработчики пофиксят эту проблему в новой версии DLE;<br><br>К сожалению, без правки кода движка эту проблему не решить никаким другим способом, кроме перевёрстки шаблона без использования position:relative.<br><br><b>P.S.</b><br><br>Кстати: <a href="http://qq.by/10170-kak-dolgo-soxranyaetsya-kopiya-udalennoj-veb-stranicy-v-poiskovike.html" target="_blank" rel="noopener external">Как долго сохраняется копия удаленной веб-страницы в поисковике</a>?]]></content:encoded>
</item><item>
<title>QR-коды - Ваше мнение</title>
<link>https://pafnuty.name/thinking/84-qr-kody-vashe-mnenie.html</link>
<pdalink>https://pafnuty.name/thinking/84-qr-kody-vashe-mnenie.html</pdalink>
<guid>https://pafnuty.name/thinking/84-qr-kody-vashe-mnenie.html</guid>
<pubDate>Mon, 29 Nov 2010 12:35:21 +0300</pubDate>
<category>index</category>

<enclosure url="http://pafnuty.name/uploads/posts/2010-11/1291047410_pafnuty.name.gif" type="image/gif" />
<enclosure url="http://pafnuty.name/uploads/posts/2010-11/1291048337_vote-result.jpg" type="image/jpeg" />
<content:encoded><![CDATA[Недавно приобрёл себе телефон <b>Sony Ericsson Xperia X8</b>. После выхода обновления до android 2.1 появилась возможность скачать наконец скайп, но дело не в этом. В андроид-маркете очень много программ, и выбрать на самом деле нормально-работающие довольно сложно. Естественно полез в гугл, искать то, что мне нужно. и на многих сайтах увидел вот такие картинки:<br><div align="center"><img src="http://pafnuty.name/uploads/posts/2010-11/1291047410_pafnuty.name.gif" style="max-width:100%;" data-maxwidth="480" alt="QR-коды - Ваше мнение"></div><br>Прочитав, понял, что это ссылки для загрузки из андроид-маркета. И как оказалось QR-код - это очень полезная штука, можно забить туда любую информацию и "прочитать" с помощью обычного телефона (естественно с установленной программой распознавания qr-кода).<br>В итоге я конечно загрузил все нужные для меня программы, и закономерно возник вопрос:<br><i><b>"А кто ещё пользуется QR-кодами?"</b></i><br><b>Выражайте своё мнение по этому поводу в опросе</b> (находится в правой части сайта), <b>и в комментариях. мне очень интересно мнение людей по этому поводу.</b><br><br><br><b>P.S.</b><br>Кстати Вот результаты прошлого опроса:<br><b>Каким интернет-пейджером Вы пользуетесь?</b><br><div align="center"><img src="http://pafnuty.name/uploads/posts/2010-11/1291048337_vote-result.jpg" style="max-width:100%;" data-maxwidth="480" alt=""></div><br><br>Собственно организовал я его для одного моего товарища, с которым мы поспорили, что популярнее qip или mail-ru agent. Как я и ожидал qip оказался почти в 6 раз популярнее.]]></content:encoded>
</item><item>
<title>Адаптация и рип - в чём разница?</title>
<link>https://pafnuty.name/thinking/77-adaptaciya-i-rip-v-chyom-raznica.html</link>
<pdalink>https://pafnuty.name/thinking/77-adaptaciya-i-rip-v-chyom-raznica.html</pdalink>
<guid>https://pafnuty.name/thinking/77-adaptaciya-i-rip-v-chyom-raznica.html</guid>
<pubDate>Tue, 10 Aug 2010 11:25:21 +0400</pubDate>
<category>index</category>

<enclosure url="http://pafnuty.name/uploads/posts/2010-08/1281449535_rop-or-no.gif" type="image/gif" />
<content:encoded><![CDATA[<div align="center"><img src="http://pafnuty.name/uploads/posts/2010-08/1281449535_rop-or-no.gif" style="max-width:100%;" data-maxwidth="480" alt="Адаптация и рип - в чём разница?"></div><br><br>Не так давно я начал заниматься <a href="http://pafnuty.name/adaptation-for-dle.html" target="_blank" rel="noopener external">адаптацией шаблонов с других CMS</a> и тут сразу у многих возникает, вполне закономерный для начинающих, вопрос: <i>Сделайте мне шаблон вот как на этом сайте</i>, и ссылка на сайт с нужным ему шаблоном. Прохожу по ссылке и вижу какой либо сайт не имеющий отношения к сайтам по продаже шаблонов, или их бесплатному распространению, т.е. обычный сайт со своим, как правило сделанным под заказ, дизайном. <br>Отвечаю заказчику, мол, Вы меня просите сделать рип, а не адаптацию, на что получаю вопрос примерно такого содержания: <blockquote>Ну там же движок не DLE, это же не рип будет. И вообще в чём разница между рипом и адаптацией.</blockquote><br><br>Для всех, у кого подобные вопросы возникают, объясню разницу между рипом и адаптацией своими словами:<br><br><b><i>Адаптация</i></b> - происходит от английского слова adaptation, что значит приспособление. Применимо к шаблонам, адаптация есть перевёрстка шаблона от одной CMS таким образом, что бы он работал на другой CMS. <br>При этом нужно учитывать несколько моментов:<br>- обязательно спросить разрешения у автора! Зачастую авторы запрещают адаптацию своих работ без разрешения.<br>- если шаблон бесплатный и автор шаблона попросил <b>оставить копирайты</b>, их непременно нужно оставить (как пример адаптации смотрите шаблон ). <br>- если же шаблон куплен заказчиком адаптации, тогда уже решать ему, он владелец копии или уникального материала.<br><br><i><b>Рип</b></i> - происходит от английского слова rip - рвать, а ещё у него есть перевод - негодяй, вот это слово мне больше нравится, т.к. полностью характеризует людей, занимающихся рипами. Суть рипа та же что и адаптации, за исключением того что автор рипа как правило присваивает авторские права себе, не считаясь с перечисленными выше моментами. Вынуждают терять при этом возможную прибыль и нервные клетки разработчиков. <br><br>Собственно разница в грань между рипом и адаптацией небольшая, но это как шаг от любви к ненависти, незаметен и очень болезнен. А для комфортного времяпрепровождения в интернете можно <a href="http://www.bestnote.by/catalog/samsung/" target="_blank" rel="noopener external">купить ноутбук samsung</a>.]]></content:encoded>
</item></channel></rss>