Giter Club home page Giter Club logo

mycityselector's Introduction

My City Selector Joomla Extension

Package: component + module + plugins
Version: 2.0.25

##Системные требования

Joomla >= 3.3.0
PHP >= 5.5
PHP Extension ionCube

Общие сведения

My City Selector (MCS) - это расширение для CMS Joomla, позволяющее отображать разную информацию для разных городов.

В новой 2й версии основной упор сделан на использование поддоменов для разных городов, так как это самый лучший способ разделять контент с точки зрения поисковиков.

! Ваш домен должен быть настроен так, чтобы любой произвольный поддомен открывал основной сайт. Не нужно создавать много сайтов :) это неверно. Подробнее о настройках домена можно прочитать тут.

*Примечание: все изображения приводимые здесь основаны на версии Joomla 3.6.x

Установка

Скачиваете отсюда: https://github.com/art-programming-team/mycityselector/releases

Расширение включает в себя два плагина (system/plgmycityselector & editors-xtd/mcsinsert), компонент (com_mycityselector) и модуль (mod_mycityselector). Все они ставяться одним пакетом, поэтому загруженный архив распаковывать не нужно. Устанавливайте как есть. Помимо самого расширения, вам потребуется установленный php модуль ionCube.

Настройка

Для того, чтобы начать пользоваться расширением, необходимо сделать две вещи:

  • Включить модуль "My City Selector MOD" и настроить его.
  • Прописать в настройках компонента "MyCitySelector" базовый домен вашего сайта.

После чего, при определенном уровне удачи все должно заработать :)

Как это использовать?

Расширение позволяет создавать заготовленные тексты для разных городов и в зависимости от выбранного пользователем города, подставлять их в страницу. Каждому городу на сайте будет соответствовать свой поддомен, а главный домен будет соответствовать вашему городу (который вы можете указать в настройках). Например, ваш сайт krakozyabra.org для вашего родного города по умолчанию. А остальные города на поддоменах:
spb.krakozyabra.org
minsk.krakozyabra.org
kiev.krakozyabra.org
и так далее в соответствии с настройками. Позже мы добавим (вернем) возможность указывать для городов не только поддомены но и страницы (в рамках одного домена).

Управление текстами происходит через компонент MyCitySelector в админке, там же и управление списком городов и настройки компонента.

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

Для вставки заготовленных текстов на страницы сайта используются специальные маркеры (теги). Всего есть два вида маркеров:

  • [city Город] текст [/city] - из первой версии
  • {mcs-N} - новый маркер, появился во второй версии.

Тег [city] удобен для небольших надписей или сообщений (и для небольшего количества городов). Но если городов много и информация для каждого своя, то лучше воспользоваться компонентом MSC в админке. Основной недостаток этих тегов в том, что на одной странице все теги взаимосвязаны и отобразить разную информацию в нескольких местах страницы может быть невозможным. Но в то же время, они могут быть незаменимы, если вам нужно включать разные позиции модулей для разных городов. Например так:

[city Омск]<jdoc:include type="modules" name="demo1" style="" />[/city]
[city Чита]<jdoc:include type="modules" name="demo2" style="" />[/city]

В этом случае, при выборе города "Омск" будут отображаться все модули из позиции "demo1", а при выборе города "Чита" - из "demo2". Советуем использовать их только при необходимости.

Маркеры {mcs-ID} более продвинутые. Их может быть много на одной странице и у каждого свои условия по городам. Кроме того, вам не нужно вводить их вручную. В редакторе Вы можете найти кнопку для вставки маркера в текущую позицию курсора.

Просто выбираете нужный контент из списка и вставляете маркер в текст. Все просто.

Перейдем к рассмотрению компонента "MyCitySelector". Откройте подпункт "Страны".

При клике по ссылке "регионы" вы сможете открыть список регионов, относящихся к данной стране. Аналогично и в списке регионов, так есть ссылка "города". Делая элементы списков неактывными, вы запрещаете их отображение в окне выбора города. Ничего сложного.

Примечание: Регионы Украины и Беларусии еще не заполнены...просим прощения, мы не смогли в георгафию :P Дополним в ближайшее вреееемя. Но не расстраивайтесь, Вы ведь можете заполнить их сами, просто используйте кнопку "создать".

Перейдем к управлению текстами. Что тут у нас...?

эммм...ну тут собственно пусто. Самое время что-нибудь создать. Предположим (совершенно точно), нам нужно для разных городов отображать разные адреса и контакты. Создадим новый текст с названием "Контакты". В качестве текста "по умолчанию" укажем адрес для основного города. А для остальных городов необходимо воспользоваться кнопкой "Добавить поле". В добавленное поле вбиваем желаемый город и вводим для него текст (адрес).

Кастомизация

Изменить внешний вид шаблона модуля можно двумя способами:

  • переопределение шаблона модуля из админки
  • создание своего шаблона

Первый способ достаточно прост, необходимо зайти в менеджер шаблонов сайта, кликнуть по названию своего текущего шаблона перейти во вкладку "Переопределение", найти в списке модуль "mod_mycityselector" и кликнуть по нему. После чего в папке шаблона сайта появится копия шаблона модуля. Его можно будет менять как вам вздумается.

Второй способ в общем-то делается также как и первый, но после дублирования также необходимо переименовать файлы шаблона (придумать свое имя для шаблона) и на основе данной копии сделать свой шаблон.

Примечание: javascript файл подключаемый в шаблоне заточен под его верстку, следовательно, его придется корректировать под свою верстку.

Если вам кажется, что некоторые моменты можно бы было описать лучше или где-то закралась неточность, то можете написать мне об этом на почту или сделать pull request.

Robots.txt

Если используется вариант с поддоменами, возможно Вам будет полезно использовать скрипт robots.txt.php для подмены директивы Host в вашем robots.txt. Чтобы им воспользоваться, необходимо прописать правило редиректа для "/robots.txt" в настройках вашего сервера.

Для Apache в файле ".htaccess" добавьте строку

RewriteEngine On # эту строку только если такой директивы в htaccess еще нет
RewriteRule ^robots.txt$ /components/com_mycityselector/robots.txt.php

Для Nginx:

server {
     
     ... other instructions ..
     
     location = /robots.txt {
         rewrite ^(.*)$ /components/com_mycityselector/robots.txt.php last;
     }
}

##Дополнительная информация

Было решено делиться накопленным опытом и разными трюками в использовании расширения. В итоге вот сборник рецептов.

##Благодарности

Спасибо Vlad-Online за огромную помощь в написании второй версии расширения!

Спасибо Renderlife за новый дизайн модуля.

И конечно же, спасибо всем, кто помогал в тестировании и/или делал пожертвования.

mycityselector's People

Contributors

adamasantares avatar vlad-online avatar

Watchers

Gorbunov Yuriy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.