Как в MODX установить свой цвет к каждому блоку с превью?
Александр здравствуйте, нужно каждому блоку с превью задать свой цвет, понимаю что можно создать тв и прописывать там класс но этот простой вариант, мне видится не совсем оптимальным и правильным, возможно я и не прав конечно, какие есть варианты для реализации данной задачи и какой из них лучший и менее затратный в плане оптимизации, если возможно то почему?
но возможно, есть более правильное решение для этого, какие вообще есть варианты для реализации такой «схемы»? Если ресурсов тысячи слишком много кода, как можно это реализовать без лишней нагрузки?
Если же цвет назначается в зависимости от какой-то логики, то в этом случае можно будет попробовать обойтись без TV. Здесь всё зависит от задачи.
Если нужно например, чётные id выводить одним цветом, а нечётные другим — то в этом случае конечно TV не нужно. Также, например, не нужно будет использовать TV, если цвет ресурса зависит от секции, в которой этот ресурс расположен. Если конечно секций не очень много. В этом случае можно прописать для ресурсов, расположенных в одних секциях, выводить превью одним цветом, а для ресурсов в других секциях — другим цветом.
Если использовать тв, образно говоря имеем 1000 ресурсов, у каждого ресурса свой цвет как отразиться на производительности сайта, примерно?
Если использовать сложное решение, создать своё дополнение, по отношению к первому способу какие преимущества в плане производительности или только тестить и на вскидку не прикинуть?
Для производительности лучше конечно не в TV, а использовать extendresource, тем более что он уже есть. Туда добавить ещё одно поле.
Если, например использовали бы, TV, и их было бы штук 7, то записей в таблице было бы гораздо больше 7 * 3000 = 21000.
Про количество полей, это наверно шутка. Ну, даже если их будет, 50, всё будет работать хорошо. Для получения всех этих полей, связанных с конкретным ресурсом, потребуется всего один запрос, а не 50, если бы, например, использовали TV.
Но, по-хорошему нужно всё измерять. Если какое-то место не нравится, и есть видение как это улучшить, то всегда стоит пробывать. Потом сравнить с тем что было и принять решение какой код оставить.
А для решения другой задачи можно сделать новый компонент и соответственно создать для него уже другое количество нужных таблиц.
Далее, например, при создании нового сайта, вы очень просто уже сможете добавить функционал посредством установки нужных компонентов.
Если это не нужно и если имеющаяся таблица позволяет вам осуществить то, что задумали, то тогда новые таблицы в большинстве случаев создавать не нужно.