Задать вопрос
  • Как привести локальный git репозиторий в соответствии с удаленным?

    @antonowano Автор вопроса
    Профессиональный самоучка
    Сделал клон в соседнюю директорию

    git clone remote.git public_html2

    Удалил папку .git из рабочей директории

    rm -rf public_html/.git

    Перенес .git из только что созданного клона

    mv public_html2/.git public_html/.git

    Сделал в рабочей директории сброс
    cd public_html/
    git reset --hard

    Удалил временного клона
    cd ../
    rm -rf public_html2
    Ответ написан
    Комментировать
  • Как выгрузить React Native приложение в Play Market?

    @antonowano Автор вопроса
    Профессиональный самоучка
    Проблема в том, что я делал приложение используя Expo. Публиковать приложение нужно было по её документации, а не по документации React Native.
    Ответ написан
    Комментировать
  • Rак добавить значение в перечисление?

    @antonowano Автор вопроса
    Профессиональный самоучка
    Ребят я разобрался. Всем спасибо. Для каждого типа товара был свой таб в форме изменения номенклатуры. Ошибка возникала из-за того, что он не мог найти таб для нового типа, который я добавил. После добавления нового таба и копирования нужных полей в него, всё заработало.
    Ответ написан
    Комментировать
  • Как сделать фото с веб камеры и отослать в форме php?

    @antonowano
    Профессиональный самоучка
    https://codepen.io/anon/pen/RmmNqR?editors=0010
    был вопрос на stackoverflow, как передать canvas на сервер, подробнее тут:
    https://stackoverflow.com/questions/13198131/how-t...
    Ответ написан
    Комментировать
  • Получит ли мой сайт вес от внешних ссылок, которые я добавил в robots.txt?

    @antonowano Автор вопроса
    Профессиональный самоучка
    Нашел подходящее решение. С помощью robots.txt можно удалить неиспользуемые GET-параметры.
    Clean-param.
    Ответ написан
    Комментировать
  • Как сделать редирект php?

    @antonowano
    Профессиональный самоучка
    при нажатии на кнопку чтоб через 5 секунд произошел редирект

    PHP такого не умеет, он не знает что такое кнопки. PHP работает только тогда, когда ваша страница загружается.
    А с уже загруженными элементами страницы работает JavaScript.

    <button onclick="setTimeout('window.location = \'http://google.ru\'', 5000)">Перейти на Google!</button>

    или
    <button id="btn_go">Перейти на Google!</button>
    <script>
    document.getElementById('btn_go').onclick = function() {
        setTimeout(function() {
            window.location = 'http://google.ru';
        }, 5000);
    };
    </script>


    Если для вас принципиально на PHP, то сначала нужно выполнить переход к другой странице на которой пока PHP работает происходит задержка на 5 сек, а уже потом редирект.
    <a href="redirect.php?url=google.ru">Кнопка</a>
    redirect.php
    sleep(5);
    header('Location: http://' . $_GET['url']);
    Ответ написан
    9 комментариев
  • Как вставить ссылку JavaScript?

    @antonowano
    Профессиональный самоучка
    <a href="{$wa_app_url}">{$wa->shop->settings('name')}</a>  <span class="rarr">&rarr;</span>

    Замените на свою ссылку. И это не JavaScript, а SMARTY - шаблонизатор для PHP.
    Ответ написан
    2 комментария
  • Как составить регулярку чтобы вырезало из URL http://?

    @antonowano
    Профессиональный самоучка
    preg_replace('/^(https?:\/\/)www\./i', '$1', $url)
    Ответ написан
  • Как в php добавить метод к объекту динамически?

    @antonowano
    Профессиональный самоучка
    Так никто не делает. Учите ООП. Если вам нужны новые методы в классе, расширьте его с помощью наследования. А так как этот stdClass ничего из себя не представляет, то создайте новый класс пропишите ему нужные методы и по необходимости назначьте __get(), __set() методы для создания новых свойств.
    class MyStdClass extends stdClass {
        public function getTitle() {
            return 'TITLE';
        }
    }
    
    $std = new MyStdClass();
    
    echo $std->getTitle();


    Если вы не можете без этого жить, то это работает вот так:
    echo ($std->getTitle)();
    // или
    $func = $std->getTitle;
    echo $func();
    // а если еще нужен контекст класса
    echo ($std->getTitle)->bindTo($std)();
    Ответ написан
    4 комментария
  • Какая правильная структура файлов front-end проекта и почему?

    @antonowano
    Профессиональный самоучка
    • dist
    • node_modules
    • src
    • gulpfile.js
    • package.json


    src - папка со всеми исходниками верстки (html, css, js, less, coffeescript и т.д.),
    dist - папка рабочего проекта скомпилированного из исходников папки src, по команде gulp,
    gulpfile.js - скрипт компиляции рабочего проекта,
    package.json - мета данные проекта и список необходимых npm библиотек для работы gulpfile.js,
    node_modules - сторонние npm библиотеки установленные для компиляции проекта.

    Пример gulpfile.js:
    var gulp = require('gulp');
    var less = require('gulp-less');
    var cleanCSS = require('gulp-clean-css');
    
    gulp.task('default', function() {
        gulp.src('./src/css/**/*.less')
            .pipe(less())
            .pipe(cleanCSS())
            .pipe(gulp.dest('./dist/css/'))
        ;
    });


    Для такого проекта должны быть установлены 3 npm библиотеки gulp, gulp-less, gulp-clean-css.

    Это общепринятый скелетон для любого gulp-проекта. А структура папки src это по вашему желанию. Каждый делает по своему.
    Ответ написан
    3 комментария
  • Если в базе пусто то запись не отправляется. PHP?

    @antonowano
    Профессиональный самоучка
    Где-то допущена ошибка. Ваш код тяжело читать поэтому ищите сами.
    Для информации: mysqli_* и mysql_* устаревшие функции. Используйте PDO.
    Ответ написан
    Комментировать
  • Почему не отправляется изображение на почту по phpMailer?

    @antonowano
    Профессиональный самоучка
    Добавьте в функцию sendSMTP параметр array $attachment = array() и передавайте с его помощью пути на файлы, которые нужно прикрепить. Советую вместо временного хранилища использовать место, куда файл был скопирован после закачки, в вашем случае это - $imageFile1.
    Ответ написан
  • Какой раздел php отвечает за привязку к dom event?

    @antonowano
    Профессиональный самоучка
    JavaScript никак не связан с PHP.
    У PHP нет обработки нажатия и остальных событий, таких как в JavaScript.
    PHP только генерирует для вас страницу и не умеет управлять dom уже загруженной страницы.

    Чтобы выполнить операцию на сервере с помощью JavaScript события, вам нужно в самом событии осуществить запрос к серверу с необходимыми параметрами, который вы должны заранее настроить. Запрос осуществляется с помощью AJAX или redirect'ом.

    document.getElementById("id").onclick = function() {
        $.ajax('/post/add', {
            data: { name: '', description: '' },
            success: function() { alert('Пост опубликован!'); }
        });
    };


    $.ajax - функция из jQuery библиотеки (распространенная библиотека для простой работы с JavaScript).
    Ответ написан
    3 комментария
  • Как правильно построить роутер php?

    @antonowano
    Профессиональный самоучка
    В .htaccess
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php/$1 [L]
    Ответ написан
    3 комментария
  • Как упростить перепор массива?

    @antonowano
    Профессиональный самоучка
    Вывожу на страницу список из 400 записей. В каждой записи должен быть выпадающий список select (одинаковый, но отличающийся только выбранным элементов в нем).


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

    Есть ли способ как-то иначе отметить нужный элемент внутри выпадающего списка, без перебора массива?


    Что бы не плодить PHP-код создайте функцию, которая принимает первым аргументом все значения select`а, а вторым - какое значение нужно выбрать. И возвращающую html текст тега select.

    function createSelect($items, $value) { /* Код функции */ }
    Ответ написан
  • Как реализовать верстку и выполнении блока отзыва?

    @antonowano
    Профессиональный самоучка
    Как меняете картинку, так и отзыв.
    На картинку добавляете атрибут (например data-text-id) с id скрытого материала.
    И когда нажимаете на картинку:
    1. Меняете картинку в центре,
    2. Скрываете все открытые отзывы,
    3. Открываете отзыв с id в атрибуте data-text-id


    Вот пример:
    <div class="avatars">
         <img class="avatar avatar-big" id="mainAvatar" src="avatar1.jpg">
         <img class="avatar" src="avatar1.jpg" alt="Ирина Петровна" data-report-id="report1">
         <img class="avatar" src="avatar2.jpg" alt="Игорь Семенович" data-report-id="report2">
         <img class="avatar" src="avatar3.jpg" alt="Людмила Батьковна :)" data-report-id="report3">
    </div>
    <div class="reports">
        <div class="report" id="report1">Классно работают ребята</div>
        <div class="report" id="report2">Заказал. Привезли. Круто!</div>
        <div class="report" id="report3">Куда я попала?! О_О</div>
    </div>

    Грубо говоря, вот так:
    $(function() {
        $('[data-report-id]').click(function() {
            $('#mainAvatar').attr('src', $(this).attr('src'));
            $('.report').hide();
            $('#' + $(this).attr('data-report-id')).show();
        });
    });
    Ответ написан
  • Предпросмотр картинки перед загрузкой на сервер?

    @antonowano
    Профессиональный самоучка
    Спасибо Doc за примеры. Но вроде ни одна версия IE не поддерживает FileReader.
    Поэтому Я делаю "по старинке" используя PHP, MySQL, AJAX. Выполняю загрузку в фоновом режиме и потом добавляю картинку в DOM. Если картинка в течении одного дня ни к чему не прикрепляется удаляю её автоматически CRON задачей.
    Прошу помощи, мне надо выгрузить картинку под ней сделать поле input для обновления картинки и при выборе другой картинки ее показать, и так выводить все картинки

    Подумайте как можно сделать это проще.
    К примеру:
    У вас есть форма редактирования, в неё Вы выгружаете все фотографии. После каждой фотографии добавляете скрытый input с её id, также рядом делаете элемент для удаления фотографии из DOM вместе со соответствующим скрытым полем. Добавьте пустой input[type=file] для загрузки новых картинок.
    На сервере, когда форма отправится, вы сравниваете idы из базы и полученные из формы, если каких-то нет в форме, то удаляете фотографии с соответствующими id и с сервера.
    А input[type=file] вы можете настроить так чтобы он автоматически загружал ваши фотографии после выбора и размещал их в форме.

    А вообще не бойтесь экспериментировать с формой, возвращаемые данные могут быть массивом.
    Если вы после каждой картинки добавите
    <input type="file" name="form_name[image][id_картинки]">

    вы сможете выстроить именно такую логику, какую Вы описали в вопросе.
    Ответ написан
    5 комментариев
  • Как найти совпадения в массивах разной длинны?

    @antonowano
    Профессиональный самоучка
    var ar1 = ['white', 'red', 'black', 'orange'];
    var ar2 = ['white', 'black'];
    var res = [];
    var res2 = [];
    
    for (var i = 0; i < ar1.length; i++) {
        if ( ar2.indexOf(ar1[i]) !== -1 ) {
            res[res.length] = ar1[i];
        }
    }
    
    // или
    
    for (var i = 0; i < ar1.length; i++) {
        for (var j = 0; j < ar2.length; j++) {
            if (ar1[i] == ar2[j]) {
                res2[res2.length] = ar1[i];
            }
        }
    }
    
    alert(res);
    alert(res2);
    Ответ написан
    Комментировать
  • Как правильно в php получать данные по url?

    @antonowano
    Профессиональный самоучка
    cURL самый гибкий вариант.
    Вся информация о работе с cURL на PHP тут.

    Вот основной пример:
    $file = curl_init('http://simple.ru');
    
    // Настройка cURL до выполнении операции считывания
    curl_setopt($file, CURLOPT_RETURNTRANSFER, true); // устанавливаем true, для получения содержимого в переменную, вместо вывода в браузер
    curl_setopt($file, CURLOPT_HEADER, false); // отключить вывод заголовка в содержимом
    curl_setopt($file, CURLOPT_FOLLOWLOCATION, true); // следовать редиректу, если сервер пытается перенаправить посетителя
    curl_setopt($file, CURLOPT_MAXREDIRS, 5); // максимальное кол-во редиректов
    curl_setopt($file, CURLOPT_USERAGENT,
        'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36'); // информация о браузере
    curl_setopt($curl, CURLOPT_POST, true); // включаем POST передачу данных
    curl_setopt($curl, CURLOPT_POSTFIELDS, "a=4&b=7"); // указываем POST данные
    
    // Выполнение операции считывания и получение результата
    $data = curl_exec($file); // получаем содержимое (если страница - html-код, если картинка - код картинки и т.п.)
    $code = curl_getinfo($file, CURLINFO_HTTP_CODE); // получаем код ответа сервера (200, 500 и др.)
    $type = curl_getinfo($file, CURLINFO_CONTENT_TYPE); // получает тип передаваемого содержимого (text/html, jpeg/image и др.)
    
    curl_close($file);
    Ответ написан
  • Форматировать js строку в цветных span'ах?

    @antonowano
    Профессиональный самоучка
    "This ~FF0000~string ~FFFF00~should ~00FF00~ be colored".replace(/~([A-F0-9]{3,6})~([^~]+)/g, '<span style="color: #$1;">$2</span>');

    https://jsfiddle.net/esqt3aat/
    Ответ написан
    1 комментарий