• Что такое ресурс модель в Magento?

    MarkNikitin
    @MarkNikitin
    Интересуют инновации, инвестицияии и стартапы
    отличный гайд по магенто
    Ответ написан
    Комментировать
  • С каким уровнем знаний у вас получилось устроиться начинающим верстальщиком в веб студию?

    @DenJel
    Есть веб студии которые пишут сайтики на wordpress, а есть которые таким же штатом стартапы успешные пилят. И все зависит от того, куда ты хочешь попасть. Если в первый тип студий, то там много знаний не надо - верстка + вешать обработчики на jquery и ты готов работать, посмотрел минимальный гайд на ютубе и пили шаблоны + ПЫХ выучишь, но ты можешь очень сильно просесть по времени, ничего так и не выучив на такой работе, если во второй, то надо изучить хорошо JS, view библиотеку + какую нибудь архитектуру потока данных ( react + flux ( redux, alt ), vue + vuex ) либо JS фреймворк ( angular, ember или что там сейчас популярно ). Сделать что нибудь посложнее TODOшки и можно пробывать устраиваться. У меня так получилось, что я попал в первый тип студий и потерял там год. О чем потом сильно жалел. Уволившись оттуда, мне очень сложно было найти нормальную работу. Я выучил React.js до того уровня, чтобы без проблем верстать на нем и делать компоненты. И устроился стажером в один стартап. Там знания потекли рекой, хоть и зарплата была даже меньше чем на первой работе. Но с ростом знаний пошел и рост зарплаты. Через 3 месяца я уже получал в 2 раза больше. Как то так. P.S junior
    Ответ написан
    Комментировать
  • Не нормальное поведение события mouseup?

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

    P.S. код лучше отформатировать, добавить к вопросу ссылку на живой пример и тогда больше шансов, что вы получите хорошие отклики)
    Ответ написан
    Комментировать
  • Почему не работает getElementsByName в контексте HTMLElement-a?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    The getElementsByName(name) method takes a string name, and must return a live NodeList containing all the HTML elements in that document that have a name attribute whose value is equal to the name argument (in a case-sensitive manner), in tree order.

    Судя по формулировке, которая дана в спецификации, этот метод есть только у документа и его нельзя вызывать на произвольных нодах. Здесь это написано прямым текстом.

    Стоит отказаться от него в пользу метода querySelector():
    var form = document.querySelector('[name="search-person"]');
    alert('тип' + form.outerHTML);
    
    var input = form.querySelector('[name="info[0]"]');
    alert('тип' + input + ' код' + input.outerHTML);

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

    gr1mm3r
    @gr1mm3r
    50% ответа в правильном вопросе. Остальное мануал.
    Комментировать
  • Как обойти ограничение шириной родителя?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Зачем такие извраты, когда можно просто поменять вложенность местами?
    Ответ написан
    3 комментария
  • Конвертация русских шрифтов?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    Русского там может и нет, а кириллица (Cyrillic) - есть.
    Ответ написан
    Комментировать
  • Как правильно работать с массивами?

    @AlikDex
    На продвинутого не претендую. Но как-то так:
    <?php
    /**
     *	Применяет рекурсивно ко всем элементам массива функции htmlspecialchars, stripslashes, trim.
     *	@param $arr array;
     *	@return $newArr array - обработанный массив.
     */
    function array_stripslashes($arr)
    {
    	$newArr = is_array($arr) ?	array_map('array_stripslashes', $arr) :  htmlspecialchars(stripslashes(trim($arr)));
    	return $newArr;
    }
     
    /**
     *	Типа массив для формы.
     */
    
    $arFields = [
    	'EMAIL' => [
    		'name' => 'Email',
    		'validate' => 'email, length', 
    		'type' => 'text', 
    		'error' => 'Email не введен либо введен неверно'
    	],
    	'NAME' => [
    		'name' => 'Имя',
    		'validate' => 'length', 
    		'type' => 'text', 
    		'error' => 'Введите имя'
    	],
    	'MESSAGE' => [
    		'name' => 'Сообщение',
    		'validate' => 'length', 
    		'type' => 'textarea', 
    		'error' => 'Введите сообщение'
    	],
    ];
    
    //require_once $_SERVER['DOCUMENT_ROOT'] . '/mass.php'; // хз че тут, закоментим.
    
    if ($_POST['submit']) {
    	$error = [];
        
    	$_POST = array_map('array_stripslashes', $_POST); // почистим пост данные.
    
        foreach ($arFields as $key => $value) {
      
    		if ($arFields[$key]['validate']) {
    	    	$validateArr = array_map("trim", explode(",", $arFields[$key]['validate']));
    	    
    		    foreach ($validateArr as $validateParam) {
    
    					// валидация по списку
    		    	if ($validateParam === "email") {
    		    		(filter_var($_POST[$key], FILTER_VALIDATE_EMAIL) === false) ? $error[$key][] = "Неверный емейл" : $userEmail = $_POST[$key];// Запомним емейл юзера, если он прошел валидацию.
    
    		    	} elseif ($validateParam === "length") {
    		    		(strlen($_POST[$key]) > 100) ? $error[$key][] = "Превышена допустимая длина" : false ;
    		    	}
    		    	
    		    }
    		}
        }
    
        if (empty($error)) {
    		$from = 'den090393@gmail.com';
    		$message = "Спасибо что пользуетесь нашим продуктом.";
    		mail($userEmail, 'Новое сообщение', $message, "From:" . $from);
    		
    		$notify  = "Gисьмо отправлено на {$userEmail}<br>";
    		$notify .= "<a href=\"http://mysite.com/\">Перейти на главную</a>";
    		echo $notify;
    		
    		die();
    	}
    }
    ?>
    
    
    <form action="" method="POST"> 
    	<div align="left">
    
    		<?php foreach ($arFields as $key => $value) : ?>
    			<?php if (!empty($error[$key])): ?>
    				<?= implode("<br>", $error[$key]) ?>
    				<br>
    			<?php endif; ?>
    			
    			<label><?= $arFields[$key]['name']?></label>
    			<?php if ($arFields[$key]['type'] === 'textarea'): ?>
    				<textarea rows="10" cols="35" name="<?=$key?>"><?= $_POST[$key]?></textarea>
    			<?php else: ?>
    				<input size="40" type="<?= $arFields[$key]['type']?>" name="<?= $key?>" value ="<?= $_POST[$key]?>">
    			<?php endif; ?>
    
    			<br>
    		<?php endforeach; ?>	
    	  
    		<input type="submit" value="Отправить" name="submit"> 
    	  
    	</div> 
    </form>


    Касательно массива валидации.
    Имхо было бы удобнее сделать так:
    $arFields = [
    	'email' => [
    		'validate' => [
    			'required',
    			'email',
    			'length' => 100,
    		] 
    		'type' => 'text', 
    		'label' => 'Ваш емейл'
    	],
    	'name' => [
    		'validate' => [
    			'required',
    			'length' => 40,
    		], 
    		'type' => 'text', 
    		'label' => 'Введите имя'
    	],
    	'message' => [
    		'validate' => [
    			'required',
    			'length' => 1000,
    		], 
    		'type' => 'textarea', 
    		'label' => 'Введите сообщение'
    	],
    ];
    Ответ написан
    Комментировать
  • Как правильно работать с массивами?

    jacksparrow
    @jacksparrow
    Если смотреть, на то что подчеркнули, то
    foreach($arFields as $array){
    //...
     $validate2 = explode(", ", $array['validate']);
    //...

    + Ctr+ALT+L в шторме форматирует код в более читаемый вид
    А если чуть более честно, формулировка крайне спорная, половине людей может не понравится их работа с массивами.
    Добавленно: плюс слишком много проходов форичем, точно нельзя было за один разбор?
    Ответ написан
    Комментировать
  • Как правильно работать с массивами?

    webinar
    @webinar Куратор тега PHP
    Учим yii: https://youtu.be/-WRMlGHLgRg

    <?php if ($arFields[$key]['type'] == 'text' )
    {echo ' ';}
    else
    {echo '' . $_POST[$key] . '';}
    ?>

    стоило бы написать так:
    <?php if ($arFields[$key]['type'] == 'text' ) : ?>
        <input size="40" type="<?=$arFields[$key]['type']?> name="<?=$key . ' value ="' . $_POST[$key] ?>">
      <?php else: ?> 
        <textarea rows="10" cols="35" name="<?=$key?>"  ><?=$_POST[$key]?></textarea>
      <?php endif; ?>

    Это касаемо читабельности. Плюс комменты не мешало бы делать в коде.
    foreach тоже более читабельный в виде:
    <?php foreach($fff as $key=>$value): ?>
    тут html
    <?php endforeach; ?>

    Плюс куча лишних переносов и пустых строк, где они не нужны, и нет там где просятся.
    ВОТ ЭТО ВАЩЕ ЗЛО:
    <?php	
        } 
      ?>


    ПС: почитайте www.php-fig.org/psr/psr-1
    Ответ написан
    Комментировать
  • Тестовое задание перед собеседованием на php-программиста, развод?

    DevMan
    @DevMan
    тестовое задание - это нормально, если это действительно тестовое задание, а не реальная задача.
    вы даже не представляете сколько народа отсеевается на этом этапе и экономит друг другу время/деньги/силы.

    PS лучшую из своих работ (на данный момент) я получил именно благодаря тестовому заданию.
    Ответ написан
    4 комментария
  • Тестовое задание перед собеседованием на php-программиста, развод?

    trevoga_su
    @trevoga_su
    Беги от этих "умников" как можно дальше.
    Тестовое задание - это бред чистой воды, воспаленная фантазия тех, кто хочет своё ЧСВ потешить.

    Что бы взять человека, достаточно
    - посмотреть его код
    - спросить некоторые основные вопросы касаемо области

    На, почитай - Как найти хорошую работу PHP программисту
    Ответ написан
  • Тестовое задание перед собеседованием на php-программиста, развод?

    supervaleha
    @supervaleha
    Web-development
    Я много таких делал, честно говоря.

    Часто высылают задания - единственный момент - это сама суть задания. Т.е. обычно высылают простое, относительно, задание с целью посмотреть на твое мышление, на подход, на написание и т.д. Если тестовое задание - написать интернет-магазин - то да, это стремно как-то..

    Мне вот последнее недавно прислали - вывести двумерный массив в виде таблицы с учетом нескольких параметров. Все. Просто и со вкусом.
    Ответ написан
    Комментировать
  • Тестовое задание перед собеседованием на php-программиста, развод?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    зависит от задания, но лично я был бы рад перед собеседованием что бы была возможность глянуть на код кандидата (именно по этому меня расстраивают пустые профайлы на гитхабах и т.д.), это сразу позволяет понять ход мысли разработчика, его слабые места, а далее уже предметно говорить. Ибо в теории все все знают и понимают, а на практике оказывается что "все это только для собеседований".
    Ответ написан
    Комментировать
  • Не работает animate с типом анимации?

    vicodin
    @vicodin
    Имею некоторый опыт
    это нестандартный тип анимации, вам нужно подключть gsgd.co.uk/sandbox/jquery/easing
    Ответ написан
    Комментировать
  • Уровень зарплаты php-программистов?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Если есть желание развиваться как разработчику и узнавать современные технологии - лучше не соваться в Битрикс. Если хочется обилия не всегда высокооплачиваемой работы на рынке, где полно менее квалифицированных демпингующих кадров - можно выбирать его.
    Ответ написан
    Комментировать
  • Интересный вопрос на собеседовании на должность начинающего web-разработчика?

    akubintsev
    @akubintsev
    Опытный backend разработчик
    Отвечайте то, что от вас желают услышать. Это рецепт против любых подобных вопросов, не идущих вразрез с какими-либо своими принципами.
    Ответ написан
    Комментировать
  • Как использовать все ресурсы интернет соединения при парсинге сайтов?

    DevMan
    @DevMan
    file_get_contents - самый тупой вариант, поскольку пока не обработается одна страница все остальные сосут. соответственно похеру какая ширина канала: при так подходе его не забить.

    используйте мультикурл для грабинга, складывайте результат в базу/файлы и затем (или паралельно) спокойно с ними работайте.
    Ответ написан
    Комментировать
  • Как использовать все ресурсы интернет соединения при парсинге сайтов?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Если Ваш скрипт утилизирует интернет соединение не полностью - тому есть несколько вероятных причин:
    a) сайт который вы парсите отдает поток по 1 соединению меньше чем Ваш канал
    б) в работе скрипта есть простои на парсинг, работу с базой итд
    Решение в общем случае одинаковое: запускать несколько копий парсера одновременно, смотреть на загрузку канала и процессора - во что упретесь первым угадать сложно.

    PS Еще могу посоветовать не использовать модные dom парсеры и обертки на curl - простой curl и простые самодельные regexp работают в 10-100 раз быстрее.

    PPS Вы путаетесь в показаниях по скорости) 25Мбит это округленно ~3 мегабайт/секунду, торенты не могут качаться на 7Mb/s
    Ответ написан
    4 комментария