• Что не так с моим резюме?

    opium
    @opium
    Просто люблю качественно работать
    15 раз я отправляю резюме примерно за пять минут а не месяц
    Ответ написан
    Комментировать
  • Курс или полный гайдлайн по git?

    Griboks
    @Griboks
    Ответ написан
    Комментировать
  • Какие есть магистратуры с поддержкой IT компаний в Москве?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    А чем вам Гугл не угодил? Да знания не систематизированны но позволяют получить результат здесь и сейчас. Что же до Москвы монмторьте вакансии сбера, яндекса, крок, Интерфакс
    Ответ написан
    Комментировать
  • Чем array_walk лучше foreach?

    @novrm
    Работая по ссылке с foreach можете налететь на очень неприятны грабли, которые незаметны и сильно попортят вам нервы.
    Особенно когда разработчики неопытные.
    И именно - ссылку после foreach нужно удалять.
    array_walk для работы по ссылке - само-то, лишь тем и лучше.
    В других случаях — будь попроще — используй foreach.

    Кроме того в array_walk становится очень удобный для оперирования многомерными массивами,
    а также замыкания могут также наследовать переменные из родительской области видимости.

    Пример:
    array_walk($guide['postInGuides'], function (&$postInGuide, $key) use ($guide, $viewRenderer) {
        $postInGuide['post']['url'] = [
            'read' => $viewRenderer->url('guide/guide/post', [
                'slugGuide' => $guide['name'],
                'slugPost'  => $postInGuide['post']['slug'],
            ]),
            'update' => $viewRenderer->url('post/post/action', [
                'slugPost'  => $postInGuide['post']['slug'],
                'action' => 'update',
            ]),
            'delete' => $viewRenderer->url('post/post/action', [
                'slugPost'  => $postInGuide['post']['slug'],
                'action' => 'delete',
            ]),
        ];
    });
    Ответ написан
    Комментировать
  • Как склеить код добавления файлов в единое?

    @Arh1diablo Автор вопроса
    Web мастер
    Я просто идиотина :|
    Решил немного отдохнуть т.к. глаза уже асинхронно моргают, забил кальянчик, сижу чилю, ютуб не смотрется, мысли о коде, думаю ну ладно гляну еще раз мануал, пробегаю глазами, дочитал до конца и поперхнулся дымом. В конце мануала черным по русски написано :
    AJAX Загрузка файлов: пример для WordPress
    я такой, что ?
    AJAX Загрузка файлов: пример для WordPress
    что, что ?*!
    AJAX Загрузка файлов: >>>пример для WordPress<<<
    И там такой небольшой спойлер с раскрывающимся готовым решением под WP, листаю выше, а там:
    AJAX Загрузка файлов: общий пример

    Сижу я с флешбеками из дней потраченных в пустую, а рядом дымится говно и палки ( кстати наломанные костыли ).

    В общем ребят, для тех кому понадобиться загрузить файлы в библиотеку WP для всех и не будет желания сражаться с ветреными мельницами вот код:

    <?php
    
    // форма
    add_action( 'the_content', 'ajax_file_upload_html' );
    
    // скрипт
    add_action( 'wp_footer', 'ajax_file_upload_jscode' );
    
    // AJAX обработчик
    add_action( 'wp_ajax_'.'ajax_fileload',        'ajax_file_upload_callback' );
    add_action( 'wp_ajax_nopriv_'.'ajax_fileload', 'ajax_file_upload_callback' );
    
    // HTML код формы
    function ajax_file_upload_html( $text ){
    	// выходим не наша страница...
    	if( $GLOBALS['post']->post_name !== 'ajax_file_upload' )
    		return $text;
    
    	return $text .= '
    		<input type="file" multiple="multiple" accept="image/*">
    		<button class="upload_files">Загрузить файл</button>
    		<div class="ajax-reply"></div>
    	';
    }
    
    // JS код
    function ajax_file_upload_jscode(){
    	?>
    	<script>
    		jQuery(document).ready(function($){
    
    			// ссылка на файл AJAX  обработчик
    			var ajaxurl = '<?= admin_url('admin-ajax.php') ?>';
    			var nonce   = '<?= wp_create_nonce('uplfile') ?>';
    
    			var files; // переменная. будет содержать данные файлов
    
    			// заполняем переменную данными, при изменении значения поля file
    			$('input[type=file]').on('change', function(){
    				files = this.files;
    			});
    
    			// обработка и отправка AJAX запроса при клике на кнопку upload_files
    			$('.upload_files').on( 'click', function( event ){
    
    				event.stopPropagation(); // остановка всех текущих JS событий
    				event.preventDefault();  // остановка дефолтного события для текущего элемента - клик для <a> тега
    
    				// ничего не делаем если files пустой
    				if( typeof files == 'undefined' ) return;
    
    				// создадим данные файлов в подходящем для отправки формате
    				var data = new FormData();
    				$.each( files, function( key, value ){
    					data.append( key, value );
    				});
    
    				// добавим переменную идентификатор запроса
    				data.append( 'action', 'ajax_fileload' );
    				data.append( 'nonce', nonce );
    				data.append( 'post_id', $('body').attr('class').match(/postid-([0-9]+)/)[1] );
    
    				var $reply = $('.ajax-reply');
    
    				// AJAX запрос
    				$reply.text( 'Загружаю...' );
    				$.ajax({
    					url         : ajaxurl,
    					type        : 'POST',
    					data        : data,
    					cache       : false,
    					dataType    : 'json',
    					// отключаем обработку передаваемых данных, пусть передаются как есть
    					processData : false,
    					// отключаем установку заголовка типа запроса. Так jQuery скажет серверу что это строковой запрос
    					contentType : false,
    					// функция успешного ответа сервера
    					success     : function( respond, status, jqXHR ){
    						// ОК
    						if( respond.success ){
    							$.each( respond.data, function( key, val ){
    								$reply.append( '<p>'+ val +'</p>' );
    							} );
    						}
    						// error
    						else {
    							$reply.text( 'ОШИБКА: ' + respond.error );
    						}
    					},
    					// функция ошибки ответа сервера
    					error: function( jqXHR, status, errorThrown ){
    						$reply.text( 'ОШИБКА AJAX запроса: ' + status );
    					}
    
    				});
    
    			});
    
    		})
    	</script>
    	<?php
    }
    
    // обработчик AJAX запроса
    function ajax_file_upload_callback(){
    	check_ajax_referer( 'uplfile', 'nonce' ); // защита
    
    	if( empty($_FILES) )
    		wp_send_json_error( 'Файлов нет...' );
    
    	$post_id = (int) $_POST['post_id'];
    
    	// ограничим размер загружаемой картинки
    	$sizedata = getimagesize( $_FILES['upfile']['tmp_name'] );
    	$max_size = 2000;
    	if( $sizedata[0]/*width*/ > $max_size || $sizedata[1]/*height*/ > $max_size )
    		wp_send_json_error( __('Картинка не может быть больше чем '. $max_size .'px в ширину или высоту...','km') );
    
    	// обрабатываем загрузку файла
    	require_once ABSPATH . 'wp-admin/includes/image.php';
    	require_once ABSPATH . 'wp-admin/includes/file.php';
    	require_once ABSPATH . 'wp-admin/includes/media.php';
    
    	// фильтр допустимых типов файлов - разрешим только картинки
    	add_filter( 'upload_mimes', function( $mimes ){
    		return [
    			'jpg|jpeg|jpe' => 'image/jpeg',
    			'gif'          => 'image/gif',
    			'png'          => 'image/png',
    		];
    	} );
    
    	$uploaded_imgs = array();
    
    	foreach( $_FILES as $file_id => $data ){
    		$attach_id = media_handle_upload( $file_id, $post_id );
    
    		// ошибка
    		if( is_wp_error( $attach_id ) )
    			$uploaded_imgs[] = 'Ошибка загрузки файла `'. $data['name'] .'`: '. $attach_id->get_error_message();
    		else
    			$uploaded_imgs[] = wp_get_attachment_url( $attach_id );
    	}
    
    	wp_send_json_success( $uploaded_imgs );
    
    }


    Ссылка на источник.

    P.S. Все работает !
    Ответ написан
    Комментировать
  • Как можно визуализировать логические алгоритмы (схемы) для простых пользователей?

    ForestAndGarden
    @ForestAndGarden
    Совершенствовать среду обитания
    Блок-схемы языка ДРАКОН (drakon.su). «Синтаксис» и правила строгие. Сложновато составить правильную схему, зато потом проходить её легко.
    Ответ написан
    Комментировать
  • Как можно визуализировать логические алгоритмы (схемы) для простых пользователей?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Возможно вам нужно взглянуть на то как учат детей программированию:

    У Apple есть Swift Playgrounds. Где дети учаться программировать на Swift. Посмотрите на визуализации:
    https://www.apple.com/swift/playgrounds/

    На хабре хорошая статья: https://habr.com/ru/post/440376/

    У ардуино есть хорошая визуализация кода:
    https://robot-on.ru/page/robot-on-studio
    Ответ написан
    1 комментарий
  • Как можно визуализировать логические алгоритмы (схемы) для простых пользователей?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Очень опасная идея. Смотрите какая штука получается. Вы хотите чтобы люди, не имеющие алгоритмического мышления (я так думаю, потому что даже блок-схемы и модули скратч для них сложно), создавали алгоритмы, от которых будет зависеть бизнес-логика приложения.
    И когда результат их "творчества" приведет к финансовым последствиям, кто будет виноват?

    А если всё таки речь идет именно о визуализации, то вы неплохо сами визуализировали в своём вопросе:

    Если
    "документ" это "удостоверение инвалида"
    то
    "скидка" равна "40%"
    в противном случае
    "скидка" равна " 15%"


    т.е. в виде простого текста
    Ответ написан
    1 комментарий