Ссылки
Помимо простой логики, лежащей в основе проекта,
я воспользовался некоторыми идеями, которые были
реализованы другими людьми. При их реализации
в Симплуторе я в итоге написал соответствующий
код полностью с нуля. Но не могу не упомянуть
добрым словом:
Код кнопки "Вверх"
- Я нашёл
красивый код плавной анимации кнопки, но мне не понравилась
сложная инструкция по его установке (html, стиль, яваскрипт в
два места, картинка).
- На Хабре я наткнулся
на короткий способ отличить интернет эксплореры
- Там же на Хабре (конкретную ссылку не могу найти их было несколько
таких описаний) нашёлся чрезвычайно красивый и простой css код
геометрических фигур
- ...и правильный пинок яваскриптовым программистам
"почему не так, как задумано, происходит перестройка дерева DOM
и почему document.write - зло"
Эти решения пригодились и для последующих частей проекта.
Галерея картинок
- На сайте cafewebmaster.com
я нашёл скрипт обхода каталогов и реализацию генерации превьюшек на
лету с параллельной записью их в каталог. Код его мне настолько
понравился, что его центральная часть сохранилась до сих пор,
хотя и была переработана. Ссылку на оригинал этого кода дать, увы,
невозможно из-за ошибок на том сайте
- Как и в кнопке "вверх", я свёл рисование всех
интерфейсных элементов галереи в браусере в один яваскриптовый код
и избавился от всех внешних файлов (картинок для кнопок, стилевых
файлов)
- Я полностью написал заново работу галереи в мобильных браусерах
и единообразно описал обработку событий мыши и кнопок в различных
браусерах. Все встреченные мной куски кода от разных людей, которые
послужили основной для этих решений, перечислить невозможно, и ни одно
не было применено "как есть", все переработаны. Код в результате стал
воистину монструозен, и потому был тщательно поделен на отдельный
.gallery.php размером 9 килобайт и самостоятельную
чисто яваскриптовую
галерею, навешиваемую поверх произвольного html кода 24 килобайта
размером
Кнопки социальных сетей
Продравшись через бездны реализаций кнопок "расшарить", я уяснил,
что подавляющее их большинство имеет целью привязать сайт к своему
сервису и непременно уволочь побольше информации о клиенте к себе
в какую-то свою базу данных и бигдату.
В результате постановка всех таких кнопок на сайт приводит к
загрузке мегабайтных скриптов jQuery, шрифтов и внешних картинок.
Всё это увеличивает время загрузки каждой страницы сайта и к тому,
что при малейшем изменении на внешних сервисах сайт для посетителя
начинает невменяемо тормозить.
Мне это надоело, и для разнообразия я сделал строго противоположное
общеупотребительным решение -
единственный яваскрипт
без обращения ко внешним ресурсам, отрисовывающий графические элементы
в SVG формате, а интерфейс расшаринга берущий непосредственно с той
соцсети, в которую создаётся пост.
При этом, конечно, становится невозможно красиво писать о том,
сколько уже народу тебя так расшарило или лайкнуло (ибо чтобы собрать
информацию об этих крохотных циферках на кнопочках, надо как раз и
обращаться на внешний ресурс), но если вы как вебмастер сайта хотите
более тормозной и общепринятой реализации кнопок - найдите более
традиционные и поставьте вместо.
Код изменения стиля ссылки на текущую страницу
В логике многих движков занимает достаточно много места содержательный код,
который показывает активный пункт меню, активную ссылку страницы в меню,
убирает ссылку на текущую страницу. В целом это верный интерфейсный паттерн,
однако в современном яваскрипте и DOM структуре страницы достаточно средств
чтобы сделать это "на стороне клиента" и не напрягать сервер и мозг.
Поиск по сайту RiSearch
Содержательную часть кода я оставил без изменений, однако из-за
глобального переезда всего мира на Unicode выяснилось, что без
серьёзного переписывания кода нормальная работа поиска получается
только в однобайтовых кодировках, поэтому сейчас на в целом utf-8
сайте внутренняя логика и файлы индексов поиска генерятся в
windows-1251 кодировке. Но результат и формы работают в utf-8.
Механизм собственного темплейта тоже полностью
убран из RiSearch, а некоторые параметры конфигурации перемещены
в общий конфиг CMS.
Простейший визуальный редактор
Отсюда
Код облака тэгов