Big set of changes to comments, with related changes to akismet and

user modules.

* Don't delete vars when we delete a module.  This makes
  reinstalling a module a lot easier.

* Add user::lookup() as the preferred way to load a user, so that
  other modules don't delve into the user module (that'd be a
  problem when we swap out user modules)

* Notify site admins if Akismet is not fully configured

* Bundle all server variables into the comment so that if/when we
  re-check the comment, we are not using the server info from the
  site admin's request.

* Update Akismet to grab request context data from the comment

* Pre-seed comment fields if we have a logged in user.  Update
  comment::create() API to clarify it for this.

* Delete comment::update(), that's a controller function.

* Add url to User_Model

* Add author_name() author_email() and author_url() to
  Comment_Model.  It'll return the appropriate values depending
  on whether the comment was left by a logged in user or a guest.

* Use resetForm() instead of clearForm() when we reload the
  comment form after ajax submit, this way we preserve the
  pre-seeded values.

* In the user profile page, ignore blank passwords.
This commit is contained in:
Bharat Mediratta
2009-01-10 00:34:23 +00:00
parent 48e73e9081
commit a7feeb576f
16 changed files with 224 additions and 146 deletions

View File

@@ -18,13 +18,38 @@
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
class Comment_Model extends ORM {
var $rules = array(
"author" => "required",
"email" => "valid_email",
"url" => "valid_url",
"text" => "required");
function item() {
return ORM::factory("item", $this->item_id);
}
function author() {
return user::lookup($this->author_id);
}
function author_name() {
$author = $this->author();
if ($author->guest) {
return $this->guest_name;
} else {
return $author->full_name;
}
}
function author_email() {
$author = $this->author();
if ($author->guest) {
return $this->guest_email;
} else {
return $author->email;
}
}
function author_url() {
$author = $this->author();
if ($author->guest) {
return $this->guest_url;
} else {
return $author->url;
}
}
}