Skip to content

Instantly share code, notes, and snippets.

@Titoratus
Titoratus / [OctoberCMS] Изменение поля на страницах update, preview, create
Created April 25, 2019 14:36
[OctoberCMS] Изменение поля на страницах update, preview, create
В fields.yaml отдельно прописать my_field@update - то есть состояние кнопки при update.
Пример:
my_field:
type: text
...
my_field@update:
type: text
disabled: true
...
@Titoratus
Titoratus / [OctoberCMS] Связь таблиц
Created April 27, 2019 08:51
[OctoberCMS] Связь таблиц
Если нужна связь типа "Запись имеет комментарий(ии)", то есть без pivot таблицы,
а просто таблица комментариев имеет доп. столбец с id записи, то:
1. модели Запись прописываем:
public $hasMany = [
'comments' => 'author\myplugin\Models\Comment'
];
2. Контроллеру Записи прописываем:
public $implement = ['Backend\Behaviors\RelationController'] и public $relationConfig = 'config_relation.yaml';
@Titoratus
Titoratus / [OctoberCMS] Vue.js
Last active February 10, 2020 01:54
[OctoberCMS] Vue.js
Устанавливаем October (установщиком или через Composer)
В папке с October устанавливаем пакет vue-cli (npm i -g vue-cli) и создаём vue приложение (vue init webpack my-app),
внутри папки my-app выполняем (npm i) и в итоге npm run dev (консоль и так подскажет)
Внутри my-app - npm i --save-dev axios (для запросов get, post к api)
Axios — это JavaScript-библиотека для выполнения либо HTTP-запросов в Node.js, либо XMLHttpRequests в браузере.
.htaccess (шоб axios мог получать данные):
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
@Titoratus
Titoratus / [OctoberCMS] Загрузка файлов через Frontend для модели
Created June 10, 2019 11:24
[OctoberCMS] Загрузка файлов через Frontend для модели
function onSubmit()
{
// get all post data
$data = post();
$form = YourModel::make($data);
// set specific field as we need
$form->form_files = Input::file('form_files');
$form->save();
// Note:
@Titoratus
Titoratus / [OctoberCMS] Вывод картинок record'а на обычной странице
Last active May 19, 2019 09:57
Вывод картинок record'а на обычной странице
Модель::all()->last()->vlk_file->getPath();
Другой вариант:
// Это в обычной функции
$images = array();
// $records равен запросу в бд с выборкой чего-либо
foreach($records as $index => $record)
$images[$index] = \System\Models\File::where('attachment_id', $record->id)->get();
@Titoratus
Titoratus / [OctoberCMS] Кастомные кнопки в preview, update, create
Created April 25, 2019 15:06
[OctoberCMS] Кастомные кнопки в preview, update, create
В любой непонятной ситуации - dd($this).
Например, кнопка редактирования на странице preview:
<a href="<?= Backend::url('estar/hotel/records/update', $this->params[0]) ?>" class="btn btn-default">
Редактировать
</a>
@Titoratus
Titoratus / [OctoberCMS] Cross reference table
Created April 21, 2019 17:51
[OctoberCMS] Cross reference table
https://octobercms.com/docs/database/relations#many-to-many
Таблица, которая нужна для связывания записей одной таблицы с записями другой называется сross reference table.
Нужно получить значение из другой связанной таблицы? Прописываем для той модели, записи которой выводим:
public $belongsToMany = [
'phones' => ['estar\hotel\Models\Phone', 'table' => 'estar_hotel_users_phones']
];
@Titoratus
Titoratus / [OctoberCMS] Валидация нескольких полей за один раз
Last active April 21, 2019 11:38
[OctoberCMS] Валидация нескольких полей за один раз
use \October\Rain\Exception\ValidationException;
class myModel extends Model
{
public function beforeSave()
{
// date_in, date_out - поля с датами!
$start = $this->date_in;
$end = $this->date_out;
$check = Db::table('mytable')
@Titoratus
Titoratus / [OctoberCMS] Значение purged поля ПОСЛЕ создания модели
Last active April 21, 2019 11:37
[OctoberCMS] Значение purged поля ПОСЛЕ создания модели
class MyModel extends Model
{
...
public function afterCreate()
{
// вот значение purged поля _extras
// подчкёркивание (_) означает, что это поле (которое в форме) не будет сохраняться в данной модели MyModel.
// но я хочу получить его для сохранения в другую модель.
$val = $this->getOriginalPurgeValue('_extras');
@Titoratus
Titoratus / [OctoberCMS] Как изменить текст switchbox'а
Last active April 21, 2019 11:37
[OctoberCMS] Как изменить текст switchbox'а
В билдере этих свойств нет, поэтому лезем в fileds.yaml в папке модели и добавляем (свой текст):
on: Да
off: Нет