Избранное пользователя «Bartol»

[Evo] Разработка мобильной версии

День добрый!

Есть задача разработать мобильную версию сайта под Evo.
Возможно имеются какие-нибудь дополнения для evo, которые смогут сэкономить время.

Заранее спасибо за советы :)

Вытягиваем html в 1 строчку [evo]

Создаем плагин HTML2Line и вешаем его на событие OnWebPagePrerender. После этого HTML код страниц будет вытягиваться в строку. Но если нам вдруг понадобится на какой-то страничке отключить сжатие, то в настройках
этой страницы снимаем галочку: «Доступен для поиска». Код под катом…


( Читать дальше )

Синхронизация между сайтами

Имеется два сайта. Нужно сделать между ними синхронизацию, чтобы я мог товары с основного сайта выборочно переносить на дополнительный. Основной сайт я регулярно наполняю новыми товарами. Вот чтобы не тратить время нужно, чтобы я их мог быстро скопировать на второй. На втором сайте буду изменять названия и описания. Сайты не на Shopkeeper.
Интересует способ решения задачи и цена вопроса.

универсальный .htaccess

Хелоу, пипл!

Я тут настраивал этот файл, в частности, 301й редирект, маленько помучился, но цели достиг.

Проблему вот какую решил.

Перерыл кучу инфы, и везде рассказывают про настройку конкретного домена. Я хотел бы юзать для таких общих случаев универсальную директиву, а вообще еще лучше — универсальный файл. Это удобно — закинул на новый сайт единый файлик — и готово. Другое дело, что есть частные случаи — тут да, придется настраивать каждый конкретный сайт.

Для новичков — 301й редирект, это когда сайт объединяется по двум именам — по www. и без него (типа www.site.ru и site.ru). Без такого объединения эти два адреса считаются разными сайтами. После объединения становится так, что сайт считается одним и тем же и по тому, и по другому адресу (с www и без него). Очень полезно для продвижения, т.к. после объединения по 301-му редиректу статистика ведется

Понимаю, что для профи это (301й) давно известные вещи. Но многие об этом не знают. Да и профи частенько пользуют частное решение, универсальным мало кто пользуется. Хотел бы, что MODX-программеры показывали класс во всем (хотя MODX и так валит все CMS-ки), даже в таких небольших вещах. Поэтому и выкладываю решение здесь, в MODX-вском форуме.

Вот кусок кода моего .htaccess по 301-у редиректу:

##################################################
# Making 301 redirect from www.site.ru to site.ru - universal rule for all domains
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]


Вот весь файл может кому нужно, а профи может покритикуют. Я им пользуюсь по дефолту для всех сайтов, все работает, париться не нужно — все стандартные проблемы решены:

# MODX supports Friendly URLs via this .htaccess file. You must serve web
# pages via Apache with mod_rewrite to use this functionality, and you must
# change the file name from ht.access to .htaccess.
#
# Make sure RewriteBase points to the directory where you installed MODX.
# E.g., "/modx" if your installation is in a "modx" subdirectory.
#
# You may choose to make your URLs non-case-sensitive by adding a NC directive
# to your rule: RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]

##################################################
# The RewriteBase directive explicitly sets the base URL-path
RewriteEngine On
RewriteBase /

# Rewrite www.domain.com -> domain.com -- used with SEO Strict URLs plugin
#RewriteCond %{HTTP_HOST} .
#RewriteCond %{HTTP_HOST} !^example-domain-please-change\.com [NC]
#RewriteRule (.*) http://example-domain-please-change.com/$1 [R=301,L]
#
# or for the opposite domain.com -> www.domain.com use the following
# DO NOT USE BOTH
#
#RewriteCond %{HTTP_HOST} .
#RewriteCond %{HTTP_HOST} !^www\.example-domain-please-change\.com [NC]
#RewriteRule (.*) http://www.example-domain-please-change.com/$1 [R=301,L]

##################################################
# Making 301 redirect from www.site.ru to site.ru
# RewriteCond %{HTTP_HOST} .
# RewriteCond %{HTTP_HOST} !^site\.ru [NC]
# RewriteRule (.*) http://site.ru/$1 [R=301,L]

##################################################
# Making 301 redirect from www.site.ru to site.ru - universal rule for all domains
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

# Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent 
# https://www.domain.com when your cert only allows https://secure.domain.com
#RewriteCond %{SERVER_PORT} !^443
#RewriteRule (.*) https://example-domain-please-change.com.com/$1 [R=301,L]

##################################################
# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

# Make sure .htc files are served with the proper MIME type, which is critical
# for XP SP2. Un-comment if your host allows htaccess MIME type overrides.

##################################################
#AddType text/x-component .htc

# If your server is not already configured as such, the following directive
# should be uncommented in order to set PHP's register_globals option to OFF.
# This closes a major security hole that is abused by most XSS (cross-site
# scripting) attacks. For more information: http://php.net/register_globals
#
# To verify that this option has been set to OFF, open the Manager and choose
# Reports -> System Info and then click the phpinfo() link. Do a Find on Page
# for "register_globals". The Local Value should be OFF. If the Master Value
# is OFF then you do not need this directive here.
#
# IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS :
#
# Your server does not allow PHP directives to be set via .htaccess. In that
# case you must make this change in your php.ini file instead. If you are
# using a commercial web host, contact the administrators for assistance in
# doing this. Not all servers allow local php.ini files, and they should
# include all PHP configurations (not just this one), or you will effectively
# reset everything to PHP defaults. Consult www.php.net for more detailed
# information about setting PHP directives.

##################################################
# These steps will secure you a bit more and are HIGHLY recommended!
# It is an option in php.ini, which points to the need to register variables, obtained by POST or GET in the 
# global array $ GLOBALS.
# If enabled, your site can be hacked
php_flag register_globals Off

# For servers that support output compression, you should pick up a bit of
# speed by un-commenting the following lines.

#php_flag zlib.output_compression On
#php_value zlib.output_compression_level 5

# The following directives stop screen flicker in IE on CSS rollovers. If
# needed, un-comment the following rules. When they're in place, you may have
# to do a force-refresh in order to see changes in your designs.

#ExpiresActive On
#ExpiresByType image/gif A2592000
#ExpiresByType image/jpeg A2592000
#ExpiresByType image/png A2592000
#BrowserMatch "MSIE" brokenvary=1
#BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
#BrowserMatch "Opera" !brokenvary
#SetEnvIf brokenvary 1 force-no-vary

##################################################
php_value safe_mode 0
# php_value suhosin.get.max_value_length 4096

##################################################
# disallow catalog list
Options -Indexes

[EVO] Вывод контента в POP-UP окне Ditto списка

Здравствуйте!
Нужно при клике на элемент списка товаров, выводить в pop-up окно подробную информацию о нем.
Через ditto выводим весь список превью товара, но подробную информацию нужно выводить в pop-up окне
[!Ditto? &tpl=`product-page`!]

>product-page

<li class="product-link">
   <span>[+image-product+]
      <p>[+pagetitle+]</p>
   </span>
</li>

если я ставлю popup непосредственно в превью товара

<li class="product-link">
   <span>[+image-product+]
      <p>[+pagetitle+]</p>
   </span>
</li>
<div class="popup">
[+content+]
</div>

Всё работает.
Проблема в том, что блок popup-а дублируется на количество товара.
Вопрос заключается в том, какую команду мне записать в popup, что бы всё работало корренктно


<div class="popup">[+content+]</div> 
тут нужно выводить контент product-page темплейта
[!Ditto? &tpl=`product-page`!]

[EVO] Robots (Статистика посещений роботов Яндекса, Google, Рамблера)



Представляю вашему вниманию модуль, разработанный Михаилом (Small) и доработанным немного мной (я сделал пару улучшений).


( Читать дальше )
  • +1
  • 2 апреля 2012, 16:13
  • Fucktor
  • 4

[Evo] Плагин для вывода текстов всех запросов на странице

Плагин будет полезен для работы по оптимизации количества и качества запросов для сайтов «больше среднего». Плагин добавляет в конец содержимого страницы список всех запросов к базе на странице.

( Читать дальше )
  • +12
  • 1 апреля 2012, 15:51
  • lopata
  • 39

[EVO] по следам PhpThumbOf - Final

Сборка наработанного материала, навеянная необходимостью доработки и упрощения существующих методов создания превиюшек для Evolution.

Допиленый метод одного из мемберов сообщества. К сожалению не помню его ника, если ты прочитаешь это — отпишись.

Для ровной работы сниппета требуются оригинальные библиотеки phpThumb



( Читать дальше )

[EVO 1.0.5] [РЕШЕНО через костыль] Как адаптировать контент под поисковую систему?

На сайте EVO 1.0.5
Бооооольшой документ с кучей разного контента разбит на дочерние документы по смыслу.

В теле родителя вызываем wayfinder и на его основе строим меню. Подгружаются эти самые документы через виджет jQuery UI tabs. У каждого дочернего документа свои шаблоны и своё наполнение.

Что мы получаем в результате — грузится всё быстро, контент разложен по докам и конечный пользователь сайта хлопает в ладоши от радости.

С одной стороны всё круто, аккуратно и удобно получается. Страница не превращается в гигантскую простыню и пользователь сайта быстро может найти интересующую его инфу.

С другой стороны:

Поисковая система видит документ вообще без контента в результате (судя по кешу яндекса), но с ссылками на доки с контентом. На выходе получаем падение по всем позициям в выдаче, ибо контент практически со всех страниц был перемещён в дочерние документы.

Как добиться того что бы ПС хавала страницу с таким контентом как со встроенным в страницу? Или это можно сделать только при условии того, что контент реально будет находиться в теле документа?

Если контент не аяксом подгружается, то страница станет грузиться дольше. Да и у каждого такого родителя может быть дочерних документов от 1 до 5 и все они с разными шаблонами, тут либо писать свой сниппет, либо юзать Ditto в паре с PHx.

Пните, пожалуйста в нужном направлении. Мож я чего упустил.

UPD:

Решил проблему следующим образом:

Некоторые вкладки вынес по умолчанию в меню с ссылками контейнеры, а в эти контейнеры сразу же положил данные (подгрузил через Ditto).
Результат: основной текстовый контент теперь находится в потоке документа и благополучно индексируется.

MODX && Ajax

В последнее время участились вопросы «хочу сделать сайт на ajax», «как подгружать разделы через ajax» и тд.

Вообще, судя по всему, MODX настолько дружелюбный, что многие разработчики и не собираются учиться программировать. То есть, они требуют готового ответа (расширения) — вынь да положи. Ссылки приводить не буду, достаточно просто поглядеть в блог «Вопросы».

Для тех людей, кому нужна удочка, а не рыба, я расскажу немного про Ajax.


( Читать дальше )