nond
Проверенные
- Сообщения
- 263
- Реакции
- 109
- Баллы
- 8,145
Стандартная система рейтинга заточена под 5 звезд.
Проверка на установку значения от 1 до 5 находится в .php файлах разных аддонов:
Вся соль кроется в этой строке 'max' => 5
Естественно, при ручной замене в исходнике .php значения с 5 на 'max' => 10 дает результат, но:
В связи с этим возникает несколько проблем:
1. При обновлении плагина файл заменяется и прямые правки пропадают.
2. Инспектор файлов системы орёт красным цветом на "Неожиданное содержание" с указанием ссылок на эти файлы
3. Прямое редактирование .php - не комильфо.
Каким образом можно реализовать такие изменения в нескольких файлах?
Находится это в файлах в описаниях функции примерно так:
Проверка на установку значения от 1 до 5 находится в .php файлах разных аддонов:
src\addons\XenAddons\AMS\Entity\ArticleRating.php
src\addons\XenAddons\Showcase\Entity\ItemRating.php
src\addons\XenAddons\UBS\Entity\BlogEntryRating.php
src\addons\XFMG\Entity\Rating.php
src\addons\XFRM\Entity\ResourceRating.php
Вся соль кроется в этой строке 'max' => 5
'rating' => ['type' => self::UINT, 'required' => true, 'min' => 1, 'max' => 5],
Естественно, при ручной замене в исходнике .php значения с 5 на 'max' => 10 дает результат, но:
'rating' => ['type' => self::UINT, 'required' => true, 'min' => 1, 'max' => 10],
В связи с этим возникает несколько проблем:
1. При обновлении плагина файл заменяется и прямые правки пропадают.
2. Инспектор файлов системы орёт красным цветом на "Неожиданное содержание" с указанием ссылок на эти файлы
3. Прямое редактирование .php - не комильфо.
Каким образом можно реализовать такие изменения в нескольких файлах?
Находится это в файлах в описаниях функции примерно так:
PHP:
public static function getStructure(Structure $structure)
{
$structure->table = 'xf_xa_ams_article_rating';
$structure->shortName = 'XenAddons\AMS:ArticleRating';
$structure->primaryKey = 'rating_id';
$structure->contentType = 'ams_rating';
$structure->columns = [
'rating_id' => ['type' => self::UINT, 'autoIncrement' => true, 'nullable' => true],
'article_id' => ['type' => self::UINT, 'required' => true],
'user_id' => ['type' => self::UINT, 'required' => true],
'username' => ['type' => self::STR, 'maxLength' => 50,
'required' => 'please_enter_valid_name'
],
'rating' => ['type' => self::UINT, 'required' => true, 'min' => 1, 'max' => 5],
'title' => ['type' => self::STR, 'default' => '', 'maxLength' => 100],
'rating_date' => ['type' => self::UINT, 'default' => \XF::$time],
'rating_state' => ['type' => self::STR, 'default' => 'visible',
'allowedValues' => ['visible', 'moderated', 'deleted']
],
'is_review' => ['type' => self::BOOL, 'default' => false],
'pros' => ['type' => self::STR, 'default' => ''],
'cons' => ['type' => self::STR, 'default' => ''],
'message' => ['type' => self::STR, 'default' => ''],
'author_response_contributor_user_id' => ['type' => self::UINT, 'default' => 0],
'author_response_contributor_username' => ['type' => self::STR, 'maxLength' => 50, 'default' => ''],
'author_response' => ['type' => self::STR, 'default' => ''],
'custom_fields' => ['type' => self::JSON_ARRAY, 'default' => []],
'warning_id' => ['type' => self::UINT, 'default' => 0],
'warning_message' => ['type' => self::STR, 'default' => '', 'maxLength' => 255],
'is_anonymous' => ['type' => self::BOOL, 'default' => false],
'attach_count' => ['type' => self::UINT, 'default' => 0],
'last_edit_date' => ['type' => self::UINT, 'default' => 0],
'last_edit_user_id' => ['type' => self::UINT, 'default' => 0],
'edit_count' => ['type' => self::UINT, 'default' => 0],
'ip_id' => ['type' => self::UINT, 'default' => 0],
'embed_metadata' => ['type' => self::JSON_ARRAY, 'nullable' => true, 'default' => null]
];