• Глупый вопрос. Но как запушить в мастер?

    JaxAdam
    @JaxAdam Автор вопроса
    Junior Full-Stack Developer
    Ответ написал Степан Крапивин в комментариях:
    git push origin master

    это именно то.

    Обычно ветка по умолчанию - master, и репа по умолчанию - origin
    так что можно проще:
    git push
    Ответ написан
    Комментировать
  • Как подключить яндекс кассу?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    function isPaymentSucceeded(){
       if($payment->getStatus() == 'succeeded'){
          return true;
       }
       return false;
    }


    Функция isPaymentSucceeded() вернет значение true или false в зависимости от того совершен платеж или нет.
    Ответ написан
  • Как добавить в коде к кнопке hot key?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    if (e.keyCode == 13){
    // 13 код клавиши Enter
    // ... тут пишешь шо надо сделать
    }
    Ответ написан
  • Как хранить такие объекты?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    Если допустить что в каждом xml файле у тебя отдельный файл контрагента то создай класс вроде этого.
    class Contragent
    {
      public $name;
      public $status;
      public $vozrast;
      
      public function __construct($xmlfile){
          $xml = new SimpleXMLElement($xmlfile);
          $this->name = $xml->name;
          $this->status = $xml->status;
          $this->status = $xml->vozrast;
      }
    }

    Потом используй как то так.
    $firstContragent = new Contragent((<xml_file_контрагента>));
    echo $firstContragent->name; // имя
    echo $firstContragent->status; // статус
    echo $firstContragent->vozrast; // возраст

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

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    Вам следует почитать о наследованиях и свойствах.

    Как решение предлагаю, создать родительский класс для таких классов и в нем хранить ваш $arraw в виде свойства.

    Или же можно как-то "намудрить" с конструкторами, и передавать этот массив из класса в класс через __construct().
    Передавать Создать $arraw в ClassOne(), потом передать ClassTwo(['arraw' => $classOneObject->arraw]) оттуда в класс 3,4,5 и так далее.
    Ответ написан
    Комментировать
  • Настройка виртуального хоста для MVC сайта?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    Почитайте статью, пожалуйста. У вас настройка только одного хоста. Второй хост у вас не настроен, естественно вернет 404
    Ответ написан
  • Скрыть кнопку, как составить правильно стиль?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    Интересный вопрос, который сложно понять. Хз умеет ли это делать css, надо реализовывать через js.
    Ответ написан
    Комментировать
  • Как производительно обновить текст тегов значениями переменных в цикле?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    Объем данных велик в JSON файле?

    Как способы оптимизации могу предложить следующее:
    1) использовать пагинацию
    2) запускать скрипт сразу после объявления html тегов (костыль)
    Ответ написан
  • Почему не отображаются данные с БД?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    У вас переменная $posts = NULL
    Ответ написан
  • Как найти работу начинающему верстальщику?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    Как? С упорством. Мыслите как работадатель. Вы бы дали свой проект начинающему верстальщику? Я бы не дал. Поищите сперва должность помощника верстальщика. Или лучше поучитесь самостоятельно (но лучше с ментором), набросайте средненьких проектов у себя в портфолио, и смело трудоустраивайтесь. Минимум, что сейчас нужно знать junior frontend (начинающий верстальщик):
    - Уверенные HTML, CSS;
    - Базовые знания JS (что такое событие, метод, функция, свойство);
    - Желательны знания JS на хотя бы среднем уровне (что такое промисы, классы, зачем нужны конструкторы и.т.д.)
    - Желательно знание препроцессорного языка, вроде SCSS, SASS;
    - Желательно знание модулей вроде jQuery
    - Понимание о работе сборщиков вроде Gulp, WebPack
    Ответ написан
  • Как сделать точный расчёт прошедших дней, месяцев, лет?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    Конкретно на вашем сайте это реализовано через JS. Вот скрипт:
    function Dialogv5d6e4ddf862d1() {var me = this;me.id = "dialogv5d6e4ddf862d1";me.GetElement = function () { return document.getElementById( me.id ); };me.GetEventHandlerName = function () { return "dialoghandlerv5d6e4ddf862d1"; };this.dialog_controls = [new DialogInput("date1", this, 0,new ElementAccessorDate(5)),new DialogInput("date2", this, 0,new ElementAccessorDate(5)),new DialogInput("calculate", this, 0,new ElementAccessorOperation()),new DialogInput("_progress_", this, 0,new ElementAccessorDefault()),new DialogInput("days", this, 0,new ElementAccessorOutput()),new DialogInput("YMD", this, 0,new ElementAccessorOutput())];me.dialog_controls._all ={};me.dialog_controls.forEach( function( e ) { if (me[e.id]===undefined) me[e.id] = e; me.dialog_controls._all[e.id] = e;} );this.addHandler = function ( handler ) {this.dialog_controls.forEach(function(c) { c.addHandler( handler);});};this.SetValues = function ( values ) {this.dialog_controls.forEach(function(c) {if ( values[c.id]!==undefined ) { c.SetValue( values[c.id] ); }});};this.Clear = function ( ) {this.dialog_controls.forEach(function( c) { c.ResetValue();});};this.SetDefaultValues = function () { this.Clear();};this.GetValues = function () {var ret = {}; this.dialog_controls.forEach(function( c) { ret[c.id] = c.GetValue();});return ret;};this.Validate = function ( ) {for(var i=0;i<me.dialog_controls.length;++i) if (!me.dialog_controls[i].Validate()) return false; return true;};this.layout = function ( ) {}};document.addEventListener("DOMContentLoaded", function(event) {var dlg = new Dialogv5d6e4ddf862d1();
    var hd = new CalculatorHandler(new function () {
    var me = this;
    me.id = 273;
    me.global = 1;
    var outputs = {};
    me.sinks={change:[],done:[]};
    me.startOnLoad = 1;
    me.infinite = 0;
    var inputs = {};
    var renderers = {};
    var recordsets = {};
    var diagrams = {};
    var handler, dialog, refreshTimer;
    var worker; var proxies; var stubs;
    var outer = this;
    var Planetcalc = new function() { 
    var inner = this; var cpcData = new CalcProgressData();var Calculate273_cpc = new CalcProgressControl(cpcData);inner.Calculate273 = function( ___inp___ ) {
    var progressControl = Calculate273_cpc;
    var Calculate273_result={};function  __impl__( __inp__ ) {
    
    var date1 = __inp__["date1"]===undefined?"2001-01-01 00:00:00":__inp__["date1"];
    var date2 = __inp__["date2"]===undefined?"":__inp__["date2"];
    var days = { "SetValue": function( v ) { Calculate273_result["days"]=v; } };
    var YMD = { "SetValue": function( v ) { Calculate273_result["YMD"]=v; } };var t1 = date1.getTime();
    var t2 = date2.getTime();
    var ms = ( t1>t2 )?t1-t2:t2-t1;
    days.SetValue( Math.round( ms/86400000) );
    
    var d1 = t1>t2?date1:date2;
    var d2 = t1>t2?date2:date1;
    var y = d1.getFullYear()-d2.getFullYear();
    var m = d1.getMonth()-d2.getMonth();
    var d = d1.getDate()-d2.getDate();
    
    if ( d<0 ) {
    	var dpm = d1.getMonth();
    	var dpy = d1.getFullYear();
    	while( d<0) {
    		var dpd = 31;
    		m-=1;
    		if ( dpm ) {
    			dpm -=1;
    		} else {
    			dpy-=1
    			dpm=11;
    		}
    		var dp = new Date( dpy,dpm,31);
    		if ( dpm!=dp.getMonth() ) {
    			dpd-=dp.getDate();
    		}
    		d+=dpd;
    	}
    } 
    
    if ( m<0 ) {
    	y-=1;
    	m = 12+m;
    }
    YMD.SetValue( y + ', ' + m + ', ' + d );
    };
     __impl__(___inp___); if ( progressControl.completed() ) { progressControl.context = null; } return Calculate273_result;};inner.main=inner.Calculate273;inner.progressControl = Calculate273_cpc; inner.init = function(){inner.progressControl.onDataReady();};};me.adapter = { encoder:{"date1":Date2String,"date2":Date2String},decoder:{"date1":String2Date,"date2":String2Date}};function startLoad() {
    me.progressControl.addEventListener("ready",handler.onReady);
    Planetcalc.init(); }
    me.timeout = 1500;
    me.auto = 1;
    me.init = function ( h, dlg ) { var o; handler=h;dialog =dlg;me.progressControl = Planetcalc.progressControl;var n; var fn;n='date1';if ( dlg[n] ) { inputs[n] = dlg[n]; }n='date2';if ( dlg[n] ) { inputs[n] = dlg[n]; }o = dlg.days; outputs[o.id] =o; o.formatter =new FormatterNumber( 0,0,0,"R" );o = dlg.YMD; outputs[o.id] =o; o.formatter =new FormatterSame( );startLoad();};
    me.stop = function() {
    	if (worker) worker.postMessage({type:"stop"}); 
    	else Planetcalc.progressControl.stop();
    };
    me.start = function() {
    	handler.onStart();
    	if (worker) {
    		me.changeDisplayOptions();
    		worker.postMessage({type:"start",inputs:proxies(dialog.GetValues())});
    	} else {
    		Planetcalc.progressControl.clear();
    		me.result = null;
    		me.refresh();
    	}
    };me.getInputs = function() {
    	return inputs;
    };
    function objectValues( a, o ) {
    	for(var n in o) {
    		a.push( o[n] );
    	}
    }
    me.getOutputs = function() {
    	var ret = [];
    	objectValues( ret, outputs );
    	objectValues( ret, diagrams );
    	objectValues( ret, renderers );
    	return ret;
    };me.refresh = function ( ) {me.doit();};
    me.setResult = function( res, done ) {outputs.days.SetValue(res.days);outputs.YMD.SetValue(res.YMD);if (done) { handler.onStop();if ( PCF.requestFormulaUpdate( false ) ) { var mjx = window.MathJax; mjx.Hub.Queue(["Typeset",mjx.Hub]);};}}
    me.doit = function ( ) {var error =false; try {me.changeDisplayOptions();
    var res = Planetcalc.Calculate273({"date1":inputs.date1.GetValue(), "date2":inputs.date2.GetValue()});if ( res ) { if ( me.result ) { for( var n in res ) me.result[n] = res[n]; } else me.result = res; }if ( me.result ) me.setResult( me.result, true );} catch( e ) {
    	handler.onStop(e);
    }};me.changeDisplayOptions = function () {me.calculateDisplay(new DisplayWrapperInput(inputs.date1), new DisplayWrapperInput(inputs.date2), new DisplayWrapper(outputs.days), new DisplayWrapper(outputs.YMD));dialog.layout();
    }
    me.calculateDisplay = function ( date1, date2, days, YMD )
     {
    };
    },{calculate:"Рассчитать", stop:"Остановить"});;
    hd.initdialog(dlg);dlg.addHandler(hd);window.dialoghandlerv5d6e4ddf862d1 = hd;});
    <code>
    
    тут используются динамические функции судя по названию функции, или какой-нибудь встроенный модуль со сборщиком от пи... злоумышленников)
    Ответ написан
  • PHP как изучить досконально регулярные выражения?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    Все области применения регулярок изучить - очень долгое занятие. Если у вас нет конкретной задачи, не стоит заморачиваться. А если все-таки конкретная задача есть, ДОКИ все-таки будут для вас полезны. Но для большинства случаев есть готовые решения в гуглах)
    Ответ написан
    4 комментария
  • Могут ли взломать Mysql через открытый порт 3306?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    Не в порте дело, базу при просмотре сайта будет открывать любой пользователь. Ему же надо смотреть на какие-то посты и комментарий.
    Просто, для безопасности от инъекции делайте проверки запросов. Организуйте свою систему запросов, чтобы сложно было взломать. Храните публичные файлы отдельно от приватных. Все скрипты по работе и обработке баз данных храните в приватной папке. А все что связано с пользовательской информацией храните в папке публичной.
    Ответ написан
  • Кто может помочь с ошибкой подключения превью Camera 2 API?

    JaxAdam
    @JaxAdam Автор вопроса
    Junior Full-Stack Developer
    Ответ на самом деле очень туп))) В вызове метода для открытия камеры есть дополнительная проверка разрешений. В ней в сравнении поставил неправильный знак. Это:
    if (checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
                        mCameraManager.openCamera(mCameraID, mCameraCallback, null);
                    }else{
                        Log.e(LOG_TAG, "Нет разрешения для запуска камеры");
                    }

    поменял на:
    if (checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
                        mCameraManager.openCamera(mCameraID, mCameraCallback, null);
                    }else{
                        Log.e(LOG_TAG, "Нет разрешения для запуска камеры");
                    }
    Ответ написан
    Комментировать
  • Как создать команду build которая создавала бы папки если их нет?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    Я бы на вашем месте посмотрел на проги вроде Koala, которые за вас перекомпилируют скрипты в такие же папки в другой папке. Еще одна прога была, но название забыл. Работают в фоновом режиме и не особо мешают
    Ответ написан
    Комментировать
  • Как сделать слайдер неактивным на определенных размерах?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    Для этого и существуют options.
    1) Отследите событие изменения ширины окна
    2) В отслеженном событии переинициализируйте ваш слайдер
    3) В опшнс передайте false на все onTouchDrag, onMouseDrag итд. и готово
    Ответ написан
  • Как сверстать подобный таймлайн с заполнением при скроле?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    Попробуйте использовать скрипты по работе с элементом canvas.
    $(window).scroll(function(){
     allHeight = body.height()//высота бадика
     curHeight = $(this).top()//насколько прокручено
    // тут работа с канвас библиотекой и чики пики
    })
    Ответ написан
    1 комментарий
  • Как организовать обновление данных на странице по инициативе сервера?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    Это хорошая статья.
    Ответ написан
    Комментировать
  • Ajax отправка файла по почте Wordpress?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    Тут описано.
    Ответ написан
    Комментировать
  • Как скачать музыку с браузера с сайта vk?

    JaxAdam
    @JaxAdam
    Junior Full-Stack Developer
    А что неудобного в установке расширений? savefrom.net у них там расширение есть. Один раз скачал, установил и все. Прям в ВК возле каждого трека дополнительная кнопка "скачать" появляется.
    Ответ написан