Commit Graph

81 Commits

Author SHA1 Message Date
Bharat Mediratta
dd0e69ba3a Delete any comments associated with deleted items 2009-04-23 01:32:35 +00:00
Bharat Mediratta
cdf873f1b3 Remove extra blank line. 2009-04-05 17:50:57 +00:00
Tim Almdal
8082060434 Forgot to remove a back tick 2009-03-18 01:24:54 +00:00
Tim Almdal
8e1817d4e4 Couple of sql statements that had incorrect prefix handling or no
prefix handling.
2009-03-18 01:20:30 +00:00
Tim Almdal
c04ff8e02f Change the pattern to identify tables that need prefix substitution to
mirror the drupal pattern of using braces {}.
2009-02-28 06:37:28 +00:00
Tim Almdal
bd15853708 This implements table prefix for all the queries in core, user, exif,
tag, search, comment and notification modules (Ticket #68)
2009-02-27 21:07:18 +00:00
Bharat Mediratta
f5169dd451 Leave the comments title around, but add the "Be the first to comment"
message below it.
2009-02-22 20:16:56 +00:00
Bharat Mediratta
a83b6e9180 Adjust the title based on whether or not there are comments. 2009-02-22 20:09:17 +00:00
Chad Kieffer
9bbe8053c7 Added a show comment form button. Add comment form is revealed when the button is clicked. Used jQuery UI Effect to .highlight() to bring attention to newly added comments. Also added a named anchor to our block library to allow direct linking/scrolling to those blocks on the page. 2009-02-12 07:07:11 +00:00
Bharat Mediratta
a30c28b5fc Make the comment -> recaptcha binding happen via an event dispatch as
opposed to a direct call.
2009-01-27 08:21:54 +00:00
Tim Almdal
bfb5c42124 Adding Recaptcha to the comment module. Recaptcha integration consists of a Form_Recaptcha class derived from Form_Input that can be added to any class that requires Recaptcha verfication. 2009-01-26 16:12:57 +00:00
Tim Almdal
a8233ed979 Undo the adding underscores to the id on forge generated forms 2009-01-25 06:28:04 +00:00
Tim Almdal
cbff78daa8 Supply a form id on all forms. This id can be used by modules other
than the originating module to provide additional functionality to the form.
2009-01-24 17:26:47 +00:00
Bharat Mediratta
1cc7b3f4be Don't force validation anymore; we're clearing the form properly in
the controller on successful add.
2009-01-18 23:27:26 +00:00
Bharat Mediratta
7b68ca9946 Refactor dashboard -> block_manager since it'll manage blocks site
wide, not just in the dashboard.
2009-01-18 06:55:04 +00:00
Bharat Mediratta
3d1ea2904d Rename theme callback helpers from xxx_block to xxx_theme to make room
for us to rename the dashboard helper to be a block helper since
sidebar blocks are not just in the dashboard.
2009-01-18 05:01:00 +00:00
Bharat Mediratta
d568a1e9fd Implement relevance ranked boolean searching on a full text index of
item and comment data.  Whew!

It's not pretty yet.  And you have to manually update the index
currently in admin/maintenance.  But it works.
2009-01-17 00:52:50 +00:00
Bharat Mediratta
2920640c2b Fix validation when adding new comments.
Fire off the appropriate item_related_update events as appropriate.
2009-01-16 04:06:03 +00:00
Bharat Mediratta
f3ba69c1d6 Make sure that helper functions are all static. Add new
File_Structure_Test to make sure we don't regress.

According to the PHP docs, the "public" keyword is implied on static
functions, so remove it.  Also, require private static functions to
start with an _.

http://php.net/manual/en/language.oop5.visibility.php
2009-01-14 04:12:02 +00:00
Bharat Mediratta
c5f77510a7 Refactor dashboard block handling out into a dashboard helper so that
module installers don't have to know the grotty details of how it works.
2009-01-12 08:51:54 +00:00
Bharat Mediratta
bc421a615a Implement deleting dashboard blocks.
* Refactor blocks so that they have a separate id vs css_id.  This way
  we can have a unique identifier for each visual block.

* Store blocks with a random id as their unique identifier

* Add Admin_Dashboard::remove_block() and modify
  themes/admin_default/views/block.html.php to call it when you click the
  remove box.
2009-01-12 08:26:38 +00:00
Bharat Mediratta
ae73ef3d57 Updated for new Form_Submit API.
OLD:
  $form->submit("Foo")  -->  <input type="submit" value="Foo">

New:
  $form->submit("foo_button")->("Foo") --> <input type="submit" name="foo_button" value="Foo">

Mostly we don't care what the button is so we leave the name blank.
2009-01-12 07:50:04 +00:00
Bharat Mediratta
b19729435c Dashboard blocks are now data driven, and you can add new blocks to
both the sidebar and the center content area from a dropdown at the
top of the dashboard sidebar.
2009-01-12 07:39:53 +00:00
Andy Staudacher
3df7889128 Increase length for user-agent and accept fields in comments table.
And truncate strings before passing them to MySQL.
2009-01-11 05:36:31 +00:00
Bharat Mediratta
431a831f48 Update tests to match the way that we store server variables in the
comment.  Get rid of comment::update tests since, comment::update is
gone.

Found a bug in comment::create() in the process.. yay unit tests!
2009-01-11 02:58:32 +00:00
Bharat Mediratta
44bfc1c6a4 Auto-delete 7-day old spam/deleted comments. 2009-01-10 11:25:33 +00:00
Bharat Mediratta
a7feeb576f 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.
2009-01-10 00:34:23 +00:00
Andy Staudacher
a631fe29f3 i18n refactoring: Rename all _() (reserved by gettext) calls to t().
- And refactor printf to our string interpolation / pluralization syntax
- Also, a slight change to the translations_incomings table, using binary(16) instead of char(32) as message key.
2009-01-08 17:13:06 +00:00
Bharat Mediratta
8bf388a6f6 Incremental improvement in comment moderation:
1) Akismet now detects when we change a comment's published state and submits
   info back to akismet.com as appropriate

2) We now show 4 different queues (all / approved / unapproved / spam) and let you
   move messages between the queues

3) We track and display "spam caught" stats.

4) You can delete comments entirely.
2009-01-08 02:50:23 +00:00
Bharat Mediratta
01dcbbcda5 Add very basic comment listing which shows the different queues
(approved, unapproved, spam).
2009-01-07 09:08:53 +00:00
Tim Almdal
4645c459e1 Add a catch around the call to the spam filter and if the spam filter check fails set the comment
state to unpublished.
2009-01-06 14:36:20 +00:00
Bharat Mediratta
625d078557 Extend Theme_View to look in modules for photo and album menus. Move
"view comments" link to the comment menu helper.
2009-01-04 07:40:37 +00:00
Bharat Mediratta
8595b75d9b Restructire site admin menu a bit:
Rename menu "General Settings" -> "Settings"
  Rename "Comments Moderation" -> "Comments"
  Move "Content" -> "Configure Spam Filtering" -> "Settings" -> "Spam Filtering"
2009-01-02 20:18:44 +00:00
Tim Almdal
9644dcc480 1) Removed the published boolean database field
2) Replaced it with a string field (state) which contains the state of the comment. i.e. published, unpublished, spam.  Unsure if we want to create constants in comments.php to standardize the valid values... thoughts?
3) synchronized the spamfilter and comment unit tests with the current functionality
2009-01-02 18:54:37 +00:00
Tim Almdal
206edb59b9 Update the api to allow each driver to specify validation rules and generate the appropriate form content. Add a callback so if the driver changes in the driver selection dropdown, then the api form fields are updated with the new form fields for that driver 2009-01-02 18:31:23 +00:00
Tim Almdal
517ddf5388 First look at the spam filter module. At this point, it does not connect to any spam services. But you can go into the admin screen and choose the driver and set the api key. 2008-12-31 06:19:35 +00:00
Andy Staudacher
1cacf769d1 Make the url parameter optional in comment::create() (according to the comment model) 2008-12-30 21:00:47 +00:00
Bharat Mediratta
f29aad03a6 Make some columns smaller so that multi-column keys don't exceed 1024
bytes on some systems.
2008-12-30 01:37:09 +00:00
Bharat Mediratta
1b53073b55 Mark the "website" field as hidden. 2008-12-29 23:36:58 +00:00
Tim Almdal
69603ede7a Implemented bharat's suggestions to the comment module in preparation for the spam_filter module 2008-12-29 21:09:44 +00:00
Tim Almdal
95f1440ef2 Changes to the comment module to support spam filtering. Basically added two columns to the comment table. The url of the author's web site(default null) and a flag to indicate that the comment is visible (default true).
The comment block has changed to only display comments that are visible.

And there is code added to call the spam_filter helper if the spam_filter module is installed.
2008-12-29 19:37:19 +00:00
Bharat Mediratta
3c0be5156b url::site is implicit in Forge actions, don't specify it a 2nd time 2008-12-29 18:38:40 +00:00
Bharat Mediratta
fdc0f83024 Big round of normalization of the way that our controllers
communicate.  Almost all controllers now use JSON to speak to the
theme when we're dealing with form processing.  This means tht we only
send the form back and forth, but we use a JSON protocol to tell the
browser success/error status as well as the location of any newly
created resources, or where the browser should redirect the user.

Lots of small changes:
1) Admin -> Edit Profile is gone.  Instead I fixed the "Modify Profile" link
   in the top right corner to be a modal dialog

2) We use json_encode everywhere.  No more Atom/XML for now.  We can bring those
   back later, though.  For now there's a lot of code duplication but that'll be
   easy to clean up.

3) REST_Controller is no longer abstract.   All methods its subclasses should create
   throw exceptions, which means that subclasses don't have to implement stubs for
   those methods.

4) New pattern: helper method get_add_form calls take an Item_Model,
   not an id since we have to load the Item_Model in the controller
   anyway to check permissions.

5) User/Groups REST resources are separate from User/Group in the site
   admin.  They do different things, we should avoid confusing overlap.
2008-12-25 05:12:46 +00:00
Bharat Mediratta
0bb82b7621 Gut the comment module and simplify it. Stop trying to support Atom
and XML for now, we have no driver for those technologies so anything
we implement is not going to be sufficiently tested and therefore
it'll be broken.

Change all comment functions to return JSON and update the JS to deal
purely with JSON.  This is our new protocol for talking to the browser
and it should be flexible and portable.

Create comments.html.php.  This duplicates comment.html.php, but will
be more efficient for rendering comments since we won't be creating a
new View for every comment we render.
2008-12-25 00:47:40 +00:00
Bharat Mediratta
78ce8615f3 Implement the "recent comments" block with real data. 2008-12-21 02:02:41 +00:00
Bharat Mediratta
81e87dfecd Change "datetime" to "created" to give some semantics to this field. 2008-12-21 01:29:25 +00:00
Bharat Mediratta
b933d1a170 Move Recent Comments into its own block. 2008-12-20 01:25:03 +00:00
Bharat Mediratta
f5bc55e72d Add labels to the form groups. 2008-12-18 22:35:16 +00:00
Bharat Mediratta
c67234974d Refactor site admin menu into a theme function and build the menus in
the various modules.  In the process, rename xxx_menu::site_navigation() to just
xxx_menu::site().  And add xxx_menu::admin().

The menus are the same as before, but I changed the HTML to be
consistent with the way that we do it in the regular site, and this
broke the superfish styles.  I don't know how to fix this.. help me
Chad!
2008-12-18 07:32:34 +00:00
Bharat Mediratta
8b6ed6c477 Create module::event() which runs Gallery events. It works by
convention.  To respond to the "photo_created" event in the gmaps
module, you create modules/gmaps/helpers/gmaps_event.php containing
class gmaps_event which has function photo_created.

Renamed all events from gallery.foo.bar to foo_bar
Updated tag module to use new convention.
2008-11-28 19:37:01 +00:00