• Шаблонизаторы Wordpress и Joomla. Как это выглядит на "пальцах"?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    У WordPress нет шаблонизатора в его общепринятом понимании - как Smarty, Twig, Dwoo, Savant и тд. Есть набор шаблонов (templates), которые WP подключает / использует в зависимости от того, что было запрошено. Есть четкая логика использования этих шаблонов.

    Сами эти шаблоны - html-файлы, в которых все динамические данные (контент страниц/постов, ссылки, меню, аватары, комментарии, заголовки страниц, медиафайлы и тому подобное) вставляются с помощью Template Tags. Можно создавать и свои. По сути Template Tags - это php-функции, которые выводят или возвращают определенные значения.

    Еще один важный момент - есть плагины и файл functions.php - эти части призваны отвечать за функционал. Например, функция в functions.php получает какие-то данные из базы, обрабатывает и возвращает результат. Этот результат можно вывести в шаблоне.

    Также, одними из важнейших составляющих (и секретом гибкости WordPress) являются хуки - фильтры и экшны (filters and actions). Их, кстати, тоже можно свои создавать.

    Документация, она же Theme Developer Handbook.

    А также:

    https://codex.wordpress.org/Theme_Development
    https://codex.wordpress.org/Function_Reference
    https://codex.wordpress.org/Plugin_API
    Ответ написан
    2 комментария
  • Как MODx с точки зрения на СЕО?

    Realetive
    @Realetive
    MODX Ambassador России, самозванный БЭМ-евангелист
    Я, наверное, вас разочарую, но CMS/CMF-движки не имеют отношения к поисковой оптимизации (SEO). Поисковым роботам абсолютно безразлично, какую технологию вы используете, они учитывают другие параметры. Задача CMS — лишь помочь вам в этом. То есть «запороть» сайт и понизить его рейтинг можно на любом движке. На своём опыте могу сказать, что в MODX Revolution есть отличная система кэширования, которая положительно воспринимается поисковиками, т. к. увеличивает скорость генерации и загрузки страниц, система минификации и «склеивания» скриптов и стилей MinifyX (вообще, эти задачи должны решаться до выгрузки файлов на сервер, но если лень …), ЧПУ-генерация, коды ошибок 403 и 404, автогенерация Sitemap и прочее. По этому вопросу книгу можно написать, если честно — куча практик хороших и не очень.
    WordPress — отличная CMS, но она в какой-то мере ограничивает разработчика дополнениями, если их функционал приходится изменять или расширять. Архитектура MODX позволяет контролировать вывод любого дополнения (если автор соблюдает парадигму, конечно), но я бы советовал, если выберите его, обратить внимание на Revolution-ветку, т. к. предшественник, Evo, официально прекратил свое существование и больше не развивается.
    P. S. Кстати, MODX Revo гораздо безопаснее в плане защиты от взлома.
    Ответ написан
    2 комментария
  • Что перспективнее/интереснее на upwork - WordPress or PHP-фреймворки?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    1. Laravel
    2. WordPress + Javascript (а конкретнее - Ember, Angular и тд)

    Подробнее по п.2 открываю "секрет" - совсем уж скоро в ядро будет включен REST API. И назревает серьезная революция тем и плагинов. Откроется масса новых ниш. Следите за процессом и оставайтесь в тренде - работы в этом направлении будет очень много.
    Ответ написан
  • Как развиться от фрилансера до серьезной компании?

    webinside
    @webinside
    После нескольких лет работы "под заказчика", я тоже понял, что это болото. Все попытки все максимально автоматизировать, делегировать шли прахом с очередным нестандартным заказом, где снова и снова приходилось садится и кодить.. Нашел силы переключится на собственные идеи и проекты. Стало намного проще: заказчики меньше диктуют своих условий. Есть продукт - есть цена. Тоже есть поддержка, но она идет в строгих рамках, где нельзя просто потребовать внести "вот такой вот прикольный функционал".
    Ответ написан
    2 комментария
  • Тема для wordpress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    1. Есть прекрасная чистая основа Underscores.me (_s на GitHub), в которой реализованы все best practices. Используйте ее как основу, сразу учитесь делать правильно.
    2. Бутстрап, конечно, дело привычки. Но, ИМХО, это плохой инструмент, так как с ним ты становишься слишком ленив. Кроме того, бутстрап массивен, никак не утилизирует стандартные классы WordPress, требует добавления своих классов. В общем, каша. В _s уже включен SASS, разбитый на компоненты. Испольлзуйте его. Если вы без бутстрапа не можете сами написать свою сетку на 12-20 строк CSS - дело дрянь.
    3. Custom post type.
    Ответ написан
    3 комментария
  • Почему не работает подключенный Jquery в WordPress?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    1. Потому что надо использовать noConflict
    jQuery(document).ready(function($) {
      App.Nav();
      App.Faq();
    });

    2. Вообще загружать свой jQuery - плохая практика, лучше загружать родной, который идет вместе с WordPress (именно из папки wp-includes). Иначе вы рискуете, что какой-то плагин подключит его повторно. Проще всего указать jQuery в качестве dependency
    function enqueue_scripts() {
      wp_enqueue_script( 'fotorama', get_template_directory_uri() . '/bower_components/fotorama/fotorama.js', array('jQuery') );
      wp_enqueue_script( 'application', get_template_directory_uri() . '/javascripts/application.js' );
    }
    Ответ написан
    Комментировать
  • После переноса сайта Modx на все внутренние ссылки ведут на предыдущий сайт?

    Express777
    @Express777 Автор вопроса
    Получилось отредактировать через контексты
    Система - Управления контекстами - выбираем контекст( в моем случае web ) - Меняем параметр site_url. Обязательно сохраняем кнопкой "сохранить"
    58958dfbeb.png20943de55c944f1fa9ed54f95de9963d.png
    Версия МодХ 2.2.16 Traditional
    Ответ написан
    Комментировать
  • Мультиязычность + документ в контактной форме (Wordpress)?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Решений мультиязычности на WP много, условно их можно разделить на 3 типа:

    - мультиязычный контент весь в одном объекте (qTranslate X)
    - мультиязычный контент раздельно, связан посредством внутренней (скрытой) таксономии (Polylang, WPML)
    - мультиязычный контент раздельнон а разных сайтах сети WordPress Multisite (Multilingual Press)

    Подробно о мультиязычке тут.
    Ответ написан
    Комментировать
  • С чего начать изучать программирование законченному гуманитарию?

    OhMy
    @OhMy
    telegram.me/web_tavern
    насчёт PHP не знаю.
    насчёт всего остального: зарегьтесь на freecodecamp.com и вперёд проходить курсы, решать задачки. это удобно, потому что для вас уже составлена пошаговая программа - и она неплохая. ранее изученные шаги можно пропускать. плюс коммьюнити активно растёт, есть русскоязычные группы ВК, ФБ и гиттер-чатик.
    на CodeSchool также хороший курс по JS/jQuery.
    Ответ написан
    1 комментарий
  • Какой набор фреймворков вы бы взяли для данной задачи?

    @zoh
    Sails не стал бы брать, ибо ruby way а не ноды.
    Писал на нём проект, скорее мешала его мишура чем помогала.
    Производительность - тоже не его конёк.
    Наверное он хорошо подойдёт для совсем уж тривиального CRUD приложения.

    React.js осваивается за 2 часа.
    БД - монга за глаза. (mongoose как odm)
    Ответ написан
    Комментировать
  • Wordpress. Как фильтровать посты по категориям, ajax?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Сейчас вы циклом выводите все посты (posts_per_page равен -1). То есть, все посты у вас уже есть, аякс по большому счету не нужен - достаточно просто прятать ненужные элементы. Чтобы определить какой пост в какой рубрике, необходимо в вывод поста добавить дополнительный атрибут, через который вы ее будете отлавливать. Например
    <?php $category = get_the_category(); // получить  ?>
    <a href="<?php the_permalink() ?>" rel="bookmark" data-category="<?php echo $category[0]->cat_name; ?>">
        <?php the_post_thumbnail('thumbnail'); ?>
    </a>

    Далее уже в javascript при клике на ссылку в фильтре берете ее имя из $(this), проходитесь с помощью each() по всем постам, скрываете те, у которых data('category') не равен имени категории.

    Еще раз, зачем аякс?
    Ответ написан
  • Есть ли какие-нибудь курсы по написанию технических заданий?

    Да есть, я сейчас. Прохожу. курс практичный, онлайн.
    Школа системного анализа. Рекомендую, сам там обучаюсь.) Практические задания, обсуждения, вопросы, домашка, консультации. Все это там
    school.system-analysis.ru/
    Ответ написан
    Комментировать
  • Возможно -ли позволить любому пользователю сайта создавать пост Custom Post Type (пост-анкета)?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Вопрос старый, но может будущим поколениям будет полезно.
    Да, можно. Принимаете данные через POST со своей формы и используете функции
    wp_insert_post() / wp_update_post()
    add_post_meta() / update_post_meta()
    Ответ написан
    Комментировать
  • Какой набор фреймворков вы бы взяли для данной задачи?

    saggid
    @saggid
    Веб-Программист
    Если смотреть в сторону Node.js, то я лично хотел бы попробовать Sails. От слова "Rails", то бишь, создатели этого фреймворка стремились создать инструмент, по архитектуре и простоте своей подобный рельсам, но только на ноде. И среди всех node-фреймворков, как я понял, данный фреймворк наиболее полноценный, законченный и решающий большую часть задач веб-разработки.

    Что касается фронтенд - то тут уже выбор намного более широк. Я лично писал бы всё на Riot.js, так как он просто обаял меня своей простотой и удобством разработки. Но большинство веб-разработчиков нынче смотрят на большие и мощные решения, вроде Ангуляра.
    Ответ написан
    6 комментариев
  • Какие будут советы начинающему YII программисту?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Может кто-то даст хорошие советы для изучения.

    Еб*ашь код.
    Ответ написан
    1 комментарий
  • Архитектура проекта для инвестора?

    MarcusAurelius
    @MarcusAurelius
    автор Impress Application Server для Node.js
    Ну... в Вашем случае, главное, чтобы инвестор не читал Тостер, а архитектуру можно сделать и после завершения проекта ))) А вообще моя лекция по архитектуре для ноды (но в ней есть много общих вопросов и полезных мыслей): https://youtu.be/Try7lmWikao И на Хабре есть специальный раздел "Анализ и проектирование систем" где проскакивают статьи по архитектуре, как например: habrahabr.ru/post/204958 Нарисуйте связь компонентов системы СУБД-сервер-клиент (трехзвенка, или больше компонентов, если есть), нарисуйте уровни по ISO/OSI, слои абстракций, дайте спецификацию API. Вот тут есть я даю расширенный план проектирования, он должен помочь: Как составить план проектирования проекта?
    Ответ написан
    Комментировать
  • Какую литературу почитать о стандартных решениях в веб-приложениях для бизнеса?

    max-kuznetsov
    @max-kuznetsov
    Главный IT-архитектор
    Есть хорошая книжка, которая может служить и учебником, и справочником. "Руководство Microsoft по проектированию архитектуры приложений, 2 издание" (download.microsoft.com/documents/rus/msdn/%D1%80%D...).
    Если закрыть глаза на рекомендации по использованию именно технологий Microsoft, то будет вполне целостная картина того, как решаются самые разные вопросы проектирования, от самого верхнего уровня до деталей реализации. Рассматриваются, в том числе, и вопросы, связанные с реализацией web-приложений и сервисов, причём в общем контексте enterprise-системы.
    Ответ написан
    Комментировать
  • В чём смысл натягивать лендинги на cms?

    maxxannik
    @maxxannik
    Сайты на WordPress + Интернет магазины WooCommerce
    Первая причина в том что LP как одна страница - это понятие изуродованное в РФ.
    LP далеко не всегда есть одна страница. Мы делали сайт из 100 LP, структурированные в дерево.

    Вторая причина в том что по большей части оптимально начинать с одностраничника (это сайт из одной LP), но кто сказал что на этом стоп? Если бизнес адекватный, то через неделю захочется продолжения банкета. Делать блог, каталог продуктов, или другие LP. Из одностраничника превращаться в каталог смежных продуктов, с кросспродажами и прочим блекджеком.

    Третья причина в том что сделать LP на WP можно без излишних затрат. Как уже сказали выше это может быть VC или PageBuilder. Страница собирается за 15-30 минут. Без кривой верстки, кроссбраузерная, адаптивная. По конверсии такие страницы не уступают ручным сборкам (от 2 до 20% легко выжимается), а по затратам в 10 раз меньше.

    Четвертая причина. Это решение на много гибче. Проще делать сплит тесты. Поправить блоки местами можно парой кликов или движением мышки. Править может маркетолог без знаний верстки или кодинга.
    Ответ написан
    1 комментарий
  • Фильтр и пагинация в meteor js?

    Shutik
    @Shutik Автор вопроса
    Погромист халявщик
    Подписчикам, решил вопрос след.образом:
    auth: function(skip, sub){
            if (!sub.userId) { return false; }
            var _serverFilter = {roles: 'user'};
            if(Roles.userIsInRole(sub.userId, ['admin'])) {
                 //....
            } else if(Roles.userIsInRole(sub.userId, ['manager'])) {
                _serverFilter.manager_id = sub.userId ;
            } else {
                console.log('whaa?');
                return false ;
            }
    
            var userSettings = UsersPagination.userSettings[sub._session.id] || {};
            var uFilters = userSettings.filters || this.filters;
            var uFields = userSettings.fields || this.fields;
            var uSort = userSettings.sort || this.sort;
            var uPerPage = userSettings.perPage || this.perPage;
            var _filters = _.extend({}, uFilters, _serverFilter);
            var _options = { fields: uFields, sort: uSort, limit: uPerPage, skip: skip };
            return [ _filters, _options ];
        },
    Ответ написан
    Комментировать
  • Хочется хорошо и качественно разрабатывать, но как?

    Groov3
    @Groov3
    Full stack web developer/Performance marketing
    Ну о том и речь, братан, я такой же самоучка, который на сегодняшний момент в 26 лет имеет долю (33%) исключительно своими силами в проекте суммарной стоимостью минимум в 5 млн евро, если я захочу её когда-нибудь продать. Но чтобы ты понимал, я запустил свой проект в 9 лет, в 1998 году, и развиваю его и сегодня, в 2015. Стремись к этому (постоянному проекту на всю WEB-карьеру, параллельному с другой деятельностью), если ты хочешь не обращаясь к ученым мужам своей головой в 26 лет сделать не один миллион долларов, причем для меня это ничем не удивившее меня только начало моей продуктивной жизни. Все своё остальное время, до этого сегодняшнего момента, мой проект был неоценен инвесторами, а сейчас мне готовы сотни тысяч баксов дать под мое слово без обязательств, если тебя интересуют возможности. И да, я давно читал те книги, которые ты тут раскопал, если это имеет значение.

    P.S. Первый сайт я вообще в 95 запустил, это было время! Прикинь, CSS еще не существовало :)).
    Ответ написан
    3 комментария