1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Использование responseError и XenForo_Application::get('options')->

Тема в разделе "Вопросы и ответы по XenForo Framework", создана пользователем AfterWork, 13.10.2016.

Загрузка
  1. AfterWork

    AfterWork Местный

    Регистрация:
    14.04.15
    Сообщения:
    49
    Симпатии:
    0
    Версия XF:
    1.5.10
    Пишу плагинчик небольшой основываясь на базовом функционале ксены.
    Столкнулся с вопросами из серии а всё ли я делаю правильно. :)

    1. Мне нужно проверять введенные из формы данные (это я делаю в контроллере) и в случае неверного ввода вывожу сообщение через
    return $this->responseError(new XenForo_Phrase('фраза с ошибкой'), 404);
    Причем датарайтер вызываю потом оригинальный ксеновский. Правильно ли я делаю? А то в плагинчике на 20 строк уже набор фраз зашкаливает за 100. Как-то смущает... :(

    2. Опять же о фразах. Из полей формы берутся значения к которым добавляется стандартный текст (для каждого поля свой) и все это месиво отформатированное пишется в одно поле БД.
    Хранить этот стандартный текст в настройках плагина можно или в опциях или во фразах.
    то есть формировать массив месива или через:
    $STDpole = XenForo_Application::get('options')->STDpole;
    $name[mesivo] = $input[pole].$STDpole;
    или
    $STDpole = new XenForo_Phrase('STDpole');
    $name[mesivo] = $input[pole].$STDpole;
    Всё это происходит в контрллере.
    Вроде как и так и так правильно. Но ужасает количество фраз которое получается. Особенно потому что если это всё делать через опции то добавятся еще и фразы для админки. :ninja:
     
  2. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Количество фраз определяется лишь самой задачей. Поэтому Вам виднее, нужно ли быть таким многословным :)
    Вывести сообщение об ошибке со своей фразой - почему бы и нет? Это нормально. Только причем тут датарайтер? Если ошибка, то по идее вообще ведь ничего не должно сохраняться?
    Я весть текст храню во фразах. В настройках должны быть все же параметры, а не голый текст. Поэтому в данном случае использовал бы второй вариант. Но вот что не понятно. Зачем в базе хранить избыточные данные в виде повторяющегося текста? Не проще ли потом при использовании "месиво" добавлять нужный текст? То есть ну и храните просто сами входные данные (хоть весь input сериализуйте. А при извлечении из базы уже добавляйте Ваш стандартный текст. Даже если это будет потом использоваться вне XenForo, то никто и там не мешает добавить нужный текст. Ведь он неизменный.
     
    Mirovinger и Kolya groza morey нравится это.
  3. AfterWork

    AfterWork Местный

    Регистрация:
    14.04.15
    Сообщения:
    49
    Симпатии:
    0
    Версия XF:
    1.5.10
    Я просто несколько сумбурно отписался. :) Действительно при ошибке датарайтер совершенно не при чем.
    Имелось ввиду что в плагине чисто своего используется только контроллер, шаблон и роуты. Модель и датарайтер я вызываю оригинальные ксенфоровские.

    Я как раз использовал другой вариант. Но тут это как раз продиктовано задачей. Тексты являют собой как раз настройки плагина. И тянуть их из фраз это как минимум создать геморрой тому кто плагин будет настраивать под себя. Но это я понял немного позже чем написал пост. :)

    Спасибо что откликнулись. Был бы очень признателен если бы Вы немного помогли советом по другому моему вопросу в этом-же разделе.
     
  4. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    По маршрутам и ссылкам я не подскажу, так как с этим не возился.
     
  5. AfterWork

    AfterWork Местный

    Регистрация:
    14.04.15
    Сообщения:
    49
    Симпатии:
    0
    Версия XF:
    1.5.10
    А жаль. Но все равно спасибо.
     

Поделиться этой страницей