'/^[^\n\r\t]+$/', 'body' => '/.+/', ); function getField($key) { if ($key == 'channel_id') { return 'ct.channel_id'; } else { return "$key"; } } function getPrimaryKey() { return 'thread_id'; } function getSelectTables() { return 'k4_threads t, k4_channels_threads ct'; } function getSelectWhere() { return 'ct.thread_id=t.thread_id'; } function getTable() { return 'k4_threads'; } } class ChannelThreadsRecord extends FARecord { var $_channel; function save() { $ret = parent::save(); if ($ret) { $sql = "INSERT INTO k4_channels_threads values (?,?)"; $this->_dba->executeUpdate($sql, $this->_channel->getId(), $this->getId()); // TODO:{[Ugh, I wish I didn't have to run SQL like this anymore[save[ChannelThreadsRecord} $sql = "UPDATE k4_channels c, k4_channels_threads t"; $sql .= " SET c.num_threads=c.num_threads+1, c.recent_id=?, c.recent_type=?, c.recent_uid=?, c.recent_user=?, c.recent_created=?, c.recent_name=?"; $sql .= " WHERE t.thread_id=? AND t.channel_id=c.channel_id"; $this->_dba->executeUpdate($sql, $this->getId(), 'thread', $this->get('user_id'), $this->get('user_name'), $this->get('created'), $this->get('name'), $this->getId()); } return $ret; } function setChannel(&$channel) { $this->_channel = &$channel; } function setUser(&$user) { $this->set('user_id', $user->getId()); $this->set('user_name', $user->get('name')); } } class ChannelThreadsIterator extends FARecordSet { var $_user; function setUser(&$user) { $this->_user = &$user; } } ?>