Users are finding this confusing.

When creating new ads they see "Define expiration date automatically, based on the ad category." with one radio button. And when editing an ad they see the same line of text as an option. Their immediate assumption is that there is something missing in the node/add form with only one radio button. Plus the statement seems to imply that action is required. If no action is taken below then at the very least this should probably be reworded. Something like "Expiration date set automatically based on the ad category." But, definitely hide the radio button.

I think it would be more ideal to display "Reset expiration" as the text on the edit nodes instead of "Define expiration date automatically, based on the ad category." And on the create node display something like "This ad will be set to expire automatically based on the ad category." preferably with a "hidden" radio button, and maybe scratch the fieldset, too.

Lastly, on the edit node under "This ad is currently due to expire on 19/01/2014." add additional context that explains to the user what each option will do. For example:

--------------------------------------------------------
This ad is currently due to expire on 19/01/2014.

If you select "Keep current expiration date" your ad will expire and will be kept, unpublished, for 7 days. If you republish the ad after it has expired, and before the 7 day grace period, your ad will appear again at the top of the results page.

If you select "Reset expiration" your ad's expiration will be reset, however it will remain in its current position in the results page.
-----------------------------------------------------------

Thanks again for this module and all the work you put into it!

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

fgm’s picture

The fieldset is currently hidden by default when only one choice exists, precisely to make is "almost hidden". I'm not sure what this would gain. Could you mock it up so we can see how it would lock ? The text you suggest seems to me rather verbose (hence potentially annoying to users), but it might be different when checking how it looks on screen.

System Lord’s picture

Image 1 is what node/add displays at the bottom of the node form. It's one radio button with " Define expiration date automatically, based on the ad category ". Image 2 is what node/edit displays at the bottom of the node. The node/edit form is fine except I would change " Define expiration date automatically, based on the ad category " to "Reset expiration." However, on the node/add form (image 1) the single radio button is confusing. So, too, is the line " Define expiration date automatically, based on the ad category ". Currently, in the code, 'reset' is used on both the add and edit form which means t( ) must be used in both forms. So, currently I cannot change the 'reset' t( ) to t('Reset expiration') on the node/edit form because 'reset' is assigned to the node/add form as well. I do see in the code why 'reset' is used with the node/add form, but why not hide it from view and have plain text telling the user "The expiration date is set by default" or something like that.

Here's my mockup. Image 3 is what I believe the node/add form should display to the user. Image 4 is what I believe the node/edit form should display.

Image4
-------------------------------------------------------
O Keep existing expiration
(Renewing your ad after it expires it will be posted again at the top of results)

O Reset expiration
(Resetting the expiration your ad will remain in its current position in the results)
-------------------------------------------------------

Image3
--------------------------------------------------------

"This ad will expire in 7 days."

Ideally the '7 days" can be fed from the admin defaults for the category.

Or just a simple default statement for all ads (without the radio button showing).

"This ad will expire based on the category."
--------------------------------------------------------

System Lord’s picture

FileSize
11.63 KB
10.62 KB
System Lord’s picture

FileSize
3.41 KB
5.96 KB
System Lord’s picture

I'm wrong. Ads are NOT re-posted at the top of the results with either "Keep existing expiration" or " Define expiration date automatically, based on the ad category" after they have expired. All ads keep their original post date. Can it be fixed so that when an ad expires and then reset by the user (before the grace period has ended) the ad gets a NEW post date? If user can't get a new post date on an expired ad they will be forced to create a completely new ad so that their ad will be displayed at the top of results. The way it works now no user will be able to get their ad off the bottom and up to the top of the results.

Should this be in a new issue? It seems related to this topic still.

System Lord’s picture

I may be way off, but I believe its this code that needs modified.

/ed_classified/classified.module
Line 1050

// Can only happen when creating a new node.
if (empty($node->expires)) {
$lifetimes = _classified_get('lifetimes');
$node->expires = REQUEST_TIME + reset($lifetimes) * 24 * 60 * 60;
unset($lifetimes);
}

If I understand this correctly only new ads (i.e., if empty) will be assigned a "post date". Is there anyway to make the rule true if "empty" OR "expired"? This way when the user selects "Define expiration date automatically, based on the ad category" for an expired ad it, too, will get "REQUEST_TIME + reset($lifetimes) * 24 * 60 * 60;"

If you reply with some sample code I'll play with it and test it.

System Lord’s picture

Not sure this will lead to a fix, but this article http://www.broadlatitude.com/blogs/matt/content/drupal-solutions-news-sites-creation-date-vs-publish-date explains better what the problem is. maybe it can provide some additional clarity to what I'm describing in #5 & 6.

I also tried in views

Content revision: Updated date > The date the node was last updated.
Content: Updated date > The date the content was last updated.

So far no matter which I use them or how I set it up ALL nodes result to the top.

Again, expiration dates that have been updated BEFORE their expiration should keep their current position (original post date) in the results. Expiration dates that have been updated AFTER they expire should receive a NEW post date and be listed at the top of results.

I wonder if it would be simpler to NOT give users the option to update their expiration before it expires? So if a user Edits an ad that has not expired just display "This ad is currently due to expire on 19/01/2014." with no other options (?)

System Lord’s picture

My apologies for making this more of a personal blog. Here's what I've concluded.

There are three ad "types". 1. a new ad. 2. a published ad that has not expired. 3. an ad that has expired.

(1. new ads)
This should only show a statement that the ad will expire based on the default category [7 days]. Perhaps even provide the date. No radios and no options. Required code can be run behind the scenes?

(2. published ads, not expired)
This should only show a statement displaying the [date] the ad is due to expire. No radios, no other options. Allowing any options here at all seems to defeat the purpose of a default expiration. User can otherwise select to reset their expiration every day and keep from ever expiring. I think all ads should be forced to expire, i.e., no reset option. They have a grace period, if set, so that they wont lose the ad.

(3. expired ads)
There should be only one option (boolean?) here. A checkbox if they wish to renew their ad. So if they check the box and click save their ad is essentially brand new with a new posted date and expiration.

System Lord’s picture

Any chance someone wants to take a stab at changing the code to accommodate #8? Will pay

System Lord’s picture

+1 #9

System Lord’s picture

I'm noticing my ads are being marked for deletion (purging) even though I've reset their expiration " Define expiration date automatically, based on the ad category ".

I have several ads that show they have 1 week and 3 days before they expire (my default is set for two weeks). But, I'm getting email notifications that these same ads will be deleted/purged tomorrow. I know why it's doing this (see comments above>, but I don't know how to fix it. To recap..the problem is that the ads maintain their original creation date no matter how many time you "reset" their expiration. It seems that the original creation date is what the expiration feature is looking at and not the new date when it was reset.

Admittedly there could be one other reason, but if its true then there is another issue with expiration. I switched the default expiration from 2 weeks to 30 days while there were still active ads, i.e., created using the initial 2 week default.

System Lord’s picture

FileSize
68.58 KB
System Lord’s picture

scass’s picture

This thread seems to have died a long time ago, but with no resolution.

I agree with System Lord about the wording that users see. There is a lack of clarity as to what is going to happen when a user saves an already published ad.

A new ad has its expiration date set automatically. The user doesn't need a radio button or any explanation other than the automatically set expiry date.

"Define expiration date automatically, based on the ad category" will not make sense to my users, because they don't know that expiration dates are based on categories. It confuses me (setting up the module) because in fact the expiration date has ALREADY been set based on the ad category.

I'm sure there is a relatively straightforward override that can be done in a custom module. However, I'm not a programmer so don't really have the skills to do it. I'd give it a go, though, if someone can provide a hint as to where to start.

fgm’s picture

Before coding anything, could you describe what a better UX would look like, ideally mock it up as I suggested in #1 ?

scass’s picture

Hi fgm,

I pretty much concur with System Lord in #2. However, some elaboration may also be pertinent.

The changes suggested depend on the setting of the permission "reset classified ads expiration". If this permission is on, then a user has a choice of expiration modes at node/add/classified. Nothing needs to change.

However, if this permission is off, the user has no choice. The radio button that displays currently is meaningless because it cannot be changed and the text provided currently is confusing. Hence the suggestion to display only the time to expiry ("This ad will expire in 7 days") or a more generic explanation ("Expiration date set automatically according to ad category").

At node/%/edit, the second radio button text currently provided is confusing. It would be better as "Renew expiration date according to ad category" or similar.

As I see it, there are two issues here. One is that the explanatory texts should be different according to the setting of the permission "reset classified ads expiration". Second is that the explanatory texts should be different according to whether we are in /add or /edit mode.

So.... as a mock-up in text:

IF "reset classified ads expiration"

/add

––––Classified Ad expiration –––
• This ad will expire in 7 days [or Expiration date set automatically according to ad category]
–––––––––––––––––––––––––––––––

/edit

––––Classified Ad expiration –––
• Keep current expiration date
• Renew expiration date according to ad category
–––––––––––––––––––––––––––––––

ELSE IF NOT "reset classified ads expiration"

/add

––––Classified Ad expiration –––
• This ad will expire in 7 days [or Expiration date set automatically according to ad category]
• Define expiration date manually
–––––––––––––––––––––––––––––––

/edit

––––Classified Ad expiration –––
• Keep current expiration date
• Renew expiration date according to ad category
• Define expiration date manually
–––––––––––––––––––––––––––––––

fgm’s picture

Category: Support request » Feature request

Since there is no followup in over 3 years, assuming support is no longer needed, and converting to feature, in case someone wants to tackle it following the approach given by @System Lord and @scass.

fgm’s picture

Status: Active » Closed (won't fix)

With this module end of life approaching along with Drupal 7 EOL, this issue is now moot.