• После нажатия на input radio li должен скрыться?

    Uman
    @Uman Автор вопроса
    PHP, YII2
    Как мне подсказали
    $(".radioTask").click(function () {
            var val = $(".radioTask:checked").val();
            $.ajax({
                type: "GET",
                url: "",
                data: {val: val},
            });
            $('.task').click(function(){
                $(this).remove();
            });
        });
    Ответ написан
    Комментировать
  • Самый сильно защищенный мессенджер — какой он?

    Выдержка из статью про безопастность
    FAQ по сетевой безопасности


    Ставь jabber и не морочь себе голову)))))))

    7. Что насчёт мессенджеров: Skype, WhatsАpp, Viber, Telegram, там же есть шифрование?

    Ими пользоваться нельзя:

    - Центральный сервер (свой создать нельзя)

    - Закрытый исходный код (что на самом деле делают эти программы и куда всё сливают никому неизвестно)

    - Шифрование не по открытым проверенным алгоритмам (GPG, OTR), а по своим проприетарным (вас расшифруют когда надо)

    - Привязка к симке





    8. Почему бы просто не общаться в случайном игровом чате и\или общаться заранее установленными словами, которые другим будут непонятны?



    Скрыть предмет разговора недостаточно, так как остаётся ещё сам факт разговора: его стороны, время, место, с каких устройств оно было и другие данные, которые останутся на сервере. И доверять шифрованию неких "игровых чатов" нельзя.





    9. Тогда каким мессенджером пользоваться?



    Теми, что работают по протоколу jabber (XMPP), с открытыми исходниками, проверены временем и поддерживают шифрования переписки клиент-клиент GPG и\или OTR (т.е. её не увидит никто посторонний, даже владельцы сервера):



    Для Tails (или любой другой ОС):

    Psi (GPG)

    Psi+ (GPG, OTR) доведённый до ума Psi с дополнительными функциями

    Pidgin (OTR) старый проверенный клиент, встроен в Tails

    Tor Messenger (OTR) пока в бета-тесте



    Для Android:

    Conversations (GPG, OTR)

    Xabber (OTR)







    10. Почему jabber, а не мессенджеры вроде Tox, Ricochet?



    Jabber проверен временем, поддерживает проверенные алгоритмы шифрования клиент-клиент (GPG, OTR), позволяет отправлять сообщения в оффлайн (когда собеседник не находится в сети). Все новомодные поделки пока этим не обладают.





    11. А в чём разница между шифрованием GPG и OTR если по-простому?



    По-простому: OTR требует наличия собеседника онлайн, зато даёт отрицаемость (после беседы ключи уничтожаются и сообщения уже никак нельзя расшифровать, даже если ключи были изъяты у обеих сторон).

    GPG гораздо старее, надёжнее и функционал обширнее (можно шифровать файлы, подписывать сообщения, проверять подписи), держите ключи в шифрованном разделе Persistent на Tails, имейте сложные пароли и делайте бекапы и проблем не будет.





    12. А как организовать шифрованные jabber-конференции (чаты от 3-х участников)?



    Шифрование клиент-клиент в jabber-конференциях (т.е. её не увидит никто посторонний, даже владельцы сервера) возможно через OMEMO — поддерживается только клиентами Pidgin (нужен плагин), Gajim (нужен плагин), Conversations (Android). Я сам пока не проверял.



    Шифрование клиент-сервер в jabber-конференциях (т.е. её не увидит никто посторонний, но её увидят владельцы сервера, и она может остаться на сервере если не выключены логи) можно достичь подключившись к jabber-серверам в .onion пространстве. Например к нашему серверу с отключенными логами. Критично важную информацию можно не писать в чат, а скинуть каждому с шифрованием отдельно.
    Ответ написан
    Комментировать
  • Не происходит удаления в таблице?

    Uman
    @Uman Автор вопроса
    PHP, YII2
    Все решил, надо было сделать проверку
    if ($this->taste_array) {
                foreach ($this->taste_array as $one) {
                    if (!in_array($one, $arr)) {
                        $model = ($model = HasProductTaste::find()
                            ->where(['product_id' => $this->id])
                            ->andWhere(['taste_id' => $one])
                            ->one()) ? $model : new HasProductTaste();
    
                        $model->product_id = $this->id;
                        $model->taste_id = $one;
                        $model->save();
                    }
                    if (isset($arr[$one])) {
                        unset($arr[$one]);
                    }
                }
            }
    Ответ написан
    Комментировать
  • Какой JQ плагин?

    Привет, если я правильно понял, то тебе вот это демо
    Сам сайт
    Ответ написан
    Комментировать
  • Yii2 autocomplete kartik Typeahead?

    Uman
    @Uman Автор вопроса
    PHP, YII2
    Если кому надо как у меня на скриншоте!!! Вот копируем!
    Если знаете как еще можно улучшить, то подскажите!

    355a55f93d6340929b9e37eeef6ba30f.jpg

    view
    Typeahead::widget([
                'name' => 'city',
                'options' => ['placeholder' => 'Все города'],
                'pluginOptions' => ['highlight' => true],
                'dataset' => [
                    [
                        'datumTokenizer' => "Bloodhound.tokenizers.obj.whitespace('value')",
                        'display' => 'value',
                        //'prefetch' => $baseUrl . '/samples/countries.json',
                        'remote' => [
                            'url' => Url::to(['/search/city']) . '?q=%QUERY',
                            'wildcard' => '%QUERY'
                        ],
                        'templates' => [
                            'notFound' => '<div class="text-danger" style="padding:0 8px">Ничего не найдено.</div>',
                        ]
                    ]
                ],
    
            ]);


    controller
    public function actionCity($q = null)
        {
            $cities = Profile::find()
                ->select(['concat(city_name, ", ",region_name) as value'])
                ->filterWhere(['like', 'city_name', $q])
                ->distinct()
                ->asArray()
                ->all();
            $out = [];
            foreach ($cities as $city) {
                $c = explode(", ", $city['value']);
                $outs[] = $c[0];
                $outs[] = $c[1];
                $city_name = implode(", ", $outs);
                $out[] = ['value' => $city_name];
            }
            echo Json::encode($out);
    
        }
    Ответ написан
    Комментировать
  • Не получается запустить apache2?

    Uman
    @Uman Автор вопроса
    PHP, YII2
    Нашел проблему, проблема была в том, что в новой версии минта пропадает PHP 5-ой версии, и по команде apt-get install php установилась версия 7.*., а потом (я не знал что php 7 установилась) я начал устанавливать php 5.6. Я все на хрен удалил (apache2 и php) все почистил и заново все поставил.
    Установка php 5.6
    для работы с PPA нужно установить необходимые инструменты:
    
    apt-get install software-properties-common python-software-properties
    После чего добавляем репозиторий, содержащий различные пакеты PHP:
    
    add-apt-repository ppa:ondrej/php
    В /etc/apt/sources.list.d/ появится файл со ссылкой на нужный нам репозиторий. После этого выполняем:
    
    apt-get update
    И уже можно устанавливать PHP 5.6:

    Так что у меня все работает, спасибо кто откликнулся!
    Ответ написан
    Комментировать
  • Сохранения цены для определенной категории?

    Uman
    @Uman Автор вопроса
    PHP, YII2
    нужно сделать скрытый инпут для категорий
    Ответ написан
    Комментировать
  • Почему не видно кнопки для изображений?

    в консоле сделайте composer update, это если вы Линуксе например Ubuntu, Mint. А вот если винда то так вро де бы php composer.phar update, но могу ошибатся!
    Ответ написан
    Комментировать
  • Как связать Xdebug с PHPStorm?

    Привет, если работаешь в Ubuntu то сделай так
    sudo apt-get install php5-xdebug -y
    
    sudo nano /etc/php5/mods-available/xdebug.ini
    
    zend_extension=xdebug.so
    
    xdebug.default_enable=1
    xdebug.var_display_max_depth=6
    xdebug.remote_enable=1
    xdebug.remote_host=localhost
    xdebug.remote_port=9000
    xdebug.remote_handler=dbgp
    xdebug.remote_autostart=1
    xdebug.remote_log=/tmp/xdebug.log
    xdebug.idekey="PHPSTORM"
    xdebug.profiler_enable_trigger=1
    xdebug.profiler_enable=0
    xdebug.profiler_output_dir=/tmp/profiler
    xdebug.show_local_vars=1
    xdebug.overload_var_dump=1
    Ответ написан
  • При нажатия checkbox и кнопки сохранить браузер ужасно тормозит?

    Uman
    @Uman Автор вопроса
    PHP, YII2
    нашел такое решение для отключения валидации формы на стороне клиента
    1 - 'enableClientValidation' => false,
    2 -
    <?php $form = ActiveForm::begin([
    'id' => 'login-form',
    'enableAjaxValidation' => true,
    'enableClientValidation' => false,
    'validateOnBlur' => false,
    'validateOnType' => false,
    'validateOnChange' => false,
    'validateOnSubmit' => true,
    ]) ?>

    ссылка на источник
    Ответ написан
    Комментировать
  • Как правильно сохранить через модель данные с чекбокса?

    Uman
    @Uman Автор вопроса
    PHP, YII2
    Спасибо что показали направление я понял как мне надо было делать
    foreach ($category as $k => $category_id) {
                    $profileHasCategory = ($profileHasCategory = ProfileHasCategory::find()->where(['user_id' => $user_id])->andWhere(['category_id' => $category_id])->one()) ? $profileHasCategory : new ProfileHasCategory();
                    $profileHasCategory->user_id = $user_id;
                    $profileHasCategory->category_id = $category_id;
                    $profileHasCategory->save(false);
                }
    Ответ написан
    Комментировать
  • Yii2 как с базы вывести категории когда у них есть подкатегориии с подкатегориями?

    Uman
    @Uman Автор вопроса
    PHP, YII2
    Нужно сделать виджет, создаем папку componets, а там СОЗДАЕМ ФАЙЛ CategoryWidget.php

    ниже представлен код

    <?php
    
    namespace app\components;
    
    use Yii;
    use yii\base\Widget;
    use app\models\Category;
    
    class CategoryWidget extends Widget
    {
        public $tpl;
        public $model;
        public $data;
        public $tree;
        public $menuHtml;
    
        public function init()
        {
            parent::init();
            if ($this->tpl === null) {
                $this->tpl = 'category';
            }
            $this->tpl .= '.php';
        }
    
        public function run()
        {
            // get cache
    //        if ($this->tpl == 'category.php') {
    //            $menu = Yii::$app->cache->get('category');
    //            if ($menu) return $menu;
    //        }
    
            $this->data = Category::find()
                ->indexBy('id')
                ->orderBy('sortOrder')
                ->asArray()
                ->all();
            $this->tree = $this->getTree();
            $this->menuHtml = $this->getMenuHtml($this->tree);
            // set cache
    //        if ($this->tpl == 'category.php') {
    //            Yii::$app->cache->set('category', $this->menuHtml, 60);
    //        }
            return $this->menuHtml;
        }
    
        protected function getTree()
        {
            $tree = [];
    
            foreach ($this->data as $id => &$node) {
                if (!$node['parent_id']) {
                    $tree[$id] = &$node;
                } else {
                    $this->data[$node['parent_id']]['children'][$node['id']] = &$node;
                }
            }
            return $tree;
        }
    
        protected function getMenuHtml($tree){
            $str = '';
            foreach ($tree as $category) {
                $str .= $this->catToTemplate($category);
            }
            return $str;
        }
    
        protected function catToTemplate($category)
        {
            ob_start();
            include __DIR__ . '/category_tpl/' . $this->tpl;
            return ob_get_clean();
        }
    
    }


    потом в папке components создаем еще одну папку называем category_tpl, там создаем файл category.php

    ниже представлен код

    <?= $category['title'] ?>
                <?php if (isset($category['children'])): ?><br/>
                    <?= $this->getMenuHtml($category['children']) ?>
                <?php endif; ?>


    Потом во вьюхе делаем рендер виджета

    <?= CategoryWidget::widget(['tpl' => 'category']) ?>
    Ответ написан
    Комментировать
  • Yii2 не работает скрипт jQuery в форме?

    Uman
    @Uman Автор вопроса
    PHP, YII2
    js
    $('.trigger').click(function() {
    $('.hidden_work_time').toggle(); });

    сам input в класс form-control, чтоб стили не слетали
    <?= $form->field($model, 'status_week')->dropDownList(Profile::$days, ['class' => 'form-control trigger'])->label(false); ?>
    Ответ написан
    Комментировать
  • Как установить компонент YII images?

    Комментировать