Loading...
 
Skip to main content

History: PluginAttributes

Source of version: 28 (current)

Copy to clipboard
             # Plugin Attributes

Use this ((wiki plugin)), introduced in ((Tiki6)), to assign generic attributes to the current object. Attributes are provided as parameters. For tiki.geo.lat, {CODE()}{attributes tiki_geo_lat=...} {CODE} 
Removing the plugin or values in it will not remove the attributes. See ((dev:Object Attributes and Relations)) for the available attributes.

## Usage

The plugin Attributes is not enabled by default, you can enable it from the Control Panel, Editing and Plugins, Plugins.

{CODE(wrap="1" colors="tiki")}
{attributes tiki_geo_lat="" tiki_geo_lon="" tiki_geo_google_zoom="" tiki_relation_target="" tiki_relation_source=""}
{CODE}

## Parameters

{pluginmanager plugin="attributes"}

## Examples of using it to set fixed values and use them in a tracker

*This method was used in a Tiki12 shop and I retrieved the code* {sign user="Bsfez" datetime="2020-03-15T11:32:44+00:00"}

In this use case we want to have fixed/editable values that can be used in different features of Tiki. 
There is several advantages;

- Changing one value will impact many other objects (items, calculation, etc).
- Editing can be very limited (permissions to edit this page only)
- Editing can be super relaxed (permissions to edit this page only)
- It may help to keep fixed values through time (VAT may change from time to time however you need to keep the value for a specific date)


Here some example of plugin attributes in a wiki page and the usage in another place (mainly tracker field)

### Display a value using attribute in many wiki pages (plugin List)

{CODE(caption="On the wiki page name PluginAttributes")}
{attributes nice_guy_name="Bernard"}
{CODE}

{CODE(caption="On any other wiki page"))}
{LIST()}
{OUTPUT(report="y")}
{CALC()}(attribute (object (str wiki page) (str PluginAttributes)) (property nice.guy.name)){CALC} is the first name of a nice guy name.
{OUTPUT}
{LIST}
{CODE}

Will produce: 
*Bernard is the first name of a nice guy name.*

Note: This should work in many other places like Blogs, Articles, Forums, Modules, etc. where there is a wiki area and it accept the wiki syntax.

### Using a constant from the pluginAttributes in a tracker field calculation

{CODE(caption="On the wiki page")}
{attributes shop_general_handling_fees="0.2"}
{CODE}

{CODE(caption="Calculation in a mathematical field type in a tracker")}
(mul Price (attribute (object (str wiki page) (str Constants)) (property shop.general.handling.fees)))
{CODE}

### Using a constant from the pluginAttributes to return different value in a php file

{CODE(caption="On the wiki page")}
{attributes shop_XXA_minimum="499" shop_XXB_minimum="599"}
{CODE}

{CODE(caption="usage and condition in a php file")}
// check min amount
			$shop_constants = TikiLib::lib('attribute')->get_attributes('wiki page', 'Constants');
			if ($input->supplierOrderName->int() == TikiLib::symbols()->Supplier['XXA']) {
				$minimum = $shop_constants[’shop.XXA.minimum'];
			} else if ($input->supplierOrderName->int() == TikiLib::symbols()->Supplier['XXB']) {
				$minimum = $shop_constants[’shop.XXB.minimum'];
			} else {
				throw new Denied(tr('Unsupported Shop'));
			}
{CODE}

### Using a constant from the pluginAttributes in a Smarty template

{CODE(caption="On the wiki page")}
{attributes shop_freeshipping_limit="699"}
{CODE}

{CODE(caption="")}
<p class="flat_cost">{tr}Shipping{/tr} {if ($cart_total > $shop_constants.shop_freeshipping_limit)}<span class="free_shipping">₪0.00</span>{else}₪{$flat_cost|escape}{/if} {* $prefs.payment_currency|escape *}</p>
{CODE}

## Related pages

- ((Object Attributes and Relations))
- ((Mathematical Calculation Tracker Field))
- ((PluginRelations))
- ((PluginAddRelation))
- For all plugins{include page="Module and Plugin Includes" start="startinclude3" stop="stopinclude3"}

## Aliases

- (alias(PluginAttribute))