• Как научится верстать такое?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Практика, практика, и только практика.
    Вы выучили основы html и css, и вроде бы можете что-то сверстать.
    На одном вроде бы, и с такими знаниями сразу подобное (svg анимации и т.д.) сверстать вы не сможете.
    Начните с малого, развивайте скилл, после того как разберетесь с типографией / сетками, и сможете верстать настоящие проекты - читайте и вникайте в примеры на codyhouse.co, там вся реализация разложена по полочкам.
    Ответ написан
    Комментировать
  • Как динамически создать переменную PHP класса?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    PHP не запрещает делать так, но у YII свои заморочки, и чертики в голове.
    Можно (но не стоит) так:
    class FormCompany extends Model {
      public $promo;
    
      public function __construct(){
        $this->promo = (object)[];
        for($i = 1; $i < 10; $i++){
          $this->promo->{'var' . $i} = rand(0, 10);
        }
      }
    
    }


    Решение довольно громоздское (для Yii2), но переназначение стандартных сеттеров и геттеров - единственное решение.
    private $_attributes = ['test' => null]; //объвляем приватную переменную где будем объявлять без особых проблем переменные, и хранить их данные
    
        public function __get($name){
           if (array_key_exists($name, $this->_attributes)) //если переменная объявлена в нашем магическом массиве - выводим его значение
               return $this->_attributes[$name];
    
           return parent::__get($name); //либо стандартное
       }
    
       public function __set($name, $value){
           if (array_key_exists($name, $this->_attributes)) //аналог __get, только устанавливаем значение
               $this->_attributes[$name] = $value;
    
           else parent::__set($name, $value); //ну дефолтная установка значения
       }
    
       public function __construct(){
            parent::__construct(); //обязательно для Yii2, да и вообще в ООП при переназначении функций
            $this->__set('test', 'test'); // устанавливаем значение test
            $this->_attributes['newAttr'] = null; // объявляем новое значение
            $this->__set('newAttr', 'test value'); // и устанавливаем его значение
            $this->_attributes['newAttr'] = 'test value'; // хотя можно и так, как вам удобнее
       }


    Если не хотите захламлять код - опять же попробуйте впихнуть все это в хелпер, и через use подключить в модели.
    Из view получаем как обычный параметр (к примеру Yii::$app->user->identity->test)
    Из класса через $this->__get('test')
    Удачи!
    Ответ написан
  • Как вы реализуете смену цветовых схем на сайтах?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    В зависимости от обстоятельств.
    По хорошему - использовать Sass, после чего сгенерировать несколько цветовых решений, переключая стиль.
    Но в некоторых случаях, когда расширяемость не особо нужна, и в будущем не планируется - можно менять класс у body, и прописывать все ручками в одном файле.
    Ответ написан
    Комментировать
  • Загрузка нескольких фото?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    1) Код ужасен. То echo, то print...
    2) Решение на основе вашего кода (реально, будто бы из канализации только что вылез):

    $uploaddir = 'images/';
    
    foreach($_FILES['userfile']['name'] as $i=>$name){
      $uploadfile = $uploaddir . basename($name);
      $filename = $i;
      $uploadfile = $uploaddir . DIRECTORY_SEPARATOR . $filename . '.' . pathinfo($name, PATHINFO_EXTENSION);
    
      echo '<pre>';
      if (move_uploaded_file($_FILES['userfile'][$i]['tmp_name'], $uploadfile)) {
          echo "Файл корректен и был успешно загружен.\n";
      } else {
          echo "Возможная атака с помощью файловой загрузки!\n";
      }
      print "</pre>";
    }
    Ответ написан
  • Laravel 5 почему не работает авторизация?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Насколько я понял вы используете Laravel 5.2
    В последней версии надо подключать к роутам middleware web, чтобы работали сессии, CSRF проверка (на что и ругается), и прочее.

    Route::group(['middleware' => ['web']], function () {
        // тут храните все ваши роуты, которым нужны формы (GET, POST)
    });


    UPD: Чтобы не было в дальнейшем проблем просто выполните команду php artisan make:auth
    Ларавел сам создаст все роуты, view, и подключит все правильно.
    Ответ написан
    Комментировать
  • Почему не работает .toggle()?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Ответ написан
    Комментировать
  • Стоит заморачиваться с ролями?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Ставьте Entrust, максимально удобно настраиваемый, и гибкий.
    Ответ написан
    Комментировать
  • Laravel / Blade - как экранировать только часть?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    {!! isset($name) ? htmlspecialchars($name) : '<span class="class-a">без имени</span>' !!}

    Не Laravel-стайл, но все-же.
    Либо условием, но так кода больше.
    Ответ написан
    Комментировать
  • На чем лучше сделать сайт научной конференции?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Laravel.
    Нет готовых CMS для таких узких направлений.
    Если лень возиться самому - могу написать. За разумную цену, естественно.
    Контакты в профиле.
    Ответ написан
    Комментировать
  • Почему авторизация удаляется после перезагрузки?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Давайте разберемся поподробнее.
    И так, у вас в каком-либо контроллере примерно такой код:

    if(Auth::attempt([
      'username' => $request->login,
      'password' => $request->password
    ], $request->remember)){
      return ['message' => 'success'];
    }
    return ['message' => 'error'];


    Вы передаете с помощью post данной функции токен, логин, и пароль.
    После чего сверяете, и если message -равно success, то перезагружаете страницу.
    В данном случае при перезагрузке пользователь так и остается неавторизован?
    Ответ написан
  • Как удалить шорткоды с wordpress сайта?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Убить надо бы тех, кто так делает с 900 записями :)
    Шутки в сторону...

    1. Делайте бекап
    2. Экспортите в csv/xml
    3. Заменяете на вселенскую пустоту в любом текстовом редакторе, поддерживающем регулярные выражения.
    4. Импортируете файл

    Если все прошло гладко - похвалите себя, вы молодец. :)
    Ответ написан
    5 комментариев
  • Как сделать массив условием для sql выборки?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Это в корне не правильно.
    Вдруг в массив прокрадется что-то лишнее? Я так понимаю вы его генерируете.
    На крайняк используйте mysql билдеры запросов (ORM).

    Ну а если хочется - вот пример (очень плохо, не используйте пожалуйста):
    $whereClause = [];
    foreach($array as $key=>$value){
      $whereClause[] = "`{$key}` = '{$value}'";
    }
    $whereClause = implode(' AND ', $whereClause);
    Ответ написан
    Комментировать
  • Как настроить XAMPP под laravel 5.1?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Ларавел ориентирован на nginx
    Если хотите апач - закиньте файл .htaccess из папки public в корень, и переименуйте server.php в index.php
    Но это колхозное решение.
    Ответ написан
    2 комментария
  • Сформировать данный с торрент файла?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Первое что пришло в голову -

    foreach($dict['path'] as $path){
        if($path['type'] == 'list'){
           foreach($path['value'] as $list){
               if($path['type'] == 'string'){
                   // $path['value'] ваше значение имени файла
               }
           }
        }
    }


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

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Во первых, при валидации сделайте поле имени пользователя обязательным, и латиницей. Думаю, это логично.
    Далее, в AuthController добавьте функцию:

    public function postLogin(Request $request)
        {
            $this->validate($request, [
                $this->loginUsername() => 'required', 'password' => 'required',
            ]);
    
            // If the class is using the ThrottlesLogins trait, we can automatically throttle
            // the login attempts for this application. We'll key this by the username and
            // the IP address of the client making these requests into this application.
            $throttles = $this->isUsingThrottlesLoginsTrait();
    
            if ($throttles && $this->hasTooManyLoginAttempts($request)) {
                return $this->sendLockoutResponse($request);
            }
    
            $credentials = $this->getCredentials($request);
            $login = $request->input($this->loginUsername());
            $field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email':'username';
    
            $request->merge([$field => $login]);
            $credentials = $request->only($field, 'password');
    
            if (Auth::attempt($credentials, $request->has('remember'))) {
                return $this->handleUserWasAuthenticated($request, $throttles);
            }
    
            // If the login attempt was unsuccessful we will increment the number of attempts
            // to login and redirect the user back to the login form. Of course, when this
            // user surpasses their maximum number of attempts they will get locked out.
            if ($throttles) {
                $this->incrementLoginAttempts($request);
            }
    
            return redirect($this->loginPath())
                ->withInput($request->only($this->loginUsername(), 'remember'))
                ->withErrors([
                    $this->loginUsername() => $this->getFailedLoginMessage(),
                ]);
        }


    UPD: Сделал более актуальный и правильный вариант благодаря ответу JhaoDa
    Ответ написан
    Комментировать
  • Как сделать notification html5 на wordpress?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Делается с помощью Service Workers.
    Подробнее тут: https://developers.google.com/web/updates/2015/03/...
    Сложно. Готовых решений в обертке (особенно под WP) пока что не видел.

    Если хотите показывать только тогда, когда вкладка сайта открыта - тут полегче, можно обойтись с помощью api WP, выгружая новые посты, и показывая сообщение.
    Ответ написан
    Комментировать
  • Работа с кириллицей, substr и т.д?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    declare(encoding='UTF-8');
    PHP 5.3+
    Ответ написан
    8 комментариев
  • Как реализовать счет пользователя?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Да.
    Создаете отдельную таблицу с логом действий (к примеру id, type, amount, user_id), и поле balance у пользователя.
    Ответ написан
    2 комментария
  • Существует ли API Кинопоиска?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Извиняюсь за некропостинг.
    Вот тут решение: https://toster.ru/answer?answer_id=732526
    Ответ написан
    1 комментарий