суббота, 26 января 2008 г.

как устроен комментарий в wordpress

В каталоге wordpress в папке wp-includes есть файл comment.php, в котором находятся функции управления комментариями. Из чего же состоит комментарий? Перечислю: индификаторы - комментария, записи и пользователя; время и время по Гринвичу, E-Mail, IP адрес, агент, имя, адрес сайта, текст комментария, статус подтверждения (а также спам), тип комментария. Я все таки нашел файл schema.php в каталоге wp-admin/includes, в котором создаются все таблицы wordpress, вот как создается таблица с комментариями:

CREATE TABLE $wpdb->comments (
comment_ID bigint(20) unsigned NOT NULL auto_increment,
comment_post_ID int(11) NOT NULL default ‘0′,
comment_author tinytext NOT NULL,
comment_author_email varchar(100) NOT NULL default ”,
comment_author_url varchar(200) NOT NULL default ”,
comment_author_IP varchar(100) NOT NULL default ”,
comment_date datetime NOT NULL default ‘0000-00-00 00:00:00′,
comment_date_gmt datetime NOT NULL default ‘0000-00-00 00:00:00′,
comment_content text NOT NULL,
comment_karma int(11) NOT NULL default ‘0′,
comment_approved enum(’0′,’1′,’spam’) NOT NULL default ‘1′,
comment_agent varchar(255) NOT NULL default ”,
comment_type varchar(20) NOT NULL default ”,
comment_parent bigint(20) NOT NULL default ‘0′,
user_id bigint(20) NOT NULL default ‘0′,

Да уж упустил - поле карма, есть и такое в wordpress. Получается, что мне некуда поместить сессионный ключ доступа к комментарию. А если можно было это сделать, то все получалось бы очень красиво: сессионный ключ был бы аналогом ID, только для глобального использования (вспоминаю openid) - например md5 строка. Тогда можно обойтись парой - ключ (пароль) домена и ID в wordpress.

Что же касается ссылок, то такая таблица в wordpress уже есть, но вот дополнительного поля в ней не предусмотрено. Очевидно, придется создавать для работы плагина таблицу. Я бы этого не хотел делать, но такая практика уже существует - ну например плагин download counter или maxsite ushki.

Что же должно быть в этой таблице кроме адресов блогов и их ключей доступа и статуса (типа друг, оппонент, спамер)? например адрес xml-rpc сервера, если он какой то не такой как у всех: зарезервирую я это поле, по умолчанию будет пустой строкой. Статус блога может быть еще не проверен (или по другому не подтвержден), предлагает дружбу, отказано в дружбе, поссорились. Какие еще можно придумать фичи для блогов?

Так что кроме разделенных комментариев можно будет еще дружить блогами, по примеру того как это сделано в livejournal.com и ya.ru.

Здесь можно оставить свои комментарии. Выпуск опубликован при помощи плагина subscribe.ru and blogspot.com cross poster

Комментариев нет: