[brlcad-commits] SF.net SVN: brlcad:[34737] web/trunk/htdocs/more/sites/all/modules
Open Source Solid Modeling CAD
Brought to you by:
brlcad
From: <eb...@us...> - 2009-06-17 20:45:06
|
Revision: 34737 http://brlcad.svn.sourceforge.net/brlcad/?rev=34737&view=rev Author: ebautu Date: 2009-06-17 20:45:03 +0000 (Wed, 17 Jun 2009) Log Message: ----------- fivestar initial commit (1.15) Added Paths: ----------- web/trunk/htdocs/more/sites/all/modules/fivestar/ web/trunk/htdocs/more/sites/all/modules/fivestar/LICENSE.txt web/trunk/htdocs/more/sites/all/modules/fivestar/README.txt web/trunk/htdocs/more/sites/all/modules/fivestar/css/ web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar-admin-rtl.css web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar-admin.css web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar-rtl.css web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar.css web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar.info web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar.install web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar.module web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar_color.inc web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar_comment.info web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar_comment.install web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar_comment.module web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar_field.inc web/trunk/htdocs/more/sites/all/modules/fivestar/images/ web/trunk/htdocs/more/sites/all/modules/fivestar/images/lock.png web/trunk/htdocs/more/sites/all/modules/fivestar/js/ web/trunk/htdocs/more/sites/all/modules/fivestar/js/fivestar-admin.js web/trunk/htdocs/more/sites/all/modules/fivestar/js/fivestar-color.js web/trunk/htdocs/more/sites/all/modules/fivestar/js/fivestar.js web/trunk/htdocs/more/sites/all/modules/fivestar/po/ web/trunk/htdocs/more/sites/all/modules/fivestar/po/br.po web/trunk/htdocs/more/sites/all/modules/fivestar/po/cs.po web/trunk/htdocs/more/sites/all/modules/fivestar/po/da.po web/trunk/htdocs/more/sites/all/modules/fivestar/po/de.po web/trunk/htdocs/more/sites/all/modules/fivestar/po/es.po web/trunk/htdocs/more/sites/all/modules/fivestar/po/fivestar.pot web/trunk/htdocs/more/sites/all/modules/fivestar/po/fr.po web/trunk/htdocs/more/sites/all/modules/fivestar/po/nl.po web/trunk/htdocs/more/sites/all/modules/fivestar/po/pt.po web/trunk/htdocs/more/sites/all/modules/fivestar/po/sv.po web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/ web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/basic/ web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/basic/basic-rtl.css web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/basic/basic.css web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/basic/cancel-template.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/basic/cancel.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/basic/star-template.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/basic/star.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/craft/ web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/craft/craft-01.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/craft/craft-02.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/craft/craft-03.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/craft/craft-04.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/craft/craft-05.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/craft/craft-06.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/craft/craft-07.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/craft/craft-08.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/craft/craft-09.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/craft/craft-10.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/craft/craft-cancel.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/craft/craft-rtl.css web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/craft/craft.css web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/default/ web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/default/delete.gif web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/default/star.gif web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/flames/ web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/flames/delete.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/flames/flame.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/flames/flames-rtl.css web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/flames/flames.css web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/hearts/ web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/hearts/heart.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/hearts/heart_broken.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/hearts/hearts-rtl.css web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/hearts/hearts.css web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/minimal/ web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/minimal/min_delete.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/minimal/min_star.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/minimal/minimal-rtl.css web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/minimal/minimal.css web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/outline/ web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/outline/cancel-template.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/outline/cancel.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/outline/outline-rtl.css web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/outline/outline.css web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/outline/star-template.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/outline/star.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/oxygen/ web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/oxygen/cancel-template.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/oxygen/cancel.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/oxygen/oxygen-rtl.css web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/oxygen/oxygen.css web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/oxygen/star-template.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/oxygen/star.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/small/ web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/small/small-rtl.css web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/small/small.css web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/small/small_delete.png web/trunk/htdocs/more/sites/all/modules/fivestar/widgets/small/small_star.png Added: web/trunk/htdocs/more/sites/all/modules/fivestar/LICENSE.txt =================================================================== --- web/trunk/htdocs/more/sites/all/modules/fivestar/LICENSE.txt (rev 0) +++ web/trunk/htdocs/more/sites/all/modules/fivestar/LICENSE.txt 2009-06-17 20:45:03 UTC (rev 34737) @@ -0,0 +1,274 @@ +GNU GENERAL PUBLIC LICENSE + + Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, +Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute +verbatim copies of this license document, but changing it is not allowed. + + Preamble + +The licenses for most software are designed to take away your freedom to +share and change it. By contrast, the GNU General Public License is +intended to guarantee your freedom to share and change free software--to +make sure the software is free for all its users. This General Public License +applies to most of the Free Software Foundation's software and to any other +program whose authors commit to using it. (Some other Free Software +Foundation software is covered by the GNU Library General Public License +instead.) You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the +freedom to distribute copies of free software (and charge for this service if +you wish), that you receive source code or can get it if you want it, that you +can change the software or use pieces of it in new free programs; and that +you know you can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to +deny you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must make +sure that they, too, receive or can get the source code. And you must show +them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients +to know that what they have is not the original, so that any problems +introduced by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will individually +obtain patent licenses, in effect making the program proprietary. To prevent +this, we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND + MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms +of this General Public License. The "Program", below, refers to any such +program or work, and a "work based on the Program" means either the +Program or any derivative work under copyright law: that is to say, a work +containing the Program or a portion of it, either verbatim or with +modifications and/or translated into another language. (Hereinafter, translation +is included without limitation in the term "modification".) Each licensee is +addressed as "you". + +Activities other than copying, distribution and modification are not covered +by this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made +by running the Program). Whether that is true depends on what the Program +does. + +1. You may copy and distribute verbatim copies of the Program's source +code as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you +may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, +thus forming a work based on the Program, and copy and distribute such +modifications or work under the terms of Section 1 above, provided that you +also meet all of these conditions: + +a) You must cause the modified files to carry prominent notices stating that +you changed the files and the date of any change. + +b) You must cause any work that you distribute or publish, that in whole or in +part contains or is derived from the Program or any part thereof, to be +licensed as a whole at no charge to all third parties under the terms of this +License. + +c) If the modified program normally reads commands interactively when run, +you must cause it, when started running for such interactive use in the most +ordinary way, to print or display an announcement including an appropriate +copyright notice and a notice that there is no warranty (or else, saying that +you provide a warranty) and that users may redistribute the program under +these conditions, and telling the user how to view a copy of this License. +(Exception: if the Program itself is interactive but does not normally print such +an announcement, your work based on the Program is not required to print +an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be +reasonably considered independent and separate works in themselves, then +this License, and its terms, do not apply to those sections when you distribute +them as separate works. But when you distribute the same sections as part +of a whole which is a work based on the Program, the distribution of the +whole must be on the terms of this License, whose permissions for other +licensees extend to the entire whole, and thus to each and every part +regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your rights to +work written entirely by you; rather, the intent is to exercise the right to +control the distribution of derivative or collective works based on the +Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of a +storage or distribution medium does not bring the other work under the scope +of this License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 +and 2 above provided that you also do one of the following: + +a) Accompany it with the complete corresponding machine-readable source +code, which must be distributed under the terms of Sections 1 and 2 above +on a medium customarily used for software interchange; or, + +b) Accompany it with a written offer, valid for at least three years, to give +any third party, for a charge no more than your cost of physically performing +source distribution, a complete machine-readable copy of the corresponding +source code, to be distributed under the terms of Sections 1 and 2 above on +a medium customarily used for software interchange; or, + +c) Accompany it with the information you received as to the offer to distribute +corresponding source code. (This alternative is allowed only for +noncommercial distribution and only if you received the program in object +code or executable form with such an offer, in accord with Subsection b +above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source code +means all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation and +installation of the executable. However, as a special exception, the source +code distributed need not include anything that is normally distributed (in +either source or binary form) with the major components (compiler, kernel, +and so on) of the operating system on which the executable runs, unless that +component itself accompanies the executable. + +If distribution of executable or object code is made by offering access to +copy from a designated place, then offering equivalent access to copy the +source code from the same place counts as distribution of the source code, +even though third parties are not compelled to copy the source along with the +object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, +modify, sublicense or distribute the Program is void, and will automatically +terminate your rights under this License. However, parties who have received +copies, or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the +Program or its derivative works. These actions are prohibited by law if you +do not accept this License. Therefore, by modifying or distributing the +Program (or any work based on the Program), you indicate your acceptance +of this License to do so, and all its terms and conditions for copying, +distributing or modifying the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these terms and +conditions. You may not impose any further restrictions on the recipients' +exercise of the rights granted herein. You are not responsible for enforcing +compliance by third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose +that choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original copyright +holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In such +case, this License incorporates the limitation as if written in the body of this +License. + +9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will be +similar in spirit to the present version, but may differ in detail to address new +problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies +a version number of this License which applies to it and "any later version", +you have the option of following the terms and conditions either of that +version or of any later version published by the Free Software Foundation. If +the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software +Foundation, write to the Free Software Foundation; we sometimes make +exceptions for this. Our decision will be guided by the two goals of +preserving the free status of all derivatives of our free software and of +promoting the sharing and reuse of software generally. + + NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT +PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL +NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR +AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR +ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE +LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, +SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OR INABILITY TO USE THE +PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA +OR DATA BEING RENDERED INACCURATE OR LOSSES +SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE +PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN +IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF +THE POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS Property changes on: web/trunk/htdocs/more/sites/all/modules/fivestar/LICENSE.txt ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: web/trunk/htdocs/more/sites/all/modules/fivestar/README.txt =================================================================== --- web/trunk/htdocs/more/sites/all/modules/fivestar/README.txt (rev 0) +++ web/trunk/htdocs/more/sites/all/modules/fivestar/README.txt 2009-06-17 20:45:03 UTC (rev 34737) @@ -0,0 +1,213 @@ +// $Id: README.txt,v 1.1.2.10 2008/08/23 05:28:20 quicksketch Exp $ + +The Five Star voting module adds a clean, attractive voting widget to nodes in Drupal 5. It features: + + * jQuery rollover effects and AJAX no-reload voting + * Customizable star sets + * Graceful degradation to an HTML rating form when JavaScript is turned off + * Per-nodetype configurability + * Support for anonymous voters + * Spam protection to keep users from filling your DB with bogus votes + * Easy-to-use integration with Views module for lists sorted by rating, or filtered by min/max ratings + * A Fivestar CCK field for use in custom node types + * An easy-to-use Form API element type for use in other modules + +Fivestar was designed by Nate Haug and Jeff Eaton. + +This Module Made by Robots: http://www.lullabot.com + + +Dependencies +------------ + * votingapi + +Fivestar also provides additional features for both the CCK and Views modules. + +Install +------- +Installing the Five Star voting module is simple: + +1) Copy the fivestar folder to the modules folder in your installation. + +2) Enable the module using Administer -> Modules (/admin/build/modules) + +Note: Aggressive caching will complain that fivestar doesn't work, but it +actually causes no problems. To improve performance, the module implements +hook_init() -- and the caching advisor screen uses that as the only metric to +determine whether a module will work with the caching system. Activate it +without fear, friends -- Fivestar will continue to hum happily along. + +Configuration for Simple Rating +------------------------------- + +Fivestar has two completely separate modes of operation. The first is letting an +end-user rate a piece of content. The settings for this are on the content type +settings page. These settings let you expose a rating widget when viewing the +node, not editing it. Clicking on the widget registers a vote for that node, and +never anything else. + +The configuration for Fivestar is spread between the content type settings page, +Fivestar site settings page, and access permissions. To configure: + +1) Configure the site-wide setting for Fivestar, Administer -> Settings -> + Fivestar. + +2) Activate voting on each content type. For example, if you want Fivestar to + appear on story nodes, use Administer -> Content Management -> + Content Types -> Story, and check the "Enable Five Star rating" box under + the "Five Star ratings" heading. Repeat for each content type desired. + +3) Enable anonymous voting. + If you want to allow anonymous voting, you'll need to set permissions for + that. Use Administer -> User Management -> Access Control, and check the + "rate content" and "view ratings" checkboxes for the roles you'd like. + You'll find these permission items under the "fivestar module" heading. + +Configuration for Reviews of Content +------------------------------------ + +Fivestar can be used to quickly setup a rating system for your site visitors to +review a piece of content. When enabling the Comment widget, visitors will +submit a rating on the *original piece of content* along with their comment. +Visitors will not be rating the comments themselves. Fivestar does not allow for +the rating of comments. + +1) If it's not already enabled, turn on comment module at Administer -> + Site Building -> Modules. + +2) Visit the content type you want to enable reviews, such as Administer -> + Content Management -> Content Types -> Story, and select an option under + the "Comment widget" section. + +Configuration as a CCK field / Advanced Rating +---------------------------------------------- + +Fivestar has extensive CCK support, which makes it so that the user is presented +with a widget to rate some node with the widget while editing a node. It does +not necessary rate the current node, nor does it rate anything if no value is +entered in the Node ID field when configuring the CCK field. The value is +saved in the node (so when you edit it it is still there), but no vote is +registered in VotingAPI without the Node ID field filled out. + +An example of a situation where you might want to use the CCK fivestar field is +creating a node type called 'review'. This review type would let users rate +some particular node, and accompany their rating with a review. This could be +combined with a standard rating on the target node, so that some users could +rate the target node using the simple method, or write a complete review to +accompany their rating. + +To configure a CCK field for rating a node while creating a new 'review' node: + +1) Create a new node type called 'review' at Administer -> Content Management -> +Content Types. Configure the type. Do NOT set any fivestar settings on the +content type form! We don't want users to actually be able to rate the reviews +themselves! + +2) Edit your new content type, then click on the "Add Field" tab while on the +content type form. Add a field called 'rating' to your new type, make it of type +Fivestar Rating with the Stars radio button. + +3) Configure the rating widget to your liking. Most field have help text which +explain their purpose. The Node ID field is the most important field on the page +which determines exactly what node will receive the value of the rating. In a +realy simple case, you could just enter the value 10 to always rate on the same +node with nid = 10. Usually you'll need to enter PHP code to dynamically select +what node you want to rate. + +A common scenario is using fivestar with nodecomments to make reviews. If using +nodecomments a separate checkbox appears the Node ID field to allow you easily +select the nodecomment parent as the target of the vote. + +Save your field. Now when making new nodes of type 'review', the user will +select a star that will register a vote on the value of the Node ID field. + +Views Integration +----------------- +Fivestar depends on the views integration provided by VotinAPI, but adds some +special features to make it work specifically with Fivestar. To display Fivestar +ratings in a view, select the "VotingAPI percent vote result" from the list of +available Fields. This will display the average vote for nodes. Then choose +"Fivestar rating" from the Handler options for the field and the averages will +be displayed as Fivestar ratings. + +Fivestar also provides handling for the display of Fivestar CCK fields, they are +in the Field list under "Fivestar Rating: [Field name]". + +Creating a Fivestar Set +----------------------- + +1. Open your favorite image editor and create an image that is 3 times as high as it is wide. + The default size for Fivestar (and the easiest to work with) is 16x48 pixels. + +2. Setup guides at 16 pixels and 32 pixels. This splits your canvas into thirds. + +3. Create a star icon in the top third. When satisfied, copy it into the middle and bottom + thirds of the image. Change the middle and bottom copies to your liking. Fivestar will + use the top, middle, and bottom images for each state of the star. + + Top -> Off + Middle -> On + Bottom -> Hover + +4. Save your image as "star.png" in a new directory. The name of your directory will be the label + for your set of stars, spaces are not allowed. + +5. Do the same thing for a cancel image, only there are only 2 states for a cancel image, so your + image will be 16 pixels by 32pixels. Setup a guide at 16 pixels so your canvas is split in half. + +6. Create a cancel icon in the top half. Then duplicate it into the bottom half. The cancel states + are simply Off and Hover. + + Top -> Off + Bottom -> Hover + +7. Save your cancel image as "cancel.png" in the directory create in step 4. + +8. Create the CSS stylesheet. The easiest way to make this stylesheet is to copy an existing CSS + file from another set of stars. The "Basic" set provides an excellent example for a 16x16 star, + because it only changes the background image as necessary. If you're making a larger or smaller + size for your stars than 16x16 pixels, the "Minimal" and "Outline" sets make for a good example. + +Creating a Color Enhanced Fivestar Set +-------------------------------------- + +If contributing your set of stars back to the community, creating a color enhanced version of your +widget is an excellent way to make the stars usable by a large audience. By slightly extending a +basic widget, you can make allow users to customize the colors in your Fivestar set. + +1. Similar to a basic star set, create a new image that will be split in thirds vertically. However, + color enhanced sets of stars are also split in half horizontally, so you'll actually create 6 + stars inside of a single image. The default canvas size for a 16x16 star then is 32x48 pixels. + +2. Setup guides at 16 and 32 pixels on the y-axis and another grid at 16 pixels on the x-axis. + +3. Using the same method as a basic widget, create stars for Off, On, and Hover states on the right + side of your image. The stars on the right side of the image will be used as an *overlay*. + While it's okay to use color for the overlay, you'll generally only use white and black to add + highlights or shadows to the colors the end-user will choose from the Fivestar settings page. + +4. Create matching stars on the left side of the image (also for Off, On, and Hover states). The + stars on the left side will be used as the *color mask*. The stars should be entirely black + (transparency is okay). + +5. Save your image as star-template.png, *make sure to format it as a 24-bit PNG*. Even though the + template is a 24-bit PNG (which isn't compatible with IE6), the generated images can be either + an 8-bit PNG (with a matte) or 24-bit PNG (if no matte is chosen). + +6. Repeat steps 1 through 6 for the cancel image, only with a 32x32 pixel image for the Off and + Hover states. Save the final images as cancel-template.png and cancel.png. + +7. The two template.png files will tell Fivestar that the set is "color enhanced" and allow users to + choose new colors for their stars. + +Contributing +------------ +Have a sweet set of stars you'd like to contribute to the Fivestar module? +Post them to the Fivestar issue queue: http://drupal.org/project/issues/fivestar + +Support +------- +If you experience a problem with fivestar or have a problem, file a +request or issue on the fivestar queue at +http://drupal.org/project/issues/fivestar. DO NOT POST IN THE FORUMS. Posting in +the issue queues is a direct line of communication with the module authors. \ No newline at end of file Property changes on: web/trunk/htdocs/more/sites/all/modules/fivestar/README.txt ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar-admin-rtl.css =================================================================== --- web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar-admin-rtl.css (rev 0) +++ web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar-admin-rtl.css 2009-06-17 20:45:03 UTC (rev 34737) @@ -0,0 +1,43 @@ +div.fivestar-widgets div.form-item { + float: right; +} + +#fivestar-comment-form, +#fivestar-direct-form { + float: right; +} +#fivestar-comment-preview, +#fivestar-direct-preview { + float: right; + margin-right: 40px; + margin-left: 0px; +} + +#placeholder { + left: 0; + right: auto; +} + +.color-form label { + float: right; +} +.color-form .form-select { + float: right; +} +.color-form #edit-fivestar-colors-matte { + float: right; +} +.color-form .form-text { + margin-left: 5px; +} + +#fivestar-palette .hook { + float: right; +} +#fivestar-palette .lock { + float: right; + right: -3px; +} +#fivestar-palette .form-item .form-item { + float: right; +} Property changes on: web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar-admin-rtl.css ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar-admin.css =================================================================== --- web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar-admin.css (rev 0) +++ web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar-admin.css 2009-06-17 20:45:03 UTC (rev 34737) @@ -0,0 +1,101 @@ +/* Fivestar Settings Preview */ +div.fivestar-star-preview { + border: none; + width: 200px; + height: 60px; +} +div.fivestar-widgets div.form-item { + float: left; /* RTL */ +} + +/* Fivestar Node Type Preview */ +#fivestar-comment-form, +#fivestar-direct-form { + float: left; /* RTL */ +} +#fivestar-comment-preview, +#fivestar-direct-preview { + float: left; /* RTL */ + margin-left: 40px; /* RTL */ +} +#fivestar-node-type-form fieldset { + background: transparent; +} +.fivestar-preview { + border: 1px solid #CCC; + padding: 10px; +} + +/* Farbtastic placement */ +.color-form { + max-width: 50em; + position: relative; +} +#placeholder { + position: absolute; + top: -0.5em; + right: 0; /* RTL */ +} + +/* Palette */ +.color-form .form-item { + height: 2em; + line-height: 2em; + margin: 0.5em 0; +} +.color-form label { + float: left; /* RTL */ + width: 12em; +} +.color-form .form-text, .color-form .form-select { + float: left; /* RTL */ +} +.color-form .form-text { + text-align: center; + margin-right: 5px; /* RTL */ + cursor: pointer; +} + +#fivestar-palette .hook { + float: left; /* RTL */ + margin-top: 3px; + width: 16px; + height: 16px; +} +#fivestar-palette .down, #fivestar-palette .up, #fivestar-palette .both { + background: url(../images/hook.png) no-repeat 100% 0; +} +#fivestar-palette .up { + background-position: 100% -27px; +} +#fivestar-palette .both { + background-position: 100% -54px; +} + +#fivestar-palette .lock { + float: left; /* RTL */ + position: relative; + left: -3px; /* RTL */ + width: 20px; + height: 25px; + background: url(../images/lock.png) no-repeat 50% 2px; + cursor: pointer; +} +#fivestar-palette .unlocked { + background-position: 50% -22px; +} +#fivestar-palette .form-item .form-item { + width: inherit; + margin: 0; + float: left; /* RTL */ +} +#fivestar-palette .item-selected input { + border: 2px solid black; +} +#fivestar-direct-preview div.description { + margin-bottom: 0; +} +#fivestar-direct-preview div.feedback{ + font-size: 0.85em; + line-height: 150%; +} Property changes on: web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar-admin.css ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar-rtl.css =================================================================== --- web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar-rtl.css (rev 0) +++ web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar-rtl.css 2009-06-17 20:45:03 UTC (rev 34737) @@ -0,0 +1,51 @@ +div.fivestar-widget-static .star, +div.fivestar-widget .cancel, +div.fivestar-widget .star { + float: right; +} + +/* Combo Static and Rate Widget */ +.fivestar-combo-stars .fivestar-static-form-item { + float: right; + margin-left: 40px; + margin-right: 0px; +} +.fivestar-combo-stars .fivestar-form-item { + float: right; /* RTL */ +} + +/* Static View-only Star Version */ +div.fivestar-widget-static br { + clear: right; +} + +div.fivestar-widget-static .star { + background-position: right 0; +} + +div.fivestar-widget-static .star span.on { + background-position: right -32px; +} + +div.fivestar-widget-static .star span.off { + background-position: right 0; +} + +/* Javascript Star Version */ +div.fivestar-widget .cancel, +div.fivestar-widget .cancel a { + background-position: right -16px; +} + +div.fivestar-widget .star, +div.fivestar-widget .star a, +div.fivestar-widget .cancel a { + background-position: right 0; +} + +div.fivestar-widget div.on a { + background-position: right -16px; +} +div.fivestar-widget div.hover a, div.rating div a:hover { + background-position: right -32px; +} Property changes on: web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar-rtl.css ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar.css =================================================================== --- web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar.css (rev 0) +++ web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar.css 2009-06-17 20:45:03 UTC (rev 34737) @@ -0,0 +1,96 @@ +/* Plain HTML Version */ +form.fivestar-widget { + clear: both; + display: block; +} +form.fivestar-widget select, +form.fivestar-widget input { + margin: 0; +} + +/* Combo Static and Rate Widget */ +.fivestar-combo-stars .fivestar-static-form-item { + float: left; /* RTL */ + margin-right: 40px; /* RTL */ +} +.fivestar-combo-stars .fivestar-form-item { + float: left; /* RTL */ +} + +/* Fivestar form items */ +.fivestar-static-form-item .form-item, +.fivestar-form-item .form-item { + margin: 0; +} + +/* Static View-only Star Version */ +div.fivestar-widget-static { + display: block; +} + +div.fivestar-widget-static br { + clear: left; /* RTL */ +} + +div.fivestar-widget-static .star { + float: left; /* RTL */ + width: 17px; + height: 15px; + overflow: hidden; + text-indent: -999em; + background: url(../widgets/default/star.gif) no-repeat 0 0px; +} + +div.fivestar-widget-static .star span.on { + display: block; + width: 100%; + height: 100%; + background: url(../widgets/default/star.gif) no-repeat 0 -32px; +} + +div.fivestar-widget-static .star span.off { + display: block; + width: 100%; + height: 100%; + background: url(../widgets/default/star.gif) no-repeat 0 0px; +} + +/* Javascript Star Version */ +div.fivestar-widget { + display: block; +} + +div.fivestar-widget .cancel, div.fivestar-widget .star { + float: left; /* RTL */ + width: 17px; + height: 15px; + overflow: hidden; + text-indent: -999em; +} +div.fivestar-widget .cancel, div.fivestar-widget .cancel a { + background: url(../widgets/default/delete.gif) no-repeat 0 -16px; + text-decoration: none; +} + +div.fivestar-widget .star, div.fivestar-widget .star a { + background: url(../widgets/default/star.gif) no-repeat 0 0px; + text-decoration: none; +} + +div.fivestar-widget .cancel a, div.fivestar-widget .star a { + display: block; + width: 100%; + height: 100%; + background-position: 0 0px; + cursor: pointer; +} + +div.fivestar-widget div.on a { + background-position: 0 -16px; +} +div.fivestar-widget div.hover a, div.rating div a:hover { + background-position: 0 -32px; +} +form.fivestar-widget div.description { + margin-bottom: 0; +} Property changes on: web/trunk/htdocs/more/sites/all/modules/fivestar/css/fivestar.css ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar.info =================================================================== --- web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar.info (rev 0) +++ web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar.info 2009-06-17 20:45:03 UTC (rev 34737) @@ -0,0 +1,10 @@ +; $Id: fivestar.info,v 1.1.4.1 2007/03/07 03:19:39 eaton Exp $ +name = Fivestar +description = A simple five-star voting widget for nodes. +dependencies = votingapi +package = Voting +; Information added by drupal.org packaging script on 2009-04-30 +version = "5.x-1.15" +project = "fivestar" +datestamp = "1241125556" + Property changes on: web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar.info ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar.install =================================================================== --- web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar.install (rev 0) +++ web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar.install 2009-06-17 20:45:03 UTC (rev 34737) @@ -0,0 +1,133 @@ +<?php +// $Id: fivestar.install,v 1.1.2.10 2008/12/22 21:53:39 quicksketch Exp $ + +/** + * @file + * Installation file for fivestar module. + */ + +function fivestar_install() { + // No install needed for Fivestar. Uses the VotingAPI tables. +} + +function fivestar_uninstall() { + db_query("DELETE FROM {variable} WHERE name LIKE 'fivestar_%'"); +} + +/** + * Function to retrieve the current version to prevent duplicate updates. + */ +function fivestar_update_version() { + static $version; + + if (!isset($version)) { + $version = db_result(db_query("SELECT schema_version FROM {system} WHERE type = 'module' AND name = 'fivestar'")); + } + + return $version; +} + +/** + * Add the fivestar comment tables. + */ +function fivestar_update_1() { + // No longer needed. The tables are added by fivestar_commment_install(). + return array(); +} + +/** + * Convert previous fivestar widget settings to new format. + */ +function fivestar_update_2() { + $types = node_get_types('names'); + foreach ($types as $key => $name) { + $style = variable_get('fivestar_style_'. $key, 'default'); + $enabled = variable_get('fivestar_'. $key, FALSE); + // Split the display style into two variables for stars and text. + if ($enabled) { + switch ($style) { + case 'default': + variable_set('fivestar_style_'. $key, 'user'); + variable_set('fivestar_text_'. $key, 'average'); + break; + case 'compact': + variable_set('fivestar_style_'. $key, 'user'); + variable_set('fivestar_text_'. $key, 'none'); + break; + case 'dual': + variable_set('fivestar_text_'. $key, 'none'); + break; + } + } + // We no longer save any settings if Fivestar is disabled. + else { + variable_del('fivestar_unvote_'. $key); + variable_del('fivestar_style_'. $key); + variable_del('fivestar_position_'. $key); + variable_del('fivestar_position_teaser_'. $key); + } + } + return array(); +} + +/** + * Add vote_id column to the fivestar_comment table. + */ +function fivestar_update_5701() { + // Moved to fivestar_commment_update_5100(). + return array(); +} + +/** + * Move comment support to a separate module. + */ +function fivestar_update_5702() { + // Comment support was added in schema version 1. + if (fivestar_update_version() > 0) { + // Enable the module, but don't run the install hook (tables already exist). + if (module_exists('comment')) { + module_rebuild_cache(); + module_enable(array('fivestar_comment')); + $version = array_pop(drupal_get_schema_versions('fivestar_comment')); + drupal_set_installed_schema_version('fivestar_comment', $version); + module_rebuild_cache(); + } + // If the comment table needs an update, run fivestar_comment_update_5100(). + if (fivestar_update_version() < 5701) { + module_load_install('fivestar_comment'); + fivestar_comment_update_5100(); + } + } + return array(); +} + + +/** + * Update CCK target logic to rename "target" to "php_target". + */ +function fivestar_update_5703() { + // Only run if CCK exists. + if (module_exists('content')) { + $result = db_query("SELECT field_name, global_settings FROM {node_field} WHERE type = 'fivestar'"); + while ($field = db_fetch_object($result)) { + $settings = unserialize($field->global_settings); + if (!empty($settings['target'])) { + if (is_numeric($settings['target'])) { + // If previously a straight-integer, just add a "return" to the number. + $settings['php_target'] = 'return '. $settings['target'] .';'; + } + else { + // If already PHP code, remove the PHP brackets. + $php = trim($settings['target']); + $php = preg_replace('/^<\?(php)?/', '', $php); + $php = preg_replace('/\?>$/', '', $php); + $settings['php_target'] = $php; + } + } + unset($settings['target']); + unset($settings['php']); + db_query("UPDATE {node_field} SET global_settings = '%s' WHERE field_name = '%s'", serialize($settings), $field->field_name); + } + } + return array(); +} Property changes on: web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar.install ___________________________________________________________________ Added: svn:mime-type + text/plain Added: svn:eol-style + native Added: web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar.module =================================================================== --- web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar.module (rev 0) +++ web/trunk/htdocs/more/sites/all/modules/fivestar/fivestar.module 2009-06-17 20:45:03 UTC (rev 34737) @@ -0,0 +1,1654 @@ +<?php +// $Id: fivestar.module,v 1.2.2.115 2009/04/30 20:58:33 quicksketch Exp $ + +/** + * @file + * A simple n-star voting widget, usable in other forms. + */ + +function fivestar_help($section) { + switch ($section) { + case 'admin/settings/fivestar': + $output = t('This page is used to configure site-wide features of the fivestar module. To setup fivestar to rate content:'); + $steps = array( + t('Configure site-wide settings for fivestar below.'), + t('Go to <a href="!types">admin/content/types</a> and edit the type you would like to rate.', array('!types' => url('admin/content/types'))), + t('On the settings page for the content type, a set of options is available for fivestar, where you can enable rating for that type and set rating options.'), + ); + $output .= theme('item_list', $steps, NULL, 'ol'); + } + return $output; +} + +/** + * Implementation of hook_menu(). + * + * Provides a callback url where votes can be submitted by the client-side + * javascript. + */ +function fivestar_menu($may_cache) { + $items = array(); + if ($may_cache) { + $items[] = array( + 'path' => 'admin/settings/fivestar', + 'title' => t('Fivestar'), + 'description' => t('Configure site-wide widgets used for Fivestar rating.'), + 'callback' => 'drupal_get_form', + 'callback arguments' => array('fivestar_settings'), + 'type' => MENU_NORMAL_ITEM, + 'access' => user_access('administer site configuration'), + ); + $items[] = array( + 'path' => 'fivestar/preview/color', + 'callback' => 'fivestar_preview_color', + 'type' => MENU_CALLBACK, + 'access' => user_access('administer site configuration'), + ); + $items[] = array( + 'path' => 'fivestar/preview/node', + 'callback' => 'fivestar_preview', + 'type' => MENU_CALLBACK, + 'access' => user_access('administer content types'), + ); + $items[] = array( + 'path' => 'fivestar/vote', + 'callback' => 'fivestar_vote', + 'type' => MENU_CALLBACK, + 'access' => user_access('rate content'), + ); + } + return $items; +} + +/** + * Implementation of hook_init(). + * Not that this will cause Drupal to post a warning on the admin screen + * when agressive caching is activated. Like CCK, Fivestar's use of hook_init + * IS compatible with agressive caching, we just need a way to annouce that. + */ +function fivestar_init() { + // Ensure we are not serving a cached page. + if (function_exists('drupal_set_content')) { + if (module_exists('content')) { + include_once(drupal_get_path('module', 'fivestar') .'/fivestar_field.inc'); + } + + // Add necessary CSS and JS. + // TODO: These shouldn't be loaded on every page, but block caching omits + // CSS and JS files that would be otherwise added. + fivestar_add_js(); + fivestar_add_css(); + } +} + +/** + * Implementation of hook_perm(). + * + * Exposes permissions for rating content, viewing aggregate ratings, and using PHP + * snippets when configuring fivestar CCK fields. + */ +function fivestar_perm() { + return array('rate content', 'use PHP for fivestar target'); +} + +/** + * Implementation of hook_form_alter(). + * + * Adds fivestar enaable and position to the node-type configuration form. + */ +function fivestar_form_alter($form_id, &$form) { + if ($form_id == 'node_type_form' && isset($form['identity']['type'])) { + // Goofy hack to get the buttons at the end of the array. + $form['workflow']['#weight'] = isset($form['workflow']['#weight']) ? $form['workflow']['#weight'] + 1 : 1; + $form['submit']['#weight'] = isset($form['submit']['#weight']) ? $form['submit']['#weight'] + 1 : 1; + $form['delete']['#weight'] = isset($form['delete']['#weight']) ? $form['delete']['#weight'] + 1 : 1; + + $form['fivestar'] = array( + '#type' => 'fieldset', + '#title' => t('Fivestar ratings'), + '#collapsible' => TRUE, + '#collapsed' => !variable_get('fivestar_'. $form['#node_type']->type, 0), + '#description' => t('To rate this content, enable Fivestar rating below. These settings will be used for both comments (if available) and direct rating.'), + '#theme' => 'fivestar_node_type_form', + '#attributes' => array('id' => 'fivestar-node-type-form'), + ); + + $form['fivestar']['fivestar'] = array( + '#type' => 'checkbox', + '#title' => t('Enable Fivestar rating'), + '#default_value' => variable_get('fivestar_'. $form['#node_type']->type, 0), + '#return_value' => 1, + '#weight' => -5, + ); + + $form['fivestar']['fivestar_stars'] = array( + '#type' => 'select', + '#title' => t('Number of stars'), + '#options' => drupal_map_assoc(range(1, 10)), + '#default_value' => variable_get('fivestar_stars_'. $form['#node_type']->type, 5), + '#weight' => -4, + ); + + + $form['fivestar']['labels'] = array( + '#type' => 'fieldset', + '#title' => t('Star Labels'), + '#collapsible' => TRUE, + '#collapsed' => TRUE, + '#description' => t('These star labels appear as the link title when javascript is enabled as well as the select list options when javascript is disabled.'), + ); + + $form['fivestar']['labels']['fivestar_labels_enable'] = array( + '#type' => 'checkbox', + '#title' => t('Display labels on mouse over'), + '#default_value' => variable_get('fivestar_labels_enable_'. $form['#node_type']->type, 1), + '#return_value' => 1, + '#weight' => -5, + '#description' => t('When enabled, the star labels will dynamically appear underneath the stars as the user hovers over each star to provide a more descriptive qualitative meaning for each star value.'), + ); + + // Create the Mouseover text forms for each of the rating options + // This form depends on the number of stars, and these extra textfields will be hidden with javascript + $star_count = variable_get('fivestar_stars_'. $form['#node_type']->type, 5); + $labels = variable_get('fivestar_labels_'. $form['#node_type']->type, array()); + for ($n = 0; $n <= 10; $n++) { + if ($star_count == 5 && $n <= 5) { + // If the default 5 stars are chosen, then use these five default label values. + $default_labels = array(t('Cancel rating'), t('Poor'), t('Okay'), t('Good'), t('Great'), t('Awesome')); + } + elseif ($n == 0) { + $default_labels[$n] = t('Cancel rating'); + } + else { + $default_labels[$n] = t('Give it @star/@count'); + } + $form['fivestar']['labels']['fivestar_label_'. $n] = array( + '#type' => 'textfield', + '#title' => $n > 0 ? t('Star @star label', array('@star' => $n)) : t('Cancel label'), + '#default_value' => isset($labels[$n]) ? $labels[$n] : $default_labels[$n], + '#prefix' => '<div id="fivestar-label-'. $n .'" class="fivestar-label">', + '#suffix' => '</div>', + '#size' => 30, + ); + } + + $form['fivestar']['direct'] = array( + '#type' => 'fieldset', + '#title' => t('Direct rating widget'), + '#collapsible' => FALSE, + '#description' => t('These settings allow you to display a rating widget to your users while they are viewing content of this type. Rating will immediately register a vote for that piece of content.'), + '#weight' => 2, + ); + + $form['fivestar']['direct']['fivestar_style'] = array( + '#type' => 'select', + '#title' => t('Star display style'), + '#default_value' => variable_get('fivestar_style_'. $form['#node_type']->type, 'average'), + '#options' => array( + 'average' => t('Display average vote value'), + 'user' => t('Display user vote value'), + 'smart' => t('User vote if available, average otherwise'), + 'dual' => t('Both user and average vote'), + ), + ); + + $form['fivestar']['direct']['fivestar_text'] = array( + '#type' => 'select', + '#title' => t('Text display style'), + '#default_value' => variable_get('fivestar_text_'. $form['#node_type']->type, 'dual'), + '#options' => array( + 'none' => t('Display no text beneath stars'), + 'average' => t('Current average in text'), + 'user' => t('User current vote in text'), + 'smart' => t('User vote if available, average otherwise'), + 'dual' => t('Both user and average vote'), + ), + ); + + $form['fivestar']['direct']['fivestar_title'] = array( + '#type' => 'checkbox', + '#title' => t('Show widget title'), + '#default_value' => variable_get('fivestar_title_'. $form['#node_type']->type, 1), + '#return_value' => 1, + ); + + $form['fivestar']['direct']['fivestar_feedback'] = array( + '#type' => 'checkbox', + '#title' => t('Enable confirmations to inform a vote was saved or deleted.'), + '#default_value' => variable_get('fivestar_feedback_'. $form['#node_type']->type, 1), + '#return_value' => 1 + ); + + $form['fivestar']['direct']['fivestar_unvote'] = array( + '#type' => 'checkbox', + '#title' => t('Allow users to undo their votes'), + '#default_value' => variable_get('fivestar_unvote_'. $form['#node_type']->type, 0), + '#return_value' => 1, + ); + + $form['fivestar']['direct']['fivestar_position_teaser'] = array( + '#type' => 'select', + '#title' => t('Teaser display'), + '#default_value' => variable_get('fivestar_position_teaser_'. $form['#node_type']->type, 'hidden'), + '#options' => array( + 'above' => t('Clickable widget above teaser'), + 'below' => t('Clickable widget below teaser'), + 'above_static' => t('Static display above teaser'), + 'below_static' => t('Static display below teaser'), + 'link' => t('Teaser link to full node widget'), + 'hidden' => '<'. t('hidden') .'>', + ), + ); + + $form['fivestar']['direct']['fivestar_position'] = array( + '#type' => 'select', + '#title' => t('Full node display'), + '#default_value' => variable_get('fivestar_position_'. $form['#node_type']->type, 'below'), + '#options' => array( + 'above' => t('Clickable widget above node body'), + 'below' => t('Clickable widget below node body'), + 'above_static' => t('Static display above node body'), + 'below_static' => t('Static display below node body'), + 'hidden' => '<'. t('hidden') .'>', + ), + ); + + $form['fivestar']['direct']['fivestar_direct_preview'] = array( + '#type' => 'item', + '#title' => t('Direct rating widget preview'), + '#value' => theme( + 'fivestar_preview', + $form['fivestar']['direct']['fivestar_style']['#default_value'], + $form['fivestar']['direct']['fivestar_text']['#default_value'], + $form['fivestar']['fivestar_stars']['#default_value'], + $form['fivestar']['direct']['fivestar_unvote']['#default_value'], + $form['fivestar']['direct']['fivestar_title']['#default_value'] ? NULL : FALSE, + $form['fivestar']['labels']['fivestar_labels_enable']['#default_value'], + variable_get('fivestar_labels_'. $form['#node_type']->type, array()) + ), + ); + if (!$form['fivestar']['fivestar']['#default_value']) { + $form['fivestar']['direct']['fivestar_direct_preview']['#value'] = theme('fivestar_preview_wrapper', ''); + } + else { + $form['fivestar']['direct']['fivestar_direct_preview']['#value'] = theme('fivestar_preview_wrapper', $form['fivestar']['direct']['fivestar_direct_preview']['#value']); + } + + $form['#submit']['fivestar_node_type_form_submit'] = array(); + } +} + +/** + * Additional submit handler for the node type form. + */ +function fivestar_node_type_form_submit($form_id, &$form_values) { + // Do not save any fivestar variables if fivestar is disabled. + if (isset($form_values['fivestar']) && $form_values['fivestar'] === 0) { + foreach ($form_values as $key => $value... [truncated message content] |