• Не происходит редирект 404 .htaccess при использовании ЧПУ. Почему?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Нужно убрать RewriteBase /
    Вы делаете редирект на главную страницу, чтобы вы не ввели, если такой страницы нет, будет переходить на главную. По умолчанию index.php
    Но это можно исправить ))
    DirectoryIndex main.py
    Вот целый блог на эту тему
    Ответ написан
    Комментировать
  • Есть ли в PHP ORM позволяющая забирать из базы данные со сложной структурой?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Попробуйте фреймворк Yii2 - там есть ORM. Готовые модели, работающие через функции, всё просто, прописываете в контроллере, что хотите видеть во вьюшке через экшен, и готово! Выводит информацию любой сложности. Я до сих пор не жалею, что выбрал этот фреймворк. Он гибкий, способен реализовывать много разных задач. Под Yii2 написано много разных решений с обработкой данных. Сэкономите время на разработку. Отпадут подобные вопросы. Есть много уроков на youtube, если знаете php, MySQL, sql, то без труда всё настроите, установите и упакуете. В коробке есть базовые решения, можно бесплатно добавлять разработки сторонних разработчиков. И не только.

    А ещё количество таблиц можно сократить php.net/manual/ru/function.implode.php
    Ответ написан
  • Проверка оптимизации для мобильных криво видет страницу?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Пользуйтесь - www.responsinator.com
    Помогает увидеть всю картину целиком.
    И охват устройств лучше сделать так:
    @media screen and (max-width:767px) {
    
    }
    @media screen and (min-width:768px) and (max-width:991px) {
       
    }
    @media screen and (min-width:992px) and (max-width:1199px) {
      
    }
    @media screen and (min-width: 1200px) {
     
    }

    Тогда вы захватываете все размеры разом.
    Ответ написан
    Комментировать
  • Может ли Python заменить php?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Мне кажется, что когда спрос на разработку нейросетей и искусственного интеллекта будет более высок, и робототехника будет доступна на уровне пылесосов и мобильников, тогда будет очень большой спрос на питон, пока что этот трон занимает php, но на пятки наступает javascript.
    Так что да, Python очень даже может заменить php, к 2020 и особенно к 2045 году - думаю, особенно.
    Ответ написан
    1 комментарий
  • Как правильно делать форму с разными моделями?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Ответ написан
    Комментировать
  • Как в yii2 выводить записи используя постраничную навигацию?

    Isolution666
    @Isolution666
    Full-Stack Developer
    В ListView тоже можно по своему выводить паганацию, виджет можно "разобрать" на части, если надо чтобы паганация, число страниц и количество записей было в разных местах, никогда не бойтесь экспериментировать. Тренируйтесь, пробуйте
    Ответ написан
    Комментировать
  • Куда добавить Class в Yii 2, чтобы он отрабатывал всегда при рендере любой страницы?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Создайте свой класс где вам вздумается, и выводите через узы там, где он вам нужен, класс может хранить переменные и функции, которые вы можете постоянно использовать. Если верно прописаны namespace и use, всё будет работать.
    ---
    Например переменные создаются так:
    <?php
    
    namespace app\backend\models; // у вас будет свой путь, создайте класс на IDE, чтобы правильно вывести
    
    use Yii; // если используете узы, пишите после namespace
    use yii\helpers\Html; // могут понадобится любые классы
    
    class Yourclass {
        
        const CLOCK = '<i class="fa fa-clock-o"></i>'; // только так передаются "переменные"
        // в функции self::CLOCK 
        // во вьюшке, на любой странице Yourclass::CLOCK;
        // 
        public function getTimeName($params = '') 
        { 
            // данная функция позволяет выводить оформленную дату с тегами
            // в определённом формате, на всём сайте, если вы измените эту функцию
            // везде где вы выведите этот формат поменяется одновременно, что удобно
            // Yourclass::getTimeName(вставляете ваше значение);
            $rezult = Html::tag('small', self::CLOCK . Yourclass::formTime($params), ['class' => 'text-muted']);
            return $rezult; 
        }
    }


    То есть, во вьюшке это будет так:
    <?php
    use yii\helpers\Html;
    use app\backend\models\Yourclass; // я на абум написал, у вас будет свой путь
    ?>
    <?=Yourclass::CLOCK;?> - глиф иконка часов FontAwesome
    <?=Yourclass::getTimeName($model->time);?> - дата и\или время в виде html кода в заданном формате


    То есть, класс можно хранить во фронтэнде или в бэкеэнде, где пожелаете, просто соблюдайте узы и пространство имён. Выводит можно и статичные и публичные функции. Проверено лично, плюс можно редактировать файл по средством fopen() в php - как будет удобно. Успехов вам.
    Ответ написан
    Комментировать
  • Обновление записи по ajax в БД по клику id div блока, как реализовать?

    Isolution666
    @Isolution666 Автор вопроса
    Full-Stack Developer
    Для тех, кто искал! Этот метод называется .submit()
    <script type="text/javascript">
       $(document).ready(function () {
    	   $("#yellow").click(function() {
    		         $("#act form").submit();
    	   });
       });
    </script>


    Смысл заключается в том, что вы оборачиваете form в id (чтобы скрипт не реагировал на другие формы) и указываете на что должен реагировать скрипт при заполнении формы, можно использовать .change() или .bind() - если через input, и .click() - если хотите передать через span или div.
    Хочу заметить, что с этим заданием хорошо справляется Vue.js

    <div id="act">
            <form action="" method="post" data-ajax="post">
                 <input type="text" id="yellow" name="param">
                 <input type="submit" value="send">
            </form>
       </div>


    Подкрепите это всё ajax , скройте кнопку submit, и форма будет отправлять сразу, как только вы кликнули чекбокс, или выбрали селект, или указали цифру, для других решений лучше это не делать.
    Ответ написан
    Комментировать
  • ERR_ABORTED, font awesome не грузит?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Здравствуйте.
    --
    подключите в :
    <head>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css"/>
    </head>

    эту ссылочку, и берите иконочки здесь
    Понятное дело, что их глифами называют, но суть не меняется, работает, даже если появляется новый глиф, он будет работать.
    Ответ написан
  • Как создать собственную IP-телефонию?

    Isolution666
    @Isolution666 Автор вопроса
    Full-Stack Developer
    Комментировать
  • GIT ERROR 403 как исправить?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Здравствуйте.
    --
    1) Вы пытаетесь загрузить с другого аккаунта, выйти из него я не знаю как, но зато, при установке git на ваш компьютер, создаётся файл .githistory, обычно пихается в пользовательскую папку, как и данные по composer. (for Windows) - для других систем не узнавал.
    2) Если вы нашли .githistory - и используете другой аккаунт, удалите его. Возможно другие файлы со словом git так же стоит удалить.
    3) Убедитесь, что вы после удаления истории сделали новую регистрацию:
    $ git config --global user.name 'login'
    $ git config --global user.email 'mail@yourmail.ru'

    4) Когда создаёте репозиторий на GitHub , клонируйте его на свой компьютер.
    Чтобы убедится, что вы открыли консоль [Git Bash] в нужном месте, просто сделайте команду
    $ git status
    Если репозиторий и директория верны, он красным подсветит файлы, которые нужно добавить.
    Если он пишет, что такой директории не существует, значит перейдите в вашу папку.
    $ cd your_folder - ещё раз проверьте статус.
    Если git увидел ваш склонированный репозиторий, значит делайте запрос:
    $ git add .
    или
    $ git add --all
    Почему я не начал с
    $ git init ?
    Если вы склонировали, то папка .git там уже есть.
    Закидывайте к этой папке и файлу README.md ваши файлы, и делайте
    $ git add .
    Только теперь можно делать коммиты
    $ git commit -m "your commit"
    высветились все файлы? Тогда пропускаете
    $ git remote add origin.... - потому что ветка уже создана, при создании репозитория на сайте.
    Теперь мы загружаем:
    $ git push -u origin master
    Если не ошибаюсь, дописать записанное можно через команду:
    $ git pull

    ----
    Самое главное, это сменить пользователя на того, у которого есть права, иначе вам не поможет удаление программы и установка новой. Есть команда, которая чистит кеш истории
    $ git credential-cache exit
    Но она почему-то в последнее время бесполезная и нерабочая, так что ищите способ очистить кеш.
    Что касается ключей и ssh - их можно и не создавать, но как показывает практика, не только git , но и composer не дадут вам работать.

    Успехов вам, надеюсь помог.
    --
    P.S. данный метод мне помог, если вы видите содержимое файла README.md смотрите в settings что у вас за ошибка, устраните её, и обновите браузер. Возможно, ещё придётся выбрать тему, или указать описание, так же смотрите, где у вас галочки стоят, они тоже могут вызвать головную боль.
    Ответ написан
    Комментировать
  • Как вывести .jpg .png и т.д из папки отличной @web?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Здравствуйте.
    ---
    То о чём вы говорите, называется пространством имён, настраивается в папке config
    Можете использовать adminLTE - там есть настройки, позволяющие выводить директорию, скрывая
    /frontend/web/ и бэкенд.
    https://github.com/almasaeed2010/AdminLTE
    Допустим, если вы в папке web создадите к примеру папку image
    Картинка будет в этом случае выводится так:
    /image/1.jpg
    Ответ написан
    Комментировать
  • Почему кнопка в yii2 отрабатывает только при втором клике?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Здравствуйте.
    --
    Помоему проблема в двойных условиях, два if чудят. Я с подобной ситуацией сталкивался. Вам надо написать просто:
    public function actionCleartable() 
    {
       $ok = Yii::$app->request->post('submit');
       if(isset($ok)) {
          $uniqueUsersModel->clearTable();
          return $this->refresh();
       } else {
          return $this->render('cleartable');
       }
    }

    То есть, как в старые добрые девяностые, когда был php 4 ))) Мы писали, если введено имя кнопки submit, тогда происходит то или это, если не нажали, тогда ничего не происходит.
    Этот же подход к делу подойдёт, если не хочешь использовать ActiveForm

    <?= Html::beginForm(['order/update', 'id' => $id], 'post', ['enctype' => 'multipart/form-data']) ?>
    <?= Html::submitButton('Отправить', ['class' => 'submit', 'name' => 'submit']) ?>
    <?= Html::endForm() ?>


    Можно сделать таких форм в на одной странице хоть с десяток, а сработает та, у которой name соответствует правилам, прописанным в контроллере, я так форму поиска впихнул в верхнее меню без привязки каждой странице к конкретной модели, и ошибок никаких нет. Главное, если будешь впихивать input, посмотри пример здесь
    Ответ написан
    Комментировать
  • Как изменить фон выпадающего списка select'а, то есть фон option?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Здравствуйте.
    Не знаю, как помогу вам, но подскажу, что копать надо в сторону селекторов для браузеров,читайте черновики по css, ещё это можно решить через javascript, а вообще на каждый html тег есть свои псевдоклассы, смотрите в каких браузерах и платформах это работает, потому что ещё не во всех поддерживается.
    Вот интересная ссылка css-live.ru/articles-css/spisok-psevdoelementov-dl...
    Помните о кроссбраузерности.
    Ответ написан
    Комментировать
  • Cортировка sql по строгому порядку, как задать этот запрос в Yii2?

    Isolution666
    @Isolution666 Автор вопроса
    Full-Stack Developer
    У кого была похожая проблема, просто сделайте вот такой запрос в БД:
    Category::find()->orderBy('LENGTH(priority), priority')->all()
    Ответ написан
    Комментировать
  • Как сделать разлет картинок из центра по краям после задержки?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Здравствуйте.
    Если вы хорошо владеете javascript, то предлагаю воспользоваться "Зелёным Шоком"
    Этот фреймворк делает различные сложные анимации, может пригодится во многих интересных и сложных проектах, на ютубе есть много видео о нём, хоть и на английском, но у них полно примеров на codepen, так что - Welcome )))

    https://greensock.com
    Ответ написан
    3 комментария
  • Как поменять не меняющуюся кодировку в MySQL?

    Isolution666
    @Isolution666 Автор вопроса
    Full-Stack Developer
    Итог: если кто-то столкнулся с такой проблемой как у меня:
    .htaccess корневой директории укажете AddDefaultCharset UTF-8
    Ответ написан
    Комментировать
  • Как поставить yii 2.0.1 через composer?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Здравствуйте.
    Composer вам ясно сказал, посмотрите https://groups.google.com/d/topic/composer-dev/_g3... тут надо было в composer.json установить
    "minimum-stability": "stable",

    И ещё он сказал посмотреть getcomposer.org/doc/articles/troubleshooting.md
    для решения дальнейших общих проблем.
    Документация у сайта composer на английском, но вы можете перевести через google переводчик.
    Ошибка установки, возврат ./composer.json к исходному контенту.
    Что-то не правильно установили, или установили один композер по верх другого, никто ж не читает, что в openserver уже есть composer а потом:
    Installation failed, reverting ./composer.json to its original content.


    Я к тому, что вам пишут подсказки, читайте их, так я решил свои проблемы с composer
    Если не понимаете откуда ноги растут, лучше установите Yii2 с нуля, понятное дело что быстрее скопировать и вставить, но понимая свою ошибку, надо сначала вникнуть в то как всё устроено, так я научился устанавливать виджеты с github в ручную )) Так конечно лучше не делать.
    Ответ написан
    Комментировать
  • Class 'kartik\select2\Select2' not found?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Здравствуйте.
    Очевидно, что вы переносили данный файловый менеджер вручную, что делать нельзя, особенно если абсолютно не понимать, как устроен Yii2, и фреймворк в целом.
    В папке \vendor\yiisoft\extensions.php
    Скорее всего забыли добавить:
    'kartik-v/yii2-krajee-base' => 
      array (
        'name' => 'kartik-v/yii2-krajee-base',
        'version' => '9999999-dev',
        'alias' => 
        array (
          '@kartik/base' => $vendorDir . '/kartik-v/yii2-krajee-base',
        ),
      ),
      'kartik-v/yii2-widget-select2' => 
      array (
        'name' => 'kartik-v/yii2-widget-select2',
        'version' => '9999999-dev',
        'alias' => 
        array (
          '@kartik/select2' => $vendorDir . '/kartik-v/yii2-widget-select2',
        ),
      ),
      'kartik-v/yii2-widget-alert' => 
      array (
        'name' => 'kartik-v/yii2-widget-alert',
        'version' => '9999999-dev',
        'alias' => 
        array (
          '@kartik/alert' => $vendorDir . '/kartik-v/yii2-widget-alert',
        ),
      ),

    И с 2amigos скорее всего будут проблемы. Проверьте наличие записей composer и папок с файлами в целом, правильно ли указаны узы.
    Ответ написан
    Комментировать
  • Как подключить магазин к Yandex.Маркет?

    Isolution666
    @Isolution666
    Full-Stack Developer
    Я бы написал скрипт, который через цикл выводит все товары, запихал бы это всё в textarea, чтобы убедится, что код формируется правильно, потом просто методом записи в файл, составил код так, чтобы частные элементы заменялись POST данными, посланными через форму. Очевидно что Валерий не умеет записывать файл в файл, всё очень просто, почитайте мануал, как записывать файлы средствами php кода. Править код должен только один человек, владелец, чтобы доступа не было у посторонних лиц. Если настроить правильно, и привязать к cron, то можно обновлять данные раз в день, или кому как удобно, Если сделать ссылку на файл, то его можно просмотреть или скачать. Для меня эта задача выполнима.
    Ответ написан
    Комментировать