Так подробно остановиться на очень ценную точку jous сделал, Сортировка, которую вы хотите использовать, чтобы сделать несколько точек данных в одном столбце базы данных. do было бы простым, быстрым, & эффективным, в sql-запросе (используя ту же конструкцию jous, но без операции с строкой).
Чтобы изменить эту таблицу, просто добавьте следующие столбцы в таблице вместо автора:
ПгвЬЫате
Lastname
MiddleName
Чтобы показать вам, как просто это (и делает его еще проще) вот код, чтобы сделать это:
ALTER TABLE [tablename]
ADD COLUMN firstname varchar(32)
ADD COLUMN lastname varchar(32)
ADD COLUMN middlename varchar(32)
DROP COLUMN author;
Затем код MODx PHP будет:
$c->sortby('lastname','ASC');
Так что это довольно легко сделать ... и если вам по-прежнему нужно поддерживать другие ссылки на автора, тогда создайте представление, которое возвращает автора таким же образом, как и не измененная таблица, как показано ниже (ПРИМЕЧАНИЕ: вам все равно придется менять ссылка имя таблицы, так что указывает на взгляд вместо таблицы ... если это будет большой проблемой, то переименовать таблицу и назовите вид такой же, как старый стол был ...):
CREATE VIEW oldtablename AS
SELECT firstname+' '+middlename+' '+lastname' ' AS author
FROM newtablename;
ПРИМЕЧАНИЕ. Если вы создаете представление, подобное приведенному выше, то, вероятно, стоит потратить время, чтобы добавить все остальные столбцы из новой таблицы (несколько столбцов мультимедиа изображений &). ПРИМЕЧАНИЕ.2: Я добавлю, однако, что в идеале это будет в отдельных таблицах с таблицей соединений к этому ... но если бы я был на вашем месте, я мог бы согласиться, что целесообразность может превзойти полезность & будущего юзабилити ....однако, если вы поместили их в разные таблицы, вы можете добавить эти таблицы в это представление (как присоединение к новой таблице) и по-прежнему сможете поддерживать существующий код, который зависит от старой таблицы &.
В то время как все это довольно легко сделать и будет работать с небольшими корректировками от вас, последняя часть этого процесса позволяет изменить ваши пользовательские изменения таблиц с помощью xPDO. Если вам уже комфортно с этим и знаете, что делать, тогда здорово. Если вы не это, безусловно, лучший материал на тему: http://bobsguides.com/custom-db-tables.html
(Да, это стоит получить код Боба как фрагмент кода, так что все это может быть просто создан для вас, как только изменения базы данных были сделаны ... (помните, что вам, скорее всего, нужно будет удалить существующий файл схемы & связанных с xpdo файлов классов & файлов карт, прежде чем запускать код генерации Боба, или ваши изменения с тем же именем таблицы, что и представление, не вступят в силу) .
Надеется, что это помогает (или следующему человеку, чтобы задать подобный вопрос)
спасибо -.. это работает также поблагодарить вас за давая советы по производительности. Я не хочу переписывать остальную часть сайта - это уродливо, но оно работает. – Johannes
Другое примечание для всех, кто это читает: MODx позволяет вам очень легко нормализовать ваши данные в отдельные таблицы, в вашем случае для изображений и носителей. Это позволит вам добавлять неограниченное количество изображений и медиа-полей для каждого автора и ускорить поиск, например, в этом вопросе. Их можно легко получить с помощью объединений (например, '$ c-> innerJoin ('ImageClassName', 'ImageClassAlias');') – okyanet