• Самая дешевая IP телефония с бесплатной АТС и интеграцией Битрикс24 или amoCRM?

    kumaxim
    @kumaxim
    Web-программист
    https://www.sipnet.ru/
    Облачная АТС точно есть, насчет интеграции с Битрикс24 не знаю. Тарифы лично меня устраивают.
    Ответ написан
    Комментировать
  • Перенос контента с ModX на Wordpress?

    kumaxim
    @kumaxim
    Web-программист
    Тебе нужно 6 чашек кофе + одна ночь + SQL

    Возьми за основу 2-3 записи в MODx. Добавь их в ручную на Wordpress. Используя phpMyAdmin или Mysql Workbench найди соответствие между полями таблиц обоих БД. Далее тебе на помощь приходит конструкция вида SELECT ... INTO

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

    Я переносил с кучи CMS контент на WP. Если статей на исходном сайте более 1к - то подключайся к БД и ищи в каких полях/таблицах лежит контент исходных статей. Затем, поняв это, тебе нужно перенести все это дело в таблицу wp_posts. Попутно, присваиваешь туда категории/теги, возможно добавляешь записи. Если переносишь комменты(wp_comments) или юзеров(wp_users), тогда, нужно обратить внимание на формат даты(комменты) и сбросить пароли(хеши паролей лучше не переносить, вставь любое случайное значение)

    Перед началом переноса почитай WP Database Description. Если есть какие-то конкретные вопросы - пиши в комменты ниже или приглашай меня экспертом к ним, когда будешь постить на тостере.
    Ответ написан
  • Можно ли уже выходить на работу фрилансером?

    kumaxim
    @kumaxim
    Web-программист
    Вам поможет техника БД "НТКЗЯ - Не Тяни Кота За Яйца". Идти и что-то делать можно в любой момент, главное чтобы Вы созрели для этого. Само видео с описанием этой техники от ребят из БМ гуглится без проблем.
    Ответ написан
    6 комментариев
  • Как настроить mysql в Docker?

    kumaxim
    @kumaxim
    Web-программист
    Начинаешь разрабатывать проект #1, создаешь под него каталог с двумя вложенными подкаталогами src и db
    Ты уже установить docker-compose? Если нет, то сделать этого. Мой docker-compose.yml:
    version: '3.1'
    
    services:
      db:
        image: mariadb:10.2
        restart: on-failure
        ports:
          - "3306:3306"
        volumes:
          - ./db:/var/lib/mysql
        environment:
          MYSQL_ROOT_PASSWORD: your_root_pass_here
          MYSQL_DATABASE: db_name_here
          MYSQL_USER: db_user_here
          MYSQL_PASSWORD: user_pass_here
      nginx:
        image: nginx
        restart: on-failure
        ports:
          - "80:80"
        links:
          - wordpress:php-fpm-server
        depends_on:
          - wordpress
        volumes:
          - $HOME/DDK/nginx-default.conf:/etc/nginx/conf.d/default.conf:ro
          - ./development/src:/var/www/html:ro
      wordpress:
        image: php:5.6-fpm
        restart: on-failure
        links:
          - db:mysql
        depends_on:
          - db
        expose:
          - "9000"
          - "9900"
        volumes:
          - /mnt/bindfs/fire-cacher-dv1:/var/www/html


    Далее у тебя встанет проблема, файлы на твоей хостовой машине будут создаваться от пользователя www-data. Единственный вменяемый способ пофиксить это без сильных танцев с бубном - bindfs. Я использую следующую строку в fstab для монтирования:
    /home/user/Project/fire-cache/development/src	/mnt/bindfs/fire-cacher-dv1	fuse.bindfs	force-user=www-data,force-group=www-data,create-for-user=user,create-for-group=user,perms=0000:u+rwD:g+rD:o+rD	0	0


    Все создал? ОК, запускай docker-compose up -d и останавливай после окончания работы docker-compose stop. Проект закончен? Значит docker-compose down -v

    Вот это ты повторяешь каждый раз при старте нового проекта. Если есть еще какие-то вопросы по существу - пиши в комменты.
    Ответ написан
    5 комментариев
  • Какой ресурс выбрать для изучения английского?

    kumaxim
    @kumaxim
    Web-программист
    Методика изучения английского от меня:
    1. Регистрируемся на lingualeo.com и оплачиваем Премиум доступ на 1 год
    2. Добавляем словарь "Топ 1000 частотных слов" https://lingualeo.com/ru/glossary/learned/4292
    3. В течении следующих 1,5-2 месяцев по 10-15 слов учим каждый день
    4. Параллельно с изучем грамматику по стандартному курсу https://lingualeo.com/ru/course/grammar


    Премиум доступ на Лео вещь опциональная, есть у них и бесплатный вариант, но там размер словаря, помоему, ограничен сильно. Поэтому рекомендую оценить сервис и, если он понравиться Вам, брать премиум на год. На момент написания этой статьи он 1300 руб /год стоит

    Любой язык, хоть русский, хоть английский, устроен очень интересно... Есть приблизительно 1500 - 2000 слов, которые мы употребляем чаще всего при разговоре на любые темы. Получается так, что выучив ТОП 1000 самых часто употребляемых слов, ты можешь понимать 50-60% смысла сообщения. В моем случае было примерно так. До этого без Google Translate я вообще ничгео понять не мог.

    По грамматике у Лео есть два курса - первый - "Grammar courses" - идет вместе с премиум статусом, второй - "Grammar for Beginners" - покупается за отдельные деньги. В принципе для старта тебе нужно пройти первые 10 уроков из стандартного курса. Второй можно в принципе купить, он проще, примеров там больше. Их главное отличие в том, что стандартный курс объясняет все академическим языком, т.е. "Правило => 10 примеров для закрепления". Второй дополнительный: "10 примеров => описание правила".

    Грамматику учим параллельно с изучением словаря, разумеется.

    После своего интенсива в 1,5 месяца тебе нужно либо начинать общаться на английском, смотреть Игру престолов без русского перевода или читать книжки в оригинале на английском. Помните как мы учили русский в школе? Есть преподаватель русского языка и литературы. Мы учим языковые конструкции и смотрим как они употребляются в книгах наших писателей. Почему бы не применить это же при изучении 2-го языка?
    Ответ написан
    4 комментария
  • Как вывести в url категории custom type в wordpress?

    kumaxim
    @kumaxim
    Web-программист
    На мой взгляд все довольно просто. Обнови свой код, добавив туда ключ rewrite. Вот так:
    register_post_type('product',[
                'label' => 'Товары',
                'public' => true,
                'show_ui' => true,
                'show_in_menu' => true,
                'menu_position' => 2,
                'hierarchical' => false,
                'supports' => ['title','editor', 'thumbnail'],
                'taxonomies' => ['products'],
                'has_archive' => true,
                'rewrite' => [
                    'slug' => 'new_custom_stug/you/want'
                ]
    ]);


    Документация по register_post_type
    Ответ написан
  • Как добавить цену товара в мета-описание?

    kumaxim
    @kumaxim
    Web-программист
    Повесь функцию, которая будет дописывать в начало описания цену через фильтр wpseo_metadesc
    Ответ написан
    Комментировать
  • Как заменить внешний css на свой стиль на сайте Wordpress?

    kumaxim
    @kumaxim
    Web-программист
    Попробуй вот так
    add_action( 'wp_footer', function() {
    ?>
    	.widget-shop {
    	    background-color: #f7eac8 !important;
    	    padding: 20px !important;
    	    margin: 0px 0px 0px !important;
    	    width: 100% !important;
    	    box-shadow: 0 0 0 1px rgb(247, 234, 200), 0 3px 4px -3px rgb(247, 234, 200) !important;
    	    box-sizing: border-box !important;
    	}
    <?php
    }, PHP_INT_MAX );


    Разумеется, код необходимо добавить в function.php текущей темы
    Ответ написан
  • Что не так у меня с профилю/CV?

    kumaxim
    @kumaxim
    Web-программист
    Как начать
    "Хм, Ваша работа похожа на одну из тех что я выполнял ранее" => линк на работу из work history или портфолио
    "Ваше задание ровно такое же, как и часть моего прошлого проекта, который я сдал пару часов назад"

    Это первое предложение в Cover letter. Цепляет очень часто.

    Вторая часть
    "У меня есть к Вам пару вопросов..." => пишешь тут типа дайте примеры, покажите Ваш источник/приемник и т.д. Обычно, 2-3 пункта, остальное обсуждается на интервью

    Третья часть
    "На Вашу работу у меня уйдет 2-3 часа. Я хочу за нее N у.е. Оценка цены и сроков приблизительные, окончательную обсуждаем на интервью"

    Заключительная часть

    "Если мое предложение Вас заинтересовало, пригласите меня на интервью"

    Доп.часть
    Отвечаешь на доп.вопросы, которые уже идут отдельными полями в предложении, типа имел ли ты опыт работы с какой-то либой, скинь пруфы работ именно по такой-то тематике и т.д.
    Ответ написан
    6 комментариев
  • Где в WP подключается родной jquery?

    kumaxim
    @kumaxim
    Web-программист
    Читам документацию по функции wp_register_script

    Выключаем родной JQuery примерно так wp_dequeue_script( 'jquery' ) или wp_deregister_script( 'jquery' );

    Первоисточник - сделайте поиск ключевого слова 'jqeury' по содержимому файлов в папке wp-includes.
    Ответ написан
    Комментировать
  • Почему не подключается к фтп netbeans?

    kumaxim
    @kumaxim
    Web-программист
    Установите для родительского каталога права 777. Помогает в 98% случаев.

    Если не поможет, тогда нужно смотреть настройки Вашего FTP сервера/подключения.
    Ответ написан
    Комментировать
  • Как правильно настроить плагин UpdraftPlus Backup для сохранения резервной копии в Google Drive?

    kumaxim
    @kumaxim
    Web-программист
    Вы на форум поддержки UpdraftPlus заглядывали? Две недели назад аналогичная проблема всплывала уже.
    Ответ написан
    1 комментарий
  • WordPress - откат изменений в шапке сайта?

    kumaxim
    @kumaxim
    Web-программист
    Если мне не изменяет память, эти состояние шапок, виджетов и т.п. лежат в таблице wp_options, поэтому самым разумным способом будет найти бэкап БД и восстановиться из него.

    Как другой вариант, если шапка там была стандартная, тогда удалите/установите повторно Вашу тему

    Последний вариант - лезть в кэш Гугла, например, смотреть что там было в этой шапке и восстанавливать все руками

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

    kumaxim
    @kumaxim
    Web-программист
    <?php echo sprintf( '<div class="found-post-date">%s</div>', get_the_date() ); ?>


    Как вариант. Попробуй..
    Ответ написан
    Комментировать
  • Проверка на антиплагиат дипломной работы уменьшилась, как быть?

    kumaxim
    @kumaxim
    Web-программист
    Сделай рерайт обычного текста и рефакторинг программного кода. Все, твоя проблема решена.
    Ответ написан
    Комментировать
  • Как ускорить загрузку сайта на wordpress?

    kumaxim
    @kumaxim
    Web-программист
    Самое простое решение - подключайтесь к Cloudflare

    Если это не помогает, тогда берите виртуальный/выделенный сервер и, в зависимости от Вашего сайта, уже настраиваете там необходимую Вам конфигурацию. Вариантов этих самых конфигураций, как Вам уже сказал WordPress WooCommerce, могут быть тысячи. Все зависит от постановки задачи и исходных данных.
    Ответ написан
    9 комментариев
  • Плагин фильтр товаров для WP?

    kumaxim
    @kumaxim
    Web-программист
    WooCommerce смотрел?
    Ответ написан
    Комментировать
  • Как НЕ дать пользователям скачать изображения сайта?

    kumaxim
    @kumaxim
    Web-программист
    Самый простой способ - не показывать Ваше супер ценное изображение кому-либо вообще. В любом другом случае человек его сможет скачать(читать как "достать из кэша своего браузера").
    Для того чтобы хоть как-то защитить картинки на сайта можете использовать один из спосбов:
    • Наложить водяной знак - легко реализуемо, см. либу image magic
    • Прятать картинку в CSS через background-image
    • Загружать картинку через Angular-директиву
    • Резать картинку на фрагменты 5 х 5 пикселей, собирая ее потом сеткой
    • Смотреть user-agent клиента и, если он пустой или не валидный(какой-то бред, робот, не из списка), отдавать 404 ошибку либо другую картинку, аля "Это изображенние украли с сайта lallalala.com
    • Аналогично пункту выше, только смотрим теперь предварительно установленные пользователю cookie

    Я когда-то реализовывал связку из 3 + 4 способа. У моего клиента был сайт, который в качестве донора постоянно использовали "нехорошие люди". Разумеется был автоматический парсинг контента. Роботы выдергивали ссылки на картинки и использовали их у себя. Трафик у клиента был бешеный, дисковая подсистема сервера это дело не вывозила, из-за чего и были тормоза. Результат такой - 50% парсить его перестали от слова "вообще", 20% адаптировали код под написанную защиту, 30% - банально забили(парсили с битыми ссылками/кривыми картинками), на сколько я понял. Цифры получены на основе моих наблюдений в течении 3-х месяцев после внедрения.

    Этот случай был где-то в 2011 или 2012. Если бы эта же задача мне пришла в 2017, я бы просто наложил на картинки водяные знаки и подключил бы CloudFront от AWS, на чем бы все и закончилось, но в те годы я был юн и неопытен...
    Ответ написан
    Комментировать
  • Как положить данные из одного массива в другой на php?

    kumaxim
    @kumaxim
    Web-программист
    Во первых у Вас не массив, а какой-то объект.
    Во вторых - для этой цели я использую функции array_map() / array_walk() / array_filter() из стандартной библиотеки PHP. В документации примеров достаточно, думаю сами разобраться что там к чем сможете.

    Также в следующий раз форматируйте нормально дамп своих объектов, чтобы их прочесть можно было.
    Ответ написан
    1 комментарий