Templates


Das Grid HTML-Markup kann komplett überschrieben werden.

Die Standard Templates liegen in der Grid Library unter /wp-content/plugins/grid/lib/templates/frontend/*.tpl.php bzw. /sites/all/libraries/grid/templates/frontend/*.tpl.php und können als Kopiervorlage verwendet werden.

Um die Templates zu überschreiben wird im Theme Ordner ein Ordner grid angelegt. Hier abgelegte Templates werden automatisch anstelle der  Grid-Standardtemplates verwendet.

Für eine selbst erstellte Box lässt sich ebenfalls ein Template ablegen. Das Schema ist grid-box-[box type].tpl.php. Der Box-Type ist dabei der im Box-Modul unter type() hinterlegte Name. Heißt die Box dort also beispielsweise pictures_with_cats kann sie im Theme über eine Datei grid/grid-box-pictures_with_cats.tpl.php angepasst werden.

In WordPress liegen diese in /wp-content/themes/%themename%.

In Drupal unter /sites/all/themes/%themename%.

Um templates über Module mitzuliefern, registriert man den Pfad in dem die Templates liegen mit add_filter(‘grid_templates_paths’, ‘plugin_function_name’) in WordPress bzw. in Drupal mit module_grid_templates_paths_alter(&$tempaltes) .

Grid

Template: grid.tpl.php

Verfügbare Variablen:

  • $this : Das Grid Object
  • $containerlist : Ein Array der gerenderten Container
...
<div class="grid clearfix grid-frontend">
	<?php echo implode("", $containerlist)?>
</div>

Die Container werden in einem Wrapper-Element ausgeben, der als Root für das Grid dient.

Container

Template: grid-container.tpl.php

Verfügbare Variablen:

  • $this : Das Grid Container Object
  • $slots : Ein Array der gerenderten Slots
<?php
...
if ($this->firstcontentcontainer){

	if($this->space_to_right != null){
		$math = explode("d", $this->space_to_right);
	} else {
		$math = explode("d", $this->space_to_left);
	}
	$width = $math[1]-$math[0];
	$class = ($this->space_to_right)? "c-".$width."d".$math[1]."-0" : "c-0-".$width."d".$math[1];
	$class = "grid-container-".$class;
	$str = "grid-container-right-space-".$this->space_to_right;
	$stl = "grid-container-left-space-".$this->space_to_left
?>
<div class="grid-content-container-wrapper <?php echo $class." ".$str." ".$stl; ?> grid-first-content-container">
<?php
}
?>

<div class="<?php echo ($this->style)? $this->style." ":""; echo implode($this->classes," "); ?> grid-container-type-<?php echo $this->type_id;?>">
	<div class="grid-container-content">
	<div class="grid-container-before">
		<?php
		if ($this->title!=""){
			if ($this->titleurl !=""){
			?>
				<h2 class="grid-container-title"><a href="<?php echo $this->titleurl?>"><?php echo $this->title?></a></h2>
			<?php }else{?>
				<h2 class="grid-container-title"><?php echo $this->title?></h2>
			<?php }?>
		<?php }?>
		<div class="grid-container-prolog">
		  	<?php echo $this->prolog?>
		</div>
	</div>

	<div class="grid-slots-wrapper">
	<?php
	if(is_array($slots)){
		echo implode("", $slots);
	}
	?>
	</div>

	<div class="grid-container-after">
		<div class="grid-container-epilog">
			<?php echo $this->epilog?>
		</div>
		<?php if ($this->readmore!=""){?>
		<a href="<?php echo $this->readmoreurl?>" class="grid-container-readmore-link"><?php echo $this->readmore?></a>
		<?php }?>
	</div>
	</div>

</div>

<?php
if ($this->lastcontentcontainer):
?>
</div>
<?php
endif;
?>

WICHTIG: Das Container Template rendert über $this->firstcontentcontainer und $this->lastcontentcontainer ein Wrapper-Element, welches wichtig für den Gebrauch von Sidebars ist.

Box

Template: grid-box-box.tpl.php oder grid-box-boxtype.tpl.php
Die grid-box-box.tpl.php gilt für alle Boxen, die nicht durch ein typspezifisches Boxtemplate grid-box-{boxtype}.tpl.php definiert werden.

Verfügbare Variable:

  • $this : Das Grid Box Objekt
  • $content : Der gerenderte Box Inhalt
<div class="box<?php echo ($this->style)? " ".$this->style." ": " "; echo implode($this->classes," ")?>">
	<?php
	if ($this->title!=""){

		if ($this->titleurl !=""){
		?>
			<h3 class="b-title"><a href="<?php echo $this->titleurl?>"><?php echo $this->title?></a></h3>
		<?php }else{?>
			<h3 class="b-title"><?php echo $this->title?></h3>
		<?php }?>
	<?php }?>
	<div class="b-prolog">
		<?php echo $this->prolog?>
	</div>

	<?php echo $content?>
	<div class="b-epilog">
		<?php echo $this->epilog?>
	</div>
  	<?php
	if ($this->readmore!=""){?>
	<a href="<?php echo $this->readmoreurl?>" class="b-readmore-link"><?php echo $this->readmore?></a>
	<?php }?>

</div>