Chernetskiy

Участники
  • Публикации

    3163
  • Зарегистрирован

  • Посещение

  • Days Won

    191

Все публикации пользователя Chernetskiy

  1. Вопрос к разработчикам, что можно оставить в начале загрузки сайта, а что можно убрать в футер? Тест говорит о следующем: Устраните ресурсы, блокирующие отображение, что составит приблизительную экономию при загрузке 1,04 s URL Размер Потенциальная экономия …css/bootstrap.css (realty-centrum.com) 17 KB 190 ms …css/bootstrap-responsive.css (realty-centrum.com) 4 KB 150 ms …chosen/chosen.css (realty-centrum.com) 3 KB 150 ms …ui-lightness/jquery-ui-1.10.2.custom.min.css (realty-centrum.com) 3 KB 150 ms …css/realia-blue.css (realty-centrum.com) 13 KB 230 ms …css/bootstrap.corrections.css (realty-centrum.com) 1 KB 150 ms /2.0-stable/?load=package.standard&lang=ru-RU (api-maps.yandex.ru) 20 KB 350 ms …js/jquery.js (realty-centrum.com) 29 KB 230 ms …js/jquery.ezmark.js (realty-centrum.com) 1 KB 70 ms …js/jquery.cookie.js (realty-centrum.com) 1 KB 70 ms …js/bootstrap.min.js (realty-centrum.com) 8 KB 110 ms …js/jquery-ui.min.js (realty-centrum.com) 60 KB 270 ms …chosen/chosen.jquery.min.js (realty-centrum.com) 6 KB 110 ms …js/realia.js (realty-centrum.com) 2 KB 70 ms …js/clientorderajax.js (realty-centrum.com) 1 KB 70 ms /js/estate.js (realty-centrum.com) 2 KB 70 ms …js/sitebillcore.js (realty-centrum.com) 2 KB 70 ms …js/interface.js (realty-centrum.com) 2 KB 70 ms
  2. 700-й шрифт из загрузки шрифтов Гугла выкинул карту Яндекса трогать не стоит, иначе она отключится в карточке объявления скрипт jquery.iosslider.min.js отключил Хуже не стало, скорость по тесту PageSpeed Insights 66 и 82/100
  3. Из стилей и скриптов у меня на главной загружаются эти (остальные давно выкинул): <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700,300&subset=latin,cyrillic' rel='stylesheet' type='text/css'> <link rel="shortcut icon" href="/template/frontend/realia/img/favicon.png" type="image/png"> <link rel="stylesheet" href="/template/frontend/realia/css/bootstrap.css" type="text/css"> <link rel="stylesheet" href="/template/frontend/realia/css/bootstrap-responsive.css" type="text/css"> <link rel="stylesheet" href="/template/frontend/realia/libraries/chosen/chosen.css" type="text/css"> <link rel="stylesheet" href="/template/frontend/realia/libraries/jquery-ui/css/ui-lightness/jquery-ui-1.10.2.custom.min.css" type="text/css"> <link rel="stylesheet" href="/template/frontend/realia/css/realia-blue.css" type="text/css"> <link rel="stylesheet" href="/template/frontend/realia/css/bootstrap.corrections.css" type="text/css"> <script type="text/javascript" src="https://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU"></script> <script type="text/javascript" src="/template/frontend/realia/js/jquery.js"></script> <script type="text/javascript" src="/template/frontend/realia/js/jquery.ezmark.js"></script> <script type="text/javascript" src="/template/frontend/realia/js/jquery.cookie.js"></script> <script type="text/javascript" src="/template/frontend/realia/js/bootstrap.min.js"></script> <script type="text/javascript" src="/template/frontend/realia/libraries/jquery-ui/js/jquery-ui.min.js"></script> <script type="text/javascript" src="/template/frontend/realia/libraries/chosen/chosen.jquery.min.js"></script> <script type="text/javascript" src="/template/frontend/realia/libraries/iosslider/_src/jquery.iosslider.min.js"></script> <script type="text/javascript" src="/template/frontend/realia/js/realia.js"></script> <script type="text/javascript" src="/apps/client/js/clientorderajax.js"></script> <script type="text/javascript" src="/js/estate.js"></script> <script type="text/javascript" src="/apps/system/js/sitebillcore.js"></script> <script type="text/javascript" src="/template/frontend/realia/js/interface.js"></script> Заглянул на загрузку Главной у себя и нашел несколько идей для кастрации оптимизации кода... К стати, шрифты можно перенести к себе на сайт и не тянуть их со стороны, не уверен, что 700-й шрифт вообще задействуется, наверняка можно исключить. Карту Гугла выкинул, можно выкинуть и скрипт карты Яндекса, сейчас она у меня открывается кликом на отдельную кнопку "Показать все объекты", но смысла в ней на Главной я не вижу. К стати, оказалось что я не выкинул скрипт слайдера, он у меня не используется на Главной. Относительно кэширования, так оно включается в настройках сайта - ищите 3 позиции в разделе Настройки -> Общее, 2 настройки в разделе Excel, 1 настройка в разделе GeoData, 3 настройки в разделе RSS Новостей сайта, 1 настройка в RSS-turbo, 1 настройка в "Выгрузка Яндекс.Недвижимость". Стили и Скрипты можно сжать. Можно перекинуть в футер, чтобы основной контент грузился быстрее. Туда-же и счетчики Яндекса-Гугла. В настройках счетчика Яндекса можно включить асинхронный режим загрузки.
  4. К стати, Paint.NET сохраняет фото в формат .webp с регулировкой уровня сжатия.
  5. Не имея представления о вашем сайте, сложно сказать, что можно выкинуть, а что нет. Посмотрите, что у вас загружается при открытии страницы сайта (код HTML) и проанализируйте, всё-ли нужно. По дефолту грузится много чего, при этом не всё реально используется. Исключите по возможности загрузку не особо нужного функционала, та-же карта потребляет много ресурсов, оставить в составе карточки объявления смысл есть, а вот выводить её на главную - затея сомнительная. Слайдер тоже потребляет много ресурсов. Возможно есть смысл сократить количество объявлений на главной, убрать фон сайта (некоторые устанавливают), пересмотреть цветовую палитру (2-4 основных цвета достаточно), проверить количество и разнообразие шрифтов и откуда они подгружаются (оставьте 2-3 и желательно загрузка с сайта), надо смотреть по разнообразию контента - что необходимо выводить, а в чем нет необходимости. В общем, сложно гадать не видя сайт.
  6. Не совсем так. В любой шаблон разработчик, как правило пихает несколько вариантов отображения информации, карту Гугла (которая в России мало кому интересна), слайдеры, подгружаемые сторонние шрифты, разнообразные скрипты (а вдруг понадобится), выводит на главную максимум возможностей шаблона - дополнительные меню вверх и вниз, возможность вывода мультимедиа, закладывается адаптивность, многобраузерность и т.п. и все это в неупакованном виде, чтобы разработчик сайта мог что-либо убрать/подправить. Стили и скрипты не сжаты и подключаются в разных частях шаблона, некоторые возможно и не понадобятся, но тоже подгружаются. Понятное дело, что о кешировании на этом этапе речь не идет (зависит от настроек сервера). Задача разработчика сайта определиться с необходимым функционалом, выкинуть лишнее (например код карты Гугла, лишние скрипты), по возможности уменьшить обращения сайта к сторонним ресурсам и необходимое разместить на своем сервере, сжать, определиться с приоритетами загрузки сайта - часть кода перенести в футер, оптимизировать, кешировать и добиться нужного результата. Все это комплексные мероприятия, которые проводятся на конкретном сайте. У нас-же, на форуме, в большинстве случаев наблюдается такая ситуация: покупается шаблон (изначально не оптимизированный), оставляется в нем всё нужное и не нужное, навешивается дополнительный функционал - хотелки по мультивалютности, по количеству выводимых параметров объекта, увеличивается количество одновременно отображаемых объектов, к загружаемой по умолчанию карте Гугла цепляется код карты Яндекса, который должен вывести одновременно сотни а то и тысячи объектов, а еще нужен слайдер, чтобы выводил фото в полном UHD-формате, а еще надо чтобы последние объекты + VIP-объекты + дешевые объекты показывались + новости + статьи + десяток счетчиков + реклама + + +... при этом ничего не оптимизируя. А когда спрашиваешь зачем тебе это, будет сильно тормозить, понимаешь что "автор так видит" или "начальство так хочет" или "пожелание заказчика" или собственная хотелка, потому что на Авите так... Авиты могут себе это позволить, поскольку на их хотелки работают Дата-центры, которые в разы мощнее и шустрее ваших дешевых хостингов. К тому-же у них в рекламу вкладывается столько, что они могут проигнорировать некоторые нюансы с тестами Гугла, в топе и без этого будут. Так чего хаять шаблон? Включите голову, исходите из реальных потребностей и возможностей, и действуйте от потребностей пользователя - сайт должен быть легким, не перегруженным. Любая информация на нем должна быть доступна в 2-3 клика. Всё гениальное, как правило выглядит просто. Когда определитесь с содержимым сайта, тогда и приступайте к его оптимизации. Я уверен, что уже на этом этапе скорость вашего сайта будет 30-40/100, останется дело за малым... Я со своим сайтом особо ничего не делал, просто его не перегружал функционалом и выкинул из загрузки не используемые скрипты. Результаты теста 47-74/100. После открытия сайта в браузере, прогнал тест еще раз, результат 35-91/100, через пару минут - 62-74/100. Даже с самим тестом не всё однозначно и не стоит ориентироваться на него как на панацею. . Хотя на сайте остаются мои изначальные косяки с элементами перегруженности, есть что еще выкинуть/перенести/сжать/упростить/доработать. Сайт я делал как тестовый, а он уже несколько лет работает и все никак руки не дойдут довести его до ума и кое-что пересмотреть/доработать. Сапожник без сапог. Удачи, и ставьте в приоритет ваших посетителей а не собственные хотелки и будет вам счастье.
  7. В целом, одобрям, но думаю удобно будет для планшета или дешевых Хромбуков, со смартфона не очень удобно, требуется много распальцовки
  8. Для Вордпресса таких скриптов навалом, а вот для нашего случая надо что-то придумывать... На примере под Вордпресс, например есть комплексный плагин WP-optimize, с его помощью можно: оптимизировать базу данных SQL, определить и удалить неиспользуемые таблицы в базе (если что-то в функционале менялось и удалялось а таблицы остались); Можно настроить для этого автоматизацию по расписанию. сжать как уже имеющиеся фото на сайта, так и настроить на автоматическое сжатие загружаемых фото. Уровень сжатия настраивается - от максимальной компрессии до максимального качества. Само сжатие происходит в облачных сервисах reSmush.it (с сохранением сведений фото EXIF, что отключаемо) или в Nitrosmush (размер обрабатываемого фото может доходить до 100 Мб); Скорость обработки 1 фото 0,5 - 1 сек., в зависимости от размера. Степень сжатия в среднем 70-80%. Можно активировать сохранение исходников. Можно настроить их автоматическое удаление, например через 7 дней. В платной версии плагина можно вычислять неиспользуемые фото с последующим удалением. Возможно активировать Lazy loading (отложенную загрузку) для изображений, что ускорит загрузку страницы сайта. Кэшировать весь контент на сайте и отдельно создать кэш для мобильной версии сайта. Устанавливать срок жизни кэша и его автоматическое обновление. Установить исключения для кэша по отдельным URL, cookies, агентам браузера - например AppleWebKit/* Работает с Gzip-компрессией на сервере. Можно включить автоматическое удаление по расписанию: ревизий записей, спама, удаленных сообщений, неодобренных комментариев, истекших транзиентных настроек и прочего; Думаю, что в нашем случае с Nitrosmush будет проще, зайдите на их сайт и возьмите оттуда код для организации взаимодействия с их сервисом. Хотя вот он (скидываю без перевода): HTTP API Request To integrate the NitroSmush service into your website, do a POST request as described below: POST http://nitrosmush.com/api.php HTTP/1.1 Host: nitrosmush.com Content-Length: {content_length} Content-Type: multipart/form-data; boundary=----{boundary} ------{boundary} Content-Disposition: form-data; name="quality" {quality} ------{boundary} Content-Disposition: form-data; name="image"; filename="{file_name.ext}" Content-Type: {content_type} {raw_image_contents} ------{boundary}-- The allowed values for {content_type} are: image/jpeg, image/png, image/gif {quality} must be a numeric value between 1 and 100. If you pass 100 you will enable lossless compression. Any other value between 1 and 99 will enable lossy compression. HTTP API Response The response is a JSON string with the following data: { result_file: "http://nitrosmush.com/path_to_image.ext", savings_b: savings_in_bytes, savings_percent: savings_in_percent } If an error occurs, the response looks like this: { error: "Long error message, which can be sent to us for inspection.", error_short: "Short error message, which you can show to your users." } Сами управитесь?
  9. Почему улицы на английском языке? Почему цены в евро? Какому нормальному клиенту понравится переводить и пересчитывать, когда полно аналогичных сайтов с более дружелюбным подходом. Неудобно как-то...
  10. Если кому интересно, Межрегиональный экспертный центр финансового мониторинга проводит бесплатный вебинар для организаций и предпринимателей рынка недвижимости, в т.ч. для агентств недвижимости и частных риэлторов. Занятия состоятся 6 августа с 14 до 16 час. (по Москве), желающие могут записаться по ссылке. Вебинар будет проходить в форме онлайн трансляции по всей России. Тема: «Проверка со стороны Росфинмониторинга, ожидаемые изменения закона №115-ФЗ» Для кого подходит вебинар: агентства недвижимости и предприниматели, оказывающие консультационные и посреднические услуги при осуществлении сделок с недвижимым имуществом (включая аренду, сделки на первичном рынке) организации и предприниматели, оказывающие юридические услуги по подготовке сделок купли-продажи недвижимого имущества План мероприятия: Основные обязанности в целях исполнения Федерального закона №115-ФЗ Проверки со стороны Росфинмониторинга и прокуратуры Документы, которые необходимо иметь при проверке Как вести себя с проверяющими (права и обязанности при проверке) Изменения в законодательстве, которые обяжут все организации и ИП рынка недвижимости соблюдать закон №115-ФЗ Ответы на вопросы слушателей Спикер: Пинигина Елена Евгеньевна. Эксперт по финансовому мониторингу и ПОД/ФТ/ФРОМУ более 14 лет, учредитель, руководитель МЭЦФМ (Межрегиональный экспертный центр финансового мониторинга) «Национальное достояние» (партнер МУМЦФМ), главный редактор СМИ сетевого издания «ВЕСТИ 115-ФЗ» ======================================================================================================== 13 и 27 августа состоится Целевой инструктаж и повышение уровня знаний по программе ПОД/ФТ/ФРОМУ Стоимость обучения: Целевой инструктаж (первичное обучение) — 3 000 руб. Повышение уровня знаний (повторное обучение) — 2 500 руб. Участие без выдачи свидетельства БЕСПЛАТНОЕ Запись на вебинар здесь, У них-же можно подготовить макулатуру для проверяющих органов, подробнее здесь.
  11. Ну вот, поколдовал над https://biewer-york.com Сайт на Wordpress c адаптивным шаблоном, на хостинге в reg.ru, кэширование на сервере включено. Исходный тест на PageSpeed Insights - 8-37/100 (для мобильных и компьютеров соответственно) Время загрузки первого контента 5,7 сек. Индекс скорости загрузки 12,2 сек. Время загрузки для взаимодействия 17,4 сек. Время загрузки достаточной части контента 7,5 сек. Время окончания работы ЦП 13,3 сек. Максимальная потенциальная задержка FID 500 мс и Время загрузки первого контента 1,8 сек. Индекс скорости загрузки 3,5 сек. Время загрузки для взаимодействия 5,0 сек. Время загрузки достаточной части контента 2,3 сек. Время окончания работы ЦП 3,3 сек. Максимальная потенциальная задержка FID 150 мс Далее поэтапно танцуем с бубном и попутно тестируем в PageSpeed Insights: Удалил не особо нужные плагины итог: 14-45/100 Оптимизировал изображения (изменение размера+сжатие - сэкономил 44% ) итог: 14-46/100 Подминимаем производительность - отключаем ненужное и не используемое (Отключил Rest API, Отключил Emojis, Отключил Embeds, Удалили RSD ссылку, Удалил профиль XFN (XHTML Friends Network), Удалил wlwmanifest Link, Удалил короткие ссылки, Удалил ссылки следующая и предыдущая запись - работает отдельно в шаблоне, Удалил стили .recentcomments, активировал Асинхронный Fontawesome, Отключил WordPress иконки для фронтенда, Отключил граватары). Удалил переменные запроса для статических ресурсов (версию у javascript файлов и версию у файлов стилей). Не стал отключать RSS-каналы (надо) и удалять jQuery Migrate (полагаю, что будут проблемы) итог: 20-53/100 Минимизируем и оптимизируем HTML-код, Java-скрипты (объединяем, сжимаем, переносим в <head>, добавляем обертку try-catch), CSS (то-же самое + помещаем код в тело страницы и откладываем выполнение) Итог: 42-80/100 Отключил карту Google и отключил её фрейм, всё равно используется карта Яндекс Итог: 41-85/100 Включил асинхронную загрузку шрифтов Google fonts Итог: 49-87/100 Включил кэширование кода Google Analitics и отключил в нем функции контекстно-медийной сети Итог: 43-81/100 - странно, видимо нестыковки с шаблоном, откатываемся... Откат по счетчику Гугл + убираем часть кода, выводящего скрытый счетчик Яндекса (позиция -9999 за границей сайта) Итог: 49-87/100 Небольшие доработки - удаление дублей в хлебных крошках, комментариев из секции <head>, удаление архивов автора и дат, удаление страниц вложений (каждая картинка генерирует отдельную страницу) Итог: 50-89/100 Удалил еще пару ненужных плагинов (вывод статистики и оптимизации базы), сократил вывод количества новостей в футер, ссылки в контактах в футере. Итог: 64-94/100 В целом, уже характеристики по тесту нормальные, скорость загрузки отличная. Можно еще поколдовать, но уже пойдет в ущерб сайту и вызовет недовольство заказчика. Немного можно выиграть на удалении слайдера, фона сайта, сделать сайт не в окне а во весь экран...
  12. Без оптимизации всё равно не обойтись. Сейчас полезу сайт на Вордпрессе оптимизировать, давно надо было сделать. Отпишусь позже...
  13. Да, можно и напрямую прописать ссылку, но у меня 2 домена, так удобнее, домен подставляется автоматически
  14. Не помню для чего, давно было, но в таблице data для строки image я прописал еще параметры:
  15. Скопировал Фотораму с сайта разработчика и разместил её у себя на сервере, чтобы сайт по каждому поводу не дергался на сторону. Убрал из realty-view.tpl код старого слайдера и прописал пути к фотораме (скрипт и стиль) Дальше в том-же файле дописал условия вывода картинок. Скидываю свой realty-view.tpl целиком, там выберешь что надо: <link href="{$estate_folder}/fotorama/fotorama.css" rel="stylesheet"> <script src="{$estate_folder}/fotorama/fotorama.js"></script> <link rel="stylesheet" type="text/css" href="{$estate_folder}/css/jquery.lightbox-0.5.css" media="screen"> <script type="text/javascript" src="{$estate_folder}/js/jquery.lightbox-0.5.js"></script> <script src="{$estate_folder}/apps/system/js/realtymap.js" type="text/javascript"></script> <script> var loc_objects={$geoobjects_collection_clustered}; var map_type='{$map_type}'; </script> {assign var=x value=array()} {if $data.country_id.value_string ne ''} {append var=x value=$data.country_id.value_string} {/if} {assign var=x value=array()} {if $data.region_id.value_string ne ''} {append var=x value=$data.region_id.value_string} {/if} {assign var=x value=array()} {if $data.raion_id.value_string ne ''} {append var=x value=$data.raion_id.value_string} {/if} {assign var=x value=array()} {if $data.city_id.value_string ne ''} {append var=x value=$data.city_id.value_string} {/if} {if $data.district_id.value_string ne ''} {append var=x value=$data.district_id.value_string} {/if} {if $data.street_id.value_string ne ''} {append var=x value=$data.street_id.value_string} {/if} {if $data.number.value ne '' && $data.number.value ne '0'} {append var=x value=$data.number.value} {/if} {assign var=rname value=$x|implode:', '} {literal} <script> var rname='{/literal}{$rname}{literal}'; $(document).ready(function(){ var RM=new RealtyMap(); if(loc_objects.length==0){ RM.initGeocoded('property-map', rname, map_type, {defaultZoom: 16, yandexMapType: 'yandex#map', minimap: false, fullscreenControl: true}); }else{ RM.initJSON('property-map', loc_objects, map_type, {defaultZoom: 16, yandexMapType: 'yandex#map', minimap: false, fullscreenControl: true}); } }); </script> {/literal} <div class="row"> <div class="span9"> <h1 class="page-header">{$title} ₽</h1> {if 1==0} {if (int)$data.price.value!=0 && $data.currency_id.value!=0 && isset($_courses[$data.currency_id.value_name])} <ul class="price_block"> {foreach from=$_courses item=courseone} {assign var=price_converted value=$data.price.value*$_courses[$data.currency_id.value].course/$courseone.course} <li>{$price_converted}{$courseone.code}</li> {/foreach} {/if} </div> {/if} <div class="editblock"> <a title="На главную" href="/" class="btn btn-info"><i class="icon-white icon-home"></i></a> <a title="Назад" href="#" onclick="history.back();return false;" class="btn btn-info"><i class="icon-white icon-chevron-left"></i> Назад</a> {if $apps_pdfreport_enabled==1} <a title="Печать PDF" href="?format=pdf" class="btn btn-info"><i class="icon-white icon-print"></i></a> {/if} <a title="Печать" href="#" onClick="window.print()" class="btn btn-info"><i class="icon-white icon-print"></i></a> {if $data.user_id.value eq $smarty.session.user_id} <a title="Редактировать" href="{$estate_folder}/account/data/?do=edit&id={$data.id.value}" class="btn btn-warning"><i class="icon-white icon-pencil"></i></a> <a title="Удалить" href="{$estate_folder}/account/data/?do=delete&id={$data.id.value}" class="btn btn-danger"><i class="icon-white icon-remove"></i></a> {/if} </div> <br /> <center> {if $photo|count>0} <div class="fotorama" data-autoplay="true" data-nav="thumbs" data-loop="true" data-keyboard="true" data-maxheight="600" data-allowfullscreen="true" data-width="100%" data-ratio="800/600" data-minwidth="300" data-minheight="200"> <img src="{$estate_folder}/img/data/{$photo[0].normal}" alt="Фото объекта - {$data.topic_id.value_string} в {$data.city_id.value_string}, {$data.street_id.value_string} {$data.number.value}"> {section name=j loop=$photo} {if $smarty.section.j.index > 0} <img src="{$estate_folder}/img/data/{$photo[j].normal}" alt="{$data.topic_id.value_string} в {$data.city_id.value_string}, {$data.street_id.value_string} {$data.number.value} - фото {$smarty.section.j.iteration}"> {/if} {/section} </div> {else} <div class="fotorama" data-maxheight="600"> <img src="{$estate_folder}/img/no_foto.png" alt="Для объекта в {$data.city_id.value_string}, {$data.street_id.value_string} {$data.number.value} - фото нет"> </div> {/if} </center> <div class="property-detail"> <div class="noverview-holder"> <div class="noverview-short"> <h2>{$LT_DETAILS}</h2> <table> <tr> <td style="width: 50%;">Объявление №</td> <td>{$data.id.value}</td> </tr> {foreach from=$hvd_tabbed item=tab key=tabname} {if $tab|count>0} {foreach from=$tab item=data_item} {if $data_item.type eq "primary_key" or $data_item.value eq "0" or $data_item.value eq "" or $data_item.name eq "currency_id" or $data_item.name eq "export_cian" or $data_item.name eq "user_id" or $data_item.name eq "price" or $data_item.name eq "youtube" or $data_item.type eq "hidden" or $data_item.name eq "text" or $data_item.type eq "geodata" or $data_item.name eq "meta_keywords" or $data_item.name eq "meta_description" or $data_item.name eq "meta_title" or $data_item.type eq "uploads" or $data_item.type eq "docuploads" or $data_item.name eq "text_en"} {elseif $data_item.name eq "extended"} {elseif $data_item.name eq "fio"} {assign var="agent_fio" value=$data_item.value} {elseif $data_item.name eq "phone"} {assign var="agent_phone" value=$data_item.value} {elseif $data_item.name eq "email"} {assign var="agent_email" value=$data_item.value} {elseif $data_item.name eq "apartment" && $smarty.session.user_id!=1 && $data_shared.user_id.value!=$smarty.session.user_id} {elseif $data_item.name eq "cadastral_number" && $smarty.session.user_id!=1 && $data_shared.user_id.value!=$smarty.session.user_id} {elseif $data_item.type eq "destination"} {if $data_item.value_string!=''} <tr><td>{$data_item.title}</td><td>{$data_item.value_string}</td></tr> {/if} {elseif $data_item.type eq "select_by_query"} {if $data_item.value_string!=''} <tr><td>{$data_item.title}</td><td>{$data_item.value_string}</td></tr> {/if} {elseif $data_item.type eq "select_box_structure"} {if $data_item.value_string!=''} <tr><td>{$data_item.title}</td><td>{$data_item.value_string}</td></tr> {/if} {elseif $data_item.type eq "checkbox"} {if $data_item.name ne 'hot' and $data_item.name ne 'active'} {if $data_item.value eq 1} <tr><td>{$data_item.title}</td><td><input type="checkbox" checked="checked" disabled="disabled" /></td></tr> {/if} {/if} {elseif $data_item.type eq "select_box"} {if $data_item.value_string!=''} <tr><td>{$data_item.title}</td><td>{$data_item.value_string}</td></tr> {/if} {elseif $data_item.type eq "tlocation"} <tr><td>{$data_item.title}</td><td>{$data_item.tlocation_string}</td></tr> {else} {if $data_item.value!=''} {if $data_item.name eq "text"} <tr><td>{$data_item.title}</td><td>{$data_item.value|nl2br}</td></tr> {else} <tr><td>{$data_item.title}</td><td>{if is_array($data_item.value)}{$data_item.value|implode:','}{else}{$data_item.value}{/if}</td></tr> {/if} {/if} {/if} {/foreach} {/if} {/foreach} </table> </div> <div class="noverview-full"> {if $data.text.value != ''} <p align="justify">{$data.text.value}</p> {/if} {if $data.extended.value != ''} <hr> <p align="justify">{$data.extended.value}</p> {/if} {if is_array($data.mydocup.value) && $data.mydocup.value|count>0} {foreach $data.mydocup.value item=one_doc} <a title="Загрузить файл" href="{$estate_folder}/img/mediadocs/{$one_doc.normal}" target="_blank" class="btn btn-info"><i class="icon-white icon-download-alt"></i> {if $one_doc.title ne ''}{$one_doc.title}{else}Документ{/if}</a> {/foreach} {/if} </div> </div> {if $data.youtube.value != ''} <div class="noverview-holder"> <div class="noverview-full"> <div align="center"> <iframe width="720" height="480" src="//www.youtube.com/embed/{$data.youtube.value}" frameborder="0" allowfullscreen></iframe> </div> </div> </div> {/if} <h2>{$LT_LOCATION}</h2> <div id="property-map" data-geo="{$data.geo.value.lat};{$data.geo.value.lng}"></div> {if $apps_reservation_on==1} <div class="res" data-id="{$data.id.value}"></div> {literal} <script> $(document).ready(function(){ var id=$('.res').attr('data-id'); $('.res').load(estate_folder+'/apps/reservation/js/ajax.php?action=get_reservation_panel&id='+id); }); </script> {/literal} {/if} {if $apps_comment_on==1} {include file=$app_comment_panel} {/if} <div class="row"> <div class="span9"> {section name=x loop=$similar_data} <h2>{$L_SIMILAR}</h2> <div class="span3"> <h3> <a href="{$similar_data[x].href}"> {if $similar_data[x].city_id.value_string ne ''} {$similar_data[x].city_id.value_string}{if $similar_data[x].street_id.value_string ne ''}, {$similar_data[x].street_id.value_string}{if $similar_data[x].number.value ne ''}, {$similar_data[x].number.value}{/if}{/if} {else} {if $similar_data[x].street_id.value_string ne ''} {$similar_data[x].street_id.value_string}{if $similar_data[x].number.value ne ''}, {$similar_data[x].number.value}{/if} {/if} {/if} </a> </h3> <div class="image"> <a href="{$similar_data[x].href}"></a> {if $similar_data[x].image.image_array|count ne 0} <img src="{$estate_folder}/img/data/{$similar_data[x].image.image_array[0].preview}" class="previewi"> {else} <img src="{$estate_folder}/template/frontend/realia/img/no_foto_170.png" class="previewi"> {/if} </div> <div class="location">{$similar_data[x].topic_id.value_string}</div> <div class="area"> <span class="key">{$L_SQUARE} м<sup>2</sup>:</span> <span class="value">{$similar_data[x].square_all.value}/{$similar_data[x].square_live.value}/{$similar_data[x].square_kitchen.value}</span> </div> <div class="area"> <span class="key">{$L_FLOOR}:</span> <span class="value">{$similar_data[x].floor.value}/{$similar_data[x].floor_count.value}</span> </div> <div class="price"> {$similar_data[x].price.value|number_format:0:",":" "} {if $similar_data[x].currency_id.value_string != ''}{$similar_data[x].currency_id.value_string}{/if} </div> </div> {/section} </div> </div> </div> </div> <div class="sidebar span3"> {if $user_data ne ''} <div class="widget our-agents"> <div class="title"> <h2>{$user_data.group_id.value_string}</h2> </div> <div class="content"> <div class="agent"> <div class="image"> {if $user_data.imgfile.value != ''} <img src="{$estate_folder}/img/data/user/{$user_data.imgfile.value}" /> {else} <img src="{$estate_folder}/template/frontend/{$current_theme_name}/img/userplaceholder.png" /> {/if} </div> <div class="name"> {if isset($data.fio.value) && $data.fio.value!=''} {$data.fio.value} {else} {$user_data.fio.value} {/if} </div> <div class="phone"> {if isset($data.phone.value) && $data.phone.value!=''} {$data.phone.value} {elseif $user_data.phone.value != ''} {$user_data.phone.value} {/if} </div> {if $user_data.mobile.value != ''} <div class="phone"> {$user_data.mobile.value} </div> {/if} {if isset($data.email.value) && $data.email.value!=''} <div class="email"><a href="mailto:{$data.email.value}">{$data.email.value}</a></div> {elseif $user_data.email.value != ''} <div class="email"><a href="mailto:{$user_data.email.value}">{$user_data.email.value}</a></div> {/if} {if $show_upper == 'true'} <span><a class="btn btn-info" href="{$estate_folder}/upper/realty{$data.id.value}"><i class="icon-white icon-chevron-up"></i> {$L_UP_AD}</a></span> {/if} {if $smarty.session.user_id!=$user_data.user_id.value && $mailbox_on==1} <br /> {include file=$apps_mailbox_block title_data=[$data.topic_id.value_string,$data.city_id.value_string,$data.street_id.value_string] to=$user_data.user_id.value message_to_author_title=''} {/if} </div> </div> </div> {/if} {if $data.user_id.value eq $smarty.session.user_id} {include file='yashare.tpl'} {/if} {include file='right_special.tpl'} </div> Тебе нужен будет код 1,2 и 75-90 строк
  16. А чем Фоторама не устраивает? На форуме есть отдельная ветка. Вот, например у меня установлена - https://realty-centrum.com/prodaja/kvartira/ramenskoe-severnoe-shosse-46-1/ Тема по Фотораме - здесь
  17. Здесь проблемы могут быть как на стороне CMS, так и на стороне сервера. Не известно что за оборудование стоит у провайдера и как оно оптимизировано для работы с CMS Sitebill. Все CMS разные и оптимизировать сервер одним махом для всех не получится, по этому провайдер и выделяет сервера с отдельной оптимизацией - под Вордпресс, Битрик и т.п. и сервера с универсальными настройками, типа работать будет, а как именно - одному богу известно. Чтобы не ломать копья, сделайте резервную копию файловой системы и базы сайта и дайте "специалистам" доступ в админку (сделайте второго админа), пусть покопаются, может они оптимизируют настройки на сервере и ситуация с тестами изменится. Не поможет - бум думать дальше
  18. Можно вопрос решить и по другому, например выкупить мощный сервер тыщ за 10-20 в мес. и победить проблему за счет скоростей процессоров, объемов выделенной памяти, пропускной способности оптических каналов... Может для вас это будет более выгодным решением, т.к. существует статистика по Интернет-магазинам, говорящая о том, что каждая лишняя 0,1 сек. при загрузке сайта - это 3 упущенных клиента (если не ошибаюсь). Я надеюсь у вас серьезный поток клиентов, как у Авиты или Из-ноги-в-руки ?
  19. Всё относительно. Гугл и Яндекс в последнее время объявили официальной политикой приоритет вариантов сайта для мобильников, соответственно и отправляем туда свои XML-варианты "ускоренных страниц" новостей, статей и т.п. (Турбо-страницы). Где передается только текст и картинка, без шелухи. Обычные десктопные версии сайтов, согласно тестов Гугла и мнения Яндекса, по определению будут тормозными и не важно, самописные они или на CMS. Как видим, responsive-дизайн сайтов не особо прибавляет к скорости сайта, заморачиваться с мобильной версией сайта тоже мало кому интересно. Если подстраиваться под тесты Гугла, то вам придётся выкинуть с сайта практически всё, кроме коротких текстов объявлений. Будет такой сайт интересен посетителям? Думаю нет. Я ориентируюсь на скорость загрузки сайта - до 3 сек. вполне приемлемый вариант. Относительно того, как быстро настроить, вам-же тест Гугла говорит, что надо делать... Раскрывайте вкладки разделов теста и следуйте инструкциям, соблюдая грань скорость/удобство/функционал. Там-же дело доходит до дуристики, например в поиске на сайте есть адресные позиции - страна - регион - город - улица - цена - тип недвижимости и т.п., так по мнению Гугла это тормозящие моменты на сайте. Можете удалить поиск с сайта и радоваться, что сайт стал на 0,01 сек. шустрее И таких моментов достаточно - скрипты (карта, слайдер, счетчики статистики и прочий функционал), показ выборочных данных (описание, цены и т.п.), показ фото объявлений, подгружаемые стили шрифтов и т.п. Всё свести на нет?
  20. Есть достаточное количество сайтов - отзывиков. Размещайте туда, полезнее будет, чем захламлять свой сайт сторонней писаниной, которую поисковики рассмотрят как вашу самодеятельность о себе. Сделайте карточку компании в Яндексе, там посетители смогут оставлять свои отзывы. Задайте в поиск "отзывы о компании" и увидите массу предложений, где можете разместить свою компанию и получать реальные отзывы, там-же и бесплатно пиариться сможете. Эти сайты, в свою очередь, будут ссылаться на вас, что даст вашему сайту дополнительный ссылочный вес и прибавит к карме.
  21. Что-то он тупит безбожно Да и импорт объявлений файлом XML за 19-59 евро в месяц Аппетиты однако...
  22. и так о каком сайте идет речь ? В первом случае ссылка на https://shahar.uz/
  23. Спринтхост…? Первый раз о таком слышу. Ограничения на вашем тарифе Восток-3, есть такие: ограничение на процессы 1536 Мб. и 256 МБ кэш, что для начала сойдет, но могло быть и больше; не более 15% ресурсов процессора и не более 6 одновременных процессов на сервере (а сайт способен запустить и больше, значит остальные процессы ожидают очередь) не более 15 соединений в MySQL (ну на 40 посетителей в течении суток хватит) Представим обыденную ситуацию, зашло на сайт одновременно 5 посетителей и что-то ищут + пара ботов от поисковых систем + пара хакеров, подбирающих на автомате пароли доступа (а это в порядке вещей), вот вам и предел лимита доступа к базе, сайт уже тормозит или лежит. Про остальные ограничения и особенности не говорится. Что с настройками PHP и сервера, остается только догадываться. И всё это удовольствие за почти 6000 р/год? Скажем так, этот тариф сойдет для персональной страницы, блога или небольшого сайта организации (визитка и т.п.). При наличии на вашем сайте 100+ объектов, думаю проблемы будут нарастать. Для вашего случая желательно иметь хостинг помощнее, который будет предназначен для интернет-магазинов, например от VIP-1 на reg.ru и выше. Попробуй на тесте - 14 дней бесплатно. Вариант подешевле будет на Coopertino.ru, у них там сейчас один тариф и на всё безлимит (и вдвое дешевле), там тоже есть тестовый период. Сайты на Вордпрессе работают без проблем, а CMS Sitebill на нем не пробовал, не скажу. Зарегистрируйте какой-нить дешевый домен и скиньте ваш сайт дубликатом на тестовый сервер, проверьте сайт в работе. Что-то мне подсказывает, что проблемы у Спринтхоста. В принципе, и у меня показатели по тесту не многим лучше (25-56/100), у меня сайт на VIP-1 в reg.ru, но по крайней мере некоторые позиции выглядят лучше: "Минимизируйте работу в основном потоке 17,5 сек." (у меня 5 сек.) "Сократите время выполнения кода JavaScript 11,7 сек." (у меня 4,1 сек.) Так что есть к чему стремиться. Я только убрал карту с главной, неиспользуемые ява-скрипты и ориентировался на скорость загрузки сайта, у меня 1,2-1,3-1,7 сек. Не думаю, что правки в php.ini кардинально изменят ситуацию.