Лента блогов InstantCMS

Виджет-обложка 2.x

Виджет-обложка
С помощью данного виджета можно вывести обложку на сайте. Это может быть какая-то информация как на главной странице, так и в любом другом месте. Большое количество опций (примерно 160) позволяют настроить виджет на любой вкус.

Разное содержимое sitemap.xml для каждого из зеркал при мультиязычности сайта

В прошлом посте, который был посвящён организации мультиязычности сайта на Instant 1* посредством поддоменов смотрящих в один и тот же каталог на хостинге, я упоминал о том, что одна из проблем при таком подходе - как отдать разное содержимое sitemaps.xml в зависимости от того, через какой поддомен его читает робот.

Проблема не то что бы экстра сложная, скорее мне она казалась интересной (её решение).

Можно было бы конечно тупо назначить для каждого поддомена разный файл с картой сайта и в панели вебмастера указать это. Для ru.mysite.com - sitemap_ru.xml для en.mysite.com - sitemap_en.xml.

Но мне хотелось именно сохранить стандартный адрес сайтмапа sitemap.xml, при этом что бы его содержимое менялось в зависимости от хоста.

Итак, я сгенерировал три файла карты сайта.

Deprecation Detector для PHP кода

Мысль, что такие инструменты уже созданы, появилась после вот этого комментария. На комментарий я
ответил, но, как говорится, осадочек то остался.
Затем я познакомился с возможностями 2-х статических анализаторов кода.
Это замечательные инструменты, но с ходу решить данную задачу с их помощью мне не удалось.

Подключение к Сбербанку. 2.x

Всем привет. Хочу поделиться опытом подключения к сбербанку онлайн. У них масса документации и возможно кому то будет сложно в ней разбираться. А кому то нет). Поэтому возможно данный пост облегчит задачу. Итак, после улаживания формальностей регистрации вам пришлют два логина и два пароля. Для доступа к личному кабинету и подключению к API. Для начала тестовые. Имеет смысл создать в админке вашего компонента поля для тестовых и рабочих(в сбере они зовутся боевыми smile ) пар. А так же вам понадобятся ссылки на страницы,куда вы будите перенаправлять в случае успеха или ошибки. Это ещё два поля. Я отделил тестовые поля от боевых и спрятал одну пару,что бы не путаться. И привинтил чекбокс для смены пар полей. Для тех кто ещё не знает как это сделать, пишу пример,для одного поля и чекбокса. Этот код я поместил в файл .../backend/forms/form_options.php
Спойлер
Далее создаём два экшена в паке вашего компонента. Названия пишу свои. sb_auth.php и sb_pays.php. Ваша ссылка,или кнопка "Оплатить", должна вести к первому экшену. И в ней вы должны передать параметрами стоимость товара,его id и id пользователя. Примерно так.
Код PHP:
  1. http://test.ru/'название компонента'/sb_auth?price=2500.00&user_id=1&id=47
В файле мы получаем эти данные
Код PHP:
  1.  
  2. $price = $_GET['price'];
  3. $user_id = $_GET['user_id'];
  4. $id = $_GET['id'];
  5.  
Затем следует рубли перевести в копейки. Такие требования. А так же api не работает с кросс запросами(это типа аякс и тп.). А так же добавить функцию для генерации уникального id заказа. В исходниках у меня она есть, но можете и свою найти или написать.
Далее нужно составить гет параметры уже для ссылки сберу. В неё войдут
Код PHP:
  1.  
  2. "userName" // Логин для API
  3. "password" // Пароль...
  4. "orderNumber" // Сгенерированный id
  5. "amount" // Цена, в копейках
  6. "returnUrl" // Ссылки перенапрвления
  7. "failUrl"
  8.  
Ответ сбер отдаёт прямо в браузер, в формате json. Кто как его будет доставать дело личное). Я сделал так
Код PHP:
  1.  
  2. $content = file_get_contents(
  3. 'https://3dsec.sberbank.ru/payment/rest/register.do?' .
  4. $data);
  5. $array = json_decode($content, true);
  6. // Где $data, гет параметры
  7.  
Далее запоминаем $array в сессию(там два значения вроде.Код ошибки и OrderId), проверки и перенаправление на страницу второго зкшена с гет параметром OrderId sb_pays.php Во втором экшене сравниваем этот гет параметр и этот же параметр в массиве $array. И снова отправляем ссылку,уже другую, сберу.Указав в качестве параметров логин,пароль и OrederId. Ответ получаем так же в браузере. Обрабатываем и в случае отсутствия ошибок меняем статус заказа на сайте. Если всё сделано правильно,то нажав ссылку "Оплатить" на сайте вы попадаете на страницу сбера, где нужно ввести номер вашей карты. У них есть тестовые карты для этого.Вбиваете данные и жмёте Оплатить. Вот и всё). Выкладываю файлы,для ознакомления с кодом,кому интересно)
https://yadi.sk/d/vgFFK0ar0xur3w

Подход к организации мультиязычности на сайте с выносом на поддомен но без дублирования файлов 1.x

Решил "побаловаться" и запустить англоязычную версию сайта.

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

Но в большинстве случаев наша цель - проиндексироваться в Google и привлечь на англоязычную версию - англоязычный трафик. Google велит использовать разные url для разных языковых версий и даже рекомендует использовать поддомены с префиксом языка en.site.ru и т.д.

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

Рассылка пользователям сайта с выборкой адресов с рядом условий 1.x

Потребовалось разослать информационное сообщение зарегистрированным пользователям сайта.
Обычно я не делаю рассылок, поэтому для этого случая у меня нет какого то постоянного решения, компонента, плагина.
Сервис email рассылок отверг сразу - ради одного раза не хотелось заморачиваться, платить, ждать модерации своего письма, да и сливать базу адресов своих пользователей на сторонний сервис лишний раз тоже не хотелось бы.

Немного поискал готовые скрипты, ничего интересного не нашёл и появилось такое решение.

Рассылка прошла нормально, если не считать того, что, судя по всему, некоторые почтовые сервисы бросают мои письма в папку спам, но это не проблема данного решения, это уже другая тема.

Мобильное меню, обновление 1.1.0 2.x

+ Исправление для ссылки вызова меню в главном меню
+ При вызове меню прокрутка страницы блокируется без скрытия скролбара, и без сдвига вправо
+ Новые настройки..