Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
CMS WordPress
Более 20% интернета
Презентация для вебинара http://geekbrains.ru/events/73
Автор: Евгений Холин (eholin@gma...
История создания
• CMS WordPress впервые увидела свет в 2003 году;
• Она создавалась и развивается как OpenSource проект;
...
История создания
• В 2008 году было выпущено несколько версий (2.5 – 2.7), которые
значительно приблизили CMS к её совреме...
История создания
• С 2011 по 2013 год было выпущено ряд версий, благодаря
которым на WordPress стало возможным быстро запу...
Причины популярности WordPress
• Устанавливается на любой хостинг с поддержкой PHP/MySQL, есть
множество хостингов с уже п...
Причины популярности WordPress
• Функциональность WordPress можно изменить до
неузнаваемости с помощью плагинов, которых т...
Причины популярности WordPress
• Низкий порог входа – чтобы сделать тему для WordPress,
достаточно самых минимальных знани...
Причины популярности WordPress
• Много подробных курсов, уроков и отдельных статей как для
новичков, так и для продвинутых...
Структура WordPress
Вся CMS построена вокруг записей (Post). Записи – это
краеугольный камень WP (https://codex.wordpress....
Структура WordPress
2. Pages – страницы, аналогичные записям блога, но не привязанные к
хронологии, выводятся как обычные ...
Структура WordPress
3. Attachments – любые вложения: изображения, аудио и
видеофайлы, документы PDF и т.д. Они могут быть ...
Структура WordPress
4. Revisions – это черновик записи или страницы. Не особо нужная
функция, если у сайта (блога) один ад...
Структура WordPress
Custom Post Types – настраиваемые типы записей. Вы можете создать
любой настраиваемый тип записи и доб...
Структура WordPress
Таксономии (Taxonomies - https://codex.wordpress.org/Taxonomies) в
WordPress – это основной способ гор...
Структура WordPress
Самые популярные виды таксономий: категории и теги.
Категории – лучший способ распределить ваш контент...
Структура WordPress
Менее популярные таксономии: категория ссылки и формат
записи.
Категория ссылки – такая же категория, ...
Структура WordPress
Настраиваемые таксономии (Custom Taxonomies) обычно
используются для настраиваемых типов записи, хотя ...
Структура WordPress
В WordPress есть возможность для каждой записи сохранять и
выводить неограниченное количество мета-дан...
Структура WordPress
Плагины в WordPress – это, по сути, расширение функциональности CMS,
порой до неузнаваемости. Назову л...
Структура WordPress
Разработать плагин для WordPress достаточно просто – это
обычный PHP-код, можно использовать CSS и JS ...
Структура WordPress
Виджет (Widget, http://codex.wordpress.org/WordPress_Widgets) –
частный случай плагина, изначально пре...
Структура WordPress
Тема (Theme, https://codex.wordpress.org/Using_Themes) – составляет
основу внешнего вида вашего сайта ...
Структура WordPress
На http://wphierarchy.com приведена полная иерархия файлов в теме, на самом деле все намного проще – п...
Структура WordPress
• front-page.php – файл, используемый для вывода главной страницы сайта без списка записей. Очень удоб...
Структура WordPress
Структура темы
Шапка сайта
Меню сайта
header.php
sidebar.php
Подвал сайта
footer.php
Заголовок записи
...
Структура WordPress
Структура темы
Шапка сайта
Меню сайта
header.php
sidebar.php
Подвал сайта
footer.php
Заголовок записи
...
Структура WordPress
Фреймворки, которые расширяют функциональность
WordPress:
• Redux Framework (http://reduxframework.com...
Структура WordPress
Функциональность сайта на WordPress может быть существенно
расширена за счет использования API (Applic...
Структура WordPress
И еще немного WordPress API:
• HTTP API – API для работы с HTTP-запросами. Используется для получения ...
Структура WordPress
Это уже почти все API:
• Quicktags API – используется для добавления кнопок к стандартному редактору W...
Структура WordPress
Все, точно последние API:
• Widgets API – API для создания, сохранения и вывода виджетов;
• XML-RPC Wo...
Немного о безопасности WordPress
WordPress, как и все, что создано одним человеком, другим человеком может
быть взломана. ...
Недостатки WordPress
• Невысокое качество тем и плагинов на wordpress.org, потенциально большое
количество уязвимостей;
• ...
Перспективы разработчика WordPress
• Фриланс – наибольшего успеха можно добиться на англоязычных
биржах типа upwork.com, н...
Благодарю за внимание!
Жду ваших вопросов.
Презентация к вебинару по CMS WordPress
Upcoming SlideShare
Loading in …5
×

Презентация к вебинару по CMS WordPress

2,301 views

Published on

1. История создания и развития CMS WordPress
2. Причины популярности CMS WordPress
3. Структура CMS WordPress
1. Плагины для WP
2. Темы для WP
3. Иерархия в темах
4. Фреймворки для WordPress
4. Краткий обзор API CMS WordPress
5. Основные достоинства и недостатки WordPress
6. Перспективы разработчика для WordPress, область применения CMS

Published in: Technology
  • Be the first to comment

Презентация к вебинару по CMS WordPress

  1. 1. CMS WordPress Более 20% интернета Презентация для вебинара http://geekbrains.ru/events/73 Автор: Евгений Холин (eholin@gmail.com)
  2. 2. История создания • CMS WordPress впервые увидела свет в 2003 году; • Она создавалась и развивается как OpenSource проект; • Изначально CMS была предназначена только для блогов; • В 2004 году в версии 1.2 появились плагины; • В 2005 году в версии 1.5 появились темы и статические страницы; • В 2007 году была выпущены версии 2.2, которая включала в себя виджеты, поддержку Atom feed и была более быстрой и удобной, а также версия 2.3, в которую была включена поддержка таксономий;
  3. 3. История создания • В 2008 году было выпущено несколько версий (2.5 – 2.7), которые значительно приблизили CMS к её современному виду, одним из самых значительных нововведений было автоматическое обновление самой системы, подключенных плагинов и тем, а также переработанное ядро CMS, существенно ускорявшее её работу; • В 2011 году была выпущена версия 3.0, в неё был включен ряд новых API, а также поддержка мультисайтовости – на одной CMS можно было сделать несколько сайтов, управляемых из единой панели администрирования;
  4. 4. История создания • С 2011 по 2013 год было выпущено ряд версий, благодаря которым на WordPress стало возможным быстро запускать сайты с нуля без написания единой строчки кода. В это время активно развивались репозитории плагинов и тем на Wordpress.org • В 2014 году была выпущена версия 4.0, современная версия WP – 4.2.2 • Сейчас команда разработчиков WordPress идет по пути дальнейшего улучшения и совершенствования системы, в планах – добавление новых API и расширение функциональности.
  5. 5. Причины популярности WordPress • Устанавливается на любой хостинг с поддержкой PHP/MySQL, есть множество хостингов с уже предустановленной WordPress; • Чтобы начать работу – нужно просто добавить свой контент, не требуется долго настраивать и писать код; • Все настройки CMS – через интуитивно понятный веб-интерфейс; • CMS переведена более чем на 40 языков, среди которых и русский; • Можно существенно изменить внешний вид сайта на WordPress с помощью тем – на выбор несколько десятков тысяч как бесплатных, так и платных тем. 1. Простая в использовании
  6. 6. Причины популярности WordPress • Функциональность WordPress можно изменить до неузнаваемости с помощью плагинов, которых также доступно несколько десятков тысяч. Интернет-магазин, landing page, каталог – все это можно сделать на WordPress без единой строчки кода. • Плагины и темы устанавливаются в несколько кликов мыши. • Есть много информации для новичков, в том числе и на русском языке. 1. Простая в использовании
  7. 7. Причины популярности WordPress • Низкий порог входа – чтобы сделать тему для WordPress, достаточно самых минимальных знаний PHP и среднего уровня владения HTML и CSS. Например, можно взять костяк темы с http://underscores.me и добавить лишь дизайн с помощью CSS, не меняя ни структуру темы, ни её функциональность; • Хорошая документация – на основном справочном ресурсе http://codex.wordpress.org описана вся функциональность WordPress, приведена информация по всем функциям, фильтрам и хукам. Но большая часть информации на английском языке. 2. Простая в разработке
  8. 8. Причины популярности WordPress • Много подробных курсов, уроков и отдельных статей как для новичков, так и для продвинутых программистов: • http://codex.wordpress.org/WordPress_Lessons • http://www.wpbeginner.com/ • http://code.tutsplus.com/categories/wordpress • Благодаря различным API реализация многих вещей на WordPress не требует написания огромного количества кода; • Легко расширяемая – темы можно делать с помощью Bootstrap или Foundation, можно подключать любые JS-фреймворки и скрипты как к теме, так и к системе администрирования. 2. Простая в разработке
  9. 9. Структура WordPress Вся CMS построена вокруг записей (Post). Записи – это краеугольный камень WP (https://codex.wordpress.org/Post_Types) Существует пять стандартных типов записей в WordPress: 1. Posts - записи, привязанные к хронологии, изначально используемые в блоге. Могут содержать текст, изображения и т.д. Есть предустановленные форматы записей, также можно создавать свои. Посты обычно выводятся по хронологии и используются для формирования Atom (RSS) фидов. Записи могут быть структурированы с помощью таксономий: категорий и тегов. Если включена поддержка ЧПУ – записи структурируются также по хронологии в URL: http://site.url/2015/05/12/sample-post/ Типы записей
  10. 10. Структура WordPress 2. Pages – страницы, аналогичные записям блога, но не привязанные к хронологии, выводятся как обычные страницы сайта. Страницы могут быть организованы в иерархию, для каждой страницы может быть задана родительская страница, у каждой страницы может быть неограниченное количество дочерних страниц. Таким образом, иерархия может быть бесконечной. В обычной ситуации страницы не могут быть организованы с помощью таксономий, но это можно изменить с помощью плагинов или настройки темы: https://codex.wordpress.org/Function_Reference/register_taxonomy и https://codex.wordpress.org/Function_Reference/add_post_type_support Типы записей
  11. 11. Структура WordPress 3. Attachments – любые вложения: изображения, аудио и видеофайлы, документы PDF и т.д. Они могут быть как прикрепленными к записям/страницам, так и существовать сами по себе. Вложение (в стандарте – только изображения) может быть использовано как миниатюра записи (https://codex.wordpress.org/Post_Thumbnails). Изначально это была обычная картинка для привлечения внимания к записе, сейчас мы уже привыкли видеть такие картинки в блогах, новостных сайтах – в общем, во всем интернете. Типы записей
  12. 12. Структура WordPress 4. Revisions – это черновик записи или страницы. Не особо нужная функция, если у сайта (блога) один администратор, но если у сайта несколько авторов и редакторов – крайне незаменимая вещь. 5. Navigation Menu – это запись, которая содержит в себе информацию об одном пункте меню: название, ссылку и подчиненность. С помощью этого типа записей можно легко и просто создавать многоуровневые меню. Типы записей
  13. 13. Структура WordPress Custom Post Types – настраиваемые типы записей. Вы можете создать любой настраиваемый тип записи и добавить к нему поддержку любой функциональности, которая есть в WordPress: таксономии, иерархическую структуру, миниатюры, настраиваемые поля (мета- записи) и т.д. Благодаря поддержке Custom Post Types WordPress стала такой гибкой и популярной CMS. Плагины галерей, слайдеров, e-commerce и т.д. – всё это работает именно на кастомных типах записей. Custom Post Types создаются с помощью функции register_post_type (https://codex.wordpress.org/Function_Reference/register_post_type) Типы записей
  14. 14. Структура WordPress Таксономии (Taxonomies - https://codex.wordpress.org/Taxonomies) в WordPress – это основной способ горизонтальной связи записей. Существуют следующие таксономии: 1. Категория (Category) 2. Тег (Tag) 3. Категория ссылки (Link category) 4. Формат записи (Post format) 5. Настраиваемая таксономия (Custom taxonomy) Некоторые таксономии могут образовывать многоуровневую иерархию, например, категории и настраиваемые таксономии. Таксономии
  15. 15. Структура WordPress Самые популярные виды таксономий: категории и теги. Категории – лучший способ распределить ваш контент по полочкам, особенно хорошо подходит для новостных сайтов и блогов. Одной записи может быть присвоено несколько категорий. Категории участвуют в ЧПУ – формируется URL вида /category/content/ Теги – ассоциативный способ каталогизации контента. Нет четкой иерархии, зато по ассоциациям можно выстраивать связь между различными постами. Все теги на сайте могут быть выведены как облако тегов. Теги также участвуют в ЧПУ – формируется URL вида /tag/content/ В шаблоне сайта можно настраивать вывод списка записей или одной записи в зависимости от категории или тега. Таким образом, мы можем очень гибко выводить наш контент. Таксономии
  16. 16. Структура WordPress Менее популярные таксономии: категория ссылки и формат записи. Категория ссылки – такая же категория, но только для ссылки :) Так как каталоги ссылок в последнее время не пользуются популярностью, то и данная категория уже мало используется. Формат записи (http://codex.wordpress.org/Post_Formats) – удобная таксономия для блога. Позволяет настраивать внешний вид записи в зависимости от заданного формата. Есть несколько стандартных форматов, можно создать свой формат записи. Таксономии
  17. 17. Структура WordPress Настраиваемые таксономии (Custom Taxonomies) обычно используются для настраиваемых типов записи, хотя их можно прикрепить к любому стандартному типу записи. Они включают в себя все свойства стандартных таксономий, могут быть иерархически организованы. Для чего это нужно? В первую очередь, для создания сложной иерархии, в которой нужно разделять наши записи по множеству признаков. При этом выстроить структуру, используя стандартные таксономии, не получается – она выходит слишком громоздкой. Пример – каталог книг с разделением по жанрам, авторам и т.д. Таксономии
  18. 18. Структура WordPress В WordPress есть возможность для каждой записи сохранять и выводить неограниченное количество мета-данных или настраиваемых полей (Custom Fields, https://codex.wordpress.org/Custom_Fields). Настраиваемые поля можно задавать в темах (не самый лучший вариант!) или в плагинах. Также их можно использовать, не написав ни строчки кода, достаточно просто установить плагин для работы с мета-данными, например MetaBox (http://metabox.io). Мета-данные
  19. 19. Структура WordPress Плагины в WordPress – это, по сути, расширение функциональности CMS, порой до неузнаваемости. Назову лишь несколько популярных плагинов, которые преображают WordPress: • Woocommerce – делает из WordPress интернет-магазин; • bbPress – форум для WordPress; • BuddyPress – социальная сеть на WordPress; • MailChimp - управление e-mail подписками. Всего в официальном репозитории https://wordpress.org/plugins/ более 37 000 бесплатных плагинов. А в одном из самых популярных магазинов http://codecanyon.net более 3500 плагинов. Плагины
  20. 20. Структура WordPress Разработать плагин для WordPress достаточно просто – это обычный PHP-код, можно использовать CSS и JS (в т.ч. и фреймворки). Естественно, код должен соответствовать стандартам WordPress, особенно если вы планируете размещать его в репозитории плагинов или продавать на различных маркетплейсах типа codecanyon.net Более подробно о разработке плагинов: https://codex.wordpress.org/Writing_a_Plugin Плагины
  21. 21. Структура WordPress Виджет (Widget, http://codex.wordpress.org/WordPress_Widgets) – частный случай плагина, изначально предназначался для вывода какой-то информации в сайдбаре (Sidebar, боковая колонка). Но, так как область сайдбара в теме WordPress можно задавать где угодно, не только сбоку, то виджеты стали появляться и в подвалах, и в шапках сайтов. Виджеты
  22. 22. Структура WordPress Тема (Theme, https://codex.wordpress.org/Using_Themes) – составляет основу внешнего вида вашего сайта на WordPress. По сути, вся разработка сайта на WordPress у большинства разработчиков сводится к тому, чтобы сделать тему, подключить её и несколько плагинов к WP и настроить сайт. Неправильно, когда вся дополнительная функциональность типа Custom Post Types, реализуется в теме – она должна быть реализована в плагинах, темы отвечают только за внешний вид. Есть множество бесплатных тем, их можно скачать с https://wordpress.org, есть немало более качественных и привлекательных платных тем (пример магазина тем – themeforest.net). Темы
  23. 23. Структура WordPress На http://wphierarchy.com приведена полная иерархия файлов в теме, на самом деле все намного проще – по минимуму в теме должны быть файлы style.css и index.php. Все остальное – лишь расширяет функциональность и внешний вид темы. Однако в темах все же больше, чем 2 файла, перечислю основные составляющие: • 404.php – файл, отвечающий за страницу 404; • archive.php – файл, отвечающий за вывод хронологического архива записей; • author.php – файл, отвечающий за вывод страницы с информацией о конкретном авторе; • category.php – файл, отвечающий за вывод списка записей одной категории; • comments.php – файл, отвечающий за вывод формы для комментариев и списка комментариев; • content.php – файл, отвечающий за вывод непосредственно контента записи, подключается в single.php или page.php, в свою очередь может подключать файлы, соответствующие разным типам записей; • footer.php – файл, отвечающий за вывод подвала сайта; Иерархия в темах
  24. 24. Структура WordPress • front-page.php – файл, используемый для вывода главной страницы сайта без списка записей. Очень удобно использовать для коммерческих сайтов, где на главной странице не нужны последние записи блога. • functions.php – файл с дополнительными настройками темы, расширяет её функциональность; • header.php – файл, отвечающий за вывод шапки сайта; • index.php – файл, отвечающий за вывод списка записей или одиночной страницы на главной странице сайта; • page.php – файл, отвечающий за вывод страницы сайта; • search.php – файл, отвечающий за вывод результатов поиска по сайту; • sidebar.php – файл, отвечающий за вывод боковой колонки сайта; • single.php – файл, отвечающий за вывод одиночной записи; • style.css – файл таблицы стилей сайта; Иерархия в темах
  25. 25. Структура WordPress Структура темы Шапка сайта Меню сайта header.php sidebar.php Подвал сайта footer.php Заголовок записи Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut laoreet iaculis tortor, ut sodales ante pharetra porta. Vestibulum quis lectus justo. In mollis iaculis tortor, non placerat tortor vehicula id. Заголовок записи Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut laoreet iaculis tortor, ut sodales ante pharetra porta. Vestibulum quis lectus justo. In mollis iaculis tortor, non placerat tortor vehicula id. index.php archive.php category.php Так выглядит главная страница сайта (если отсутствует файл front- page.php): • шапка сайта, • список записей, • сайдбар, • подвал сайта. Аналогично выглядят страницы категории или архива записей.
  26. 26. Структура WordPress Структура темы Шапка сайта Меню сайта header.php sidebar.php Подвал сайта footer.php Заголовок записи Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut laoreet iaculis tortor, ut sodales ante pharetra porta. Vestibulum quis lectus justo. In mollis iaculis tortor, non placerat tortor vehicula id. single.php page.php Так выглядит одна запись или страница. Vivamus vehicula odio eros, non commodo massa convallis non. Integer varius magna faucibus, lobortis ligula eu, dictum purus. Sed id ipsum id orci fringilla semper. Proin laoreet volutpat euismod. Praesent at ullamcorper odio. Nunc suscipit posuere nunc, id euismod metus efficitur quis. Morbi vitae nibh varius, scelerisque est eu, sagittis sem. Etiam ornare diam ut ligula finibus dignissim.
  27. 27. Структура WordPress Фреймворки, которые расширяют функциональность WordPress: • Redux Framework (http://reduxframework.com/) • Genesis Framework (http://my.studiopress.com/themes/genesis/) • Thesis Framework (http://diythemes.com/) • Kirki WordPress Customizer – фреймворк, существенно расширяющий WordPress Customizer API (http://kirki.org/) • http://underscores.me – базовый скелет для построения тем Фреймворки для WordPress
  28. 28. Структура WordPress Функциональность сайта на WordPress может быть существенно расширена за счет использования API (Application Programming Interface, https://codex.wordpress.org/WordPress_APIs). Доступные API: • Dashboard Widgets API – API для создания виджетов в панели управления WordPress • Database API – набор интерфейсов для работы с базой данных WordPress, состоит из 3-х API: • Options API – API для работы с настройками плагина или темы (Options). Всё, что хранится в таблице wp_options • Transients API – аналог Options API, но только для временной информации. Используется обычно при кэшировании данных. • Metadata API – API для хранения мета-данных, используется для комментариев, записей или пользователей. Всё, что хранится в таблицах wp_commentmeta, wp_postmeta и wp_usermeta Обзор API WordPress
  29. 29. Структура WordPress И еще немного WordPress API: • HTTP API – API для работы с HTTP-запросами. Используется для получения или отправки информации с/на удаленных серверов; • File Header API – используется для получения заголовков из файлов тем и плагинов WP; • Filesystem API – изначально создан для автообновления файлов WP, а также плагинов и тем, но в настоящее время используется для всех файловых операций внутри WordPress; • Plugin API – API для разработчиков плагинов, состоит из хуков (hooks), событий (actions) и фильтров (filters): • События используются для объявления каких-либо функций, подменяющих или дополняющих стандартные действия; • Фильтры используются для обработки данных, полученных в результате какого-либо события; • Хуки используются для перехвата каких либо действий CMS, правило простое – сначала создаем событие, потом подключаем его к какому-либо действию с помощью хука. • Подробно и на русском о создании плагинов: http://easy-code.ru/lesson/building-wordpress-plugin-part-one Обзор API WordPress
  30. 30. Структура WordPress Это уже почти все API: • Quicktags API – используется для добавления кнопок к стандартному редактору WordPress; • Rewrite API – используется для изменения стандартного режима ЧПУ WordPress, незаменим при создании Custom Post Types; • Settings API – существенно упрощает работу с настройками тем и плагинов, т.к. отвечает за вывод элементов интерфейса и сохранение настроек в БД; • Shortcode API – API для создания шорткодов. Шорткод – это код, который вставляется прямо в запись (как вариант – в код темы), вызывает функцию и передает ей ряд параметров; • Theme Modification API – позволяет работать с модификациями темы как с опциями WordPress. Хорошо работает в связке с WordPress Theme Customizer API. • Theme Customization API – используется для настроек темы с помощью стандартного интерфейса "Appearance" → "Customize". Подробно и на русском: http://uwebdesign.ru/wordpress-customizer/ Обзор API WordPress
  31. 31. Структура WordPress Все, точно последние API: • Widgets API – API для создания, сохранения и вывода виджетов; • XML-RPC WordPress API – API для работы с интерфейсом XML RPC, позволяет удаленно получать и отправлять данные (записи, таксономии и т.д.) WordPress. Отдельно упомяну про WordPress REST API – в настоящее время он не является полноценным официальным API и находится в разработке. Если говорить кратко – это интерфейс для работы с данными WordPress вне стандартной админки WordPress. Или, что ещё более крышесносяще – это интерфейс для работы с любыми данными в админке WordPress. На этом, пожалуй, все о WordPress API :) Обзор API WordPress
  32. 32. Немного о безопасности WordPress WordPress, как и все, что создано одним человеком, другим человеком может быть взломана. Но многие проблемы можно предотвратить заранее: • Рекомендуется устанавливать и использовать плагины, использующие различные методы защиты от спама, например, Akismet или плагины с капчей; • Рекомендуется отключать pingbacks и trackbacks; • Рекомендуется отключать ссылки в комментариях или включать обязательную модерацию таких ссылок; • Рекомендуется регулярно обновлять WordPress и все плагины до последних версий; • Для защиты формы логина от bruteforce-атаки не придумали ничего лучше, чем пароль на папку wp-admin в .htaccess (https://wpcafe.org/hacks/kak-zashhitit-parolem-dostup-k-papke- wp-admin-v-wordpress/)
  33. 33. Недостатки WordPress • Невысокое качество тем и плагинов на wordpress.org, потенциально большое количество уязвимостей; • Привлекательность для спаммеров и хакеров из-за высокой распространенности; • Поддержка кода, написанного по устаревшим стандартам; • Требовательность к ресурсам – решается с помощью кэширования; • Бессмысленный WP Cron, что решается с помощью define('DISABLE_WP_CRON', 'true') в wp-config.php; • Нарезка изображений, что решается с помощью https://wordpress.org/plugins/otf-regenerate-thumbnails/; • Генерация множества ненужных адресов и дублей контента, что решается с помощью https://wordpress.org/plugins/wordpress-seo/.
  34. 34. Перспективы разработчика WordPress • Фриланс – наибольшего успеха можно добиться на англоязычных биржах типа upwork.com, но начинать можно, имея минимальные знания CMS и с русскоязычных бирж типа fl.ru; • Работа в веб-студии – можно без труда найти работу в офисе в любом более-менее крупном городе или удаленную работу; • Разработка собственных продуктов – плагинов и тем и их последующая продажа.
  35. 35. Благодарю за внимание! Жду ваших вопросов.

×