{"id":18049662,"url":"https://github.com/alextim/alpclub","last_synced_at":"2025-04-05T06:15:25.976Z","repository":{"id":92112974,"uuid":"128256881","full_name":"alextim/alpclub","owner":"alextim","description":null,"archived":false,"fork":false,"pushed_at":"2018-11-13T20:05:58.000Z","size":520,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-25T17:51:39.852Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alextim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-05T19:52:50.000Z","updated_at":"2018-11-13T20:05:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"727afbe0-fabd-4e95-8e30-2d3d227fae47","html_url":"https://github.com/alextim/alpclub","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alextim%2Falpclub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alextim%2Falpclub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alextim%2Falpclub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alextim%2Falpclub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alextim","download_url":"https://codeload.github.com/alextim/alpclub/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247294567,"owners_count":20915341,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-30T21:08:28.029Z","updated_at":"2025-04-05T06:15:25.968Z","avatar_url":"https://github.com/alextim.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Содержание\n1. [Введение](#to-introduction)\n2. [Редактору](#to-editor)\n   - [Необходимые навыки](#to-editor-skills)\n   - [Заполнение Новостей (Постов)](#to-posts)\n   - [Видео](#to-video)\n   - [Картинки](#to-images)\n   - [Шоткоды](#to-shortcodes)\n   - [Форма \"Контакты\"](#to-contact-form-e)\n   - [Home (Домой — Главная страница)](#to-home-page)\n   - [Мероприятия (Trips)](#to-trips)\n3. [Администратору](#to-admin)\n   - [**![#f03c15](https://placehold.it/15/f03c15/000000?text=+) Важное!!!**](#to-important)\n   - [Режим обслуживания, Maintenance Mode](#to-maintenance)\n   - [Копирайт в футере](#to-copyright)\n   - [Настройка контактных данных](#to-contact-data)\n   - [Форма \"Контакты\"](#to-contact-form-a)\n4. [Программисту](#to-programmer)\n   - Настройки хостинга\n   - Wordpress\n   - Parent Theme\n     - Замечания\n     - Список изменений\n   - Child Theme\n5. [TO-DO](#to-do)   \n\n## \u003ca name=\"to-introduction\"\u003e\u003c/a\u003eВведение\nНа сайте есть два основных типа публикаций\n- Записи\n- Мероприятия\n\n### Записи\nпредназначены для таких публикаций, как посты, новости, события, отчеты о поездках, поздравления, повестки собрания, результаты соревнований, объявления, описания.\n\n_Запись_ состоит из главной картинки и текста. В текст можно вставлять картинки, видео, ссылки.\n\n### Мероприятия (выезды, сборы)\nПубликация вида _Мероприятие_ состоит из главной картинки и нескольких вкладок с текстом: описание, программа по дням, стоимость (что включено и что нет), снаряжение и др.\n\nМероприятие имеет разнообразные атрибуты: дата начала и окончания, продолжительнось, высшая точка, техническая сложность, размер группы, цена, валюта, цена распродажи и др.\nНа мероприятие можно зарегистрироваться (ссылка на регистрационную форму, дата окончания регистрации).\n\n:bulb: \u003ci\u003eПримеры какие материалы отнести к записям, а какие к мероприятиям.\n- Поздравление с Новым Годом - запись\n- Сборы в Карпатах 2019 (с описанием, планом по дням, снаряжением) - мероприятие\n- Объявляем набор в школу альпинизма - запись\n- Скоро сборы в Карпатах - запись\n- Сборы в Карпатах - мероприятие\t\n- Лекция о зимнем альпинизме - запись\n- Сбор в Карпатах состоялся - запись\n- Напоминание об оплате членских взносов - запись\n- Сборы в Шамони - мероприятие\n- День Альпиниста 2019 - запись\u003c/i\u003e\n\n\n\n\n## \u003ca name=\"to-editor\"\u003e\u003c/a\u003eРедактору\n### \u003ca name=\"to-editor-skills\"\u003e\u003c/a\u003eНеобходимые навыки\n- Знание HTML5 и CSS3\n- Уметь пользоваться каким-либо текстовым редактором\n- Уметь работать с графическими программами такими, как Adobe Photoshop, Corel PhotoPaint или подобными\n- Базовые знания по работе и организации Wordpress\n- Понимание SEO\n- Минимальный английский\n\n### \u003ca name=\"to-posts\"\u003e\u003c/a\u003eЗаполнение Новостей (Постов)\nВ Admin панели пункт меню \"Записи\" -\u003e \"Добавить новую\".\n\nШесть элементов, которые нужно заполнить для полноценного оформления поста.\n\n1. Заголовок\n2. Текст\n- Заполнять в редакторе в режиме \"Текст\"\n- Для оформления текстов не применять in-line стили. Можно только HTML-тэги и классы.\n\n  Пример c использования тэга HTML `\u003ch4\u003e` подзаголовка 4-го уровня:\n  ```html\n  \u003ch4\u003eМой подзаголовок 4-го уровня\u003c/h4\u003e\n  ```\n  \n  Пример применения классов CSS для оформления параграфа:\n  ```html\n  \u003cp class=\"my-special-class\"\u003eМой текст\u003c/p\u003e\n  ```\n  \n   :bulb: Класс `my-special-class` должен быть предварительно создан в  файле стилей темы -`style.css`.\n- Для списков пользуйтесь тэгами `ul`, `ol` и `li`.\n\n  :bulb: _Не создавайте неуправляемые ламерские списки с помощью тире или цифр._\n- Текст оптимизированный для SEO\n  - более 300 слов\n  - оригинальный, __NO COPY PASTE__\n  - структурированный - в теле текста обязательно тэги подзаголовков `h2`, `h3`, `h4`\n  - для SEO слова из Заголовка (пункт 1) должны присутствовать в теле текста \n\n__Ссылки внутри вводимого текста__\n\nЕсть два вида ссылок.\n\n**_Внутренние ссылки_** - для картинок, документов и прочего контента внутри нашего сайта.\n\nСоздавайте ссылки относительно корня сайта `/`, не используйте полный путь `https://alp.od.ua/`.\n\nНеправильно:\n```html\n\u003ca href=\"https://alp.od.ua/persons/klebanskij-vladimir\"\u003eВова\u003c/a\u003e\n```\n    \nПравильно:\n```html\n\u003ca href=\"/persons/klebanskij-vladimir\"\u003eВова\u003c/a\u003e\n```\n:bulb: _При использовании полного пути после смены протокола `https` на `http` или переходе на новый домен ссылка будет утеряна и Вам придется ее заново редактировать._\n   \n**_Внешние ссылки_** - на чужие сайты и ресурсы.\n\nОбязательно добавлять 2 тэга в код ссылки:\n- `target=\"_blank\"` Открывает ссылку в новой вкладке и не уводит посетителя с нашего сайта\n- `rel=\"noopener nofollow\"` Безопасность и для SEO - робот-поисковик не уходит на чужой сайт\n\nНеправильно:\n```html\n\u003ca href=\"http:\\\\example.com\"\u003eExample\u003c/a\u003e\n```     \n\nПример правильного оформления внешней ссылки:\n```html\n\u003ca target=\"_blank\" rel=\"noopener nofollow\" href=\"http:\\\\example.com\"\u003eExample\u003c/a\u003e\n```\n3. Выбрать рубрику, одну или несколько.\n4. Установить изображение записи.\n   При вставке картинки не забывайте заполнить очень нужные для SEO тэги `title` и `alt`.\n5. Заполнить SEO мета-поля из раздела \"All in One SEO Pack\"\n   - Заголовок.\n   - Описание.\n   - Ключевые слова.\n6. Отрывок. Необязательно, но крайне желательно.\n\nПосле заполнения всех необходимых полей сохранить пост- нажать копку \"Опубликовать\".\n\nПродублировать пост на странице клуба в facebook: написать пару слов и что-то вроде \"подробнее читайте на нашем сайте\" с ссылкой на созданный документ. \n### \u003ca name=\"to-video\"\u003e\u003c/a\u003eВидео\nВидео размещайте только на внешних специализированных ресурсах: youtube.com, vimeo.com и тд.\n\nДля вставки видео в тело поста используйте тэг `iframe`.\n```html\n\u003ciframe src=\"https://www.youtube.com/embed/Ef7f-K97xuA\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen\u003e\u003c/iframe\u003e\n```\n\n### \u003ca name=\"to-images\"\u003e\u003c/a\u003eКартинки\nВсе доступные картинки сайта можно просмотреть пункт меню \"Медиафайлы\" -\u003e \"Библиотека\".\n\n#### Четыре основных способа загрузки картинок на сайт\n1. Через Admin панель меню \"Медиафайлы\" - \"Добавить новый\" -\u003e \"Загрузить новый медиафайл\"\n1. В Записях и Страницах \"Установить изображение записи\"\n1. В Записях и Страницах в текстовом редакторе кнопка \"Добавить медиафайл\"\n1. Envira Gallery\n\n:bulb: _Размер файла картинки очень влияет на производительность сайта. Будьте внимательны, следите за размером. \nСжимайте!_\n\n\n#### Требования к картинкам\n- Этап подготовки\n  - Редактировать в Adobe Photoshop или Corel PhotoPaint.\n  - Формат JPG.\n  - Разрешение 72-96 dpi. \n  - Глубина цвета 24 Bit\n  - Сохранять с оптимизацией для Web.\n  - Имя файла на латиннице без пробелов, слова разделены тире `-`. Имя должно отражать предназначение и содержание картинки. Можно еще для SEO вписать в имя ключевое слово или два.\n- Загрузка на сайт  \n  - Заполнить тэги `title` и `alt`. В эти тэги для SEO полезно дописать ключевые слова.\n\nТаблица назначений, имен и размера картинок\n\n| Назначение | Шаблон имени | Dimensions, px | File size, kB |\n| --- | --- | ---: | --- |\n| Баннер по умолчанию | | 1920 x 500 | 50-80 |\n| Страницы    | page-{slug}-??????.jpg |   1920 x 500 | 50-80 |\n| Таксономии  | tax-{taxonomy name}-{slug}-??????.jpg  | 1920 x 500 | 50-80 |\n| Слайдер     | slider-??????.jpg       | 1920 x 850 | 90-120 |\n| Посты       | post-{slug}.jpg     | 800 x 500 |  |\n| Мероприятия | trip-{slug}.jpg       | 800 x 500 |  |\n| Люди        | person-{slug}.jpg | 300 x 300 |  |\n\n{slug} = Ярлык\n\nПример:\n```\ntax-activity-alp-vid-na-monblan.jpg\npost-poezdka-v-bolgariju-nachalas.jpg\ntrip-uts-v-bolgarii.jpg\nperson-klebanskij-vladimir.jpg\n```\n\nКартинки в текстах постов, страниц и мероприятий - любое осмысленное имя.\n\n### \u003ca name=\"to-shortcodes\"\u003e\u003c/a\u003eШоткоды\nДля использования в тексте постов и мероприятий.\n\nЕдиные для сайта номер телефона, e-mail и прочие атрибуты адреса и контактных данных.\n\n```\n[at_contact_phone_1]\n[at_contact_email_1]\n[at_contact_opening_time]\n[at_contact_vcard all]\n[at_contact_vcard addr]\n[at_contact_vcard comm]\n```\n\n[Редактирование](#to-contact-data) контактных данных доступно администратору.\n\n### \u003ca name=\"to-contact-form-e\"\u003e\u003c/a\u003eФорма \"Контакты\"\nВсе отправленное через контактную форму посетителями сайта можно просмотреть через адмиин-панель пункт меню \"AT Contact Form\".\n\n- \"Messages\" - список посланных сообщений в хронологическом порядке.\n- \"Addrees Book\" - записная книжка с e-mail и именем посетителя. Так же хранится время последней посыли  и IP-адрес, откуда отправлялась последняя форма.\n\nДополнительно результаты могут дублироваться на почту (см. раздел для Администратора)\n\n### \u003ca name=\"to-home-page\"\u003e\u003c/a\u003eHome (Домой — Главная страница)\nДля редактирования \"Главной страницы\" зайдите в Admin панели в пункт меню \"Страницы\" -\u003e ссылка \"Изменить\" в странице \"Домой — Главная страница\"\n\nГлавная страница состоит из 5 строк\n1. Строка с баннером - \"SiteOrigin Hero\".\n2. Строка со специальным постом - \"ACO: Special post\". Предполагается использование этой строки для самой важной новости (поста). Например информация о среде, поздравление, напоминание о взносах и т.п.\n3. Строка с последними новостями - \"ACO: Latest news\". Три последние новости (поста).\n4. Строка с предложением к действию - \"ACO: СTA\" (call to action). На нашем сайте это предложение вступить в клуб.\n5. Строка с мероприятиями. Содержит в себе две ячейки.\n - Ячейка последние мероприятия - \"ACO: Latest Trips\". Два последних мероприятия горизонтально - средние по размеру картинки, расширенная информация о мероприятии.\n - Ячейка свежие мероприятия - \"ACO: Recent Trips\". Шесть последних мероприятий вертикально - картинки в виде иконок, краткая информация о мероприятии.\n\n:bulb: _Чтобы пост, выбранный в элементе \"ACO: Special post\" не дублировался в элементе \"ACO: Latest news\" перейдите в последнем по ссылке \"Редактировать\". Затем в комбобоксе \"Exclude Post:\" выберите пост, который хотите исключить.\nДля сохранения изменений нажмитек кнопку \"Выполнено\"._\n\n### \u003ca name=\"to-trips\"\u003e\u003c/a\u003eМероприятия (Trips)\nДля корректного отображения Мероприятия перед сохранением найдите в правом сайдбаре \"Свойство записи\" и выберите шаблон \"Single Trip\"\n## \u003ca name=\"to-admin\"\u003e\u003c/a\u003eАдминистратору\n### \u003ca name=\"to-important\"\u003e\u003c/a\u003e**![#f03c15](https://placehold.it/15/f03c15/000000?text=+) Важное!!!**\n- Не забывайте регулярно делать бекап файлов сайта и самой базы данных. Имейте несколько бэкапов, сохраняйте бэкапы по датам.\n\nНе будьте наивны - рано или поздно катастрофа произойдет.\n```diff\n- Бекап - это единственное, что может помочь Вам восстановить сайт.\n```\n- Обновляйте плагины и ядро Вордпреса.\n- Вордпрес популярен и, увы, уязвим. Следите за безопасностью, просматривайте логи.\n- Минимизируйте права пользователей, избегайте предоставления пользователям прав администратора, создавайте отдельных пользователей для разных людей\n- Оптимизируйте базу данных - удаляйте драфты, подвешенные записи и т.д. в WP-Optimize.\n- После обновлений, редактирования Home page очищайте кэш - \"Clear Cache\"\n### \u003ca name=\"to-maintenance\"\u003e\u003c/a\u003eРежим обслуживания Maintenance Mode \n1. В админ-панели пункт зайти в меню \"Appearance\", подпункт \"Customize\"\n2. Выбрать раздел \"Maintenance\"\n3. Отметить чек-бокс \"Maintenance mode\"\n4. Сохранить изменения - нажать кнопку \"Publish\"\n\n### \u003ca name=\"to-copyright\"\u003e\u003c/a\u003eКопирайт в футере\nЧерез FTP отредактировать файл:\n\n`/themes/alpclub-odessa/template-parts/footer/copyright.php`\n\n### \u003ca name=\"to-contact-data\"\u003e\u003c/a\u003eНастройка контактных данных\nАдрес, телефоны, почта, рабочее время и прочее.\nЧерез FTP отредактировать файл:\n\n`/themes/alpclub-odessa/include/customizer/defaults.php`\n\n### \u003ca name=\"to-contact-form-a\"\u003e\u003c/a\u003eФорма \"Контакты\"\nПункт меню Settings -\u003e AT Contact Form.\n\nРезультаты submit могут\n- сохраняться в базе данных\n- отсылаться на почту\n- дублироваться на почту администратора сайта.\n\n:bulb: _Если ни один чек-бокс не выбран, то форма \"Контакты\" не показывается._\n\nОтдельно настраивается reCaptcha. Подробнее на [Google](https://www.google.com/recaptcha/intro/android.html)\n\n## \u003ca name=\"to-programmer\"\u003e\u003c/a\u003eПрограммисту\n\n###  Настройки хостинга\n- Код дочерней темы работает по PHP 7.2\n- Бесплатный сертификат Let's Encrypt - срок действия при месяца. Необходимо заказывать за 1 месяц до окончания спрока действия.\n- Редирект HTTP на HTTPS\n###  Wordpress\nИзменены файлы `.htacess` и `wp-config.php`. Из соображений безопасности не опубликованы.\n### Parent Theme\n#### Замечания\nДля улучшения производительности модифицированы файлы родительской темы.\nВсе изменения отмечены комментарием:\n`// ATPTM`\n\nПосле обновления родительской темы эти модификации теряются. Надо восстановливать вручную.\nМодифицировання версия файла находится в  `\\wp-content\\themes\\alpclub-odessa\\surya-chandra-lite\\init.php`\n\nДействия \n1. зайти по FTP\n2. загрузить оба файла в текстовый редактор\n3. если отличия только те, что перечислены ниже в 3.2, то перезаписать файл родительской темы `\\wp-content\\themes\\surya-chandra-lite\\inc\\init.php` модифицированным файлом из дочерней `\\wp-content\\themes\\alpclub-odessa\\surya-chandra-lite\\init.php`\n4. если есть еще какие-то отличия, то подправить код\n\n#### Список изменений\nФайл:\n`\\wp-content\\themes\\surya-chandra-lite\\inc\\init.php`\n\n##### Запрет автолоадера рекомендованных плагинов.\nСтрока 27\n```php\n// ATPTM require_once trailingslashit( get_template_directory() ) . 'lib/tgm/class-tgm-plugin-activation.php';\n```\nСтрока 34\n```php\n// ATPTM require_once trailingslashit( get_template_directory() ) . 'inc/hook/tgm.php';\n```\n##### Запрет поддержки экспорта.\nСтрока 59\n```php\n// ATPTM require_once trailingslashit( get_template_directory() ) . 'inc/supports/ocdi.php';\n```\n\n##### Запрет на вывод Info.\nСтроки 64-67\n```php\n// ATPTM if ( is_admin() ) {\n// ATPTM \trequire_once trailingslashit( get_template_directory() ) . 'lib/info/class.info.php';\n// ATPTM \trequire_once trailingslashit( get_template_directory() ) . 'lib/info/info.php';\n// ATPTM }\n```\n##### solved BUG: Загрузка Customizer только в Admin не работала\nМеню создается и через 2-3 секунды самороизвольно исчезает из-за проблемы в реализации функции `is_admin()`.\nЗаменил `is_admin()` на `is_customize_preview()`.\n\nСтроки 48-49\n```php\n */ // ATPTM\nif (is_customize_preview()) { require_once trailingslashit( get_template_directory() ) . 'inc/customizer.php'; }\n```\n### Child Theme\nЗапрет ревизий постов.\nФайл\n`\\wp-content\\themes\\alpclub-odessa\\functions.php`\n```php\n\t\t// ATPTM\n\t\t// Ограничение количества ревизий постов в базе данных: 0\n\t\tadd_filter( 'wp_revisions_to_keep', function ( $num, $post ) : int { return 0; }, 10, 2 );\n```  \n## \u003ca name=\"to-do\"\u003e\u003c/a\u003eTO-DO\n- [ ] Отказаться от Google Forms\n  - Достоинство форм\n    - Уже работает и Easy\n  - Недостатки\n    - Невозможно автоматически собрать все в один файл\n    - Не будет автоматом ни рассылки  ни подписки\n    - Не будет согласования Membership\n- [ ] Подписка и рассылка\n- [ ] Membership\n- [ ] Переделать Logo и favicon. Лучшее качество и меньший размер. Уже есть исходник в векторном формате.\n- [ ] Архив постов\n- [ ] Архив мероприятий\n- [ ] Как правильно оформить коммерческие программы? Вынести в отдельный сайт?\n- [ ] Что делать с непрофильными видами активности - треккинг, лыжи и т.д.\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falextim%2Falpclub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falextim%2Falpclub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falextim%2Falpclub/lists"}