@yii2ru

Страница 1652 из 1721
☕ CunningFox
28.09.2018
12:17:25
$config['bootstrap'][] = function () {Yii::$app->getView()->registerJs(......)}

☕ CunningFox
28.09.2018
12:18:16
\yii\web\View::registerJs это вообще что-то странное))))

Сергей
28.09.2018
12:58:57
Всем привет! Такой вопрос... Имеем внутренний сайт компании. Два приложения для сотрудников и для клиентов (каждое на своём поддомене, каждое со своей авторизацией). Есть сущность "Задача", у которой есть описание. Задачи отображаются и у клиентов и у сотрудников. Для описания используется WYSIWYG-редактор. В редакторе могут быть добавлены картинки (загружены на сервер). Загружаемые картинки должны быть доступны ТОЛЬКО авторизованным пользователям. Для того, чтобы ограничить доступ к картинкам запрос должен идти не напрямую к картинке, а через контроллер. Соответственно вопрос, как это реализовать? Вижу три варианта. 1) И у клиентов и у сотрудников делать контроллер, который будет отдавать эти картинки. В редакторе делать ссылки на контроллер сотрудников, а при отображении задачи у клиента подменять адреса картинок на адрес контроллера у клиентов. 2) Делать 3й поддомен для файлов, делать авторизацию сквозную между доменами и соответственно использовать один контроллер. 3) Ссылки делаем на поддомен сотрудников, авторизацию клиентов делаем сквозной и соответственно с поддомена сотрудников будут отдаваться картинки клиентам. Как лучше сделать? Может есть ещё какой вариант?

Google
Eugene
28.09.2018
13:03:55
можно путь к картинке указывать относительный (без домена), общий контроллер вынести в папку common, а для клиентов и сотрудников унаследоваться от него

SiZE
28.09.2018
13:13:02
Всем привет! Такой вопрос... Имеем внутренний сайт компании. Два приложения для сотрудников и для клиентов (каждое на своём поддомене, каждое со своей авторизацией). Есть сущность "Задача", у которой есть описание. Задачи отображаются и у клиентов и у сотрудников. Для описания используется WYSIWYG-редактор. В редакторе могут быть добавлены картинки (загружены на сервер). Загружаемые картинки должны быть доступны ТОЛЬКО авторизованным пользователям. Для того, чтобы ограничить доступ к картинкам запрос должен идти не напрямую к картинке, а через контроллер. Соответственно вопрос, как это реализовать? Вижу три варианта. 1) И у клиентов и у сотрудников делать контроллер, который будет отдавать эти картинки. В редакторе делать ссылки на контроллер сотрудников, а при отображении задачи у клиента подменять адреса картинок на адрес контроллера у клиентов. 2) Делать 3й поддомен для файлов, делать авторизацию сквозную между доменами и соответственно использовать один контроллер. 3) Ссылки делаем на поддомен сотрудников, авторизацию клиентов делаем сквозной и соответственно с поддомена сотрудников будут отдаваться картинки клиентам. Как лучше сделать? Может есть ещё какой вариант?
ну для каждого приложения свой контроллер с картинками

Сергей
28.09.2018
13:14:49
ну для каждого приложения свой контроллер с картинками
если относительный путь сделать - то так и будет

SiZE
28.09.2018
13:14:55
Картинки если через REST например отдаешь, можно закостылить проверку в модели 'fields' => [ 'src' => function ($model) { if (!Yii::$app->user->isGuest) { return $model->src; } } ]

Алексей
28.09.2018
13:17:07
https://ru.stackoverflow.com/questions/886681/sphinx-%D0%B8-yii2-%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE-%D0%B7%D0%B0%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C-limit

Stas
28.09.2018
14:19:25
а есть здесь гуру регулярок?

Alexandr
28.09.2018
14:21:43
вот в чем сложность сразу написать вопрос? К чему эти "кто-то когда-то работал с тем-то?" "Есть кто сечет в том-то?". Бля, да может на ваш вопрос 50 человек ответ знают, но не считают себя гуру/спецом и предполагают что ответить не смогут. В итоге сидите без ответа

Stas
28.09.2018
14:25:45
нужна резулярка что бы удалить все что в квадратных скобках (но они могут идти что то типа [text] gfhbfgfg [text] dfgdfg [text]) /\[[^]]+\]/есть такая регулярка но она удаляет все между первым открывающим и послдедним закрывающей скобкой

Google
Stas
28.09.2018
14:26:08
а вто что бы имено незатрагивало текст нревхордящий в скоюки пока сделпать невышло

Сергей
28.09.2018
14:28:31
А вложенные могут быть?

Stas
28.09.2018
14:29:28
пока непредполагается

Сергей
28.09.2018
14:31:05
\[[^\]]*\]

попробуй такое

Stas
28.09.2018
14:31:36
неа выбирает только первое вхождение

остальные невидит

Сергей
28.09.2018
14:32:33
/\[[^\]]*\]/g

http://joxi.ru/QeAOzGHxlkgQ2o

https://www.regexpal.com/

Stas
28.09.2018
14:34:38
хм регекс показывает другое ок щас на живом тестону.

/\[[^\]]*\]/g
Спасибо прокатило. Странно тоьлко что пользовался всчегда https://regex101.com/ до этого неподводил никонгда

Fedor
28.09.2018
14:36:25
Мдэ

Сергей
28.09.2018
14:36:39
Флаг g может пропустил

Yet Another Stats
28.09.2018
14:37:20
Карма @predvoditelev стала 10

Stas
28.09.2018
14:45:25
Флаг g может пропустил
неа без флага тожде пашет нолрмальнро

хз главное покатило

Art
28.09.2018
17:13:59
Где лучше всего размещать обработчики событий? Например есть yii\web\User с событием EVENT_AFTER_LOGIN, срабатывает после того как юзер залогинился: Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600*24*30 : 0); 1-й варинат, в конфиге web.php указать коллбек 'on afterLogin' => function($e) {} 2-ой вариант, в любой модели которая будет совместно использована, например в app\models\LoginForm или app\models\User: public function init() { $u = Yii::$app->user; $u->on( $u::EVENT_AFTER_LOGIN, [$this, 'afterLogin'] ); } function afterLogin($event) { //тут, например, ставим статус онлайн юзеру, меняем дату последнего входа и т.д. } Если в LoginForm то тут вообще без события можно обойтись, тупо добавить методы в $this->login(), в начало или в конец 3-й вариант, либо вообще в другом месте.

Ad.x ??
28.09.2018
17:46:33
Где лучше всего размещать обработчики событий? Например есть yii\web\User с событием EVENT_AFTER_LOGIN, срабатывает после того как юзер залогинился: Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600*24*30 : 0); 1-й варинат, в конфиге web.php указать коллбек 'on afterLogin' => function($e) {} 2-ой вариант, в любой модели которая будет совместно использована, например в app\models\LoginForm или app\models\User: public function init() { $u = Yii::$app->user; $u->on( $u::EVENT_AFTER_LOGIN, [$this, 'afterLogin'] ); } function afterLogin($event) { //тут, например, ставим статус онлайн юзеру, меняем дату последнего входа и т.д. } Если в LoginForm то тут вообще без события можно обойтись, тупо добавить методы в $this->login(), в начало или в конец 3-й вариант, либо вообще в другом месте.
> Где лучше всего размещать обработчики событий? В специальных объектах, где ж еще. А регистрировать гденить в конфиге. Классы для этих объектов можно складировать куданить в папку отдельную типа EventSubsriver\Listener

Google
Ad.x ??
28.09.2018
17:46:40
шоб понятно было что там

Art
28.09.2018
18:12:21
> Где лучше всего размещать обработчики событий? В специальных объектах, где ж еще. А регистрировать гденить в конфиге. Классы для этих объектов можно складировать куданить в папку отдельную типа EventSubsriver\Listener
Как вариант. А это обычная практика в общий глобальный объект переносить, или лайфхак какой? И вообще, часто ли события в yii-проектах используются или обычно напрямую методы добавляются в другой метод типа композиции, за исключением компонентов самого фрейма с его событиями?

Ad.x ??
28.09.2018
18:20:46
Как вариант. А это обычная практика в общий глобальный объект переносить, или лайфхак какой? И вообще, часто ли события в yii-проектах используются или обычно напрямую методы добавляются в другой метод типа композиции, за исключением компонентов самого фрейма с его событиями?
Не совсем понятно что значит в "глобальный объект" переносить. сами события используются когда тебе это нужно. М.б. сервис какой делаешь, в который другие модули\сервисы внедряют свой код

Oleg
28.09.2018
18:50:41
Как вариант. А это обычная практика в общий глобальный объект переносить, или лайфхак какой? И вообще, часто ли события в yii-проектах используются или обычно напрямую методы добавляются в другой метод типа композиции, за исключением компонентов самого фрейма с его событиями?
Я в конфиге прописываю, в настройках контроллеров (через controllerMap) для модулей (1й вариант из вопроса выше). Сам недавно задавался этим вопросом, когда подключал компонент Usuario - там вообще в инструкции какая-то дичь написана с подключением отдельного require в стартовый скрипт. Вариант с конфигом мне подходит, так как конфиги на проектах у каждого свои, можно гибко настроить под каждый проект нужное действие, не затрагивая остальные файлы.

Art
28.09.2018
19:12:40
кто как хочет так и делает)

Mr.
28.09.2018
22:32:05
Привет, если кто не спит подскажите, нубский вопрос, но всё же как таймзону поменять? приложение basic, устанавливаю в \config\web.php, на первом уровне массива $config, и в components.formatter $config = [ ... 'timeZone' => 'Europe/Kiev' ... 'components' => [ 'formatter' => [ ... 'defaultTimeZone' => 'Europe/Kiev' ] ] ... ] подозреваю что траблы какие-то могут быть на стороне сервера - там centos 7 подскажите, кто знает, в чём могут быть проблемы

PowerAxis
28.09.2018
22:33:14
ну так и проверь на сервере

и в php.ini тоже можешь поставить

Mr.
28.09.2018
22:35:00
в php.ini не хочу - мне нид динамично менять в приложении где проверить на сервере хз, честно говоря через tzselect вроде что-то меняется, но при вызове date всё равно дата в UTC

PowerAxis
28.09.2018
22:36:40
date выводит системное время, что ты там динамично менять собрался - хз

Mr.
28.09.2018
22:37:58
date выводит системное время, что ты там динамично менять собрался - хз
а я походу понял я дёргаю консольное приложение, а редактирую конфиг для веба уже спать пора

Mr.
28.09.2018
22:38:02
сорри что тревожу :D



Oleg
29.09.2018
08:22:56
Кто нибудь использует Twig в связке с Yii2? Есть ли смысл переписывать вью файлы под этот шаблонизатор? Будет ли потеря в производительности?

Vadim
29.09.2018
09:12:12
Подскажите куда копать, мб кто-то занимался подобным. Есть фразы типа “купить машину мерседес с500 в рассрочку” Мне нужно выделить из этого теги: машина, мерседес, с 500, рассрочка.

Oligarch
29.09.2018
09:12:50
explode implode

Vadim
29.09.2018
09:14:42
explode implode
Не, в смысле слово “купить” мне не нужно, например. Еще там может быть не слово, а словосочетание. И в тег нужно выделить именно словосочетание. То есть, у меня лежит база тегов и я должен разбирать фразу согласно этой базы.

Oligarch
29.09.2018
09:16:56
['машина' => ['купить машину', 'машина', машиночко'', ...]

справа - то что может появляться в фразе - слева - возвращаемый тэг

Google
Oligarch
29.09.2018
09:17:50
возможно кто-то придумает интереснее что-то

не регулярку же писать :)

Admin
ERROR: S client not available

Oleg
29.09.2018
09:22:04
Зачем тебе шаблонизатор?
мне - нафиг не надо (я php уважаю). а вот тем, кто, возможно, будет работать с системой после меня, пригодился бы (всякие фронтендеры, верстальщики и прочие вампиры)

Oleg
29.09.2018
09:26:34
['машина' => ['купить машину', 'машина', машиночко'', ...]
Это похоже на поиск по словоформам. Я с таким не сталкивался, но слышал про такие вещи, как Sphinx и ElasticSearch, А если простым путём пойти - то вариант c массивом и перебором вариантов (просто очень много вариантов надо продумать, со всякими склонениями и опечатками)

стрёмная птичка))

Artyom
29.09.2018
09:28:53
такой вопрос. Есть внешняя бд, есть очереди, которые что-то долго думают, из-за чего внешняя бд имеет свойство послать всех типа нафиг мне такие медленные не нужны... Предыдущие человеки делали выборку по 10 записей, наверное таким образом пытались решить проблемы с отвалом соединения (по-моему только еще хуже сделали). Вопрос в чем, какой максимальный limit норм будет для пакета (пакетный хендлер уже свой, чтобы контролить посылы от база и начинать с оборванного места). Сейчас вообще думаю на кой черт там эти batch-limit-ы, поставил пока по умолчанию 1000записей, хочется больше.

Что, кто думает?

query->each() query->batch() либо падают, либо начинается жор памяти и опять падает, в чем проблема не понятно было, да и не разбирался. Потому что еще отслеживать на каком степе отвалилось над.

это стремнее)))

Блин, ну кто скажет? Запросы по сути... в основном не сложные. По мне 1000строк зараз норм, хочется 10000 поставить.

?

Artyom
29.09.2018
09:37:16
а если на чистом SQL написать?
хз, а смысл? Оно и так createCommand скорее всего делает, когда память переполняется вообще сложно сказать проблему, в лог как правило ничего не падает. На генераторах работает прекрасно.

Artyom
29.09.2018
09:38:48
вопрос не в этом, там и 1000 на выборку иногда нет, просто на сколько зло, выбрать 100 000 по 10 000 или 100 000 или 1000, ну и как бд-шка себя чувствовать будет. Мне кажется что 1000 строк для mysql вообще не проблема, можно и больше.

Google
Artyom
29.09.2018
09:39:58
кеширование запросов?
подробнее, думал об этом но где оно что и как вырубить не понятно и в любом случае batch вроде как не дает отследить последний степ, да и подозрительно ведет он если gone away...

кеширование запросов?
в yii2 или ты про бд или о чем вообще?

короче, ладно, либо я тут каламбур развел, либо никто толком и сам не знает как лучше...

Oleg
29.09.2018
09:42:43
в yii2 или ты про бд или о чем вообще?
если проблема с выжиранием памяти - то это в Yii2 надо кеширование посмотреть

Artyom
29.09.2018
09:47:02
ну я могу сказать в чем )
так, а чего все еще не рассказываешь? Я тут уже велосипед сделал в который Query скармливаешь и тот выбирает частями и в случае посыла реконекти, но что-то такое себе, мне кажется.

SiZE
29.09.2018
09:50:02
так, а чего все еще не рассказываешь? Я тут уже велосипед сделал в который Query скармливаешь и тот выбирает частями и в случае посыла реконекти, но что-то такое себе, мне кажется.
велосипед очень просто делается $limit = 100; $offset = 0; $query = (new Query())->limit($limit); while ($query->offset($offset)->all() as $batch) { $offset += $limit; foreach ($batch as $row) { } }

https://rmcreative.ru/blog/post/yii2-batch

Artyom
29.09.2018
09:50:24
примерно так же и я делаю.

только через генераторы.

но идея один в один.

ну и в случае обрыва, я знаю последний offset

Страница 1652 из 1721