= Arbitrary Options Plugin = == Description == Pass arbitrary options from conf.ini's to templates in Trac. You put whatever options you'd like in a [project_info] stanza inside your trac's .ini file. These are passed to the template as key-value pairs inside the dictionary 'project_info'. You can also access data for other projects in your trac env under the list 'projects'. That list will have a dictionary with keys 'name', 'description', 'href', and 'info', where the first three are the same as in a project list, and the 'info' is the dictionary of arbitrary options you've passed for that project. == Bugs/Feature Requests == Existing bugs and feature requests for ArbitraryOptionsPlugin are [report:9?COMPONENT=ArbitraryOptionsPlugin here]. If you have any issues, create a [http://trac-hacks.org/newticket?component=ArbitraryOptionsPlugin&owner=david new ticket]. == Download == Download the zipped source from [download:arbitraryoptionsplugin here]. == Source == You can check out ArbitraryOptionsPlugin from [http://trac-hacks.org/svn/arbitraryoptionsplugin here] using Subversion, or [source:arbitraryoptionsplugin browse the source] with Trac. == Example == If your .ini had this: {{{ [project_info] short_name = my_project status = active order = 3 }}} You could access it in your Trac's Genshi templates like this: {{{ Short name is ${project_info.get('short_name')}. Status is ${project_info.get('status')}. Order is ${project_info.get('order')}. }}} You could iterate over your whole projects list like this: {{{ <li py:for='proj in projects' py:if='proj.name != project.name and proj.info.get("status") == "primary"'> <a href='/${proj.href}'>${proj.name}</a> </li> }}} See also http://www.siafoo.net/snippet/276 for information. == Recent Changes == [[ChangeLog(arbitraryoptionsplugin, 3)]] == Author/Contributors == '''Author:''' [wiki:david] [[BR]] '''Maintainer:''' [wiki:david] [[BR]] '''Contributors:'''