Jump to content

Pass variable into template?


heydoon

Recommended Posts

Posted

I'm trying to add group color to the userLink template <a> tag.

How can I pass in a variable into the template? It's in core->front->global.

Sorry, I'm new to this framework and don't quite know my way around.

Is what I'm trying to do a reasonable thing or should I just use {{ }} tags and write my PHP in the template?

Posted

Is it better handle logic in template like this?

 

{{ $split = explode("style='", $member->group['prefix']); }}
{{ $s1 = explode("'>",$split[1]); }}
{{ $color_style = $s1[0]; }}   
{{if $member->member_id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'members' ) ) }}<a style="{$color_style}" href='{{if $warningRef}}{$member->url()->setQueryString( 'wr', $warningRef )}{{else}}{$member->url()}{{endif}}' data-ipsHover data-ipsHover-target='{$member->url()->setQueryString( array( 'do' => 'hovercard', 'wr' => $warningRef, 'referrer' => urlencode( \IPS\Request::i()->url() ) ) )}' title="{lang="view_user_profile" sprintf="$member->name"}" class="ipsType_break">{{if $groupFormatting && $member->group['prefix']}}{$member->group['prefix']|raw}{{endif}}{$member->name}{{if $groupFormatting && $member->group['suffix']}}{$member->group['suffix']|raw}{{endif}}</a>{{else}}{{if $groupFormatting && $member->group['prefix']}}{$member->group['prefix']|raw}{{endif}}{$member->name}{{if $groupFormatting && $member->group['suffix']}}{$member->group['suffix']|raw}{{endif}}{{endif}}

Or to do this in a PHP function which passes it into the template?

	public function link( $warningRef=NULL, $groupFormatting=FALSE )
	{
		if ( !\IPS\Settings::i()->warn_on )
		{
			$warningRef = NULL;
		}
		$split = explode("style='", $this->group['prefix']);
		$s1 = explode("'>",$split[1]);
		$color = $s1[0];
		return \IPS\Theme::i()->getTemplate( 'global', 'core', 'front' )->userLink( $this, $warningRef, $groupFormatting, $color );
	}

What is better practice & better for if I install an update?

Posted

Better install 

If you creating the plugin and override the link method your code can be looks like

	/**
	 * HTML link to profile with hovercard
	 *
	 * @param	string|NULL		$warningRef			The reference key for warnings
	 * @param	boolean 		$groupFormatting	Apply the group prefix/suffix to the name?
	 * @return	string
	 */
	public function link( $warningRef=NULL, $groupFormatting=FALSE )
	{
		$userLink = parent::link $warningRef, $groupFormatting);
		
		if ($this->group['prefix'])
		{
			// Get style properties from group prefix
			// $styleProperties = ...

			$userLink = str_replace('href', "style='{$styleProperties}' href", $userLink);
		}
		
		return $userLink;
	}

If you works with Theme Hook you can use PHP Mode

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...