Skip to content
Permalink
Browse files

Free

  • Loading branch information...
Vlad-Online committed Jun 16, 2017
1 parent f9add61 commit 83f6a613ff88c7b0cae2dc69662995ef720c17dc
Showing with 7,366 additions and 461 deletions.
  1. +0 −437 .gitignore
  2. +0 −21 LICENSE
  3. +175 −3 README.md
  4. +1,518 −0 cookbook/big-cities.md
  5. +43 −0 cookbook/configure_domain.md
  6. +14 −0 cookbook/index.md
  7. BIN doc_images/config.jpg
  8. BIN doc_images/domain-1.jpg
  9. BIN doc_images/image-1.jpg
  10. BIN doc_images/image-2.png
  11. BIN doc_images/image-3.jpg
  12. BIN doc_images/image-4.jpg
  13. BIN doc_images/image-5.png
  14. BIN doc_images/image-6.jpg
  15. BIN doc_images/image-7.jpg
  16. +43 −0 jexter/build
  17. +18 −0 jexter/cli_scripts/demo.php
  18. +38 −0 jexter/cli_scripts/relang.php
  19. +1 −0 jexter/config/jexter.ini
  20. +48 −0 jexter/config/mcs.json
  21. +21 −0 jexter/config/pkg_mycityselector.xml
  22. +8 −0 jexter/config/test.json
  23. +55 −0 jexter/create
  24. +11 −0 jexter/data/code-templates/component/admin/admin-scripts.js
  25. +16 −0 jexter/data/code-templates/component/admin/admin-style.css
  26. +256 −0 jexter/data/code-templates/component/admin/controller.php
  27. +86 −0 jexter/data/code-templates/component/admin/helpers/form/CheckboxInput.php
  28. +136 −0 jexter/data/code-templates/component/admin/helpers/form/ChosenInput.php
  29. +78 −0 jexter/data/code-templates/component/admin/helpers/form/EditorInput.php
  30. +101 −0 jexter/data/code-templates/component/admin/helpers/form/JxField.php
  31. +179 −0 jexter/data/code-templates/component/admin/helpers/form/JxForm.php
  32. +100 −0 jexter/data/code-templates/component/admin/helpers/form/RadioInput.php
  33. +108 −0 jexter/data/code-templates/component/admin/helpers/form/TextInput.php
  34. +21 −0 jexter/data/code-templates/component/admin/helpers/form/formHelper.php
  35. +86 −0 jexter/data/code-templates/component/admin/helpers/mvc/JxController.php
  36. BIN jexter/data/code-templates/component/admin/images/icon.png
  37. +1 −0 jexter/data/code-templates/component/admin/index.html
  38. +12 −0 jexter/data/code-templates/component/admin/install.sql
  39. +14 −0 jexter/data/code-templates/component/admin/jex_shortname.php
  40. +20 −0 jexter/data/code-templates/component/admin/language/en-GB/en-GB.jex_sysname.ini
  41. +4 −0 jexter/data/code-templates/component/admin/language/en-GB/en-GB.jex_sysname.sys.ini
  42. +15 −0 jexter/data/code-templates/component/admin/language/ru-RU/ru-RU.jex_sysname.ini
  43. +4 −0 jexter/data/code-templates/component/admin/language/ru-RU/ru-RU.jex_sysname.sys.ini
  44. +1 −0 jexter/data/code-templates/component/admin/models/index.html
  45. +272 −0 jexter/data/code-templates/component/admin/models/jex_item_model.php
  46. +1 −0 jexter/data/code-templates/component/admin/uninstall.sql
  47. +1 −0 jexter/data/code-templates/component/admin/views/jex_items_view/index.html
  48. +56 −0 jexter/data/code-templates/component/admin/views/jex_items_view/tmpl/edit.php
  49. +1 −0 jexter/data/code-templates/component/admin/views/jex_items_view/tmpl/index.html
  50. +103 −0 jexter/data/code-templates/component/admin/views/jex_items_view/tmpl/list.php
  51. +20 −0 jexter/data/code-templates/component/admin/views/jex_items_view/tmpl/not_found.php
  52. +15 −0 jexter/data/code-templates/component/admin/views/jex_items_view/view.html.php
  53. +68 −0 jexter/data/code-templates/component/jex_sysname.xml
  54. +1 −0 jexter/data/code-templates/component/site/index.html
  55. +10 −0 jexter/data/code-templates/component/site/jex_shortname.php
  56. +2 −0 jexter/data/code-templates/component/site/language/en-GB/en-GB.jex_sysname.sys.ini
  57. +2 −0 jexter/data/code-templates/component/site/language/ru-RU/ru-RU.jex_sysname.sys.ini
  58. +18 −0 jexter/data/code-templates/library/install.xml
  59. +20 −0 jexter/data/code-templates/library/newlibrary.php
  60. +75 −0 jexter/data/code-templates/module/installer.php
  61. +90 −0 jexter/data/code-templates/module/mod_newmod.php
  62. +38 −0 jexter/data/code-templates/module/mod_newmod.xml
  63. +18 −0 jexter/data/code-templates/module/tmpl/default.php
  64. +4 −0 jexter/data/code-templates/module/tmpl/script.js
  65. +12 −0 jexter/data/code-templates/module/tmpl/style.css
  66. +8 −0 jexter/data/code-templates/plugin/helper.php
  67. +67 −0 jexter/data/code-templates/plugin/installer.php
  68. +255 −0 jexter/data/code-templates/plugin/jex_sysname.php
  69. +31 −0 jexter/data/code-templates/plugin/jex_sysname.xml
  70. +2 −0 jexter/data/code-templates/plugin/language/en-GB/en-GB.plg_jex_group_jex_sysname.sys.ini
  71. +2 −0 jexter/data/code-templates/plugin/language/ru-RU/ru-RU.plg_jex_group_jex_sysname.sys.ini
  72. BIN jexter/data/icons/common/component-icon.png
  73. BIN jexter/data/icons/common/module-icon.png
  74. BIN jexter/data/icons/common/plugin-icon.png
  75. BIN jexter/data/icons/component/bubble-comment.png
  76. BIN jexter/data/icons/component/calendar.png
  77. BIN jexter/data/icons/component/camera.png
  78. BIN jexter/data/icons/component/car.png
  79. BIN jexter/data/icons/component/cloud.png
  80. BIN jexter/data/icons/component/comment.png
  81. BIN jexter/data/icons/component/computers-network.png
  82. BIN jexter/data/icons/component/configuration.png
  83. BIN jexter/data/icons/component/connection-world.png
  84. BIN jexter/data/icons/component/cup-coffe.png
  85. BIN jexter/data/icons/component/data-base.png
  86. BIN jexter/data/icons/component/devices.png
  87. BIN jexter/data/icons/component/dialogue.png
  88. BIN jexter/data/icons/component/display.png
  89. BIN jexter/data/icons/component/heart.png
  90. BIN jexter/data/icons/component/key.png
  91. BIN jexter/data/icons/component/leaf.png
  92. BIN jexter/data/icons/component/letter.png
  93. BIN jexter/data/icons/component/location.png
  94. BIN jexter/data/icons/component/network.png
  95. BIN jexter/data/icons/component/packet.png
  96. BIN jexter/data/icons/component/parameters.png
  97. BIN jexter/data/icons/component/pen.png
  98. BIN jexter/data/icons/component/phone.png
  99. BIN jexter/data/icons/component/photo.png
  100. BIN jexter/data/icons/component/play.png
  101. BIN jexter/data/icons/component/presentation.png
  102. BIN jexter/data/icons/component/screen.png
  103. BIN jexter/data/icons/component/search.png
  104. BIN jexter/data/icons/component/social.png
  105. BIN jexter/data/icons/component/sound.png
  106. BIN jexter/data/icons/component/tags.png
  107. BIN jexter/data/icons/component/user.png
  108. BIN jexter/data/icons/component/wallet.png
  109. BIN jexter/data/icons/component/widescreen.png
  110. BIN jexter/data/icons/component/world-location.png
  111. BIN jexter/data/icons/component/world.png
  112. +10 −0 jexter/data/readme.md
  113. +176 −0 jexter/initiate
  114. +121 −0 jexter/install
  115. +564 −0 jexter/lib/JexterBuilder.php
  116. +224 −0 jexter/lib/JexterCreator.php
  117. +52 −0 jexter/lib/curl.php
  118. +99 −0 jexter/lib/db.php
  119. +754 −0 jexter/lib/helper.php
  120. +129 −0 jexter/lib/scenario.php
  121. +674 −0 jexter/license.txt
  122. +32 −0 jexter/readme.md
  123. +108 −0 jexter/run

This file was deleted.

Oops, something went wrong.
21 LICENSE

This file was deleted.

Oops, something went wrong.
178 README.md
@@ -1,4 +1,176 @@
mycityselector
==============
My City Selector Joomla Extension
=================================

MCS is extension for joomla
Package: component + module + plugins<br>
Version: 2.0.25

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

Joomla >= 3.3.0<br>
PHP >= 5.5

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

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

<img src="https://raw.githubusercontent.com/art-programming-team/mycityselector/master/doc_images/image-1.jpg" alt="" />


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

> *!* Ваш домен должен быть настроен так, чтобы любой произвольный поддомен открывал основной сайт.
> Не нужно создавать много сайтов :) это неверно. Подробнее о настройках домена можно прочитать [тут](cookbook/configure_domain.md).
*Примечание: все изображения приводимые здесь основаны на версии Joomla 3.6.x
## Установка
Скачиваете отсюда: https://github.com/art-programming-team/mycityselector/releases
(Предыдущая версия 1.8 доступна здесь https://github.com/art-programming-team/mycityselector/tree/v1.8.x/builder/package)
Расширение включает в себя два плагина (system/plgmycityselector & editors-xtd/mcsinsert), компонент (com_mycityselector) и модуль (mod_mycityselector). Все они ставяться одним пакетом,
поэтому загруженный архив распаковывать не нужно. Устанавливайте как есть.
## Настройка
Для того, чтобы начать пользоваться расширением, необходимо сделать две вещи:
- Включить модуль "My City Selector MOD" и настроить его.
- Прописать в настройках компонента "MyCitySelector" базовый домен вашего сайта.
<img src="https://raw.githubusercontent.com/art-programming-team/mycityselector/master/doc_images/config.jpg" alt="" />
После чего, при определенном уровне удачи все должно заработать :)
## Как это использовать?
Расширение позволяет создавать заготовленные тексты для разных городов и в зависимости от
выбранного пользователем города, подставлять их в страницу. Каждому городу на сайте будет
соответствовать свой поддомен, а главный домен будет соответствовать вашему городу
(который вы можете указать в настройках).
Например, ваш сайт krakozyabra.org для вашего родного города по умолчанию. А остальные
города на поддоменах:<br>
spb.krakozyabra.org<br>
minsk.krakozyabra.org<br>
kiev.krakozyabra.org<br>
и так далее в соответствии с настройками.
Позже мы добавим (вернем) возможность указывать для городов не только поддомены но и страницы (в рамках одного домена).
Управление текстами происходит через компонент MyCitySelector в админке, там же и управление
списком городов и настройки компонента.
<img src="https://raw.githubusercontent.com/art-programming-team/mycityselector/master/doc_images/image-2.png" alt="" />
Часть настроек находится в модуле, который отвечает за отображаемое окно выбора города на сайте.
Для вставки заготовленных текстов на страницы сайта используются специальные маркеры (теги).
Всего есть два вида маркеров:
- [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} более продвинутые. Их может быть много на одной странице
и у каждого свои условия по городам. Кроме того, вам не нужно вводить их вручную.
В редакторе Вы можете найти кнопку для вставки маркера в текущую позицию курсора.
<img src="https://raw.githubusercontent.com/art-programming-team/mycityselector/master/doc_images/image-3.jpg" alt="" />
Просто выбираете нужный контент из списка и вставляете маркер в текст. Все просто.
Перейдем к рассмотрению компонента "MyCitySelector". Откройте подпункт "Страны".
<img src="https://raw.githubusercontent.com/art-programming-team/mycityselector/master/doc_images/image-5.png" alt="" />
При клике по ссылке "регионы" вы сможете открыть список регионов, относящихся к данной стране. Аналогично и в списке
регионов, так есть ссылка "города". Делая элементы списков неактывными, вы запрещаете их отображение в окне выбора города.
Ничего сложного.
*Примечание*: Регионы Украины и Беларусии еще не заполнены...просим прощения, мы не смогли в георгафию :P Дополним в ближайшее вреееемя.
Но не расстраивайтесь, Вы ведь можете заполнить их сами, просто используйте кнопку "создать".

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

<img src="https://raw.githubusercontent.com/art-programming-team/mycityselector/master/doc_images/image-6.jpg" alt="" />

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

<img src="https://raw.githubusercontent.com/art-programming-team/mycityselector/master/doc_images/image-7.jpg" alt="" />



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

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

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

Первый способ достаточно прост, необходимо зайти в менеджер шаблонов сайта, кликнуть по названию своего текущего шаблона перейти во вкладку "Переопределение", найти в списке модуль "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;
}
}
```

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

Было решено делиться накопленным опытом и разными трюками в использовании расширения.
В итоге вот сборник [рецептов](cookbook/index.md).

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

Спасибо [Vlad-Online](https://github.com/Vlad-Online) за огромную помощь в написании второй версии расширения!

Спасибо [Renderlife](https://github.com/renderlife) за новый дизайн модуля.

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

0 comments on commit 83f6a61

Please sign in to comment.
You can’t perform that action at this time.