Hello!
First of all, thank you for this great module! It is exactly what I need - just except small feature:).
I would like to create a more complex pricing structure for placing ads in specific sections of the site. For example, I would like to distinguish the price for placing ads under particular sections and also by duration. To eccomplish this, it would need a more complex structure in Userpoints Vocabulary and Node create Action Rules for each category. For example, the structure of categorization would then look approximately as follows:
- Publishing (free)
- Sticky
-- Sticky on Home page of Category1
--- Sticky on Home page of Category1 for 1 day (cost 100 points)
--- Sticky on Home page of Category1 for 3 days (cost 250 points)
--- Sticky on Home page of Category1 for 7 days (cost 500 points)
-- Sticky on Home page of Category2
--- Sticky on Home page of Category2 for 1 day (cost 100 points)
--- Sticky on Home page of Category2 for 3 days (cost 250 points)
--- Sticky on Home page of Category2 for 7 days (cost 500 points)
- Promote to Home page
-- Promote to homepage for 1 day (cost 500 points)
-- Promote to homepage for 3 days (cost 1200 points)
-- Promote to homepage for 7 days (cost 2500 points)
I would then let users to choose options of advertising in the node add/edit form, using the CCK Taxonomy Content field. For greater clarity, I would use for each major operation (Publish and Promote to Home Page) single Content Taxonomy Field. So the user would see all the options of Sticky in one field and the options of promoting in another field.
The problem is that in the Action Points Node settings, the structure of Userpoints vocabulary is flat. It does not display the whole structure I created. So, thus I can not create actions for all of the above options.
Please would it be possible to display the entire structure of the vocabulary and implement above explained feature? Or if there is some other simplier way to accomplish what I need, I will be grateful for any advice...
Thank you and sorry if I was too wordy ...:)
Comments
Comment #1
BillyMG commentedI see what you're looking for, but you make a vital point. The structure of publishing options (which this module uses) is flat. It's not about the vocabulary for Userpoints, though. You could simply have a vocabulary of two kinds of points:
Uncategorized
Specialty Search Points
For your example, let's say Uncategorized points are used for something else and Specialty Search Points (SSP) can be bought from the store. Instead of trying to layer the options, you could simply flatten them.
- Publishing (free)
- Sticky on Home page of Category1 for 1 day (cost 100 points)
- Sticky on Home page of Category1 for 3 days (cost 250 points)
- Sticky on Home page of Category1 for 7 days (cost 500 points)
- Sticky on Home page of Category2 for 1 day (cost 100 points)
- Sticky on Home page of Category2 for 3 days (cost 250 points)
- Sticky on Home page of Category2 for 7 days (cost 500 points)
- Promote to homepage for 1 day (cost 500 points)
- Promote to homepage for 3 days (cost 1200 points)
- Promote to homepage for 7 days (cost 2500 points)
Now, while these may look slightly better as a tree of options, they still work flattened without an issue. Using the custom publishing module ( http://drupal.org/project/custom_pub ), you can create each of these as a new publishing option. Then, you can use Userpoints Node Action to assign point values to each one. After that, you can use Node Expire ( http://drupal.org/project/node_expire ) to simply have nodes expire those options after certain amounts of time. You can see some similar details in #563256: Can I add additional workflow states to work with this module. While this may not match the methodology you posted, it should give you identical end-results. Take a look at the latest update to 6.x-dev and let me know if you had something else in mind.
Comment #2
sketman commentedHi Billy,
thank you very much for your answer!
It seems that flat vocabulary is a good solution; disadvantage I see is a potential overwhelming of users when more complex structure of the advertising opportunities and a larger number of choices.
For example, there may be multiple categories for setting stickness and when there is added one or more rotor banners with several timing options, the total number of options can be quite large and the list too long.
And if you take into consideration the possibility of combining several options (for example, user can chose that advertisement may be published on the home page for one day + sticky on category for 1 month + in rotor banner for 3 days), the user may be quite confused.
Thats why I like the idea of hierarchical vocabulary - it seems to me that i can offer user as simple and clear interface as possible, even when there is a lot of options. Main branches would be split into separate CCK taxonomy fields, each main branch would be represented by a single CCK field. All selections entered by the user account assigned to one and the same vocabulary. The goal is to bring greater clarity.
In the meantime I remained in the solution you proposed - flat vocabulary. I intend, however, do not display the rather lengthy list of choices to users, but to simulate my solution described above. I would do it in following way.
Create new text-type CCK fields select lists that would simulate the desired hierarchy and options, one for each major type of advertising. Then I would create Rules, that based on the status of CCK fields mentioned above, will assign the content to the appropriate terms in the Userpoint flat vocabulary.
I have seen and tryed the node_expire module. If I understood it correctly, unpublish date must be entered manually. I did not see any trigger for it in Rules, for example. Because it can not be done by user, it would have to be done by me. This does not satisfy me, because I want the workflow to be automated as much as possible, to run the site requiring the least possible intervention.
Therefore I intend to create a scheduled Rules that unpublish content (or remove stickness, remove promote, remove advertisemnet from banneretc) over time, depending on the settings of those CCK fields. I am not sure and may be wrong, but this could be done also by Views (views bulk operations)..
Also, it's still just an idea, I hope not too complicated and yet it seems to me feasible.
I do not know custom_pub module, but will definitely try it. Thanks for the info. It seems to me attractive at first sight. Only disatvantage I can think of for now, is how it would look with a large number of publishing options... I have to test the module however.
Also, I'm going to try the last dev version of your module, will give a feedback ...
So thats for now. I will continue with the fight, some appropriate solution must be found ...:) Although it may not be apparent from what is written above, I like simple solutions...:)
Thank you very much for good advices and for your effort.
Comment #3
BillyMG commentedI see what you're going for, but it does seem that the only difference is the user presentation, yes? I think node expire will still work for you, but rules are probably just as well. However, do you need content taxonomy? Couldn't you just get away with normal taxonomy requirements? Using hierarchical select ( http://drupal.org/project/hierarchical_select ) can make a really fantastic UI for most any kind of taxonomy, and it might be simpler that way as opposed to splitting it into multiple fields. I could see this working with taxonomy, but CCK fields would make it much more difficult to work with.
Comment #4
BillyMG commentedI'm going to close this issue since I don't think anything really came out of it.