<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://de.contaowiki.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://de.contaowiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Luis</id>
		<title>Contao Community Documentation - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://de.contaowiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Luis"/>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Spezial:Beitr%C3%A4ge/Luis"/>
		<updated>2026-05-02T04:19:03Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items</id>
		<title>MetaModels Beispiel: Referenced items</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items"/>
				<updated>2013-09-10T07:47:40Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Lösungsansatz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels|T2]]&lt;br /&gt;
=MetaModels miteinander verknüpfen=&lt;br /&gt;
==Ausgangslage==&lt;br /&gt;
Es gibt ein MetaModel mit &amp;quot;Kunden&amp;quot; (mm_customers) und eines mit &amp;quot;Projekte&amp;quot; (mm_projects). mm_projects enthält ein Attribut &amp;quot;customer&amp;quot; vom Typ &amp;quot;select&amp;quot;, welches die in mm_customer erfassten Kunden anzeigt. Über dieses Feld wird das Projekt mit dem Kunden verknüpft.&lt;br /&gt;
==Aufgabenstellung==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden. Von dort möchte man auch per Link auf die Detailansicht des spezifischen Projektes springen können.&lt;br /&gt;
&lt;br /&gt;
==Lösungsansatz==&lt;br /&gt;
Nebst den spezifischen Kunden-Detailinformationen sollen die Projekte gelistet darunter erscheinen. Die Projekte werden jeweils mit einem Titel-Link (h3), einer Kurzbeschreibung und der dazu gehörigen Bildgalerie angezeigt. Die Projekte werden überdies über einen Filter sortiert: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array()); &amp;lt;/source&amp;gt;&lt;br /&gt;
In diesem Fall ist '10' die ID des Filters im MetaModels 'mm_projects'. Der Filter sorgt dafür, dass die Projekte chronologisch aufgelistet werden.&lt;br /&gt;
&lt;br /&gt;
Das MetaModels-Template könnte wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
function getProjectsByCustomer($strAlias, $format='html5')&lt;br /&gt;
{&lt;br /&gt;
  $objMetaModel = MetaModelFactory::byTableName('mm_projects');&lt;br /&gt;
  $objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array());&lt;br /&gt;
  $objFilter-&amp;gt;addFilterRule(new MetaModelFilterRuleSearchAttribute($objMetaModel-&amp;gt;getAttribute('customer'), $strAlias, $objMetaModel-&amp;gt;getAvailableLanguages()));&lt;br /&gt;
  $objItems = $objMetaModel-&amp;gt;findByFilter($objFilter);&lt;br /&gt;
  return $objItems-&amp;gt;parseAll($format, $objMetaModel-&amp;gt;getView(3));&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;customer_detailview&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;?php foreach ($this-&amp;gt;data as $arrItem): ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;detailview&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h1 class=&amp;quot;ce_headline&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['customer']; ?&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['description']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;year&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['year']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;url&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['html5']['url']; ?&amp;gt;&amp;lt;/p&amp;gt; &lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;referenced_projects&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;Projekte&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;?php foreach (getProjectsByCustomer($arrItem['raw']['alias']) as $arrProjects): ?&amp;gt;&lt;br /&gt;
    &amp;lt;?php if(!empty($arrProjects['raw']['images'])): ?&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;project&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;a href=&amp;quot;{{env::path}}&amp;lt;?php echo $arrProjects['jumpTo']['url']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['project_name']; ?&amp;gt; &lt;br /&gt;
        &amp;lt;/a&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['description']; ?&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['images']; ?&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items</id>
		<title>MetaModels Beispiel: Referenced items</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items"/>
				<updated>2013-09-10T07:40:59Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Lösungsansatz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels|T2]]&lt;br /&gt;
=MetaModels miteinander verknüpfen=&lt;br /&gt;
==Ausgangslage==&lt;br /&gt;
Es gibt ein MetaModel mit &amp;quot;Kunden&amp;quot; (mm_customers) und eines mit &amp;quot;Projekte&amp;quot; (mm_projects). mm_projects enthält ein Attribut &amp;quot;customer&amp;quot; vom Typ &amp;quot;select&amp;quot;, welches die in mm_customer erfassten Kunden anzeigt. Über dieses Feld wird das Projekt mit dem Kunden verknüpft.&lt;br /&gt;
==Aufgabenstellung==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden. Von dort möchte man auch per Link auf die Detailansicht des spezifischen Projektes springen können.&lt;br /&gt;
&lt;br /&gt;
==Lösungsansatz==&lt;br /&gt;
Nebst den spezifischen Kunden-Detailinformationen, sollen die Projekte gelistet darunter erscheinen. Die Projekte werden jeweils mit einem Titel-Link (h3), einer Kurzbeschreibung und der dazu gehörigen Bildgalerie gezeigt. Die Projekte werden überdies über einen Filter sortiert: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array()); &amp;lt;/source&amp;gt;&lt;br /&gt;
In diesem Fall ist '10' die ID des Filters im MetaModels 'mm_projects'. Der Filter sorgt dafür, dass die Projekte chronologisch aufgelistet werden.&lt;br /&gt;
&lt;br /&gt;
Das MetaModels-Template könnte wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
function getProjectsByCustomer($strAlias, $format='html5')&lt;br /&gt;
{&lt;br /&gt;
  $objMetaModel = MetaModelFactory::byTableName('mm_projects');&lt;br /&gt;
  $objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array());&lt;br /&gt;
  $objFilter-&amp;gt;addFilterRule(new MetaModelFilterRuleSearchAttribute($objMetaModel-&amp;gt;getAttribute('customer'), $strAlias, $objMetaModel-&amp;gt;getAvailableLanguages()));&lt;br /&gt;
  $objItems = $objMetaModel-&amp;gt;findByFilter($objFilter);&lt;br /&gt;
  return $objItems-&amp;gt;parseAll($format, $objMetaModel-&amp;gt;getView(3));&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;customer_detailview&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;?php foreach ($this-&amp;gt;data as $arrItem): ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;detailview&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h1 class=&amp;quot;ce_headline&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['customer']; ?&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['description']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;year&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['year']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;url&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['html5']['url']; ?&amp;gt;&amp;lt;/p&amp;gt; &lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;referenced_projects&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;Projekte&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;?php foreach (getProjectsByCustomer($arrItem['raw']['alias']) as $arrProjects): ?&amp;gt;&lt;br /&gt;
    &amp;lt;?php if(!empty($arrProjects['raw']['images'])): ?&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;project&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;a href=&amp;quot;{{env::path}}&amp;lt;?php echo $arrProjects['jumpTo']['url']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['project_name']; ?&amp;gt; &lt;br /&gt;
        &amp;lt;/a&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['description']; ?&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['images']; ?&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items</id>
		<title>MetaModels Beispiel: Referenced items</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items"/>
				<updated>2013-09-10T07:39:37Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Zwei MetaModels zueinander referenzieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels|T2]]&lt;br /&gt;
=MetaModels miteinander verknüpfen=&lt;br /&gt;
==Ausgangslage==&lt;br /&gt;
Es gibt ein MetaModel mit &amp;quot;Kunden&amp;quot; (mm_customers) und eines mit &amp;quot;Projekte&amp;quot; (mm_projects). mm_projects enthält ein Attribut &amp;quot;customer&amp;quot; vom Typ &amp;quot;select&amp;quot;, welches die in mm_customer erfassten Kunden anzeigt. Über dieses Feld wird das Projekt mit dem Kunden verknüpft.&lt;br /&gt;
==Aufgabenstellung==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden. Von dort möchte man auch per Link auf die Detailansicht des spezifischen Projektes springen können.&lt;br /&gt;
&lt;br /&gt;
==Lösungsansatz==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden. Die Projekte werden jeweils mit einem Titel-Link (h3), einer Kurzbeschreibung und der dazu gehörigen Bildgalerie gezeigt. Die Projekte werden überdies über einen Filter sortiert: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array()); &amp;lt;/source&amp;gt;&lt;br /&gt;
In diesem Fall ist '10' die ID des Filters im MetaModels 'mm_projects'. Der Filter sorgt dafür, dass die Projekte chronologisch aufgelistet werden.&lt;br /&gt;
&lt;br /&gt;
Das MetaModels-Template könnte wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
function getProjectsByCustomer($strAlias, $format='html5')&lt;br /&gt;
{&lt;br /&gt;
  $objMetaModel = MetaModelFactory::byTableName('mm_projects');&lt;br /&gt;
  $objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array());&lt;br /&gt;
  $objFilter-&amp;gt;addFilterRule(new MetaModelFilterRuleSearchAttribute($objMetaModel-&amp;gt;getAttribute('customer'), $strAlias, $objMetaModel-&amp;gt;getAvailableLanguages()));&lt;br /&gt;
  $objItems = $objMetaModel-&amp;gt;findByFilter($objFilter);&lt;br /&gt;
  return $objItems-&amp;gt;parseAll($format, $objMetaModel-&amp;gt;getView(3));&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;customer_detailview&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;?php foreach ($this-&amp;gt;data as $arrItem): ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;detailview&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h1 class=&amp;quot;ce_headline&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['customer']; ?&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['description']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;year&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['year']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;url&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['html5']['url']; ?&amp;gt;&amp;lt;/p&amp;gt; &lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;referenced_projects&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;Projekte&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;?php foreach (getProjectsByCustomer($arrItem['raw']['alias']) as $arrProjects): ?&amp;gt;&lt;br /&gt;
    &amp;lt;?php if(!empty($arrProjects['raw']['images'])): ?&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;project&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;a href=&amp;quot;{{env::path}}&amp;lt;?php echo $arrProjects['jumpTo']['url']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['project_name']; ?&amp;gt; &lt;br /&gt;
        &amp;lt;/a&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['description']; ?&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['images']; ?&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items</id>
		<title>MetaModels Beispiel: Referenced items</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items"/>
				<updated>2013-09-10T07:38:56Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Zwei MetaModels zu einander referenzieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels|T2]]&lt;br /&gt;
=Zwei MetaModels zueinander referenzieren=&lt;br /&gt;
==Ausgangslage==&lt;br /&gt;
Es gibt ein MetaModel mit &amp;quot;Kunden&amp;quot; (mm_customers) und eines mit &amp;quot;Projekte&amp;quot; (mm_projects). mm_projects enthält ein Attribut &amp;quot;customer&amp;quot; vom Typ &amp;quot;select&amp;quot;, welches die in mm_customer erfassten Kunden anzeigt. Über dieses Feld wird das Projekt mit dem Kunden verknüpft.&lt;br /&gt;
==Aufgabenstellung==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden. Von dort möchte man auch per Link auf die Detailansicht des spezifischen Projektes springen können.&lt;br /&gt;
&lt;br /&gt;
==Lösungsansatz==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden. Die Projekte werden jeweils mit einem Titel-Link (h3), einer Kurzbeschreibung und der dazu gehörigen Bildgalerie gezeigt. Die Projekte werden überdies über einen Filter sortiert: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array()); &amp;lt;/source&amp;gt;&lt;br /&gt;
In diesem Fall ist '10' die ID des Filters im MetaModels 'mm_projects'. Der Filter sorgt dafür, dass die Projekte chronologisch aufgelistet werden.&lt;br /&gt;
&lt;br /&gt;
Das MetaModels-Template könnte wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
function getProjectsByCustomer($strAlias, $format='html5')&lt;br /&gt;
{&lt;br /&gt;
  $objMetaModel = MetaModelFactory::byTableName('mm_projects');&lt;br /&gt;
  $objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array());&lt;br /&gt;
  $objFilter-&amp;gt;addFilterRule(new MetaModelFilterRuleSearchAttribute($objMetaModel-&amp;gt;getAttribute('customer'), $strAlias, $objMetaModel-&amp;gt;getAvailableLanguages()));&lt;br /&gt;
  $objItems = $objMetaModel-&amp;gt;findByFilter($objFilter);&lt;br /&gt;
  return $objItems-&amp;gt;parseAll($format, $objMetaModel-&amp;gt;getView(3));&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;customer_detailview&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;?php foreach ($this-&amp;gt;data as $arrItem): ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;detailview&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h1 class=&amp;quot;ce_headline&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['customer']; ?&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['description']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;year&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['year']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;url&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['html5']['url']; ?&amp;gt;&amp;lt;/p&amp;gt; &lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;referenced_projects&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;Projekte&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;?php foreach (getProjectsByCustomer($arrItem['raw']['alias']) as $arrProjects): ?&amp;gt;&lt;br /&gt;
    &amp;lt;?php if(!empty($arrProjects['raw']['images'])): ?&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;project&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;a href=&amp;quot;{{env::path}}&amp;lt;?php echo $arrProjects['jumpTo']['url']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['project_name']; ?&amp;gt; &lt;br /&gt;
        &amp;lt;/a&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['description']; ?&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['images']; ?&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels</id>
		<title>MetaModels</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels"/>
				<updated>2013-09-10T07:37:43Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Beispiele */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels|B]]&lt;br /&gt;
{{ExtInfo&lt;br /&gt;
| Dev=Metamodels Team&lt;br /&gt;
| DevSite=&lt;br /&gt;
| Version=ab 2.11.X&lt;br /&gt;
| ERLink=&lt;br /&gt;
| VCSLink=https://github.com/MetaModels/core&lt;br /&gt;
| TrackerLink=https://github.com/MetaModels/core/issues&lt;br /&gt;
| Depending=[[DC_General]] [[Justtextwidgets]] [[MultiColumnWizard]] [[MetaPalettes]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Vorwort: Wiki-Dokumentation der Erweiterung MetaModels (Nachfolger des Catalog)=&lt;br /&gt;
Die Erweiterung MetaModels ist der Nachfolger der Catalog-Extension. Der Code wurde komplett neu entwickelt. Eine Kompatibilität zum Catalog besteht nicht.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; font-size:18px; font-weight:bold&amp;quot;&amp;gt;MetaModels läuft mit Contao 2.11.x und setzt PHP 5.3 voraus. &amp;lt;/span&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black; font-size:18px; font-weight:bold&amp;quot;&amp;gt;MetaModels ist (noch) nicht mit Contao 3.x kompatibel. Wer die Entwicklung voran treiben möchte, kann es [http://now.metamodel.me/en/fundraising hier] per Fundraising tun. &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Download=&lt;br /&gt;
&lt;br /&gt;
==Download von der Demosite==&lt;br /&gt;
[[Datei:logo-metamodels.png|link=|left|105px]]&lt;br /&gt;
Unter der URL [http://now.metamodel.me now.metamodel.me] findet sich die Webseite zur Extension mit einer Frontentdemo und der Möglichkeit, Installationsarchive in den Formaten '''tgz''', '''tbz''' und '''zip''' mit so genannten Nightly Builds zu laden. Diese Archive beinhalten die MetaModels-Dateien, Attribute, Filter sowie sämtliche anderen Erweiterungen, die für den Betrieb nötig sind und ansonsten separat heruntergeladen und installiert werden müssen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download aus dem Entwicklungsrepository GitHub==&lt;br /&gt;
&lt;br /&gt;
[[Datei:logo-github.png|link=|left|105px]]&lt;br /&gt;
Zu finden ist die Erweiterung MetaModels auf GitHub:&lt;br /&gt;
[https://github.com/MetaModels github.com/Metamodels]&amp;lt;br&amp;gt;&lt;br /&gt;
Aktuell können das Core, dazu abhängige weitere Erweiterungen und alle weiteren MetaModels Attribute/Filter manuell installiert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Core===&lt;br /&gt;
* [https://github.com/MetaModels/core MetaModels (Das Core-Modul)]&lt;br /&gt;
* [https://github.com/MetaModels/boilerplate Boilerplate (Erzeugt einen separaten Bereich in der Backend-Navigation)]&lt;br /&gt;
&lt;br /&gt;
===Abhängigkeiten===&lt;br /&gt;
Benötigt werden folgende Erweiterungen:&lt;br /&gt;
* [https://github.com/MetaModels DC_General]&lt;br /&gt;
* [https://contao.org/de/extension-list/view/MetaPalettes.html MetaPalettes]&lt;br /&gt;
* [http://www.contao.org/erweiterungsliste/view/MultiColumnWizard.html MultiColumnWizard]&lt;br /&gt;
* [https://github.com/Discordier/justtextwidgets justtextwidgets]&lt;br /&gt;
* [https://contao.org/de/extension-list/view/geoprotection.de.html geoprotection] (wird nur für das Attribut '''Geoprotection''' benötigt)&lt;br /&gt;
&lt;br /&gt;
===Verfügbare Attribute und Filter===&lt;br /&gt;
Sobald der Core und benötigten sonstigen Erweiterungen installiert sind, werde die weiteren Attributs- und Filterextensions des MetaModels benötigt.&lt;br /&gt;
Dazu gehören:&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Attribute''' !! '''Attribute (translated)''' !! '''Filter'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/MetaModels/attribute_alias Attribut: Alias]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_checkbox Attribut: Checkbox (Kontrollkästchen)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_combinedvalues Attribut: Combined Values (Kombinierte Einträge)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_color Attribut: Color (Farbe)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_country Attribut: Country (Land)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_decimal Attribut: Decimal (Dezimal)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_file Attribut: File (Datei)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_geoprotection Attribut: Geoprotection (Länderzuordnung)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_langcode Attribut: Langcode (Sprachschlüssel)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_longtext Attribut: Longtext (Langtext, Textarea)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_select Attribut: Select (Auswahl)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_numeric Attribut: Numeric (Numerisch)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_rating Attribut: Rating (Bewertung)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_tags Attribut: Tags  (Mehrfachauswahl)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_text Attribut: Text]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_timestamp Attribut: Timestamp (Datum)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_url Attribut: URL]&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedalias Attribut: Translated Alias]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedfile Attribut: Translated File]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedlongtext Attribut: Translated Longtext]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedselect Attribut: Translated Select]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedtags Attribut: Translated Tags]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedtext Attribut: Translated Text]&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/MetaModels/filter_checkbox Filter: Checkbox]&lt;br /&gt;
* [https://github.com/MetaModels/filter_fromto Filter: FromTo]&lt;br /&gt;
* [https://github.com/MetaModels/filter_range Filter: Range]&lt;br /&gt;
* [https://github.com/MetaModels/filter_select Filter: Select]&lt;br /&gt;
* [https://github.com/MetaModels/filter_tags Filter: Tags]&lt;br /&gt;
* [https://github.com/MetaModels/filter_text Filter: Text]&lt;br /&gt;
|}&lt;br /&gt;
Attribut- und Filterextensions werden für den Betrieb von MetaModels benötigt. Welche dieser Erweiterungen in einem Projekt zu Einsatz kommen sollen ist abhängig von den benötigten Funktionen.&lt;br /&gt;
{{Hinweis|Das Attribut '''Geoprotection''' ist nicht mehr Teil der Nightly Builds. Kann aber jederzeit über den oben angegeben Link separat geladen werden.}}{{Hinweis|Das Attribut '''Rating''' benötigt die beiden PHP-Dateien '''SimpleAjax.php''' und '''SimpleAjaxFrontend.php''', welche mit dem aktuellen Nightly Build ausgeliefert werden. Die beiden PHP-Dateien müssen im Root-Verzeichnis der Contao-Installation abgelegt werden.}}&lt;br /&gt;
&lt;br /&gt;
==Download via git und Kommandozeile==&lt;br /&gt;
In einer bash (Linux Kommandozeile bzw. cygwin Kommandozeile) kann man sich auch alle Unterprojekte der MetaModels via git clonen. Man sollte jedoch vorher in den Ordner wechseln, wohin die Projekte heruntergeladen werden sollen.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Linux'''  !! '''MacOS'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
In Benutzerverzeichnis wechseln und für den Pull ein Verzeichniss anlegen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
In Benutzerverzeichnis wechseln und für den Pull ein Verzeichniss anlegen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Alle MetaModel Repos holen&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Alle MetaModel Repos holen&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `curl https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die zu installieren Ordner und Dateien müssen zur Installation im Contao-System wie folgt hochgeladen werden:&lt;br /&gt;
{| style=&amp;quot;width:80%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Module''' (/system/modules) !! '''Drivers''' (/system/drivers)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* generalDriver&lt;br /&gt;
* justtextwidgets&lt;br /&gt;
* metamodels&lt;br /&gt;
* metamodels_boilerplate&lt;br /&gt;
* metamodelsattribute_alias&lt;br /&gt;
* metamodelsattribute_checkbox&lt;br /&gt;
* metamodelsattribute_combinedvalues&lt;br /&gt;
* metamodelsattribute_color&lt;br /&gt;
* metamodelsattribute_country&lt;br /&gt;
* metamodelsattribute_decimal&lt;br /&gt;
* metamodelsattribute_file&lt;br /&gt;
* metamodelsattribute_geoprotection&lt;br /&gt;
* metamodelsattribute_langcode&lt;br /&gt;
* metamodelsattribute_longtext&lt;br /&gt;
* metamodelsattribute_numeric&lt;br /&gt;
* metamodelsattribute_rating&lt;br /&gt;
* metamodelsattribute_select&lt;br /&gt;
* metamodelsattribute_tags&lt;br /&gt;
* metamodelsattribute_text&lt;br /&gt;
* metamodelsattribute_timestamp&lt;br /&gt;
* metamodelsattribute_translatedalias&lt;br /&gt;
* metamodelsattribute_translatedfile&lt;br /&gt;
* metamodelsattribute_translatedlongtext&lt;br /&gt;
* metamodelsattribute_translatedselect&lt;br /&gt;
* metamodelsattribute_translatedtags&lt;br /&gt;
* metamodelsattribute_translatedtext&lt;br /&gt;
* metamodelsattribute_url&lt;br /&gt;
* metamodelsfilter_checkbox&lt;br /&gt;
* metamodelsfilter_fromto&lt;br /&gt;
* metamodelsfilter_range&lt;br /&gt;
* metamodelsfilter_select&lt;br /&gt;
* metamodelsfilter_tags&lt;br /&gt;
* metamodelsfilter_text&lt;br /&gt;
* metapalettes&lt;br /&gt;
* multicolumnwizard&lt;br /&gt;
|&lt;br /&gt;
* DC_General.php&lt;br /&gt;
|}&lt;br /&gt;
Danach muss mittels des Installtools ein Update der Datenbank gemacht werden.&lt;br /&gt;
&lt;br /&gt;
=Backend Ansichten=&lt;br /&gt;
&lt;br /&gt;
===Leeres MetaModel===&lt;br /&gt;
[[Datei:MetaModels_Backend_System.png|right|600px]]&lt;br /&gt;
Nach Aktualisierung der Datenbank erscheint '''MetaModels''' neu als eigenständige Einstellung in der Backend-Navigation links.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Erweiterungsverwaltung===&lt;br /&gt;
[[Datei:MetaModels_Backend_System_ER.png|right|600px]]&lt;br /&gt;
In der Erweiterungsverwaltung findet sich hingegen nichts, was auf MetaModels hinweist. Aber das ist gut so (Stand Mai 2013).&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MetaModel mit null Datensätzen===&lt;br /&gt;
[[Datei:MetaModels_Backend_System_Beispiel.png|right|600px]]&lt;br /&gt;
Nachdem ein erstes neues MetaModel erstellt wurde, erscheint folgende Darstellung:&lt;br /&gt;
Weiterführende Informationen zu einem einfachen Praxisbeispiel findet man unter [[MetaModels_Beispielprojekt|MetaModels Beispielprojekt]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Attribute===&lt;br /&gt;
[[File:icons_attribute.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Attribute|hier]].&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Ausgabevorgaben===&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Ausgabevorgaben|hier]].&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Eingabemaske (fka Paletteneinstellungen)===&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Eingabemaske|hier]].&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Filter===&lt;br /&gt;
[[File:icons_filter.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Filter|hier]].&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Ansichtseinstellungen===&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Ansichtseinstellungen|hier]].&lt;br /&gt;
&lt;br /&gt;
=Basics=&lt;br /&gt;
Einführende Beispiele, wie man MetaModels einrichten und konfigurieren kann, findet man hier:&lt;br /&gt;
# [[MetaModels_Beispiel_1| Backend einrichten]] - am Beispiel einer Musiksammlung, Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2| Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3| Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4| Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Tipps und Tricks=&lt;br /&gt;
Umsetzung-Beispiele, wie man MetaModels ausbauen kann, findet man hier:&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select| Übersetzer select]] - &amp;quot;Übersetzter select&amp;quot;-Attribut eingerichtet werden.&lt;br /&gt;
# [[MetaModels_Beispiel:_Referenced_items| Referenced items]] - MetaModels miteinder verknüpfen&lt;br /&gt;
&lt;br /&gt;
=Frontendausgabe=&lt;br /&gt;
{{Hinweis|Die Dokumentation sollte in eine andere Seite ausgelagert werden}}&lt;br /&gt;
----&lt;br /&gt;
started by: [[Benutzer:Planepix|Planepix]] 00:49, 28. Nov. 2012 (CET)&amp;lt;br&amp;gt;&lt;br /&gt;
completed by [[Benutzer:Luis|Luis]], [[Benutzer:lucina|Lucina]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_4</id>
		<title>MetaModels Beispiel 4</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_4"/>
				<updated>2013-09-10T07:33:14Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Vorgehensschritte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels|B]]&lt;br /&gt;
=Aufgabenstellung: Weiteres MetaModel einrichten=&lt;br /&gt;
Wer mit Catalog arbeitet, ist es gewohnt, Selects einzusetzen, um Datensätze zu kategorisieren. In unserem Fall wäre es z.B. sinnvoll, unsere Musikstücke bestimmten Stilrichtungen zuzuordnen. &amp;lt;br&amp;gt;&lt;br /&gt;
Bei Catalog wird hierfür die Erweiterung [https://contao.org/de/extension-list/view/taxonomy.10089.de.html Taxonomy] eingesetzt, um Hierarchien von Taxonomie-Bedingungen (oder besser bekannt als Tags) zu erstellen, die dann über ein Select bei der Datensatz-Erfassung abgerufen werden können. Im Wesentlichen wird über Taxonomy eine separate Tabelle mit den später abzurufenden Kategorien erfasst. &amp;lt;br&amp;gt;&lt;br /&gt;
Mit MetaModels entfällt der Rückgriff auf Taxonomy. Mit MetaModels kann man eigene Tabellen erfassen, die die Einträge der HTML-Selects enthalten.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Neues MetaModel erstellen=&lt;br /&gt;
&lt;br /&gt;
==Leeres MetaModel==&lt;br /&gt;
[[File:mm_neues_metamodel.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Wir beginnen damit, dass wir unter MetaModels ein neues MetaModel anlegen:&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Wir geben dem neuen MetaModel den Namen '''Musicbox - Stilrichtungen''' und den Tabellennamen '''mm_select_style'''&lt;br /&gt;
* Des weiteren aktivieren wir die '''Übersetzung''' setzen als Sprache '''Deutsch''' ein und aktivieren das '''Fallback'''&lt;br /&gt;
* Speichern und schliessen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:mm_neues_metamodel2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Nun steht uns ein neues, leeres MetaModel (mit null Datensätzen) zur Verfügung, das wir mit den Begriffen der benötigten Stilrichtungen füllen können.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Wir erfassen zuerst die benötigen Attribute für die Eingabe.&lt;br /&gt;
[[File:mm_neues_metamodel_attribute.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu geben wir folgende Felder ein:&lt;br /&gt;
* '''Stilrichtung'''&lt;br /&gt;
** Attribute Type= Text&lt;br /&gt;
** Column name= style&lt;br /&gt;
** Name (deutsch)= Stilrichtung&lt;br /&gt;
** Description (deutsch)= Pop, Rock, New Wave, Jazz, etc.&lt;br /&gt;
&lt;br /&gt;
* '''Alias'''&lt;br /&gt;
** Attribute Type= Alias&lt;br /&gt;
** Column name= alias&lt;br /&gt;
** Name (deutsch)= Alias&lt;br /&gt;
** Description (deutsch)= Wird für URL benötigt.&lt;br /&gt;
** Unique values= aktiviert&lt;br /&gt;
** Alias fields= Titel&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM Funktion: Ausgabevorgaben==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Es wird eine neue Ausgabevorgabe benötigt.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ausgabevorgaben.png|thumb|400px]]&lt;br /&gt;
* Auf '''Neu''' klicken&lt;br /&gt;
* Die neue Ausgabevorgabe mit '''BE Listenansicht''' benennen&lt;br /&gt;
* speichern und schließen&lt;br /&gt;
* über die Attributeinstellungen alle Attribute hinzufügen&lt;br /&gt;
* Sichtbarkeit(Auge) herstellen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM Funktion: Eingabemaske==&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
Es wird eine neue Eingabemaske benötigt.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_eingabemaske.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''Neu''' klicken&lt;br /&gt;
* Die neue Eingabemaske mit '''BE Erfassung''' benennen&lt;br /&gt;
* Alle Attribute hinzufügen&lt;br /&gt;
* Speichern und schliessen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM Funktion: Filter==&lt;br /&gt;
[[File:icons_filter.png|left|32px]]&lt;br /&gt;
Es wird kein Filter benötigt.&lt;br /&gt;
&lt;br /&gt;
==MM Funktion: Ansichtseinstellungen==&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
Es werden wie gewohnt die Zugriffsberechtigung zugewiesen, damit über die Backend-Navigation auf die Tabelle zugegriffen werden kann.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|thumb|400px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Neues MetaModel 'MyMusik - Stilrichtungen' steht zum Abfüllen bereit=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_navi.png|left|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_navi2.png|left|600px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BE Liste==&lt;br /&gt;
[[File:mm_neues_metamodel_BE_liste.png|thumb|400px]]&lt;br /&gt;
* Über '''Neuer Datensatz''' wird die Liste befüllt&lt;br /&gt;
* Für unserem Fall werden nun die späteren Kategorien erfasst: Pop/Rock, Italo-Rock, New Wave, Fat Beat, Cantautore, Soul/Blues und Jazz&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BE Formular==&lt;br /&gt;
[[File:mm_neues_metamodel_BE_formular.png|thumb|400px]]&lt;br /&gt;
* Das BE Formular sieht ziemlich simpel aus&lt;br /&gt;
* Ein separates Feld &amp;quot;ID&amp;quot; braucht nicht erfasst zu werden, denn dieses wird im Hintergrund automatisch generiert&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Auswahlfeld bei 'Musicbox' hinzufügen=&lt;br /&gt;
Wir klicken unser altes MetaModel '''Musicbox''' an und wählen dort die MM-Funktion '''Attribute''' an.&lt;br /&gt;
==Neues Attribut 'Stilrichtung'==&lt;br /&gt;
[[File:mm_attribut_erfassen_style.png|thumb|400px]]&lt;br /&gt;
* Das neue Attribut ist vom Typ '''Auswahl'''&lt;br /&gt;
* Column name: style&lt;br /&gt;
* Name: Stilrichtung&lt;br /&gt;
* Description:... wie es euch gefällt&lt;br /&gt;
&lt;br /&gt;
Nun kommt der eigentlich wichtige Teil: Man stellt eine Verbindung zum neu geschaffenen MetaModel her&lt;br /&gt;
&lt;br /&gt;
* '''Source Table''': Hier erscheinen alle in der Contao-Installation verfügbaren Tabellen. Ausgewählt wird die neue Tabelle '''mm_select_style'''&lt;br /&gt;
* '''Value column''': Den Namen der Spalte '''style''' auswählen&lt;br /&gt;
* '''Id column''': '''id''' auswählen. Standardmässig führt jede Contao-Tabelle eine ID mit&lt;br /&gt;
* '''Alias column''': '''alias''' auswählen&lt;br /&gt;
* ''' Auswahl-Sortierung''':  Sortierkriterium auswählen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_atribut_musicbox.png|thumb|400px]]&lt;br /&gt;
Ab sofort steht nun in der BE Erfassung von '''MyMusic''' ein neues Feld '''Stilrichtung''' mit einem Select zur Verfügung. Das Select enthält nun alle Werte, die unter '''MyMusic - Stilrichtungen''' erfasst wurden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Zusätzlichen Select-Filter im Frontend definieren=&lt;br /&gt;
&lt;br /&gt;
==Filter bei MyMusic anpassen==&lt;br /&gt;
[[File:mm_neues_attribut_filter.png|thumb|400px]]&lt;br /&gt;
* Der bereits exisitierende Name des Filters '''FE Filter Published''' wird kurz zu &amp;quot;FE Filter Published/Selects&amp;quot; angepasst&lt;br /&gt;
* Der Filter '''FE Filter Published''' wird um weitere Einstellungen ergänzt, nämlich...&lt;br /&gt;
** eine Einzelauswahl für das Attribut (Stilrichtung)&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_attribut_filter2.png|thumb|400px]]&lt;br /&gt;
* Nebenan die Anpassung der Einstellung '''Einzelauswahl''' für das Attribut '''Stilrichtung'''&lt;br /&gt;
* Standardmässig wird im Hintergrund einfach der '''URL-Parameter''' des Feldes (im obigen Beispiel 'country' und 'style') mitgegeben. Dieser lässt sich hier umdefinieren.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Modul aktualisieren==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_attribut_FE-Modul.png|thumb|400px]]&lt;br /&gt;
Das bereits existierende FE-Modul '''MM - MyMusik Filter''' muss noch angepasst werden:&lt;br /&gt;
* Anzuwendende Filtereinstellungen: Hier hat sich der Name des Filters bereits selbst aktualisiert&lt;br /&gt;
* Filterparameter: den neu hinzugekommene Parameter '''Stilrichtung''' anklicken&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Frontend Ansicht=&lt;br /&gt;
Im Frontend wird ein weiteres Select angezeigt, aus dem zusätzlich auch die '''Stilrichtungen''' angewählt werden können. &lt;br /&gt;
Die darunter liegende Liste wird entsprechend den oben ausgewählten Kriterien eingegrenzt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:mm_frontend_beispiel_2_selects.jpg|link=|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_3|Zurück zum Beispiel 3]] |&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_3</id>
		<title>MetaModels Beispiel 3</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_3"/>
				<updated>2013-09-10T07:33:00Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Vorgehensschritte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels|B]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Weitere Filter einrichten=&lt;br /&gt;
Wir bauen einen Mechanismus ein, mit dem wir entscheiden können, welcher der im MetaModel '''Musikbox''' erfassten Datensätze im Frontend erscheinen soll und welcher nicht. Mit dem speziellen Attribut &amp;quot;Published State&amp;quot; lässt sich so was einrichten und über einen Filter im Frontend steuern.&lt;br /&gt;
Darüber hinaus möchten wir die Listenansicht im Frontend etwas interaktiver gestalten, indem wir einen Filter als HTML-Select im Frontend zur Verfügung stellen, der die Liste z.B. nach Länder ausfiltert.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Published Filter im Backend einbauen=&lt;br /&gt;
&lt;br /&gt;
==Start==&lt;br /&gt;
[[File:mm_backend_anpassen0.png|thumb|400px]]&lt;br /&gt;
Die Übersichtsliste in unserer Musiksammlung '''MyMusic''' entspricht bisher in etwa dem nebenstehenden Screenshot.&lt;br /&gt;
&lt;br /&gt;
Hier möchten wir das Icon &amp;quot;Auge&amp;quot; (=&amp;gt; Eintrag veröffentlichen) einfügen, dass wir von anderen Contao-Backend Funktionen kennen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute anpassen==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir das neue Attribut (s. auch [[MetaModels_Backend:_Attribute|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen1.png|thumb|400px]]&lt;br /&gt;
* Wähle '''Neues Attribut'''&lt;br /&gt;
* Wähle als ''Attribut-Typ'' '''Checkbox''' aus gib als Spaltenname z.B. '''published''' ein&lt;br /&gt;
* Wichtig: '''Veröffentlichen''' muss angeklickt sein&lt;br /&gt;
* In der Attributsübersicht erscheint jetzt das neu angelegte Feld '''Veröffentlicht'''&lt;br /&gt;
&lt;br /&gt;
Nun kann man in den entsprechenden anderen MM-Backend-Funktionen, die weiteren Anpassung vornehmen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben anpassen==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Wir passen die Listendarstellung für das Backend an (s. [[MetaModels_Backend:_Ausgabevorgaben|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen2.png|thumb|400px]]&lt;br /&gt;
* Wir wählen die Attributseinstellungen von '''BE Listenansicht'''&lt;br /&gt;
* Wähle '''Alle hinzufügen''' aus&lt;br /&gt;
* Es gibt einen automatischen Check welche Attribute bereits in die Rendersettings geladen wurden und welche nicht. Das neue Attribut &amp;quot;Veröffendlicht&amp;quot; wird hinzugefügt&lt;br /&gt;
* Es wird am Ende der Attributsliste hinzugefügt&lt;br /&gt;
&lt;br /&gt;
Damit sind die eigentlichen Anpassungen für das Backend schon abgeschlossen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Paletteneinstellung anpassen==&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
Wir passen die Paletteneinstellung für das Backend an (s. [[MetaModels_Backend:_Paletteneinstellungen|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
Damit das gerade hinzugefügte Attribut auch im Backend wirksam wird, muss noch die Paletteneinstellung angepasst werden.&lt;br /&gt;
* Wir wählen für die Palette '''BE Erfassung''' das Icon ''Die Einstellungen der Palette ID xx bearbeiten''&lt;br /&gt;
* Dann ''Alle hinzufügen'' und zweimal bestätigen&lt;br /&gt;
&lt;br /&gt;
==Backendliste &amp;quot;MyMusik&amp;quot; nochmals prüfen==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen3.png|thumb|400px]]&lt;br /&gt;
Wenn wir jetzt unsere Übersichtsliste in unserer Musiksammlung &amp;quot;MyMusic&amp;quot; nochmals ansehen, entdecken wir das Icon &amp;quot;Auge&amp;quot;.&lt;br /&gt;
&amp;lt;br&amp;gt;Nun können wir im Backend steuern, ob ein Musikstück im Frontend angezeigt werden soll oder nicht.&lt;br /&gt;
&lt;br /&gt;
Damit das geschieht, müssen wir noch einen Filter erstellen, der den jeweiligen Frontend-Ansichten sagt, dass nur markierte Musikstücke veröffentlicht werden sollen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Published Filter im Frontend einbauen=&lt;br /&gt;
Schaut man sich jetzt wiederholt die Frontend-Liste der Musicbox an während man im BE mit dem ''veröffentlicht-Auge'' herumspielt, so stellt man keine Veränderung fest.&amp;lt;br&amp;gt;Wir müssen daher in diversen MM-Backend-Funktionen Veränderungen vornehmen&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: [[MetaModels_Backend:_Filter|Filter definieren]]==&lt;br /&gt;
Wir erstellen einen neuen Filter: &amp;quot;FE Filter published&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen1.png|thumb|400px]]&lt;br /&gt;
* Wir wählen &amp;quot;neu&amp;quot;, bestätigen mit weiter&lt;br /&gt;
* Wir wählen den Typ &amp;quot;Published state&amp;quot;, wählen hierzu das vorhin erfasste Attribut &amp;quot; Veröffentlicht [checkbox]&amp;quot; und aktivieren diesen neuen Filter &amp;quot;FE Filter published&lt;br /&gt;
* ... und kehren zurück zur Filter-Übersichtsliste&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Modul anpassen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen2.png|thumb|400px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir wählen hier das Modul, das für unsere Frontend-Ansicht zuständig ist. In unserem Fall das FE-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dort nehmen wir an folgende Änderungen vor:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; wählen wir den neu erstellen Filter &amp;quot;FE Filter Published&amp;quot; an&lt;br /&gt;
&lt;br /&gt;
Ab sofort werden im Frontend nur noch die Datensätze angezeigt, die wir in unserer Backend-Liste &amp;quot;MyMusik&amp;quot; mit dem Icon &amp;quot;Auge&amp;quot; markiert haben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Select Filter im Frontend einbauen=&lt;br /&gt;
Hier müssen wir in diversen MM-Backend-Funktionen diverse Veränderungen vornehmen&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Filter definieren==&lt;br /&gt;
Wir nehmen den neuen Filter, ergänzen diesen und geben ihm einen neuen Namen &amp;quot;FE Filter published/Country&amp;quot;. Dieser angepasste Filter muss zwei Bedingungen erfüllen:&lt;br /&gt;
* Er soll wie bisher nur die publizierten Musikstücke anzeigen&lt;br /&gt;
* Er soll nur die Länder anzeigen, die wir über ein Select anwählen, das über der FE Liste angezeigt wird&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen3.png|thumb|400px]]&lt;br /&gt;
* Wir wählen die Filtereinstellungen des &amp;quot;Filters FE Filter published&amp;quot;&lt;br /&gt;
* Wir wählen &amp;quot;neu&amp;quot; und setzen die neue Einstellung unterhalb der Einstellung &amp;quot;Published State&amp;quot; ein&lt;br /&gt;
* Wir nehmen den Typ &amp;quot;Einzelauswahl&amp;quot;, weisen das Attribut &amp;quot;Land [text]&amp;quot; zu und aktivieren diesen&lt;br /&gt;
* Optional wählen wir noch die Option &amp;quot;Leerer Wert&amp;quot; an. Dies bewirkt, dass im späteren Select überhalb unserer Länderauswahl ein leerer Eintrag generiert wird&lt;br /&gt;
* Wir &amp;quot;Speichern und schliessen&amp;quot; den Dialog&lt;br /&gt;
&lt;br /&gt;
Nun erscheint uns neu der Filter &amp;quot;FE Filter published&amp;quot; als eine Kombination von 2 Filtereinstellungen. Man kann sich nun leicht vorstellen, wie komplex man sich diesen Filter bauen kann, wenn man will.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Neues Frontend-Modul erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen4.png|thumb|400px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir erstellen hier ein neues Frontend-Modul&lt;br /&gt;
* Wir wählen hierzu den Modultyp &amp;quot;MetaModels Filter&amp;quot; und geben ihm den Namen &amp;quot;MM - MyMusik Filter&amp;quot;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bestehendes Frontend-Modul anpassen==&lt;br /&gt;
[[File:mm_backend_filter_anpassen5.png|thumb|400px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir nehmen das &amp;amp;nbsp;Frontend-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
* Wir sortieren nach &amp;quot;Land&amp;quot; und &amp;quot;Aufsteigend&amp;quot;&lt;br /&gt;
* Neu ist nun, dass wir hier unter &amp;quot;anzuwendende Filtereinstellungen&amp;quot; den überarbeiteten Filter &amp;quot;FE Filter published&amp;quot; nehmen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bestehenden Artikel anpassen==&lt;br /&gt;
[[File:mm_backend_filter_anpassen6.png|thumb|400px]]&lt;br /&gt;
* Wir gehen nun zu unserem Artikel, wo wir einst unser Frontend-Modul &amp;quot;MM - MyMusic Liste&amp;quot; verbaut haben&lt;br /&gt;
* Darüber erstellen wir neu ein weiteres Inhaltselement, ein weiteres Frontend-Modul. Diesmal das neu erstellte FE-Modul &amp;quot;MM - MyMusic Filter&amp;quot;&lt;br /&gt;
* to be continued&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Frontend Ansicht=&lt;br /&gt;
Die FE-Liste erscheint nun neu mit einem HTML-Select. Über die Auswahl lässt sich nun die darunterliegende Liste länderspezifisch verkürzen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_frontend_beispiel_filter.png|link=|900px]]&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_2|Zurück zur Beispiel 2]] | [[MetaModels_Beispiel_4|Weiter Beispiel 4: Weiter MetaModels hinzufügen]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_2</id>
		<title>MetaModels Beispiel 2</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_2"/>
				<updated>2013-09-10T07:32:45Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Vorgehensschritte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels|B]]&lt;br /&gt;
=Aufgabenstellung: Frontend einrichten=&lt;br /&gt;
Wir haben im Backend bereits ein paar Daten (Musikstücke) erfasst und möchten diese nun im Frontend anzeigen lassen. Hierfür benötigen wir eine Übersichtseite (Liste) und eine Detailsansicht. Plus noch eine minimale Navigation, um zwischen Liste und Detailansicht hin- und herklicken zu können.&lt;br /&gt;
Hierbei werden wir auch die Filtertechnik von MetaModels einsetzen.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Seiterstruktur anpassen=&lt;br /&gt;
== In der Seitenstruktur zwei leere Seiten einrichten==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_seitenstruktur_einrichten.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst richten wir in der Seitenstruktur zwei neue (leere) Seiten ein.&lt;br /&gt;
&lt;br /&gt;
* '''Musicbox''' (diese Seite wird die Listenansicht aufnehmen)&lt;br /&gt;
* '''Music''' (diese Seite wird für die Darstellung der Detailansicht verantwortlich sein)&lt;br /&gt;
&lt;br /&gt;
Sowohl MetaModels als auch die später benötigten Frontend-Module werden auf diese Seiten zugreifen müssen, deswegen richten wir diese vorab ein, auch wenn noch kein Inhalt definiert ist.&lt;br /&gt;
&lt;br /&gt;
==Einfachen Filter erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_filter.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Wir steigen nun wieder bei MetaModels bei '''Musicbox''' ein und gehen zur [[MetaModels_Backend:_Filter|MM-Backend Funktion: Filter]]&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_einrichten.png|thumb|400px]]&lt;br /&gt;
Hier müssen wir thematisch etwas vorausgreifen, und ein Instrument bereitstellen, das bei der Einrichtung der Frontend-Ansichten in MetaModels benötigt wird: '''Wir brauchen einen Filter'''.&lt;br /&gt;
Bei MetaModels haben Filter eine breitere Bedeutung als dies umgangssprachlich der Fall ist. Filter steuern jede Art von Ansichtsdarstellung, sowohl im Backend als auch im Frontend.&amp;amp;nbsp;Aus der Sicht von MetaModels gibt es nicht eine Listen- und eine separate Archivansicht, wie man das z.B. von News oder Catalog her kennt. Für MetaModels ist jede Ansicht eine Listenansicht. Es ist der Filter, der bestimmt ob n Datensätze (aka Liste) oder nur 1 Datensatz (aka Detailansicht) angezeigt wird. Mit anderen Worten: Der Filter und nicht das Frontend-Modul macht den Unterschied.&lt;br /&gt;
&lt;br /&gt;
* Die Filterübersicht ist noch leer (Keine Einträge gefunden)&lt;br /&gt;
* Auf '''Neu''' klicken&lt;br /&gt;
* Den Namen eingeben, z.B. &amp;quot;FE Link Detail&amp;quot; (FE steht für Frontend) und speichern&lt;br /&gt;
* Die Filterübersicht zeigt nun diesen Eintrag. Wähle das rechte Icon ''Filterattribute für Filtereinstellung definieren''.&lt;br /&gt;
* Auf '''Neu''' klicken und das Icon (mit Pfeil) für '''einsetzen''' wählen&lt;br /&gt;
* Nun kann man den Typ '''Einfache Abfrage''' auswählen&lt;br /&gt;
* Das '''Attribut''' Alias auswählen und den URL-Parameter '''auto_item''' eingeben&lt;br /&gt;
* Alle weiteren Optionen bleiben leer oder nicht angeklickt. Als '''Template''' den Standard '''mm_filteritem_default''' auswählen&lt;br /&gt;
* Speichern und Schliessen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===URL-Parameter auto_item===&lt;br /&gt;
[[File:mm_backend_filter_einrichten2.png|thumb|400px]]&lt;br /&gt;
Der URL-Parameter '''auto_item''' ist in Kombination mit dem Attribut '''Alias''' dann interessant, wenn man in der URL das '/alias' raushaben möchte.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
aus...&lt;br /&gt;
meineDomain.com/album/alias/born-to-die.html&lt;br /&gt;
wird...&lt;br /&gt;
meineDomain.com/album/born-to-die.html&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis'''&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn der URL-Parameter '''auto_item''' verwendet werden soll, dann muss in den System-Einstellungen im BE im Abschnitt ''Frontend-Einstellungen'' die Option '''Den auto_item-Parameter verwenden''' angehakt sein, sonst erfolgt keine Ausgabe des Details ( =&amp;gt;There are no items matching your search.)&lt;br /&gt;
&lt;br /&gt;
'''Fazit'''&amp;lt;br&amp;gt;&lt;br /&gt;
Der Filter &amp;quot;FE Link Detail&amp;quot; besteht nun aus einer einzigen Definition. Wir werden in einem späteren Beispiel sehen, dass ein Filter auch aus mehreren Definitionen bestehen kann. Das ist eine weitere Neuerung in MetaModels, nämlich, dass man sich im Wesentlichen seine eigenen Filter zusammenbauen kann.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Listenansicht erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Wähle die MM-Backend-Funktion [[MetaModels_Backend:_Ausgabevorgaben|&amp;quot;Ausgabevorgaben&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten.png|thumb|400px]]&lt;br /&gt;
* Die Übersichtsseite zeigt dir bereits einen Eintrag &amp;quot;BE Listenansicht&amp;quot; an. Auf '''Neu''' klicken.&lt;br /&gt;
* Den Namen '''FE Listenansicht''' eingeben&lt;br /&gt;
* Als Template '''metamodel_prerendered (global scope)&amp;quot; wählen&lt;br /&gt;
* Als '''Zielseite''' die vorhin definierte Seite &amp;quot;Music&amp;quot; angeben. Klicke hierzu auf das Icon &amp;quot;Globus&amp;quot; und wähle die Seite aus dem Pulldown-Menu aus.{ {link_url::xx} } wird dann automatisch eingesetzt.&lt;br /&gt;
* Unter '''Filtereinstellungen''' wählen wir den vorhin definierten Filter &amp;quot;FE Link Detail&amp;quot;.&amp;lt;br&amp;gt;(''sollte der Filter zunächst nicht angezeigt werden, dann hilft =&amp;gt;speichern weiter'')&lt;br /&gt;
* Speichern und schliessen&lt;br /&gt;
* Nun erscheinen zwei Einträge in der Liste der Ausgabevorgaben&lt;br /&gt;
&lt;br /&gt;
Mit diesen Einstellungen legt man grob fest, welches Aussehen (Template) die Seite haben soll, wohin die Reise gehen wird (Zielseite) und was bei dieser Zielseite angezeigt werden soll (was durch den Filter bestimmt wird).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis'''&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn man hier kein Filter angibt, wird später im Frontend kein '''Details'''-Link erscheinen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Tipp'''&amp;lt;br&amp;gt;&lt;br /&gt;
Weitere Infos zum Details-Link siehe [[MetaModels_Beispiel_2#Detail-Link_anpassen|unten]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute zur Listenansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Klick auf das Icon rechts '''Attribute hinzufügen'''&lt;br /&gt;
* Wähle '''Alle hinzufügen''' (geht schneller und einfacher als alle über &amp;quot;Neu&amp;quot; hinzufügen)&lt;br /&gt;
* Bestätige die folgenden Screens&lt;br /&gt;
* Lege fest, welche Attribute in der Listenansicht angezeigt werden sollen (Icon &amp;quot;Auge&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Man kann auch die Einstellung der Attribute anschauen, wie im letzten Screen angezeigt. Standardmäßig wird jedem Attribut zusätzlich ein Template mitgegeben. In unserem Beispiel analog dem Typ das Template &amp;quot;mm_attr_text (global scope)&amp;quot;.&lt;br /&gt;
Man erkennt hier schon im Ansatz, dass in MetaModels praktisch jedes Detail über ein Template gesteuert wird. Was für eine mögliche Individualisierung letztlich heißt, dass man in der freien Gestaltung potentiell unendliche viele Möglichkeiten zur Verfügung gestellt bekommt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Detailansicht erstellen==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Wähle die MM-Backend-Funktion [[MetaModels_Backend:_Ausgabevorgaben|&amp;quot;Ausgabevorgaben&amp;quot;]] (aka Rendereinstellungen).&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten.png|thumb|400px]]&lt;br /&gt;
* Die Übersichtsseite zeigt dir die Einträge &amp;quot;BE Listenansicht&amp;quot; und &amp;quot;FE Listenansicht&amp;quot; an.&lt;br /&gt;
* Wir klicken auf &amp;quot;neu&amp;quot;&lt;br /&gt;
* Gib den Namen &amp;quot;FE Detailansicht&amp;quot; an&lt;br /&gt;
* Als Template wähen wir &amp;quot;metamodel_prerendered (global scope) an.&lt;br /&gt;
* In diesem Fall brauchen wir weder eine Zielseite noch ein Filtersettting anzugeben, denn bis hierher und nicht weiter wollen wir gelangen&lt;br /&gt;
* Optional kann auch eine Weiterleitungsseite definiert und ein Filter angegeben werden, wenn man einen Link &amp;quot;Zurück&amp;quot; generieren will&lt;br /&gt;
* Speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
'''Tipp'''&amp;lt;br&amp;gt;&lt;br /&gt;
Weitere Infos wie man einen Zurück-Link erstellt, siehe [[MetaModels_Beispiel_2#Detail-Link_anpassen|unten]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten_liste.png|thumb|400px]]&lt;br /&gt;
Es erscheinen nun drei Einträge in der Liste der Ausgabevorgaben.&lt;br /&gt;
* BE Listenansicht&lt;br /&gt;
* FE Detailansicht&lt;br /&gt;
* FE Listenansicht&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute zur Detailansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Das Vorgehen ist analog zum Punkt 4 zu verstehen. Einzig, dass wir hier am Ende alle Attribute anzeigen lassen (inkl. Bild und Beschreibung).&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Module erstellen==&lt;br /&gt;
{{Hinweis|Einige Einstellmöglichkeiten in den nachstehend beschriebenen Modulen sind erst nach einer Zwischenspeicherung des Moduls erreichbar.}}&lt;br /&gt;
[[File:mm_backend_FE-Module_Liste.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Frontend-Modul für Listenansicht einrichten:&lt;br /&gt;
&lt;br /&gt;
* Wähle den ''Modultyp'' &amp;quot;MetaModels-Liste&amp;quot; aus&lt;br /&gt;
* Wähle das entsprechend ''MetaModel'' aus, in unserem Fall &amp;quot;Musicbox&amp;quot;&lt;br /&gt;
* Bei ''Sortieren nach'' und ''Sortierreihenfolge'' das gewünschte Attribut festlegen bzw. ob auf- oder absteigend sortiert werden soll&lt;br /&gt;
* ''Anzuwendende Filtereinstellungen'' bleibt vorläuftig leer. Das heißt soviel wie, dass wir in unserer Liste alle Datensätze (Musikstücke), die wir in unserer Musicbox erfasst haben, in der Liste anzeigen möchten&lt;br /&gt;
* Bei ''Eigenes Template für Datensatzliste auswählen'' den vorgegebenen Default &amp;quot;mod_metamodel_list&amp;quot; nehmen&lt;br /&gt;
* Bei ''Anzuwendende Rendereinstellung'' nehmen wir nun die zuvor definierte Ausgabevoreinstellung &amp;quot;FE Listenansicht&amp;quot;. Damit werden nur die Daten der Felder ausgegeben, die wir unter Punkt 9 als sichtbar gekennzeichnet haben, und zwar in der dort definierten Reihenfolge&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_Detail.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Dieses FE-Modul richten wir analog dem FE-Modul der Listenansicht ein, allerdings mit zwei wichtigen Unterschieden:&lt;br /&gt;
&lt;br /&gt;
* Bei ''Anzuwendende Filtereinstellungen'' muss nun der Filter &amp;quot;FE Link Detail&amp;quot; angewählt werden. Dieser bewirkt, dass man hier, in der Detailansicht, auch nur den Datenansatz angezeigt bekommt, den man in der Listenansicht angeklickt hatte.&lt;br /&gt;
* Bei ''Anzuwendende Rendereinstellungen'' wählen wir die in den Ansichtsdarstellungen definierte Einstellung &amp;quot;FE Detailansicht&amp;quot;. Hier werden alle Daten angezeigt, die wir unter Punkt ... als sichtbar angegeben haben. In diesem Falle alle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Module einbinden und Seitenvorschau==&lt;br /&gt;
[[File:mm_backend_FE-Module_einsetzen.png|thumb|400px]]&lt;br /&gt;
Zum Schluss bindet man die beiden Frontend-Module in den gewünschten Artikel ein.&lt;br /&gt;
Done.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
== Detail-Link anpassen==&lt;br /&gt;
Wenn der Rendereinstellung für die FE-Ansicht der passende Filter mitgegeben wurde, wird am Ende des Items standardmässig ein Link namens '''Details''' generiert. &lt;br /&gt;
Im Standard-Template '''metamodel_prerendered.html5''' sieht der PHP-Code, wo der Link vorkommt, so aus:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php if ($arrItem['jumpTo']['deep']): ?&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;&amp;lt;?php echo $arrItem['jumpTo']['url']; ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;?php echo $this-&amp;gt;details; ?&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Die Bezeichnung des Links lässt sich umbenennen, ohne in das Template eingreifen zu müssen.&amp;lt;br&amp;gt;&lt;br /&gt;
Hierzu kann man bei '/system/config/'''langconfig.php'''' folgende Anpassungen machen. 3 Beipiele...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS['TL_LANG']['MSC']['details'] = '...mehr Details';&lt;br /&gt;
$GLOBALS['TL_LANG']['MSC']['mm_meineTabelle']['details'] = 'weiter...';&lt;br /&gt;
$GLOBALS['TL_LANG']['MSC']['mm_meineTabelle'][id]['details'] = 'Zurück zur Liste';&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
'''1. Fal'''l: Jeder Link in MetaModels wird zu '... mehr Details' umbenannt&amp;lt;br&amp;gt;&lt;br /&gt;
'''2. Fall''': Nur die Links in der MetaModel-Tabelle 'mm_meineTabelle' werden zu 'weiter...' umbeannt&amp;lt;br&amp;gt;&lt;br /&gt;
'''3. Fall''': Interessant, wenn man von der FE Detailansicht zurück zur FE Listenansicht gelangen will. In diesem Fall kann man nicht nur die MM Tabelle angeben, sondern auch die '''id''' der [[MetaModels_Backend:_Ausgabevorgaben#Einstieg|Rendereinstellung]] angeben. &lt;br /&gt;
&lt;br /&gt;
Beispiel für langconfig.php:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
/* Put your custom configuration here */ &lt;br /&gt;
$GLOBALS['TL_LANG']['MSC']['mm_musicbox']['details'] = 'weiter...';&lt;br /&gt;
$GLOBALS['TL_LANG']['MSC']['mm_musicbox'][4]['details'] = 'Zurück zur Liste';&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Mögliches Endresultat=&lt;br /&gt;
&lt;br /&gt;
==Frontend Ansicht==&lt;br /&gt;
Und so könnte es aussehen&lt;br /&gt;
* links: Die Daten werden standardmässig in kompakter Form ausgegeben&lt;br /&gt;
* rechts: mit etwas CSS lassen sich die Daten sowohl in der Listen- wie Detailsicht gut formatieren&lt;br /&gt;
* die Labels lassen sich auch ausschalten. Siehe [[MetaModels_Backend:_Eingabemaske#Backend_Liste_gestalten|hier]]&lt;br /&gt;
[[File:mm_frontend_beispiel.png|link=|900px]]&lt;br /&gt;
&lt;br /&gt;
==HTML-Konstrukt==&lt;br /&gt;
Die Daten werden über das Template &amp;quot;metamodel_prerendered.html5&amp;quot; ausgegeben. Jeder Datensatz wird als '''item''' ausgegeben, dieser besteht aus den Attributen, die in den Rendereinstellungen definiert wurden. Bei jedem Attribut wird standardmässig '''label''' und '''value''' ausgegeben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field attribut1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;label&amp;quot;&amp;gt;Titel des attributs1&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;Wert des attribut1&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field attribut2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;label&amp;quot;&amp;gt;Titel des attribut2&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;Wert des attribut2&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field attribut3&amp;quot;&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_1|Zurück zur Beispiel 1]] | [[MetaModels_Beispiel_3|Weiter zum Beispiel 3: Weitere Filter hinzufügen]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels</id>
		<title>MetaModels</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels"/>
				<updated>2013-09-10T07:32:23Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Vorgehensschritte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels|B]]&lt;br /&gt;
{{ExtInfo&lt;br /&gt;
| Dev=Metamodels Team&lt;br /&gt;
| DevSite=&lt;br /&gt;
| Version=ab 2.11.X&lt;br /&gt;
| ERLink=&lt;br /&gt;
| VCSLink=https://github.com/MetaModels/core&lt;br /&gt;
| TrackerLink=https://github.com/MetaModels/core/issues&lt;br /&gt;
| Depending=[[DC_General]] [[Justtextwidgets]] [[MultiColumnWizard]] [[MetaPalettes]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Vorwort: Wiki-Dokumentation der Erweiterung MetaModels (Nachfolger des Catalog)=&lt;br /&gt;
Die Erweiterung MetaModels ist der Nachfolger der Catalog-Extension. Der Code wurde komplett neu entwickelt. Eine Kompatibilität zum Catalog besteht nicht.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; font-size:18px; font-weight:bold&amp;quot;&amp;gt;MetaModels läuft mit Contao 2.11.x und setzt PHP 5.3 voraus. &amp;lt;/span&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black; font-size:18px; font-weight:bold&amp;quot;&amp;gt;MetaModels ist (noch) nicht mit Contao 3.x kompatibel. Wer die Entwicklung voran treiben möchte, kann es [http://now.metamodel.me/en/fundraising hier] per Fundraising tun. &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Download=&lt;br /&gt;
&lt;br /&gt;
==Download von der Demosite==&lt;br /&gt;
[[Datei:logo-metamodels.png|link=|left|105px]]&lt;br /&gt;
Unter der URL [http://now.metamodel.me now.metamodel.me] findet sich die Webseite zur Extension mit einer Frontentdemo und der Möglichkeit, Installationsarchive in den Formaten '''tgz''', '''tbz''' und '''zip''' mit so genannten Nightly Builds zu laden. Diese Archive beinhalten die MetaModels-Dateien, Attribute, Filter sowie sämtliche anderen Erweiterungen, die für den Betrieb nötig sind und ansonsten separat heruntergeladen und installiert werden müssen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download aus dem Entwicklungsrepository GitHub==&lt;br /&gt;
&lt;br /&gt;
[[Datei:logo-github.png|link=|left|105px]]&lt;br /&gt;
Zu finden ist die Erweiterung MetaModels auf GitHub:&lt;br /&gt;
[https://github.com/MetaModels github.com/Metamodels]&amp;lt;br&amp;gt;&lt;br /&gt;
Aktuell können das Core, dazu abhängige weitere Erweiterungen und alle weiteren MetaModels Attribute/Filter manuell installiert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Core===&lt;br /&gt;
* [https://github.com/MetaModels/core MetaModels (Das Core-Modul)]&lt;br /&gt;
* [https://github.com/MetaModels/boilerplate Boilerplate (Erzeugt einen separaten Bereich in der Backend-Navigation)]&lt;br /&gt;
&lt;br /&gt;
===Abhängigkeiten===&lt;br /&gt;
Benötigt werden folgende Erweiterungen:&lt;br /&gt;
* [https://github.com/MetaModels DC_General]&lt;br /&gt;
* [https://contao.org/de/extension-list/view/MetaPalettes.html MetaPalettes]&lt;br /&gt;
* [http://www.contao.org/erweiterungsliste/view/MultiColumnWizard.html MultiColumnWizard]&lt;br /&gt;
* [https://github.com/Discordier/justtextwidgets justtextwidgets]&lt;br /&gt;
* [https://contao.org/de/extension-list/view/geoprotection.de.html geoprotection] (wird nur für das Attribut '''Geoprotection''' benötigt)&lt;br /&gt;
&lt;br /&gt;
===Verfügbare Attribute und Filter===&lt;br /&gt;
Sobald der Core und benötigten sonstigen Erweiterungen installiert sind, werde die weiteren Attributs- und Filterextensions des MetaModels benötigt.&lt;br /&gt;
Dazu gehören:&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Attribute''' !! '''Attribute (translated)''' !! '''Filter'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/MetaModels/attribute_alias Attribut: Alias]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_checkbox Attribut: Checkbox (Kontrollkästchen)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_combinedvalues Attribut: Combined Values (Kombinierte Einträge)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_color Attribut: Color (Farbe)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_country Attribut: Country (Land)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_decimal Attribut: Decimal (Dezimal)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_file Attribut: File (Datei)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_geoprotection Attribut: Geoprotection (Länderzuordnung)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_langcode Attribut: Langcode (Sprachschlüssel)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_longtext Attribut: Longtext (Langtext, Textarea)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_select Attribut: Select (Auswahl)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_numeric Attribut: Numeric (Numerisch)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_rating Attribut: Rating (Bewertung)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_tags Attribut: Tags  (Mehrfachauswahl)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_text Attribut: Text]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_timestamp Attribut: Timestamp (Datum)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_url Attribut: URL]&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedalias Attribut: Translated Alias]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedfile Attribut: Translated File]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedlongtext Attribut: Translated Longtext]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedselect Attribut: Translated Select]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedtags Attribut: Translated Tags]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedtext Attribut: Translated Text]&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/MetaModels/filter_checkbox Filter: Checkbox]&lt;br /&gt;
* [https://github.com/MetaModels/filter_fromto Filter: FromTo]&lt;br /&gt;
* [https://github.com/MetaModels/filter_range Filter: Range]&lt;br /&gt;
* [https://github.com/MetaModels/filter_select Filter: Select]&lt;br /&gt;
* [https://github.com/MetaModels/filter_tags Filter: Tags]&lt;br /&gt;
* [https://github.com/MetaModels/filter_text Filter: Text]&lt;br /&gt;
|}&lt;br /&gt;
Attribut- und Filterextensions werden für den Betrieb von MetaModels benötigt. Welche dieser Erweiterungen in einem Projekt zu Einsatz kommen sollen ist abhängig von den benötigten Funktionen.&lt;br /&gt;
{{Hinweis|Das Attribut '''Geoprotection''' ist nicht mehr Teil der Nightly Builds. Kann aber jederzeit über den oben angegeben Link separat geladen werden.}}{{Hinweis|Das Attribut '''Rating''' benötigt die beiden PHP-Dateien '''SimpleAjax.php''' und '''SimpleAjaxFrontend.php''', welche mit dem aktuellen Nightly Build ausgeliefert werden. Die beiden PHP-Dateien müssen im Root-Verzeichnis der Contao-Installation abgelegt werden.}}&lt;br /&gt;
&lt;br /&gt;
==Download via git und Kommandozeile==&lt;br /&gt;
In einer bash (Linux Kommandozeile bzw. cygwin Kommandozeile) kann man sich auch alle Unterprojekte der MetaModels via git clonen. Man sollte jedoch vorher in den Ordner wechseln, wohin die Projekte heruntergeladen werden sollen.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Linux'''  !! '''MacOS'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
In Benutzerverzeichnis wechseln und für den Pull ein Verzeichniss anlegen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
In Benutzerverzeichnis wechseln und für den Pull ein Verzeichniss anlegen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Alle MetaModel Repos holen&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Alle MetaModel Repos holen&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `curl https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die zu installieren Ordner und Dateien müssen zur Installation im Contao-System wie folgt hochgeladen werden:&lt;br /&gt;
{| style=&amp;quot;width:80%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Module''' (/system/modules) !! '''Drivers''' (/system/drivers)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* generalDriver&lt;br /&gt;
* justtextwidgets&lt;br /&gt;
* metamodels&lt;br /&gt;
* metamodels_boilerplate&lt;br /&gt;
* metamodelsattribute_alias&lt;br /&gt;
* metamodelsattribute_checkbox&lt;br /&gt;
* metamodelsattribute_combinedvalues&lt;br /&gt;
* metamodelsattribute_color&lt;br /&gt;
* metamodelsattribute_country&lt;br /&gt;
* metamodelsattribute_decimal&lt;br /&gt;
* metamodelsattribute_file&lt;br /&gt;
* metamodelsattribute_geoprotection&lt;br /&gt;
* metamodelsattribute_langcode&lt;br /&gt;
* metamodelsattribute_longtext&lt;br /&gt;
* metamodelsattribute_numeric&lt;br /&gt;
* metamodelsattribute_rating&lt;br /&gt;
* metamodelsattribute_select&lt;br /&gt;
* metamodelsattribute_tags&lt;br /&gt;
* metamodelsattribute_text&lt;br /&gt;
* metamodelsattribute_timestamp&lt;br /&gt;
* metamodelsattribute_translatedalias&lt;br /&gt;
* metamodelsattribute_translatedfile&lt;br /&gt;
* metamodelsattribute_translatedlongtext&lt;br /&gt;
* metamodelsattribute_translatedselect&lt;br /&gt;
* metamodelsattribute_translatedtags&lt;br /&gt;
* metamodelsattribute_translatedtext&lt;br /&gt;
* metamodelsattribute_url&lt;br /&gt;
* metamodelsfilter_checkbox&lt;br /&gt;
* metamodelsfilter_fromto&lt;br /&gt;
* metamodelsfilter_range&lt;br /&gt;
* metamodelsfilter_select&lt;br /&gt;
* metamodelsfilter_tags&lt;br /&gt;
* metamodelsfilter_text&lt;br /&gt;
* metapalettes&lt;br /&gt;
* multicolumnwizard&lt;br /&gt;
|&lt;br /&gt;
* DC_General.php&lt;br /&gt;
|}&lt;br /&gt;
Danach muss mittels des Installtools ein Update der Datenbank gemacht werden.&lt;br /&gt;
&lt;br /&gt;
=Backend Ansichten=&lt;br /&gt;
&lt;br /&gt;
===Leeres MetaModel===&lt;br /&gt;
[[Datei:MetaModels_Backend_System.png|right|600px]]&lt;br /&gt;
Nach Aktualisierung der Datenbank erscheint '''MetaModels''' neu als eigenständige Einstellung in der Backend-Navigation links.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Erweiterungsverwaltung===&lt;br /&gt;
[[Datei:MetaModels_Backend_System_ER.png|right|600px]]&lt;br /&gt;
In der Erweiterungsverwaltung findet sich hingegen nichts, was auf MetaModels hinweist. Aber das ist gut so (Stand Mai 2013).&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MetaModel mit null Datensätzen===&lt;br /&gt;
[[Datei:MetaModels_Backend_System_Beispiel.png|right|600px]]&lt;br /&gt;
Nachdem ein erstes neues MetaModel erstellt wurde, erscheint folgende Darstellung:&lt;br /&gt;
Weiterführende Informationen zu einem einfachen Praxisbeispiel findet man unter [[MetaModels_Beispielprojekt|MetaModels Beispielprojekt]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Attribute===&lt;br /&gt;
[[File:icons_attribute.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Attribute|hier]].&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Ausgabevorgaben===&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Ausgabevorgaben|hier]].&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Eingabemaske (fka Paletteneinstellungen)===&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Eingabemaske|hier]].&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Filter===&lt;br /&gt;
[[File:icons_filter.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Filter|hier]].&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Ansichtseinstellungen===&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Ansichtseinstellungen|hier]].&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
Einführende Beispiele, wie man MetaModels einrichten und konfigurieren kannst, findest du hier:&lt;br /&gt;
# [[MetaModels_Beispiel_1| Backend einrichten]] - am Beispiel einer Musiksammlung, Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2| Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3| Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4| Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Frontendausgabe=&lt;br /&gt;
{{Hinweis|Die Dokumentation sollte in eine andere Seite ausgelagert werden}}&lt;br /&gt;
----&lt;br /&gt;
started by: [[Benutzer:Planepix|Planepix]] 00:49, 28. Nov. 2012 (CET)&amp;lt;br&amp;gt;&lt;br /&gt;
completed by [[Benutzer:Luis|Luis]], [[Benutzer:lucina|Lucina]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-09-10T07:31:59Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Vorgehensschritte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels|B]]&lt;br /&gt;
=Aufgabenstellung: Backend einrichten=&lt;br /&gt;
Als Beispielprojekt soll eine einfache &amp;quot;Musikbox&amp;quot; gebaut werden, in der Musikstücke mit gewissen Attributen (&amp;quot;Eigenschaften&amp;quot;) erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht, als sei '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; ein MUSS, denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht!&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.&lt;br /&gt;
&lt;br /&gt;
===Auszuführen===&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* mindestens eine unterstützte Sprache auswählen&lt;br /&gt;
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen&lt;br /&gt;
* '''Varianten aktivieren''' vorerst nicht anhaken&lt;br /&gt;
&lt;br /&gt;
Man sieht nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfasst man die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut &amp;quot;Titel&amp;quot; dargestellt):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Interpret&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Dezimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Langtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Datei&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Cover&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias Neuerstellung erzwingen = aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
* Aliasfelder = Titel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''neu''' klicken&lt;br /&gt;
* '''BE Listenansicht''' eingeben&lt;br /&gt;
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:&lt;br /&gt;
&lt;br /&gt;
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.&lt;br /&gt;
* Die Frage, ob alle Attribute hinzugefügt werden sollen(&amp;quot;''Add all attributes to render setting''&amp;quot;), wird mit '''Weiter''' bestätigt.&lt;br /&gt;
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.&lt;br /&gt;
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|400px]]&lt;br /&gt;
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.&lt;br /&gt;
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.&lt;br /&gt;
**Komma =&amp;gt; Ausgabe in der gleichen Zeile wie der vorhergehende Wert&lt;br /&gt;
**Semikolon =&amp;gt; Ausgabe in neuer Zeile.&lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun wurde eine Eingabemaske namens '''BE Erfassung''' erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.&amp;lt;br&amp;gt;&lt;br /&gt;
Im letzten Kapitel auf dieser Seite ('''Die Daten erfassen''') sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.&lt;br /&gt;
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die MetaModels in einem separaten '''Backend-Bereich''' in der BE-Navigation unterbringen.}}{{Hinweis|Die Option '''Sortierung''' ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des '''Backend-Bereich'''s (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.&lt;br /&gt;
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.&lt;br /&gt;
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.&lt;br /&gt;
* Auf Wunsch kan man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.&lt;br /&gt;
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:&lt;br /&gt;
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.&lt;br /&gt;
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]&lt;br /&gt;
&lt;br /&gt;
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' &amp;gt; 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|thumb|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus:&amp;lt;br&amp;gt;Nun wird in der linken Navigationsübersicht &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden&lt;br /&gt;
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel:_%C3%9Cbersetzter_select</id>
		<title>MetaModels Beispiel: Übersetzter select</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel:_%C3%9Cbersetzter_select"/>
				<updated>2013-09-10T07:31:14Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Hinweis */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels|T]]&lt;br /&gt;
=Aufgabenstellung: Übersetzter select einrichten=&lt;br /&gt;
Es soll ein &amp;quot;Übersetzter select&amp;quot;-Attribut eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
==Voraussetzung==&lt;br /&gt;
Es wird von Vorwissen aus den anderen Basics-Beispielen ausgegangen!&lt;br /&gt;
&lt;br /&gt;
=Neue MetaModels erstellen=&lt;br /&gt;
[[File:Mm_translatedselect_Ubersicht.png|thumb|400px]]&lt;br /&gt;
Wir legen zwei neue MetaModels an:&lt;br /&gt;
# enthält die übersetzten Einträge für das select Feld (Hier: Mehrsprachige Einträge)&lt;br /&gt;
# zur Anwendung des select Feldes (Hier: Data)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
== MM für die mehrsprachigen Einträge ==&lt;br /&gt;
[[File:Mm_translatedselect_entriestable.png|thumb|400px]]&lt;br /&gt;
Erst legen wir das MetaModel an.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Mm_translatedselect_entriesattribute.png|thumb|400px]]&lt;br /&gt;
In diesem erzeugen wir ein &amp;quot;Übersetzter Text&amp;quot; Attribut.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Mm_translatedselect_entrie1de.png|thumb|200px]]&lt;br /&gt;
[[File:Mm_translatedselect_entrie1en.png|thumb|200px]]&lt;br /&gt;
[[File:Mm_translatedselect_entries.png|thumb|400px]]&lt;br /&gt;
Nach dem Bearbeiten der Eingabemasken und Rendereinstellungen (Wie in den anderen Beispielen) fügen wir die gewünschten Einträge in den gewünschten Sprachen hinzu. &lt;br /&gt;
Hier wurden zwei Einträge in jeweils zwei Sprachen benutzt.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Mm_translatedselect_phpmyadmin.png|thumb|400px]]&lt;br /&gt;
Anschließend gehen wir auf den mysql server und betrachten die Tabelle &amp;quot;tl_metamodel_translatedtext&amp;quot;. Dort suchen wir die gerade erstellten Einträge und merken uns den Wert &amp;quot;att_id&amp;quot;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==  MM zur Anwendung des select Feldes ==&lt;br /&gt;
[[File:Mm_translatedselect_datatable.png|thumb|400px]]&lt;br /&gt;
Erst legen wir das MetaModel an.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Mm_translatedselect_dataattribute.png|thumb|400px]]&lt;br /&gt;
[[File:Mm_translatedselect_dataattributes.png|thumb|400px]]&lt;br /&gt;
In diesem erzeugen wir ein &amp;quot;Übersetzter Select&amp;quot; Attribut.&lt;br /&gt;
Wir wählen die Tabelle &amp;quot;tl_metamodel_translatedtext&amp;quot; aus.&lt;br /&gt;
Bei der Bedingung wird &amp;quot;att_id=[Der Wert von oben]&amp;quot; eingetragen.&lt;br /&gt;
Wenn die Sortierung eine Rolle spielt kann die Spalte &amp;quot;sorting&amp;quot; aus der Tabelle aus dem ersten MetaModel benutzt werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Mm_translatedselect_data1de.png|thumb|400px]]&lt;br /&gt;
Nach dem Bearbeiten der Eingabemasken und Rendereinstellungen (Wie in den anderen Beispielen) fügen wir ein Datenelement hinzu. Bei der Auswahl erscheinen immer die Einträge aus der BE-Sprache (Hier Deutsch). Das ist unabhängig von der Sprache die wir gerade bearbeiten.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=Frontend Ansicht=&lt;br /&gt;
[[File:Mm_translatedselect_FEoutput.png|thumb|400px]]&lt;br /&gt;
Wenn wir das zweite MM im Frontend ausgeben lassen, erscheinen nun die Dateneinträge mit dem jeweiligen selektierten Wert in der richtigen FE-Sprache.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel:_%C3%9Cbersetzter_select</id>
		<title>MetaModels Beispiel: Übersetzter select</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel:_%C3%9Cbersetzter_select"/>
				<updated>2013-09-10T07:30:41Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Vorgehensschritte */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels|T]]&lt;br /&gt;
=Aufgabenstellung: Übersetzter select einrichten=&lt;br /&gt;
Es soll ein &amp;quot;Übersetzter select&amp;quot;-Attribut eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
===Hinweis===&lt;br /&gt;
Es wird von Vorwissen aus den anderen Beispielen ausgegangen!&lt;br /&gt;
&lt;br /&gt;
=Neue MetaModels erstellen=&lt;br /&gt;
[[File:Mm_translatedselect_Ubersicht.png|thumb|400px]]&lt;br /&gt;
Wir legen zwei neue MetaModels an:&lt;br /&gt;
# enthält die übersetzten Einträge für das select Feld (Hier: Mehrsprachige Einträge)&lt;br /&gt;
# zur Anwendung des select Feldes (Hier: Data)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
== MM für die mehrsprachigen Einträge ==&lt;br /&gt;
[[File:Mm_translatedselect_entriestable.png|thumb|400px]]&lt;br /&gt;
Erst legen wir das MetaModel an.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Mm_translatedselect_entriesattribute.png|thumb|400px]]&lt;br /&gt;
In diesem erzeugen wir ein &amp;quot;Übersetzter Text&amp;quot; Attribut.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Mm_translatedselect_entrie1de.png|thumb|200px]]&lt;br /&gt;
[[File:Mm_translatedselect_entrie1en.png|thumb|200px]]&lt;br /&gt;
[[File:Mm_translatedselect_entries.png|thumb|400px]]&lt;br /&gt;
Nach dem Bearbeiten der Eingabemasken und Rendereinstellungen (Wie in den anderen Beispielen) fügen wir die gewünschten Einträge in den gewünschten Sprachen hinzu. &lt;br /&gt;
Hier wurden zwei Einträge in jeweils zwei Sprachen benutzt.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Mm_translatedselect_phpmyadmin.png|thumb|400px]]&lt;br /&gt;
Anschließend gehen wir auf den mysql server und betrachten die Tabelle &amp;quot;tl_metamodel_translatedtext&amp;quot;. Dort suchen wir die gerade erstellten Einträge und merken uns den Wert &amp;quot;att_id&amp;quot;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==  MM zur Anwendung des select Feldes ==&lt;br /&gt;
[[File:Mm_translatedselect_datatable.png|thumb|400px]]&lt;br /&gt;
Erst legen wir das MetaModel an.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Mm_translatedselect_dataattribute.png|thumb|400px]]&lt;br /&gt;
[[File:Mm_translatedselect_dataattributes.png|thumb|400px]]&lt;br /&gt;
In diesem erzeugen wir ein &amp;quot;Übersetzter Select&amp;quot; Attribut.&lt;br /&gt;
Wir wählen die Tabelle &amp;quot;tl_metamodel_translatedtext&amp;quot; aus.&lt;br /&gt;
Bei der Bedingung wird &amp;quot;att_id=[Der Wert von oben]&amp;quot; eingetragen.&lt;br /&gt;
Wenn die Sortierung eine Rolle spielt kann die Spalte &amp;quot;sorting&amp;quot; aus der Tabelle aus dem ersten MetaModel benutzt werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Mm_translatedselect_data1de.png|thumb|400px]]&lt;br /&gt;
Nach dem Bearbeiten der Eingabemasken und Rendereinstellungen (Wie in den anderen Beispielen) fügen wir ein Datenelement hinzu. Bei der Auswahl erscheinen immer die Einträge aus der BE-Sprache (Hier Deutsch). Das ist unabhängig von der Sprache die wir gerade bearbeiten.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=Frontend Ansicht=&lt;br /&gt;
[[File:Mm_translatedselect_FEoutput.png|thumb|400px]]&lt;br /&gt;
Wenn wir das zweite MM im Frontend ausgeben lassen, erscheinen nun die Dateneinträge mit dem jeweiligen selektierten Wert in der richtigen FE-Sprache.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items</id>
		<title>MetaModels Beispiel: Referenced items</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items"/>
				<updated>2013-09-10T07:28:53Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Aufgabenstellung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels|T2]]&lt;br /&gt;
=Zwei MetaModels zu einander referenzieren=&lt;br /&gt;
==Ausgangslage==&lt;br /&gt;
Es gibt ein MetaModel mit &amp;quot;Kunden&amp;quot; (mm_customers) und eines mit &amp;quot;Projekte&amp;quot; (mm_projects). mm_projects enthält ein Attribut &amp;quot;customer&amp;quot; vom Typ &amp;quot;select&amp;quot;, welches die in mm_customer erfassten Kunden anzeigt. Über dieses Feld wird das Projekt mit dem Kunden verknüpft.&lt;br /&gt;
==Aufgabenstellung==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden. Von dort möchte man auch per Link auf die Detailansicht des spezifischen Projektes springen können.&lt;br /&gt;
&lt;br /&gt;
==Lösungsansatz==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden. Die Projekte werden jeweils mit einem Titel-Link (h3), einer Kurzbeschreibung und der dazu gehörigen Bildgalerie gezeigt. Die Projekte werden überdies über einen Filter sortiert: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array()); &amp;lt;/source&amp;gt;&lt;br /&gt;
In diesem Fall ist '10' die ID des Filters im MetaModels 'mm_projects'. Der Filter sorgt dafür, dass die Projekte chronologisch aufgelistet werden.&lt;br /&gt;
&lt;br /&gt;
Das MetaModels-Template könnte wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
function getProjectsByCustomer($strAlias, $format='html5')&lt;br /&gt;
{&lt;br /&gt;
  $objMetaModel = MetaModelFactory::byTableName('mm_projects');&lt;br /&gt;
  $objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array());&lt;br /&gt;
  $objFilter-&amp;gt;addFilterRule(new MetaModelFilterRuleSearchAttribute($objMetaModel-&amp;gt;getAttribute('customer'), $strAlias, $objMetaModel-&amp;gt;getAvailableLanguages()));&lt;br /&gt;
  $objItems = $objMetaModel-&amp;gt;findByFilter($objFilter);&lt;br /&gt;
  return $objItems-&amp;gt;parseAll($format, $objMetaModel-&amp;gt;getView(3));&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;customer_detailview&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;?php foreach ($this-&amp;gt;data as $arrItem): ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;detailview&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h1 class=&amp;quot;ce_headline&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['customer']; ?&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['description']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;year&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['year']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;url&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['html5']['url']; ?&amp;gt;&amp;lt;/p&amp;gt; &lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;referenced_projects&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;Projekte&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;?php foreach (getProjectsByCustomer($arrItem['raw']['alias']) as $arrProjects): ?&amp;gt;&lt;br /&gt;
    &amp;lt;?php if(!empty($arrProjects['raw']['images'])): ?&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;project&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;a href=&amp;quot;{{env::path}}&amp;lt;?php echo $arrProjects['jumpTo']['url']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['project_name']; ?&amp;gt; &lt;br /&gt;
        &amp;lt;/a&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['description']; ?&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['images']; ?&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items</id>
		<title>MetaModels Beispiel: Referenced items</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items"/>
				<updated>2013-09-10T07:27:53Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Lösungsansatz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels|T2]]&lt;br /&gt;
=Zwei MetaModels zu einander referenzieren=&lt;br /&gt;
==Ausgangslage==&lt;br /&gt;
Es gibt ein MetaModel mit &amp;quot;Kunden&amp;quot; (mm_customers) und eines mit &amp;quot;Projekte&amp;quot; (mm_projects). mm_projects enthält ein Attribut &amp;quot;customer&amp;quot; vom Typ &amp;quot;select&amp;quot;, welches die in mm_customer erfassten Kunden anzeigt. Über dieses Feld wird das Projekt mit dem Kunden verknüpft.&lt;br /&gt;
==Aufgabenstellung==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden.&lt;br /&gt;
==Lösungsansatz==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden. Die Projekte werden jeweils mit einem Titel-Link (h3), einer Kurzbeschreibung und der dazu gehörigen Bildgalerie gezeigt. Die Projekte werden überdies über einen Filter sortiert: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array()); &amp;lt;/source&amp;gt;&lt;br /&gt;
In diesem Fall ist '10' die ID des Filters im MetaModels 'mm_projects'. Der Filter sorgt dafür, dass die Projekte chronologisch aufgelistet werden.&lt;br /&gt;
&lt;br /&gt;
Das MetaModels-Template könnte wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
function getProjectsByCustomer($strAlias, $format='html5')&lt;br /&gt;
{&lt;br /&gt;
  $objMetaModel = MetaModelFactory::byTableName('mm_projects');&lt;br /&gt;
  $objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array());&lt;br /&gt;
  $objFilter-&amp;gt;addFilterRule(new MetaModelFilterRuleSearchAttribute($objMetaModel-&amp;gt;getAttribute('customer'), $strAlias, $objMetaModel-&amp;gt;getAvailableLanguages()));&lt;br /&gt;
  $objItems = $objMetaModel-&amp;gt;findByFilter($objFilter);&lt;br /&gt;
  return $objItems-&amp;gt;parseAll($format, $objMetaModel-&amp;gt;getView(3));&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;customer_detailview&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;?php foreach ($this-&amp;gt;data as $arrItem): ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;detailview&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h1 class=&amp;quot;ce_headline&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['customer']; ?&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['description']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;year&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['year']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;url&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['html5']['url']; ?&amp;gt;&amp;lt;/p&amp;gt; &lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;referenced_projects&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;Projekte&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;?php foreach (getProjectsByCustomer($arrItem['raw']['alias']) as $arrProjects): ?&amp;gt;&lt;br /&gt;
    &amp;lt;?php if(!empty($arrProjects['raw']['images'])): ?&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;project&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;a href=&amp;quot;{{env::path}}&amp;lt;?php echo $arrProjects['jumpTo']['url']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['project_name']; ?&amp;gt; &lt;br /&gt;
        &amp;lt;/a&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['description']; ?&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['images']; ?&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items</id>
		<title>MetaModels Beispiel: Referenced items</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items"/>
				<updated>2013-09-10T07:26:39Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Lösungsansatz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels|T2]]&lt;br /&gt;
=Zwei MetaModels zu einander referenzieren=&lt;br /&gt;
==Ausgangslage==&lt;br /&gt;
Es gibt ein MetaModel mit &amp;quot;Kunden&amp;quot; (mm_customers) und eines mit &amp;quot;Projekte&amp;quot; (mm_projects). mm_projects enthält ein Attribut &amp;quot;customer&amp;quot; vom Typ &amp;quot;select&amp;quot;, welches die in mm_customer erfassten Kunden anzeigt. Über dieses Feld wird das Projekt mit dem Kunden verknüpft.&lt;br /&gt;
==Aufgabenstellung==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden.&lt;br /&gt;
==Lösungsansatz==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden. Die Projekte werden jeweils mit einem Titel-Link (h3), einer Kurzbeschreibung und der dazu gehörigen Bildgalerie gezeigt. Die Projekte werden überdies über einen Filter sortiert:&amp;lt;br&amp;gt;&lt;br /&gt;
$objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array()); &amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall ist '10' die ID des Filters im MetaModels 'mm_projects'. Der Filter sorgt dafür, dass die Projekte chronologisch aufgelistet werden.&lt;br /&gt;
&lt;br /&gt;
Das MetaModels-Template könnte wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
function getProjectsByCustomer($strAlias, $format='html5')&lt;br /&gt;
{&lt;br /&gt;
  $objMetaModel = MetaModelFactory::byTableName('mm_projects');&lt;br /&gt;
  $objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array());&lt;br /&gt;
  $objFilter-&amp;gt;addFilterRule(new MetaModelFilterRuleSearchAttribute($objMetaModel-&amp;gt;getAttribute('customer'), $strAlias, $objMetaModel-&amp;gt;getAvailableLanguages()));&lt;br /&gt;
  $objItems = $objMetaModel-&amp;gt;findByFilter($objFilter);&lt;br /&gt;
  return $objItems-&amp;gt;parseAll($format, $objMetaModel-&amp;gt;getView(3));&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;customer_detailview&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;?php foreach ($this-&amp;gt;data as $arrItem): ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;detailview&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h1 class=&amp;quot;ce_headline&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['customer']; ?&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['description']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;year&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['year']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;url&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['html5']['url']; ?&amp;gt;&amp;lt;/p&amp;gt; &lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;referenced_projects&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;Projekte&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;?php foreach (getProjectsByCustomer($arrItem['raw']['alias']) as $arrProjects): ?&amp;gt;&lt;br /&gt;
    &amp;lt;?php if(!empty($arrProjects['raw']['images'])): ?&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;project&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;a href=&amp;quot;{{env::path}}&amp;lt;?php echo $arrProjects['jumpTo']['url']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['project_name']; ?&amp;gt; &lt;br /&gt;
        &amp;lt;/a&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['description']; ?&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['images']; ?&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items</id>
		<title>MetaModels Beispiel: Referenced items</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items"/>
				<updated>2013-09-10T07:25:41Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Lösungsansatz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels|T2]]&lt;br /&gt;
=Zwei MetaModels zu einander referenzieren=&lt;br /&gt;
==Ausgangslage==&lt;br /&gt;
Es gibt ein MetaModel mit &amp;quot;Kunden&amp;quot; (mm_customers) und eines mit &amp;quot;Projekte&amp;quot; (mm_projects). mm_projects enthält ein Attribut &amp;quot;customer&amp;quot; vom Typ &amp;quot;select&amp;quot;, welches die in mm_customer erfassten Kunden anzeigt. Über dieses Feld wird das Projekt mit dem Kunden verknüpft.&lt;br /&gt;
==Aufgabenstellung==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden.&lt;br /&gt;
==Lösungsansatz==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden. Die Projekte werden jeweils mit einem Titel-Link (h3), einer Kurzbeschreibung und der dazu gehörigen Bildgalerie gezeigt. Die Projekte werden überdies über einen Filter sortiert ( $objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array());). In diesem Fall ist '10' die ID des Filters im MetaModels 'mm_projects'. Der Filter sorgt dafür, dass die Projekte chronologisch aufgelistet werden.&lt;br /&gt;
&lt;br /&gt;
Das MetaModels-Template könnte wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
function getProjectsByCustomer($strAlias, $format='html5')&lt;br /&gt;
{&lt;br /&gt;
  $objMetaModel = MetaModelFactory::byTableName('mm_projects');&lt;br /&gt;
  $objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array());&lt;br /&gt;
  $objFilter-&amp;gt;addFilterRule(new MetaModelFilterRuleSearchAttribute($objMetaModel-&amp;gt;getAttribute('customer'), $strAlias, $objMetaModel-&amp;gt;getAvailableLanguages()));&lt;br /&gt;
  $objItems = $objMetaModel-&amp;gt;findByFilter($objFilter);&lt;br /&gt;
  return $objItems-&amp;gt;parseAll($format, $objMetaModel-&amp;gt;getView(3));&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;customer_detailview&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;?php foreach ($this-&amp;gt;data as $arrItem): ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;detailview&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h1 class=&amp;quot;ce_headline&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['customer']; ?&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['description']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;year&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['year']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;url&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['html5']['url']; ?&amp;gt;&amp;lt;/p&amp;gt; &lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;referenced_projects&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;Projekte&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;?php foreach (getProjectsByCustomer($arrItem['raw']['alias']) as $arrProjects): ?&amp;gt;&lt;br /&gt;
    &amp;lt;?php if(!empty($arrProjects['raw']['images'])): ?&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;project&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;a href=&amp;quot;{{env::path}}&amp;lt;?php echo $arrProjects['jumpTo']['url']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['project_name']; ?&amp;gt; &lt;br /&gt;
        &amp;lt;/a&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['description']; ?&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['images']; ?&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items</id>
		<title>MetaModels Beispiel: Referenced items</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items"/>
				<updated>2013-09-10T07:22:26Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels|T2]]&lt;br /&gt;
=Zwei MetaModels zu einander referenzieren=&lt;br /&gt;
==Ausgangslage==&lt;br /&gt;
Es gibt ein MetaModel mit &amp;quot;Kunden&amp;quot; (mm_customers) und eines mit &amp;quot;Projekte&amp;quot; (mm_projects). mm_projects enthält ein Attribut &amp;quot;customer&amp;quot; vom Typ &amp;quot;select&amp;quot;, welches die in mm_customer erfassten Kunden anzeigt. Über dieses Feld wird das Projekt mit dem Kunden verknüpft.&lt;br /&gt;
==Aufgabenstellung==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden.&lt;br /&gt;
==Lösungsansatz==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden. Die Projekte werden jeweils mit einem Titel-Link (h3), einer Kurzbeschreibung und der dazu gehörigen Bildgalerie gezeigt.&lt;br /&gt;
&lt;br /&gt;
Das MetaModels-Template könnte wie folgt aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
function getProjectsByCustomer($strAlias, $format='html5')&lt;br /&gt;
{&lt;br /&gt;
  $objMetaModel = MetaModelFactory::byTableName('mm_projects');&lt;br /&gt;
  $objFilter = $objMetaModel-&amp;gt;prepareFilter(10, array());&lt;br /&gt;
  $objFilter-&amp;gt;addFilterRule(new MetaModelFilterRuleSearchAttribute($objMetaModel-&amp;gt;getAttribute('customer'), $strAlias, $objMetaModel-&amp;gt;getAvailableLanguages()));&lt;br /&gt;
  $objItems = $objMetaModel-&amp;gt;findByFilter($objFilter);&lt;br /&gt;
  return $objItems-&amp;gt;parseAll($format, $objMetaModel-&amp;gt;getView(3));&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;customer_detailview&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;?php foreach ($this-&amp;gt;data as $arrItem): ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;detailview&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h1 class=&amp;quot;ce_headline&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['customer']; ?&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;description&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['description']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;year&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['year']; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;p class=&amp;quot;url&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['html5']['url']; ?&amp;gt;&amp;lt;/p&amp;gt; &lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;div class=&amp;quot;referenced_projects&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;Projekte&amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;?php foreach (getProjectsByCustomer($arrItem['raw']['alias']) as $arrProjects): ?&amp;gt;&lt;br /&gt;
    &amp;lt;?php if(!empty($arrProjects['raw']['images'])): ?&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;project&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h3&amp;gt;&lt;br /&gt;
        &amp;lt;a href=&amp;quot;{{env::path}}&amp;lt;?php echo $arrProjects['jumpTo']['url']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['project_name']; ?&amp;gt; &lt;br /&gt;
        &amp;lt;/a&amp;gt;&lt;br /&gt;
      &amp;lt;/h3&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['description']; ?&amp;gt;&lt;br /&gt;
      &amp;lt;?php echo $arrProjects[$this-&amp;gt;getFormat()]['images']; ?&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items</id>
		<title>MetaModels Beispiel: Referenced items</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items"/>
				<updated>2013-09-10T06:59:21Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels|T2]]&lt;br /&gt;
=Zwei MetaModels zu einander referenzieren=&lt;br /&gt;
==Ausgangslage==&lt;br /&gt;
Es gibt ein MetaModel mit &amp;quot;Kunden&amp;quot; und eines mit &amp;quot;Projekte&amp;quot;. &lt;br /&gt;
==Aufgabenstellung==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden.&lt;br /&gt;
==Lösungsansatz==&lt;br /&gt;
Man möchte, dass auf der Detailansicht des Kunden, auch die jeweils dazu gehörigen Projekte angezeigt werden.&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items</id>
		<title>MetaModels Beispiel: Referenced items</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel:_Referenced_items"/>
				<updated>2013-09-10T06:49:37Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: Die Seite wurde neu angelegt: „REferenced Items“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;REferenced Items&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Kategorie:MetaModels</id>
		<title>Kategorie:MetaModels</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Kategorie:MetaModels"/>
				<updated>2013-07-04T20:37:21Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;B = Basics | &lt;br /&gt;
M = MetaModels Backend-Einstellungen | &lt;br /&gt;
T = Tipps &amp;amp; Tricks&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Backend:_Filter</id>
		<title>MetaModels Backend: Filter</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Backend:_Filter"/>
				<updated>2013-07-04T20:32:13Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels|M4]]&lt;br /&gt;
=Allgemeines zu den Filtern=&lt;br /&gt;
# [[MetaModels_Backend:_Attribute| MetaModels Attribute]]&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben| MetaModels Ausgabevorgaben]]&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske| MetaModels Eingabemaske]]&lt;br /&gt;
# [[MetaModels_Backend:_Filter| MetaModels Filter]]&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen| MetaModels Ansichtseinstellungen]]&lt;br /&gt;
&lt;br /&gt;
==Was sind eigentlich Filter?==&lt;br /&gt;
[[File:icons_filter.png|left|32px]]&lt;br /&gt;
Bei MetaModels haben Filter eine breitere Bedeutung als dies umgangssprachlich der Fall ist. Filter steuern jede Art von Ansichtsdarstellung (Renderings), sowohl im Backend als auch im Frontend. Z.B. ob ein Datensatz als 'Published' erscheinen soll oder nicht.&lt;br /&gt;
&lt;br /&gt;
Ein weiteres Einsatzgebiet ist klar das Ausfiltern von Listen in der Frontend-Darstellung. Beispielsweise, wenn man sich über eine Auswahl (Select, Radio-Buttons, Links) - einzeln oder kombiniert - gewisse Datensätze anzeigen lassen will.&lt;br /&gt;
&lt;br /&gt;
Ein ganz anderes Einsatzgebiet beschäftigt sich mit der Navigation von der Listen- zur Detailansicht. Aus der Sicht MetaModels gibt es keine separaten Listen- und Archivansichten (respektive separate Frontend-Module), wie man diese z.B. von Contao-News oder Catalog her kennt. Für MetaModels ist jede Ansicht eine Listenansicht. Der Filter bestimmt, ob n Datensätze (aka Liste) oder nur 1 Datensatz (aka Detailansicht) angezeigt wird. Mit anderen Worten: Der Filter und nicht das Frontend-Modul macht den Unterschied.&lt;br /&gt;
&lt;br /&gt;
=Einstieg=&lt;br /&gt;
[[File:mm_backend_filter_einstieg.png|thumb|365px]]&lt;br /&gt;
Mit Klick auf '''Neu''' erstellt man einen leeren Filter.&lt;br /&gt;
# Name editieren&lt;br /&gt;
# Einstellungen editieren.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Name editeren==&lt;br /&gt;
[[File:mm_backend_filter_name_editieren.png|thumb|365px]]&lt;br /&gt;
Der Name kann jederzeit geändert werden, ohne dass man später im den Renderings oder Frontend-Modulen eine Anpassung vornehmen muss.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einstellungen editeren==&lt;br /&gt;
[[File:mm_backend_filter_einstellungen.png|thumb|365px]]&lt;br /&gt;
Jeder Filter besteht aus mindestens einer Einstellung. Ein Filter kann auch aus einer Kombination von Einstellungen aufgebaut sein.&lt;br /&gt;
&lt;br /&gt;
Nachfolgend die möglichen Einstellungen: &lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Filter=&lt;br /&gt;
&lt;br /&gt;
==Vordefiniertes Filterset==&lt;br /&gt;
[[File:mm_filter_vordefinierte_einstellung.png|thumb|365px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einfache Abfrage==&lt;br /&gt;
[[File:mm_filter_einfache_abfrage.png|thumb|365px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Eigenes SQL==&lt;br /&gt;
[[File:mm_filter_eigenes_SQL.png|thumb|365px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Und-Bedingung (AND)==&lt;br /&gt;
[[File:mm_filter_und_bedingung.png|thumb|365px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Oder-Bedingung (OR)==&lt;br /&gt;
[[File:mm_filter_oder_bedingung.png|thumb|365px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Veröffentlichungsstatus==&lt;br /&gt;
[[File:mm_filter_published_state.png|thumb|365px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Geoprotection==&lt;br /&gt;
[[File:mm_filter_geoprotection.png|thumb|365px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ja/Nein==&lt;br /&gt;
[[File:mm_filter_ja_nein.png|thumb|365px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Wert von-/bis==&lt;br /&gt;
[[File:mm_filter_wert_von_bis.png|thumb|365px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==2 Felder mit Werten==&lt;br /&gt;
[[File:mm_filter_wert_innerhalb_2_felder.png|thumb|365px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Einzelauswahl==&lt;br /&gt;
[[File:mm_filter_einfache_auswahl.png|thumb|365px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mehrfachauswahl==&lt;br /&gt;
[[File:mm_filter_mehrfachauswahl.png|thumb|365px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Textfilter==&lt;br /&gt;
[[File:mm_filter_textfilter.png|thumb|365px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Backend:_Eingabemaske</id>
		<title>MetaModels Backend: Eingabemaske</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Backend:_Eingabemaske"/>
				<updated>2013-07-04T20:31:53Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels|M3]]&lt;br /&gt;
=Allgemeines zur Eingabemaske (fka Paletteneinstellungen)=&lt;br /&gt;
# [[MetaModels_Backend:_Attribute| MetaModels Attribute]]&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben| MetaModels Ausgabevorgaben]]&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske| MetaModels Eingabemaske]]&lt;br /&gt;
# [[MetaModels_Backend:_Filter| MetaModels Filter]]&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen| MetaModels Ansichtseinstellungen]]&lt;br /&gt;
&lt;br /&gt;
==Was ist eigentlich eine Eingabemaske ?==&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
Mit der Eingabemaske wird im Wesentlichen das Aussehen der Datenerfassung im Backend gesteuert. Es beantwortet die folgenden Fragen:&lt;br /&gt;
* Wo werden die Daten erfasst?&lt;br /&gt;
* Wie sieht die Übersichtsliste aus?&lt;br /&gt;
* Wie kann ich die Übersichtliste organisieren?&lt;br /&gt;
* Wie sieht das Erfassungsformular aus?&lt;br /&gt;
* Wie kann ich das Aussehen des Erfassungsformulars beeinflussen?&lt;br /&gt;
&lt;br /&gt;
=Einstieg=&lt;br /&gt;
[[File:mm_backend_paletteneinstellungen.png|thumb|400px]]&lt;br /&gt;
Nachdem man über '''Neue Eingabemaske''' einen Eintrag generiert hat, stehen 2 Funktionen zur Verfügung:&lt;br /&gt;
# Eingabemaske bearbeiten: Erstellen und organisieren der BE Liste&lt;br /&gt;
# Einstellungen der Eingabemaske bearbeiten: Erstellen und organisieren des BE Formulars&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Backend Liste=&lt;br /&gt;
==Eingabemaske==&lt;br /&gt;
[[File:mm_backend_paletteneinstellungen_palette.png|thumb|400px]]&lt;br /&gt;
Nachdem man über '''Neue Eingabemaske''' einen Eintrag generiert hat, stehen 2 Funktionen zur Verfügung:&lt;br /&gt;
* '''Name''': Name der Palette&lt;br /&gt;
* '''Panel-Layout''': Damit lässt sich die BE Liste organisieren. 4 Werte stehen zur Verfügung: filter, sort, search und limit. Mit Komma oder Semikolon steuert man die Darstellung (siehe nächster Screen)&lt;br /&gt;
* '''Integration''': Unabhängig, Als Kind-Tabelle&lt;br /&gt;
* '''Sortiermodus''': &lt;br /&gt;
** 0 Datensätze werden nicht sortiert &lt;br /&gt;
** 1 Datensätze nach festem Feld sortieren, &lt;br /&gt;
** 2 Datensätze nach variablen Feld sortieren, &lt;br /&gt;
** 5 Einträge werden als Baumstruktur dargestellt (siehe Seitenstruktur)&lt;br /&gt;
* '''Sortier-Flag''': diverse Optionen&lt;br /&gt;
* '''Backend-Bereich''': Hier kann man auswählen, wo in der Backend-Navigation (links) der Eintrag 'Musicbox' erscheinen soll. Neu lässt sich das eigene MetaModel auch in eine Bereich namens &amp;quot;MetaModel Boilerplate&amp;quot; packen &lt;br /&gt;
* '''Backend-Icon''': Optional kann man sein eigenes Icon anzeigen lassen&lt;br /&gt;
* '''Backend-Beschreibung''': Sprache, Labeltext (Name deiner BE Liste), Beschreibungstext (Tooltip)&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Panel-Layout==&lt;br /&gt;
[[File:mm_backend_paletteneinstellungen_panel.png|thumb|400px]]&lt;br /&gt;
Die Einträge unter dem Panel-Layout bestimmen, ob und wie die einzelnen Funktionen erscheinen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Backend Liste gestalten==&lt;br /&gt;
[[File:mm_backend_liste_rendereinstellungen.png|thumb|400px]]&lt;br /&gt;
Es besteht die Möglichkeit, die BE-Liste etwas user-freundlicher zu gestalten, indem man eine spezifische CSS-Datei einbettet. Mit wenigen CSS-Anweisungen kriegt man recht schnell eine anständige Ansicht hin. Hier folgend ein Beispiel.&lt;br /&gt;
&lt;br /&gt;
'''CSS-Datei laden'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Die CSS-Datei kann irgendwo im Verzeichnis '''tl_files''' (Contao 2) bzw. '''files''' (Contao 3) abgelegt werden. Über '''Zusätzliche CSS-Dateien''' kann die Datei geladen und anschliessend die Option '''Veröffentlichen''' angewählt werden. Nützlich ist in diesem Fall auch die Option '''Labels verbergen'''. &lt;br /&gt;
&lt;br /&gt;
Über die HTML-Source Ansicht der BE-Liste kann man sich die verwendeten CSS-Klassen anzeigen lassen und in der CSS-Datei entsprechend formatieren. Ein Beispiel folgt unten.&lt;br /&gt;
&lt;br /&gt;
Das Ganze funktioniert selbstredend auch für FE-Ansichten.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Das Beispiel musicbox.css'''&lt;br /&gt;
[[File:mm_backend_liste.png|thumb|400px]]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.item {&lt;br /&gt;
	overflow: hidden;&lt;br /&gt;
	padding: 10px 0;&lt;br /&gt;
}&lt;br /&gt;
.item .field {&lt;br /&gt;
	margin-bottom: 2px;&lt;br /&gt;
}&lt;br /&gt;
.item .cover {&lt;br /&gt;
	float: left;&lt;br /&gt;
	margin-right: 20px;&lt;br /&gt;
}&lt;br /&gt;
.item .title .value {&lt;br /&gt;
	font-size: 13px;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.item .composer .value {&lt;br /&gt;
	color: #c00;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Backend Formular=&lt;br /&gt;
==Attribute==&lt;br /&gt;
[[File:mm_backend_paletteneinstellungen_liste.png|thumb|400px]]&lt;br /&gt;
Nachdem man über '''Alle hinzufügen''' alle Attribute hinzugefügt hast, kann man die Liste per Drag&amp;amp;Drop organisieren. Die Reihenfolge legt fest, in welcher Reihenfolge die Eingabefelder im Erfassungsformular erscheinen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribut bearbeiten==&lt;br /&gt;
[[File:mm_backend_paletteneinstellungen_attribut.png|thumb|400px]]&lt;br /&gt;
Jedes Attribut hat gemäss seinem Typ spezifische Einstelloptionen. Was sie jedoch alle gemein haben, sind die so genannten '''Backend-Classes'''. Darüber lassen sich die Eingabefelder ein wenig gestalten. Folgende CSS-Klassen stehen zur Verfügung:&lt;br /&gt;
* '''w50''': Die Breite auf 50% festlegen und nach links floaten.&lt;br /&gt;
* '''clr''': Alle Floats clearen.&lt;br /&gt;
* '''long''': Vergrößert das Eingabefeld, sodass es zwei Spalten umfasst.&lt;br /&gt;
* '''wizard''': Das Eingabefeld kürzen, sodass Platz für einen Wizard ist (z.B. einen Date-Picker).&lt;br /&gt;
* '''m12''': Dem Element einen oberen Abstand (top-margin) von 12 Pixel geben (für einzelne Checkboxen).&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Das Backend-Formular==&lt;br /&gt;
[[File:mm_backend_paletteneinstellungen_formular.png|thumb|400px]]&lt;br /&gt;
Und so könnte das Backend-Formular in etwa aussehen. Rot gekennzeichnet die Backend-Klassen, die den Attributen mitgegeben wurden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Das Backend-Formular mit Legenden==&lt;br /&gt;
[[File:mm_backend_eingabemaske_legenden.png|thumb|400px]]&lt;br /&gt;
Das Backend-Formular lässt sich noch weiter organisieren, indem man Eingabefelder, etc. über '''Legenden''' gruppiert (siehe nebenstehendes Beispiel). &lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_eingabemaske_legende_erfassen1.png|thumb|400px]]&lt;br /&gt;
Hierzu auf der Attributsübersicht auf '''Neu''' klicken. &lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_eingabemaske_legende_erfassen2.png|thumb|400px]]&lt;br /&gt;
Als Typ kann man nun den Typ '''Legende''' wählen und gibt anschliessend einen '''Legenden-Titel''' ein.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_eingabemaske_legende_erfassen3.png|thumb|400px]]&lt;br /&gt;
Die '''Legenden-Titel''' können nun per Drag&amp;amp;Drop an die gewünschte Position verschoben werden. Sie können auch jederzeit umbenannt werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Einstellungen der Eingabefelder (Attribute)=&lt;br /&gt;
&lt;br /&gt;
==Alias==&lt;br /&gt;
[[File:mm_paletteneinstellungen_alias.png|thumb|400px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Auswahl (Select)==&lt;br /&gt;
[[File:mm_paletteneinstellungen_select.png|thumb|400px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Checkbox==&lt;br /&gt;
[[File:mm_paletteneinstellungen_checkbox.png|thumb|400px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Color==&lt;br /&gt;
[[File:mm_eingabemaske_color.png|thumb|400px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Datei==&lt;br /&gt;
[[File:mm_paletteneinstellungen_file.png|thumb|400px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Dezimal==&lt;br /&gt;
[[File:mm_paletteneinstellungen_decimal.png|thumb|400px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GeoProtection==&lt;br /&gt;
[[File:mm_paletteneinstellungen_geoprotection.png|thumb|400px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Longtext==&lt;br /&gt;
[[File:mm_paletteneinstellungen_longtext.png|thumb|400px]]&lt;br /&gt;
Es stehen 3 Richtext-Editoren zur Verfügung: tinyFlash, tinyMCE und tinyNews.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Numerisch==&lt;br /&gt;
[[File:mm_paletteneinstellungen_numeric.png|thumb|400px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sprachcode==&lt;br /&gt;
[[File:mm_paletteneinstellungen_sprachcode.png|thumb|400px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tags==&lt;br /&gt;
[[File:mm_paletteneinstellungen_tags.png|thumb|400px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Text==&lt;br /&gt;
[[File:mm_paletteneinstellungen_text.png|thumb|400px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Timestamp (Datum/Zeit)==&lt;br /&gt;
[[File:mm_paletteneinstellungen_timestamp.png|thumb|400px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==URL==&lt;br /&gt;
[[File:mm_paletteneinstellungen_url.png|thumb|400px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetztes Alias==&lt;br /&gt;
Details folgen&lt;br /&gt;
&lt;br /&gt;
==Übersetzte Datei==&lt;br /&gt;
Details folgen&lt;br /&gt;
&lt;br /&gt;
==Übersetzter Longtext==&lt;br /&gt;
Details folgen&lt;br /&gt;
&lt;br /&gt;
==Übersetzte Auswahl==&lt;br /&gt;
Details folgen&lt;br /&gt;
&lt;br /&gt;
==Übersetzte Tags==&lt;br /&gt;
Details folgen&lt;br /&gt;
&lt;br /&gt;
==Übersetzter Text==&lt;br /&gt;
Details folgen&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Backend:_Ausgabevorgaben</id>
		<title>MetaModels Backend: Ausgabevorgaben</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Backend:_Ausgabevorgaben"/>
				<updated>2013-07-04T20:30:53Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels|M2]]&lt;br /&gt;
=Allgemeines zu den Ausgabevorgaben (aka Rendereinstellungen)=&lt;br /&gt;
# [[MetaModels_Backend:_Attribute| MetaModels Attribute]]&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben| MetaModels Ausgabevorgaben]]&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske| MetaModels Eingabemaske]]&lt;br /&gt;
# [[MetaModels_Backend:_Filter| MetaModels Filter]]&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen| MetaModels Ansichtseinstellungen]]&lt;br /&gt;
&lt;br /&gt;
==Was sind eigentlich Ausgabevorgaben?==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Mit dem Ausgabevorgaben kann man bestimmen, welche Attribute (und in welcher Reihenfolge) in einer Ansicht gezeigt werden sollen. Z.B. möchte man in einer Liste nicht alle, sondern nur die wichtigsten vier Attribute anzeigen. Im Backend sind die Ausgabevorgaben nur für die Liste relevant. Die Eingabemaske (Formular) wird über die Paletteneinstellung gesteuert.&lt;br /&gt;
&lt;br /&gt;
=Einstieg=&lt;br /&gt;
[[File:mm_backend_ausgabevorgaben.png|thumb|365px]]&lt;br /&gt;
Nachdem man über '''Neu''' einen Eintrag generiert hat, stehen 2 Funktionen zur Verfügung:&lt;br /&gt;
# Ausgabe bearbeiten: Erstellen und organisieren von Ansichten&lt;br /&gt;
# Attributseinstellungen bearbeiten: Hinzufügen und organisieren von Attributen&lt;br /&gt;
'''Hinweis'''&amp;lt;br&amp;gt;&lt;br /&gt;
Die ID der Rendereinstellung (Tool-Tip bei Icon 'Info) ist nützlich, wenn man den Detail-Link anpassen möchte. Siehe [[MetaModels_Beispiel_2#Detail-Link_anpassen|hier]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ansicht=&lt;br /&gt;
==Einstellungen==&lt;br /&gt;
[[File:mm_backend_ausgabevorgaben_formular.png|thumb|365px]]&lt;br /&gt;
Hier legt man die Einstellungen fest, die später in den Frontend-Modulen als so genannte '''Anzuwendende Rendereinstellungen''' zum Tragen kommen.&lt;br /&gt;
&lt;br /&gt;
* '''Name''': Name der Ansicht&lt;br /&gt;
* '''Als Standard verwenden''': Optional&lt;br /&gt;
* '''Template''': Standardmässig stehen 2 Templates zur Verfügung&lt;br /&gt;
** metamodel_prerendered (Globaler Gültigkeitsbereich)... nimmt Rücksicht auf die Reihenfolge, die man in den Attributseinstellungen vornimmt&lt;br /&gt;
** metamodel_unrendered (Globaler Gültigkeitsbereich) ... ignoriert die Rendersettings, man kann das Template den eigenen Wünschen anpassen&lt;br /&gt;
** hier tauchen auch die selbsterstellten metamodel_Templates auf&lt;br /&gt;
*'''Ausgabeformat''': HTML5, XHTML, Text&lt;br /&gt;
* '''Zielseite''': Wichtig, wenn man von einer Liste zu einer Detailseite springen will&lt;br /&gt;
** '''Springe zu Seite''': Interner Link oder URL, der zur Zielseite führt&lt;br /&gt;
** '''Filtereinstellungen''': Hier kann man den Filter angeben, der den Link zur Zielseite anzeigt. Gibt man keinen Filter an, wird im Frontend kein &amp;quot;Detail&amp;quot;-Link angezeigt.&lt;br /&gt;
* '''Leere Einträge verbergen'''&lt;br /&gt;
* '''Labels verbergen'''&lt;br /&gt;
* '''Zusätzliche CSS-Dateien'''&lt;br /&gt;
* '''Zusätzliche JavaScript-Dateien'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute==&lt;br /&gt;
[[File:mm_backend_ausgabevorgaben_liste.png|thumb|365px]]&lt;br /&gt;
Über '''Alle hinzufügen''' kann man sich alle verfügbaren Attribute dazuladen. Hier legt man fest, welche Attribute in der Ansicht gezeigt werden sollen (Icon 'Auge'). Falls man oben das Template ''' metamodel_prerendered (global scope)''' gewählt hat, nimmt dieses Template Rücksicht auf die hier gezeigte Reihenfolge.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribut-Templates==&lt;br /&gt;
[[File:mm_backend_ausgabevorgaben_liste_detail.png|thumb|365px]]&lt;br /&gt;
Jedes Attribute verfügt über ein eigenes Template. Auf Wunsch kannt man natürlich auch hierauf Zugriff nehmen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Templateanpassungen=&lt;br /&gt;
Die grösste Einflussmöglichkeit ein eigenes Design zu implementieren, besteht in der Anpassung des Templates '''metamodels_prerendered.html5'''.&lt;br /&gt;
&lt;br /&gt;
==Original==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php $strRendersettings = ($this-&amp;gt;settings)? 'settings' : 'view'; ?&amp;gt;&lt;br /&gt;
&amp;lt;?php if (count($this-&amp;gt;data)): ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;layout_full&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php foreach ($this-&amp;gt;data as $arrItem): ?&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item &amp;lt;?php echo $arrItem['class']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php foreach ($arrItem['attributes'] as $field =&amp;gt; $strName): ?&amp;gt;&lt;br /&gt;
&amp;lt;?php if (($strValue = $arrItem[$this-&amp;gt;getFormat()][$field]) || ($strValue = $arrItem['text'][$field])): ?&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;field &amp;lt;?php echo $field; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;?php if(!$this-&amp;gt;$strRendersettings-&amp;gt;get('hideLabels')): ?&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;label&amp;quot;&amp;gt;&amp;lt;?php echo $strName; ?&amp;gt;: &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;value&amp;quot;&amp;gt; &amp;lt;?php echo $strValue; ?&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;?php if ($arrItem['jumpTo']['deep']): ?&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;&amp;lt;?php echo $arrItem['jumpTo']['url']; ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;?php echo $this-&amp;gt;details; ?&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;?php else: ?&amp;gt;&lt;br /&gt;
&amp;lt;p class=&amp;quot;info&amp;quot;&amp;gt;&amp;lt;?php echo $this-&amp;gt;noItemsMsg; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mögliches eigenes Templates==&lt;br /&gt;
Klassischerweise werden über ein Loop (foreach) die Attribute aus einem Objekt (item) ausgelesen. Diese werden dann in ein field gepackt und über label bzw. value ausgegeben. Wenn man hier mehr Gestaltungsfreiheiten haben möchte, muss man die Attribute eines Items einzelnen ('MeinAttribut') ansprechen:&amp;lt;br&amp;gt;&lt;br /&gt;
Der Feldtitel... &amp;lt;?php echo $arrItem['attributes']['MeinAttribut']; ?&amp;gt; bzw. &amp;lt;br&amp;gt;&lt;br /&gt;
Der Wert des Feldes... &amp;lt;?php echo $arrItem['text']['MeinAttribut']; ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wer sich mit HTML und CSS auskennt, kann sich hier ein eigenes Template zurecht schustern.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php if (count($this-&amp;gt;data)): /* display only if there is data. */ ?&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;layout_full&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php foreach ($this-&amp;gt;data as $arrItem): /* loop over all items. */ ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;item &amp;lt;?php echo $arrItem['class']; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h1&amp;gt;&amp;lt;?php echo $arrItem['text']['title']; ?&amp;gt; (&amp;lt;?php echo $arrItem['text']['year']; ?&amp;gt;)&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field composer&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;label&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['attributes']['composer']; ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;&amp;lt;?php echo $arrItem['text']['composer']; ?&amp;gt;&amp;lt;/strong&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field style&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;label&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['attributes']['style']; ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['style']; ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field country&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;label&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['attributes']['country']; ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['country']; ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field description&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;label&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['attributes']['description']; ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['description']; ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field web&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;label&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['attributes']['web']; ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['html5']['web']; ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field images&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;label&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['attributes']['images']; ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['html5']['images']; ?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;clear&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php if ($arrItem['jumpTo']): ?&amp;gt;&amp;lt;a href=&amp;quot;&amp;lt;?php echo $arrItem['jumpTo']['url']; ?&amp;gt;&amp;quot;&amp;gt;Zurück zur Liste&amp;lt;/a&amp;gt;&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&amp;lt;?php endforeach; /* item loop */ ?&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php else:  /* no items found */ ?&amp;gt;&amp;lt;p class=&amp;quot;info&amp;quot;&amp;gt;&amp;lt;?php echo $this-&amp;gt;noItemsMsg; ?&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mögliches Tabellentemplate==&lt;br /&gt;
Ein weiteres Umsetzungsbeispiel, dass im [https://community.contao.org/de/showthread.php?39668-Template-f%FCr-Ausgabe-als-Tabelle diesem Thread] behandelt wurde. Bei diesem Beispiel erkennt man auch, dass man gänzlich auf die vorgegebenen CSS-Klassen verzichten und ein komplett eigenes Template erstellen kann.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php if (count($this-&amp;gt;data)): /* display only if there is data. */ ?&amp;gt;&lt;br /&gt;
&amp;lt;?php $arrItem = $this-&amp;gt;data[0]; /* fetch first item for title columns. */ ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;termintabelle&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;thead&amp;gt;&lt;br /&gt;
      &amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;th&amp;gt;&amp;lt;?php echo $arrItem['attributes']['title']; ?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
	&amp;lt;th&amp;gt;&amp;lt;?php echo $arrItem['attributes']['startdatum']; ?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
	&amp;lt;th&amp;gt;&amp;lt;?php echo $arrItem['attributes']['enddatum']; ?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
	&amp;lt;th&amp;gt;&amp;lt;?php echo $arrItem['attributes']['meldeschluss']; ?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
	&amp;lt;th&amp;gt;&amp;lt;?php echo $arrItem['attributes']['ort']; ?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
	&amp;lt;th&amp;gt;&amp;lt;?php echo $arrItem['attributes']['kontaktperson']; ?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
	&amp;lt;th&amp;gt;&amp;lt;?php echo $arrItem['attributes']['email']; ?&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/thead&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tbody&amp;gt;&lt;br /&gt;
  &amp;lt;?php?&amp;gt;&lt;br /&gt;
  &amp;lt;?php foreach ($this-&amp;gt;data as $arrItem): /* loop over all items. */ ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;?php echo $arrItem['text']['title']; ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;?php echo $arrItem['text']['startdatum']; ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;?php echo $arrItem['text']['enddatum']; ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
	&amp;lt;td&amp;gt;&amp;lt;?php echo $arrItem['text']['meldeschluss']; ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;&amp;lt;?php echo $arrItem['text']['ort']; ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;&amp;lt;?php echo $arrItem['text']['kontaktperson']; ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;&amp;lt;a href=&amp;quot;mailto:&amp;lt;?php echo $arrItem['text']['email']; ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;?php echo $arrItem['text']['email']; ?&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
  &amp;lt;?php endforeach; /* item loop */ ?&amp;gt;&lt;br /&gt;
  &amp;lt;/tbody&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Backend:_Ansichtseinstellungen</id>
		<title>MetaModels Backend: Ansichtseinstellungen</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Backend:_Ansichtseinstellungen"/>
				<updated>2013-07-04T20:30:19Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels|M5]]&lt;br /&gt;
=Allgemeines zu den Ansichteinstellungen=&lt;br /&gt;
# [[MetaModels_Backend:_Attribute| MetaModels Attribute]]&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben| MetaModels Ausgabevorgaben]]&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske| MetaModels Eingabemaske]]&lt;br /&gt;
# [[MetaModels_Backend:_Filter| MetaModels Filter]]&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen| MetaModels Ansichtseinstellungen]]&lt;br /&gt;
&lt;br /&gt;
=Was sind eigentlich Ansichtseinstellungen?=&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
Für jedes MetaModel müssen die Zugriffsberechtigungen definiert werden, damit über die Backend-Navigation darauf zugegriffen und die jeweiligen Daten eingeben werden können. Es kann mehr als eine Backend-Gruppe definiert werden. Nur der Administrator hat aber vollen Zugriff auf alle Backend-Funktionen eines MetaModels.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Backend:_Attribute</id>
		<title>MetaModels Backend: Attribute</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Backend:_Attribute"/>
				<updated>2013-07-04T20:29:40Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels|M1]]&lt;br /&gt;
=Allgemeines zu den Attributen=&lt;br /&gt;
# [[MetaModels_Backend:_Attribute| MetaModels Attribute]]&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben| MetaModels Ausgabevorgaben]]&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske| MetaModels Eingabemaske]]&lt;br /&gt;
# [[MetaModels_Backend:_Filter| MetaModels Filter]]&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen| MetaModels Ansichtseinstellungen]]&lt;br /&gt;
&lt;br /&gt;
==Was sind eigentlich Attribute?==&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
Grob gesagt: die Datenbank-Objekte (aka Datensatz), die in den MetaModels erfasst werden, setzen sich aus den verschiedensten Attributen (aka Eigenschaften oder Feldern) zusammen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Einstieg=&lt;br /&gt;
[[File:mm_backend_attribute_liste.png|thumb|365px]]&lt;br /&gt;
Über '''Neues Attribut''' erfasst man die gewünschten Attribute. Name und Beschreibung eines Objektes, die Fotos, die das Objekt illustrieren, eine Checkbox, mit der ein Eintrag veröffentlicht werden kann - all das wird in Attributen abgelegt. Jedes Attribut entspricht also einer Spalte in der Datenbank-Tabelle.&lt;br /&gt;
Aus den verschiedenen Attributen stellt man die Eingabemaske für die einzelnen Datensätze zusammen. Für jeden Attributtyp gibt es diverse Einstellungen, die im Folgenden beim jeweiligen Attribut erläutert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribut definieren==&lt;br /&gt;
[[File:mm_attribut_settings_eingabemaske.png|thumb|365px]]&lt;br /&gt;
Mit einem Klick auf das Icon Bearbeiten fängt man an. Zuerst wird der Attributtyp ausgewählt. Für '''jedes''' Attribut müssen dann '''Basis-Attributkonfigurationen''' festgelegt werden:&lt;br /&gt;
&lt;br /&gt;
* '''Attribut-Typ''': Typ (gesamte Liste siehe weiter unten)&lt;br /&gt;
* '''Spaltenname''' (Name der Tabellenspalte in der Datenbank)&lt;br /&gt;
* '''Name''' (Name der Feldüberschrift bei der Erfassung des Datensatzes)&lt;br /&gt;
* '''Beschreibung''' (Beschreibung unterhalb des Feldes bei der Erfassung des Datensatzes)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bei allen Attributen findet man unter den '''Erweiterten Einstellungen''' (Advanced settings) noch die Checkbox '''Eindeutige Werte''' (Unique values) - wird diese angehakt, kann für das betreffende Attribut jeder Wert nur einmal verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Den Einträgen, die man unter '''Name''' und '''Beschreibung''' eingibt, begegnet man später in der Eingabemaske wieder (siehe rote Markierung im Screenshot).&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Attribute=&lt;br /&gt;
==Alias==&lt;br /&gt;
[[File:mm_attribut_alias.png|thumb|365px]]&lt;br /&gt;
&lt;br /&gt;
Das Attribut '''Alias''' erzeugt ein einzeiliges Eingabefeld. Dieses Attribut sollte erst dann erzeugt werden, wenn mindestens ein Textfeld (vorzugsweise ein Titel-Feld) vorhanden ist, aus dem sich das Alias automatisch bilden kann.&lt;br /&gt;
&lt;br /&gt;
'''Advanced Settings'''&lt;br /&gt;
*'''Eindeutige Werte'''&lt;br /&gt;
*'''Neuerstellung des Alias erzwingen.''': Anhaken, wenn sich das Alias automatisch anpassen soll, wenn immer der Wert des zugewiesenen Feldes geändert wird (ist etwas buggy, Stand:März 2013)&lt;br /&gt;
*'''Alias-Felder''': Attribut, aus dem das Alias generiert wird. Es können auch mehrere Attribute definiert werden. In diesem Fall werden die einzelnen Attribute über einen Bindestrich zu einem Alias zusammengefügt.&lt;br /&gt;
 &amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Auswahl (Select)==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribut_select.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Auswahl''' erzeugt ein HTML-Select.&lt;br /&gt;
&lt;br /&gt;
'''Anzeigeeinstellungen'''&lt;br /&gt;
* '''select_table''': Hier erscheinen alle in der Contao-Installation verfügbaren Tabellen, auch die mit MetaModels erstellten (siehe Hinweis weiter unten)&lt;br /&gt;
* '''select_id''': Vorzugsweise '''id''' auswählen. Standardmässig führt jede Contao-Tabelle eine ID mit&lt;br /&gt;
* '''select_column''': Namen der Spalte auswählen, der die Werte des Selects zur Verfügung stellt&lt;br /&gt;
* '''select_alias''': Vorzugsweise das '''alias''' auswählen&lt;br /&gt;
*'''Auswahl-Sortierung''': Hier lässt sich einstellen, in welcher Reihenfolge die Begriffe im Select erscheinen sollen&lt;br /&gt;
*'''SQL''': Die Auswahlmöglichkeiten lassen sich per SQL einschränken&lt;br /&gt;
&lt;br /&gt;
Hinweis: Um das Attribut '''Auswahl''' anlegen zu können, muss man zuerst eine neue Tabelle (sprich ein neues MetaModel) erstellen, in der die Select-Werte angelegt werden.&lt;br /&gt;
Die genaue Vorgehensweise ist [[MetaModels_Beispiel_4|hier]] beschrieben. Erst dann kann man unter '''select_table''' die betreffende Tabelle auswählen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bewertung (Rating)==&lt;br /&gt;
[[File:mm_attribut_rating.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Bewertung''' erzeugt eine Aufzählung von Icons. Standardmässig werden Sterne angezeigt. Man kann aber auch eigene definieren.&lt;br /&gt;
&lt;br /&gt;
'''Beispiel'''&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:mm_attribut_rating_beispiel.png|link=]]&lt;br /&gt;
&lt;br /&gt;
'''Bitte beachten'''&amp;lt;br&amp;gt;&lt;br /&gt;
Das Attribut benötigt die beiden PHP-Dateien '''SimpleAjax.php''' und '''SimpleAjaxFrontend.php''', welche mit dem aktuellen Nightly Build ausgeliefert werden.&amp;lt;br&amp;gt;&lt;br /&gt;
Die beiden PHP-Dateien müssen im Root-Verzeichnis der Contao-Installation abgelegt werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Color picker (Farbe)==&lt;br /&gt;
[[File:mm_attribut_color.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Color picker''' erzeugt zwei Eingabefelder (Hex Farbangabe) und einen Farbwähler&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Datei (File)==&lt;br /&gt;
[[File:mm_attribut_datei.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Datei''' erzeugt ein Wurzelverzeichnis, aus dem sich einzelne Dateien oder Order anwählen lassen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Dezimal (Decimal)==&lt;br /&gt;
[[File:mm_attribut_dezimal.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Dezimal''' erzeugt ein einzeiliges Eingabefeld und nimmt eine Feldprüfung vor&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GeoProtection==&lt;br /&gt;
[[File:mm_attribut_geoprotection.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''GeoProtection''' erzeugt ein HTML-Select. Als Optionen stehen die angewählten Länder zur Verfügung.&amp;lt;br /&amp;gt;&lt;br /&gt;
Es bietet die Möglichkeit Datensätze so zu konfigurieren, das sie für ausgewählte Länder sichtbar sind oder versteckt werden. &lt;br /&gt;
&lt;br /&gt;
'''Bitte beachten'''&amp;lt;br&amp;gt;&lt;br /&gt;
Dieses Attribut benötigt die Extension [https://contao.org/de/extension-list/view/geoprotection.de.html geoprotection], ansonsten wird eine [https://community.contao.org/de/showthread.php?38172-Erste-Gehversuche&amp;amp;amp;p=248078&amp;amp;amp;viewfull=1#post248078 Fehlermeldung] rausgeworfen.&lt;br /&gt;
Und wird nicht mit den Nightly Builds geladen, kann aber bei [https://github.com/MetaModels/attribute_geoprotection GitHub] separat runtergeladen werden &lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kombinierte Einträge (Combined Values)==&lt;br /&gt;
[[File:mm_attribut_combinedvalues.png|thumb|365px]]&lt;br /&gt;
&lt;br /&gt;
Das Attribut '''Kombinierte Einträge''' erzeugt ein...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Kontrollkästchen (Checkbox)==&lt;br /&gt;
[[File:mm_attribut_checkbox.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Kontrollkästchen''' erzeugt eine einfache HTML-Checkbox.&lt;br /&gt;
&lt;br /&gt;
'''Erweiterte Einstellungen'''&lt;br /&gt;
*'''Eindeutige Werte'''&lt;br /&gt;
*'''Veröffentlichen''': Erzeugt im Backend (in der Listenansicht mit Icon 'Auge') die Option, einen Datensatz für das Frontend freizugeben. Hierzu muss aber auch ein Filter definiert werden. Die genaue Vorgehensweise ist  [[MetaModels_Beispiel_3#Published_Filter_im_Frontend_einbauen|hier]] beschrieben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Land (Country)==&lt;br /&gt;
[[File:mm_attribut_land.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Land''' erzeugt ein HTML-Select, welches alle Länder enthält.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:mm_attribut_land_filter.png|thumb|365px]]&lt;br /&gt;
'''Verfügbare Länder filtern'''&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn dieses Feld leer ist, werden automatisch alle Länder im Select angezeigt. Die Auflistung lässt sich verkürzen, indem man nur die gewünschten Länder hier auflistet.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Langtext (Longtext)==&lt;br /&gt;
[[File:mm_attribut_longtext.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Langtext''' erzeugt eine Textarea.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Es stehen 3 Richtext-Editoren zur Verfügung: tinyFlash, tinyMCE und tinyNews.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletteneinstellungen_longtext.png|thumb|365px]]&lt;br /&gt;
Die &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Richtext-Editoren&amp;lt;/span&amp;gt; können über die [[MetaModels_Backend:_Eingabemaske#Longtext|Eingabemaske]] (fka Paletteneinstellungen) aktiviert werden.&lt;br /&gt;
* Paletteneinstellungen&lt;br /&gt;
* Paletteneinstellungen bearbeiten (also auf das Palettenicon ganz rechts klicken)&lt;br /&gt;
* Formular auswählen&lt;br /&gt;
* Bleistiftsymbol beim Attribut &amp;quot;Longtext&amp;quot; anklicken&lt;br /&gt;
* unter '''presentation_legend''' gibt es einen Punkt '''Enable richtext editor on this'''&lt;br /&gt;
* hier kann der Richtext-Editor ausgewählt werden&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mehrfachauswahl (Tags)==&lt;br /&gt;
[[File:mm_attribut_tags.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Mehrfachauswahl (Tags)''' erzeugt Checkboxen mit Mehrfachauswahl.&lt;br /&gt;
&lt;br /&gt;
'''Anzeigeeinstellungen'''&lt;br /&gt;
* '''Datenbanktabelle''': Hier erscheinen alle in der Contao-Installation verfügbaren Tabellen (siehe Hinweis weiter unten)&lt;br /&gt;
* '''Tabellenspalte''': Namen der Spalte auswählen, die die Werte der Tags zur Verfügung stellt&lt;br /&gt;
* '''ID der Mehrfachauswahl''': Vorzugsweise '''id''' auswählen. Standardmässig führt jede Contao-Tabelle eine ID mit&lt;br /&gt;
* '''Alias der Mehrfachauswahl''': Namen der Spalte auswählen, die die Werte der Tags zur Verfügung stellt&lt;br /&gt;
* '''Sortierung der Mehrfachauswahl''': Namen der Spalte auswählen, die die Werte der Tags zur Verfügung stellt&lt;br /&gt;
*'''SQL''': Die Auswahlmöglichkeiten können per SQL eingeschränkt werden&lt;br /&gt;
&lt;br /&gt;
Hinweis: Um das Attribut '''Tags''' anlegen zu können, muss man zuerst eine neue Tabelle (sprich ein neues MetaModel) erstellen, in der die verschiedenen Tags angelegt werden. Die genaue Vorgehensweise ist - am Beispiel des Attributes '''Auswahl''' - [[MetaModels_Beispiel_4|hier]] beschrieben. Erst dann kann man unter '''Datenbanktabelle''' die betreffende Tabelle auswählen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Numerisch (Numeric)==&lt;br /&gt;
[[File:mm_attribut_numerisch.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Numerisch''' erzeugt ein einzeiliges Eingabefeld und nimmt eine Feldprüfung vor&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Sprachschlüssel (Langcode)==&lt;br /&gt;
[[File:mm_attribut_sprachcode.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Sparchcode''' erzeugt ein HTML-Select. Als Optionen stehen die angewählten Sprachen (langcodes) zur Verfügung.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Text==&lt;br /&gt;
[[File:mm_attribut_text.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Text''' erzeugt ein einzeiliges Eingabefeld.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Timestamp (Datum)==&lt;br /&gt;
[[File:mm_attribut_timestamp.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Timestamp''' erzeugt ein einzeiliges Eingabefeld mit Datumsprüfung.&lt;br /&gt;
&lt;br /&gt;
'''Datum und Zeit &amp;gt; Schema'''&lt;br /&gt;
*'''Datum''' erzeugt z.B. 2013-03-06&lt;br /&gt;
*'''Datum und Zeit''' erzeugt z.B. 2013-03-06 08:15&lt;br /&gt;
Das Datum wird so konfiguriert, wie es in den Backend-Einstellungen von Contao definiert ist. Im Frontend richtet es sich nach den allgemeinen Einstellungen oder je nach Konfiguration nach den Einstellungen in der Seitenstruktur.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==URL==&lt;br /&gt;
[[File:mm_attribut_url.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''URL''' erzeugt zwei einzeilige Eingabefelder. Eines für den Linktext und eines für die URL. &lt;br /&gt;
Mit dabei ist auch noch ein Icon, über das sich eine Seite aus der Seitenstruktur auswählen lässt.&lt;br /&gt;
&lt;br /&gt;
'''Bitte beachten'''&amp;lt;br&amp;gt;&lt;br /&gt;
Externe Links müssen mit einem http:// (oder https://) versehen sein, anderfalls interpretiert MetaModels die URL als relativen Link.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetztes Alias==&lt;br /&gt;
[[File:mm_attribut_translated_alias.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''translatedalias''' erzeugt ein einzeiliges Eingabefeld.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzte Datei==&lt;br /&gt;
[[File:mm_attribut_translated_datei.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Übersetzte Datei''' erzeugt ein einzeiliges Eingabefeld.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzter Longtext==&lt;br /&gt;
[[File:mm_attribut_translated_longtext.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Übersetzter Longtext''' erzeugt eine mehrzeilige Textarea.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzte Auswahl==&lt;br /&gt;
[[File:mm_attribut_translated_auswahl.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Übersetzte Auswahl''' erzeugt ein HTML Select.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel zur Verwendung ist hier zu finden:&lt;br /&gt;
[[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzte Tags==&lt;br /&gt;
[[File:mm_attribut_translated_tags.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Übersetzte Tags''' erzeugt ein....&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Übersetzter Text==&lt;br /&gt;
[[File:mm_attribut_translated_text.png|thumb|365px]]&lt;br /&gt;
Das Attribut '''Übersetzter Text''' erzeugt ein einzeiliges Eingabefeld.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Kategorie:MetaModels_Basics</id>
		<title>Kategorie:MetaModels Basics</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Kategorie:MetaModels_Basics"/>
				<updated>2013-07-04T20:26:36Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: Die Seite wurde geleert.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2013-07-04T20:26:11Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels|B]]&lt;br /&gt;
&lt;br /&gt;
=MetaModels (aka Catalog 3) lernen an Beispielprojekten=&lt;br /&gt;
==Voraussetzungen==&lt;br /&gt;
* MetaModels ist der Nachfolger von Catalog. Der Code wurde komplett neu entwickelt. Eine Kompatibilität zu Catalog besteht nicht&lt;br /&gt;
* Die Bedienung und Administration von Contao sollte bekannt sein&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;MetaModels setzt Contao 2.11.x voraus&amp;lt;/span&amp;gt;. MetaModels läuft (noch) nicht unter Contao 3.x (Stand April 2013)&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;MetaModels benötigt mindestens PHP 5.3&amp;lt;/span&amp;gt;&lt;br /&gt;
* Bezüglich MetaModels werden keinerlei Vorkenntnisse vorausgesetzt&lt;br /&gt;
&lt;br /&gt;
==Download &amp;amp; Installation==&lt;br /&gt;
* MetaModels kann (noch) nicht über die Erweiterungsverwaltung geladen werden&lt;br /&gt;
* Unter der URL [http://now.metamodel.me now.metamodel.me] findet sich die Möglichkeit, Installationsarchive in den Formaten '''tgz''', '''tbz''' und '''zip''' mit so genannten '''Nightly Builds''' zu laden. &lt;br /&gt;
* Die '''Nightly Builds''' werden stündlich mit dem aktuellsten Stand von MetaModels zum Download bereitgestellt&lt;br /&gt;
* Detaillierte Infos zum Download und zur Installation findet man unter [[MetaModels|MetaModels]].&lt;br /&gt;
&lt;br /&gt;
==Umsetzungsbeispiele==&lt;br /&gt;
Wir werden eine Verwaltung unserer Musiksammlung erstellen und uns in mehreren Beispielen schrittweise von einer einfachen zu komplexeren Anwendungen vorarbeiten.&lt;br /&gt;
# [[MetaModels_Beispiel_1|Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-07-04T20:25:09Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels|B]]&lt;br /&gt;
=Aufgabenstellung: Backend einrichten=&lt;br /&gt;
Als Beispielprojekt soll eine einfache &amp;quot;Musikbox&amp;quot; gebaut werden, in der Musikstücke mit gewissen Attributen (&amp;quot;Eigenschaften&amp;quot;) erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht, als sei '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; ein MUSS, denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht!&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.&lt;br /&gt;
&lt;br /&gt;
===Auszuführen===&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* mindestens eine unterstützte Sprache auswählen&lt;br /&gt;
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen&lt;br /&gt;
* '''Varianten aktivieren''' vorerst nicht anhaken&lt;br /&gt;
&lt;br /&gt;
Man sieht nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfasst man die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut &amp;quot;Titel&amp;quot; dargestellt):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Interpret&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Dezimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Langtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Datei&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Cover&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias Neuerstellung erzwingen = aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
* Aliasfelder = Titel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''neu''' klicken&lt;br /&gt;
* '''BE Listenansicht''' eingeben&lt;br /&gt;
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:&lt;br /&gt;
&lt;br /&gt;
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.&lt;br /&gt;
* Die Frage, ob alle Attribute hinzugefügt werden sollen(&amp;quot;''Add all attributes to render setting''&amp;quot;), wird mit '''Weiter''' bestätigt.&lt;br /&gt;
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.&lt;br /&gt;
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|400px]]&lt;br /&gt;
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.&lt;br /&gt;
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.&lt;br /&gt;
**Komma =&amp;gt; Ausgabe in der gleichen Zeile wie der vorhergehende Wert&lt;br /&gt;
**Semikolon =&amp;gt; Ausgabe in neuer Zeile.&lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun wurde eine Eingabemaske namens '''BE Erfassung''' erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.&amp;lt;br&amp;gt;&lt;br /&gt;
Im letzten Kapitel auf dieser Seite ('''Die Daten erfassen''') sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.&lt;br /&gt;
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die MetaModels in einem separaten '''Backend-Bereich''' in der BE-Navigation unterbringen.}}{{Hinweis|Die Option '''Sortierung''' ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des '''Backend-Bereich'''s (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.&lt;br /&gt;
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.&lt;br /&gt;
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.&lt;br /&gt;
* Auf Wunsch kan man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.&lt;br /&gt;
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:&lt;br /&gt;
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.&lt;br /&gt;
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]&lt;br /&gt;
&lt;br /&gt;
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' &amp;gt; 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|thumb|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus:&amp;lt;br&amp;gt;Nun wird in der linken Navigationsübersicht &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden&lt;br /&gt;
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel:_%C3%9Cbersetzter_select</id>
		<title>MetaModels Beispiel: Übersetzter select</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel:_%C3%9Cbersetzter_select"/>
				<updated>2013-07-04T20:24:38Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels|T]]&lt;br /&gt;
=Aufgabenstellung: Übersetzter select einrichten=&lt;br /&gt;
Es soll ein &amp;quot;Übersetzter select&amp;quot;-Attribut eingerichtet werden.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
===Hinweis===&lt;br /&gt;
Es wird von Vorwissen aus den anderen Beispielen ausgegangen!&lt;br /&gt;
&lt;br /&gt;
=Neue MetaModels erstellen=&lt;br /&gt;
[[File:Mm_translatedselect_Ubersicht.png|thumb|400px]]&lt;br /&gt;
Wir legen zwei neue MetaModels an:&lt;br /&gt;
# enthält die übersetzten Einträge für das select Feld (Hier: Mehrsprachige Einträge)&lt;br /&gt;
# zur Anwendung des select Feldes (Hier: Data)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
== MM für die mehrsprachigen Einträge ==&lt;br /&gt;
[[File:Mm_translatedselect_entriestable.png|thumb|400px]]&lt;br /&gt;
Erst legen wir das MetaModel an.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Mm_translatedselect_entriesattribute.png|thumb|400px]]&lt;br /&gt;
In diesem erzeugen wir ein &amp;quot;Übersetzter Text&amp;quot; Attribut.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Mm_translatedselect_entrie1de.png|thumb|200px]]&lt;br /&gt;
[[File:Mm_translatedselect_entrie1en.png|thumb|200px]]&lt;br /&gt;
[[File:Mm_translatedselect_entries.png|thumb|400px]]&lt;br /&gt;
Nach dem Bearbeiten der Eingabemasken und Rendereinstellungen (Wie in den anderen Beispielen) fügen wir die gewünschten Einträge in den gewünschten Sprachen hinzu. &lt;br /&gt;
Hier wurden zwei Einträge in jeweils zwei Sprachen benutzt.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Mm_translatedselect_phpmyadmin.png|thumb|400px]]&lt;br /&gt;
Anschließend gehen wir auf den mysql server und betrachten die Tabelle &amp;quot;tl_metamodel_translatedtext&amp;quot;. Dort suchen wir die gerade erstellten Einträge und merken uns den Wert &amp;quot;att_id&amp;quot;.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
==  MM zur Anwendung des select Feldes ==&lt;br /&gt;
[[File:Mm_translatedselect_datatable.png|thumb|400px]]&lt;br /&gt;
Erst legen wir das MetaModel an.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Mm_translatedselect_dataattribute.png|thumb|400px]]&lt;br /&gt;
[[File:Mm_translatedselect_dataattributes.png|thumb|400px]]&lt;br /&gt;
In diesem erzeugen wir ein &amp;quot;Übersetzter Select&amp;quot; Attribut.&lt;br /&gt;
Wir wählen die Tabelle &amp;quot;tl_metamodel_translatedtext&amp;quot; aus.&lt;br /&gt;
Bei der Bedingung wird &amp;quot;att_id=[Der Wert von oben]&amp;quot; eingetragen.&lt;br /&gt;
Wenn die Sortierung eine Rolle spielt kann die Spalte &amp;quot;sorting&amp;quot; aus der Tabelle aus dem ersten MetaModel benutzt werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:Mm_translatedselect_data1de.png|thumb|400px]]&lt;br /&gt;
Nach dem Bearbeiten der Eingabemasken und Rendereinstellungen (Wie in den anderen Beispielen) fügen wir ein Datenelement hinzu. Bei der Auswahl erscheinen immer die Einträge aus der BE-Sprache (Hier Deutsch). Das ist unabhängig von der Sprache die wir gerade bearbeiten.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
=Frontend Ansicht=&lt;br /&gt;
[[File:Mm_translatedselect_FEoutput.png|thumb|400px]]&lt;br /&gt;
Wenn wir das zweite MM im Frontend ausgeben lassen, erscheinen nun die Dateneinträge mit dem jeweiligen selektierten Wert in der richtigen FE-Sprache.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_4</id>
		<title>MetaModels Beispiel 4</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_4"/>
				<updated>2013-07-04T20:24:16Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels|B]]&lt;br /&gt;
=Aufgabenstellung: Weiteres MetaModel einrichten=&lt;br /&gt;
Wer mit Catalog arbeitet, ist es gewohnt, Selects einzusetzen, um Datensätze zu kategorisieren. In unserem Fall wäre es z.B. sinnvoll, unsere Musikstücke bestimmten Stilrichtungen zuzuordnen. &amp;lt;br&amp;gt;&lt;br /&gt;
Bei Catalog wird hierfür die Erweiterung [https://contao.org/de/extension-list/view/taxonomy.10089.de.html Taxonomy] eingesetzt, um Hierarchien von Taxonomie-Bedingungen (oder besser bekannt als Tags) zu erstellen, die dann über ein Select bei der Datensatz-Erfassung abgerufen werden können. Im Wesentlichen wird über Taxonomy eine separate Tabelle mit den später abzurufenden Kategorien erfasst. &amp;lt;br&amp;gt;&lt;br /&gt;
Mit MetaModels entfällt der Rückgriff auf Taxonomy. Mit MetaModels kann man eigene Tabellen erfassen, die die Einträge der HTML-Selects enthalten.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Neues MetaModel erstellen=&lt;br /&gt;
&lt;br /&gt;
==Leeres MetaModel==&lt;br /&gt;
[[File:mm_neues_metamodel.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Wir beginnen damit, dass wir unter MetaModels ein neues MetaModel anlegen:&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Wir geben dem neuen MetaModel den Namen '''Musicbox - Stilrichtungen''' und den Tabellennamen '''mm_select_style'''&lt;br /&gt;
* Des weiteren aktivieren wir die '''Übersetzung''' setzen als Sprache '''Deutsch''' ein und aktivieren das '''Fallback'''&lt;br /&gt;
* Speichern und schliessen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:mm_neues_metamodel2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Nun steht uns ein neues, leeres MetaModel (mit null Datensätzen) zur Verfügung, das wir mit den Begriffen der benötigten Stilrichtungen füllen können.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Wir erfassen zuerst die benötigen Attribute für die Eingabe.&lt;br /&gt;
[[File:mm_neues_metamodel_attribute.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu geben wir folgende Felder ein:&lt;br /&gt;
* '''Stilrichtung'''&lt;br /&gt;
** Attribute Type= Text&lt;br /&gt;
** Column name= style&lt;br /&gt;
** Name (deutsch)= Stilrichtung&lt;br /&gt;
** Description (deutsch)= Pop, Rock, New Wave, Jazz, etc.&lt;br /&gt;
&lt;br /&gt;
* '''Alias'''&lt;br /&gt;
** Attribute Type= Alias&lt;br /&gt;
** Column name= alias&lt;br /&gt;
** Name (deutsch)= Alias&lt;br /&gt;
** Description (deutsch)= Wird für URL benötigt.&lt;br /&gt;
** Unique values= aktiviert&lt;br /&gt;
** Alias fields= Titel&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM Funktion: Ausgabevorgaben==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Es wird eine neue Ausgabevorgabe benötigt.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ausgabevorgaben.png|thumb|400px]]&lt;br /&gt;
* Auf '''Neu''' klicken&lt;br /&gt;
* Die neue Ausgabevorgabe mit '''BE Listenansicht''' benennen&lt;br /&gt;
* speichern und schließen&lt;br /&gt;
* über die Attributeinstellungen alle Attribute hinzufügen&lt;br /&gt;
* Sichtbarkeit(Auge) herstellen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM Funktion: Eingabemaske==&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
Es wird eine neue Eingabemaske benötigt.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_eingabemaske.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''Neu''' klicken&lt;br /&gt;
* Die neue Eingabemaske mit '''BE Erfassung''' benennen&lt;br /&gt;
* Alle Attribute hinzufügen&lt;br /&gt;
* Speichern und schliessen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM Funktion: Filter==&lt;br /&gt;
[[File:icons_filter.png|left|32px]]&lt;br /&gt;
Es wird kein Filter benötigt.&lt;br /&gt;
&lt;br /&gt;
==MM Funktion: Ansichtseinstellungen==&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
Es werden wie gewohnt die Zugriffsberechtigung zugewiesen, damit über die Backend-Navigation auf die Tabelle zugegriffen werden kann.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|thumb|400px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Neues MetaModel 'MyMusik - Stilrichtungen' steht zum Abfüllen bereit=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_navi.png|left|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_navi2.png|left|600px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BE Liste==&lt;br /&gt;
[[File:mm_neues_metamodel_BE_liste.png|thumb|400px]]&lt;br /&gt;
* Über '''Neuer Datensatz''' wird die Liste befüllt&lt;br /&gt;
* Für unserem Fall werden nun die späteren Kategorien erfasst: Pop/Rock, Italo-Rock, New Wave, Fat Beat, Cantautore, Soul/Blues und Jazz&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BE Formular==&lt;br /&gt;
[[File:mm_neues_metamodel_BE_formular.png|thumb|400px]]&lt;br /&gt;
* Das BE Formular sieht ziemlich simpel aus&lt;br /&gt;
* Ein separates Feld &amp;quot;ID&amp;quot; braucht nicht erfasst zu werden, denn dieses wird im Hintergrund automatisch generiert&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Auswahlfeld bei 'Musicbox' hinzufügen=&lt;br /&gt;
Wir klicken unser altes MetaModel '''Musicbox''' an und wählen dort die MM-Funktion '''Attribute''' an.&lt;br /&gt;
==Neues Attribut 'Stilrichtung'==&lt;br /&gt;
[[File:mm_attribut_erfassen_style.png|thumb|400px]]&lt;br /&gt;
* Das neue Attribut ist vom Typ '''Auswahl'''&lt;br /&gt;
* Column name: style&lt;br /&gt;
* Name: Stilrichtung&lt;br /&gt;
* Description:... wie es euch gefällt&lt;br /&gt;
&lt;br /&gt;
Nun kommt der eigentlich wichtige Teil: Man stellt eine Verbindung zum neu geschaffenen MetaModel her&lt;br /&gt;
&lt;br /&gt;
* '''Source Table''': Hier erscheinen alle in der Contao-Installation verfügbaren Tabellen. Ausgewählt wird die neue Tabelle '''mm_select_style'''&lt;br /&gt;
* '''Value column''': Den Namen der Spalte '''style''' auswählen&lt;br /&gt;
* '''Id column''': '''id''' auswählen. Standardmässig führt jede Contao-Tabelle eine ID mit&lt;br /&gt;
* '''Alias column''': '''alias''' auswählen&lt;br /&gt;
* ''' Auswahl-Sortierung''':  Sortierkriterium auswählen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_atribut_musicbox.png|thumb|400px]]&lt;br /&gt;
Ab sofort steht nun in der BE Erfassung von '''MyMusic''' ein neues Feld '''Stilrichtung''' mit einem Select zur Verfügung. Das Select enthält nun alle Werte, die unter '''MyMusic - Stilrichtungen''' erfasst wurden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Zusätzlichen Select-Filter im Frontend definieren=&lt;br /&gt;
&lt;br /&gt;
==Filter bei MyMusic anpassen==&lt;br /&gt;
[[File:mm_neues_attribut_filter.png|thumb|400px]]&lt;br /&gt;
* Der bereits exisitierende Name des Filters '''FE Filter Published''' wird kurz zu &amp;quot;FE Filter Published/Selects&amp;quot; angepasst&lt;br /&gt;
* Der Filter '''FE Filter Published''' wird um weitere Einstellungen ergänzt, nämlich...&lt;br /&gt;
** eine Einfache Auswahl für das Attribut (Stilrichtung)&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_attribut_filter2.png|thumb|400px]]&lt;br /&gt;
* Nebenan die Anpassung der Einstellung '''Einfache Auswahl''' für das Attribut '''Stilrichtung'''&lt;br /&gt;
* Standardmässig wird im Hintergrund einfach der '''URL-Parameter''' des Feldes (im obigen Beispiel 'country' und 'style') mitgegeben. Dieser lässt sich hier umdefinieren.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Modul aktualisieren==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_attribut_FE-Modul.png|thumb|400px]]&lt;br /&gt;
Das bereits existierende FE-Modul '''MM - MyMusik Filter''' muss noch angepasst werden:&lt;br /&gt;
* Anzuwendende Filtereinstellungen: Hier hat sich der Name des Filters bereits selbst aktualisiert&lt;br /&gt;
* Filterparameter: den neu hinzugekommene Parameter '''Stilrichtung''' anklicken&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Frontend Ansicht=&lt;br /&gt;
Im Frontend wird ein weiteres Select angezeigt, aus dem zusätzlich auch die '''Stilrichtungen''' angewählt werden können. &lt;br /&gt;
Die darunter liegende Liste wird entsprechend den oben ausgewählten Kriterien eingegrenzt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:mm_frontend_beispiel_2_selects.jpg|link=|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_3|Zurück zum Beispiel 3]] |&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_3</id>
		<title>MetaModels Beispiel 3</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_3"/>
				<updated>2013-07-04T20:23:17Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels|B]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Weitere Filter einrichten=&lt;br /&gt;
Wir bauen einen Mechanismus ein, mit dem wir entscheiden können, welcher der im MetaModel '''Musikbox''' erfassten Datensätze im Frontend erscheinen soll und welcher nicht. Mit dem speziellen Attribut &amp;quot;Published State&amp;quot; lässt sich so was einrichten und über einen Filter im Frontend steuern.&lt;br /&gt;
Darüber hinaus möchten wir die Listenansicht im Frontend etwas interaktiver gestalten, indem wir einen Filter als HTML-Select im Frontend zur Verfügung stellen, der die Liste z.B. nach Länder ausfiltert.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Published Filter im Backend einbauen=&lt;br /&gt;
&lt;br /&gt;
==Start==&lt;br /&gt;
[[File:mm_backend_anpassen0.png|thumb|400px]]&lt;br /&gt;
Die Übersichtsliste in unserer Musiksammlung '''MyMusic''' entspricht bisher in etwa dem nebenstehenden Screenshot.&lt;br /&gt;
&lt;br /&gt;
Hier möchten wir das Icon &amp;quot;Auge&amp;quot; (=&amp;gt; Eintrag veröffentlichen) einfügen, dass wir von anderen Contao-Backend Funktionen kennen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute anpassen==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir das neue Attribut (s. auch [[MetaModels_Backend:_Attribute|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen1.png|thumb|400px]]&lt;br /&gt;
* Wähle '''Neues Attribut'''&lt;br /&gt;
* Wähle als ''Attribut-Typ'' '''Checkbox''' aus gib als Spaltenname z.B. '''published''' ein&lt;br /&gt;
* Wichtig: '''Veröffentlichen''' muss angeklickt sein&lt;br /&gt;
* In der Attributsübersicht erscheint jetzt das neu angelegte Feld '''Veröffentlicht'''&lt;br /&gt;
&lt;br /&gt;
Nun kann man in den entsprechenden anderen MM-Backend-Funktionen, die weiteren Anpassung vornehmen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben anpassen==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Wir passen die Listendarstellung für das Backend an (s. [[MetaModels_Backend:_Ausgabevorgaben|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen2.png|thumb|400px]]&lt;br /&gt;
* Wir wählen die Attributseinstellungen von '''BE Listenansicht'''&lt;br /&gt;
* Wähle '''Alle hinzufügen''' aus&lt;br /&gt;
* Es gibt einen automatischen Check welche Attribute bereits in die Rendersettings geladen wurden und welche nicht. Das neue Attribut &amp;quot;Veröffendlicht&amp;quot; wird hinzugefügt&lt;br /&gt;
* Es wird am Ende der Attributsliste hinzugefügt&lt;br /&gt;
&lt;br /&gt;
Damit sind die eigentlichen Anpassungen für das Backend schon abgeschlossen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Paletteneinstellung anpassen==&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
Wir passen die Paletteneinstellung für das Backend an (s. [[MetaModels_Backend:_Paletteneinstellungen|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
Damit das gerade hinzugefügte Attribut auch im Backend wirksam wird, muss noch die Paletteneinstellung angepasst werden.&lt;br /&gt;
* Wir wählen für die Palette '''BE Erfassung''' das Icon ''Die Einstellungen der Palette ID xx bearbeiten''&lt;br /&gt;
* Dann ''Alle hinzufügen'' und zweimal bestätigen&lt;br /&gt;
&lt;br /&gt;
==Backendliste &amp;quot;MyMusik&amp;quot; nochmals prüfen==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen3.png|thumb|400px]]&lt;br /&gt;
Wenn wir jetzt unsere Übersichtsliste in unserer Musiksammlung &amp;quot;MyMusic&amp;quot; nochmals ansehen, entdecken wir das Icon &amp;quot;Auge&amp;quot;.&lt;br /&gt;
&amp;lt;br&amp;gt;Nun können wir im Backend steuern, ob ein Musikstück im Frontend angezeigt werden soll oder nicht.&lt;br /&gt;
&lt;br /&gt;
Damit das geschieht, müssen wir noch einen Filter erstellen, der den jeweiligen Frontend-Ansichten sagt, dass nur markierte Musikstücke veröffentlicht werden sollen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Published Filter im Frontend einbauen=&lt;br /&gt;
Schaut man sich jetzt wiederholt die Frontend-Liste der Musicbox an während man im BE mit dem ''veröffentlicht-Auge'' herumspielt, so stellt man keine Veränderung fest.&amp;lt;br&amp;gt;Wir müssen daher in diversen MM-Backend-Funktionen Veränderungen vornehmen&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: [[MetaModels_Backend:_Filter|Filter definieren]]==&lt;br /&gt;
Wir erstellen einen neuen Filter: &amp;quot;FE Filter published&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen1.png|thumb|400px]]&lt;br /&gt;
* Wir wählen &amp;quot;neu&amp;quot;, bestätigen mit weiter&lt;br /&gt;
* Wir wählen den Typ &amp;quot;Published state&amp;quot;, wählen hierzu das vorhin erfasste Attribut &amp;quot; Veröffentlicht [checkbox]&amp;quot; und aktivieren diesen neuen Filter &amp;quot;FE Filter published&lt;br /&gt;
* ... und kehren zurück zur Filter-Übersichtsliste&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Modul anpassen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen2.png|thumb|400px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir wählen hier das Modul, das für unsere Frontend-Ansicht zuständig ist. In unserem Fall das FE-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dort nehmen wir an folgende Änderungen vor:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; wählen wir den neu erstellen Filter &amp;quot;FE Filter Published&amp;quot; an&lt;br /&gt;
&lt;br /&gt;
Ab sofort werden im Frontend nur noch die Datensätze angezeigt, die wir in unserer Backend-Liste &amp;quot;MyMusik&amp;quot; mit dem Icon &amp;quot;Auge&amp;quot; markiert haben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Select Filter im Frontend einbauen=&lt;br /&gt;
Hier müssen wir in diversen MM-Backend-Funktionen diverse Veränderungen vornehmen&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Filter definieren==&lt;br /&gt;
Wir nehmen den neuen Filter, ergänzen diesen und geben ihm einen neuen Namen &amp;quot;FE Filter published/Country&amp;quot;. Dieser angepasste Filter muss zwei Bedingungen erfüllen:&lt;br /&gt;
* Er soll wie bisher nur die publizierten Musikstücke anzeigen&lt;br /&gt;
* Er soll nur die Länder anzeigen, die wir über ein Select anwählen, das über der FE Liste angezeigt wird&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen3.png|thumb|400px]]&lt;br /&gt;
* Wir wählen die Filtereinstellungen des &amp;quot;Filters FE Filter published&amp;quot;&lt;br /&gt;
* Wir wählen &amp;quot;neu&amp;quot; und setzen die neue Einstellung unterhalb der Einstellung &amp;quot;Published State&amp;quot; ein&lt;br /&gt;
* Wir nehmen den Typ &amp;quot;Einfache Auswahl&amp;quot;, weisen das Attribut &amp;quot;Land [text]&amp;quot; zu und aktivieren diesen&lt;br /&gt;
* Optional wählen wir noch die Option &amp;quot;Leerer Wert&amp;quot; an. Dies bewirkt, dass im späteren Select überhalb unserer Länderauswahl ein leerer Eintrag generiert wird&lt;br /&gt;
* Wir &amp;quot;Speichern und schliessen&amp;quot; den Dialog&lt;br /&gt;
&lt;br /&gt;
Nun erscheint uns neu der Filter &amp;quot;FE Filter published&amp;quot; als eine Kombination von 2 Filtereinstellungen. Man kann sich nun leicht vorstellen, wie komplex man sich diesen Filter bauen kann, wenn man will.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Neues Frontend-Modul erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen4.png|thumb|400px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir erstellen hier ein neues Frontend-Modul&lt;br /&gt;
* Wir wählen hierzu den Modultyp &amp;quot;MetaModels Filter&amp;quot; und geben ihm den Namen &amp;quot;MM - MyMusik Filter&amp;quot;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bestehendes Frontend-Modul anpassen==&lt;br /&gt;
[[File:mm_backend_filter_anpassen5.png|thumb|400px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir nehmen das &amp;amp;nbsp;Frontend-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
* Wir sortieren nach &amp;quot;Land&amp;quot; und &amp;quot;Aufsteigend&amp;quot;&lt;br /&gt;
* Neu ist nun, dass wir hier unter &amp;quot;anzuwendende Filtereinstellungen&amp;quot; den überarbeiteten Filter &amp;quot;FE Filter published&amp;quot; nehmen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bestehenden Artikel anpassen==&lt;br /&gt;
[[File:mm_backend_filter_anpassen6.png|thumb|400px]]&lt;br /&gt;
* Wir gehen nun zu unserem Artikel, wo wir einst unser Frontend-Modul &amp;quot;MM - MyMusic Liste&amp;quot; verbaut haben&lt;br /&gt;
* Darüber erstellen wir neu ein weiteres Inhaltselement, ein weiteres Frontend-Modul. Diesmal das neu erstellte FE-Modul &amp;quot;MM - MyMusic Filter&amp;quot;&lt;br /&gt;
* to be continued&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Frontend Ansicht=&lt;br /&gt;
Die FE-Liste erscheint nun neu mit einem HTML-Select. Über die Auswahl lässt sich nun die darunterliegende Liste länderspezifisch verkürzen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_frontend_beispiel_filter.png|link=|900px]]&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_2|Zurück zur Beispiel 2]] | [[MetaModels_Beispiel_4|Weiter Beispiel 4: Weiter MetaModels hinzufügen]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_2</id>
		<title>MetaModels Beispiel 2</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_2"/>
				<updated>2013-07-04T20:22:06Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels|B]]&lt;br /&gt;
=Aufgabenstellung: Frontend einrichten=&lt;br /&gt;
Wir haben im Backend bereits ein paar Daten (Musikstücke) erfasst und möchten diese nun im Frontend anzeigen lassen. Hierfür benötigen wir eine Übersichtseite (Liste) und eine Detailsansicht. Plus noch eine minimale Navigation, um zwischen Liste und Detailansicht hin- und herklicken zu können.&lt;br /&gt;
Hierbei werden wir auch die Filtertechnik von MetaModels einsetzen.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Seiterstruktur anpassen=&lt;br /&gt;
== In der Seitenstruktur zwei leere Seiten einrichten==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_seitenstruktur_einrichten.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst richten wir in der Seitenstruktur zwei neue (leere) Seiten ein.&lt;br /&gt;
&lt;br /&gt;
* '''Musicbox''' (diese Seite wird die Listenansicht aufnehmen)&lt;br /&gt;
* '''Music''' (diese Seite wird für die Darstellung der Detailansicht verantwortlich sein)&lt;br /&gt;
&lt;br /&gt;
Sowohl MetaModels als auch die später benötigten Frontend-Module werden auf diese Seiten zugreifen müssen, deswegen richten wir diese vorab ein, auch wenn noch kein Inhalt definiert ist.&lt;br /&gt;
&lt;br /&gt;
==Einfachen Filter erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_filter.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Wir steigen nun wieder bei MetaModels bei '''Musicbox''' ein und gehen zur [[MetaModels_Backend:_Filter|MM-Backend Funktion: Filter]]&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_einrichten.png|thumb|400px]]&lt;br /&gt;
Hier müssen wir thematisch etwas vorausgreifen, und ein Instrument bereitstellen, das bei der Einrichtung der Frontend-Ansichten in MetaModels benötigt wird: '''Wir brauchen einen Filter'''.&lt;br /&gt;
Bei MetaModels haben Filter eine breitere Bedeutung als dies umgangssprachlich der Fall ist. Filter steuern jede Art von Ansichtsdarstellung, sowohl im Backend als auch im Frontend.&amp;amp;nbsp;Aus der Sicht von MetaModels gibt es nicht eine Listen- und eine separate Archivansicht, wie man das z.B. von News oder Catalog her kennt. Für MetaModels ist jede Ansicht eine Listenansicht. Es ist der Filter, der bestimmt ob n Datensätze (aka Liste) oder nur 1 Datensatz (aka Detailansicht) angezeigt wird. Mit anderen Worten: Der Filter und nicht das Frontend-Modul macht den Unterschied.&lt;br /&gt;
&lt;br /&gt;
* Die Filterübersicht ist noch leer (Keine Einträge gefunden)&lt;br /&gt;
* Auf '''Neu''' klicken&lt;br /&gt;
* Den Namen eingeben, z.B. &amp;quot;FE Link Detail&amp;quot; (FE steht für Frontend) und speichern&lt;br /&gt;
* Die Filterübersicht zeigt nun diesen Eintrag. Wähle das rechte Icon ''Filterattribute für Filtereinstellung definieren''.&lt;br /&gt;
* Auf '''Neu''' klicken und das Icon (mit Pfeil) für '''einsetzen''' wählen&lt;br /&gt;
* Nun kann man den Typ '''Einfache Abfrage''' auswählen&lt;br /&gt;
* Das '''Attribut''' Alias auswählen und den URL-Parameter '''auto_item''' eingeben&lt;br /&gt;
* Alle weiteren Optionen bleiben leer oder nicht angeklickt. Als '''Template''' den Standard '''mm_filteritem_default''' auswählen&lt;br /&gt;
* Speichern und Schliessen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===URL-Parameter auto_item===&lt;br /&gt;
[[File:mm_backend_filter_einrichten2.png|thumb|400px]]&lt;br /&gt;
Der URL-Parameter '''auto_item''' ist in Kombination mit dem Attribut '''Alias''' dann interessant, wenn man in der URL das '/alias' raushaben möchte.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
aus...&lt;br /&gt;
meineDomain.com/album/alias/born-to-die.html&lt;br /&gt;
wird...&lt;br /&gt;
meineDomain.com/album/born-to-die.html&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis'''&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn der URL-Parameter '''auto_item''' verwendet werden soll, dann muss in den System-Einstellungen im BE im Abschnitt ''Frontend-Einstellungen'' die Option '''Den auto_item-Parameter verwenden''' angehakt sein, sonst erfolgt keine Ausgabe des Details ( =&amp;gt;There are no items matching your search.)&lt;br /&gt;
&lt;br /&gt;
'''Fazit'''&amp;lt;br&amp;gt;&lt;br /&gt;
Der Filter &amp;quot;FE Link Detail&amp;quot; besteht nun aus einer einzigen Definition. Wir werden in einem späteren Beispiel sehen, dass ein Filter auch aus mehreren Definitionen bestehen kann. Das ist eine weitere Neuerung in MetaModels, nämlich, dass man sich im Wesentlichen seine eigenen Filter zusammenbauen kann.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Listenansicht erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Wähle die MM-Backend-Funktion [[MetaModels_Backend:_Ausgabevorgaben|&amp;quot;Ausgabevorgaben&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten.png|thumb|400px]]&lt;br /&gt;
* Die Übersichtsseite zeigt dir bereits einen Eintrag &amp;quot;BE Listenansicht&amp;quot; an. Auf '''Neu''' klicken.&lt;br /&gt;
* Den Namen '''FE Listenansicht''' eingeben&lt;br /&gt;
* Als Template '''metamodel_prerendered (global scope)&amp;quot; wählen&lt;br /&gt;
* Als '''Zielseite''' die vorhin definierte Seite &amp;quot;Music&amp;quot; angeben. Klicke hierzu auf das Icon &amp;quot;Globus&amp;quot; und wähle die Seite aus dem Pulldown-Menu aus.{ {link_url::xx} } wird dann automatisch eingesetzt.&lt;br /&gt;
* Unter '''Filtereinstellungen''' wählen wir den vorhin definierten Filter &amp;quot;FE Link Detail&amp;quot;.&amp;lt;br&amp;gt;(''sollte der Filter zunächst nicht angezeigt werden, dann hilft =&amp;gt;speichern weiter'')&lt;br /&gt;
* Speichern und schliessen&lt;br /&gt;
* Nun erscheinen zwei Einträge in der Liste der Ausgabevorgaben&lt;br /&gt;
&lt;br /&gt;
Mit diesen Einstellungen legt man grob fest, welches Aussehen (Template) die Seite haben soll, wohin die Reise gehen wird (Zielseite) und was bei dieser Zielseite angezeigt werden soll (was durch den Filter bestimmt wird).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis'''&amp;lt;br&amp;gt;&lt;br /&gt;
Wenn man hier kein Filter angibt, wird später im Frontend kein '''Details'''-Link erscheinen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Tipp'''&amp;lt;br&amp;gt;&lt;br /&gt;
Weitere Infos zum Details-Link siehe [[MetaModels_Beispiel_2#Detail-Link_anpassen|unten]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute zur Listenansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Listenansicht_einrichten2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Klick auf das Icon rechts '''Attribute hinzufügen'''&lt;br /&gt;
* Wähle '''Alle hinzufügen''' (geht schneller und einfacher als alle über &amp;quot;Neu&amp;quot; hinzufügen)&lt;br /&gt;
* Bestätige die folgenden Screens&lt;br /&gt;
* Lege fest, welche Attribute in der Listenansicht angezeigt werden sollen (Icon &amp;quot;Auge&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Man kann auch die Einstellung der Attribute anschauen, wie im letzten Screen angezeigt. Standardmäßig wird jedem Attribut zusätzlich ein Template mitgegeben. In unserem Beispiel analog dem Typ das Template &amp;quot;mm_attr_text (global scope)&amp;quot;.&lt;br /&gt;
Man erkennt hier schon im Ansatz, dass in MetaModels praktisch jedes Detail über ein Template gesteuert wird. Was für eine mögliche Individualisierung letztlich heißt, dass man in der freien Gestaltung potentiell unendliche viele Möglichkeiten zur Verfügung gestellt bekommt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Detailansicht erstellen==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Wähle die MM-Backend-Funktion [[MetaModels_Backend:_Ausgabevorgaben|&amp;quot;Ausgabevorgaben&amp;quot;]] (aka Rendereinstellungen).&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten.png|thumb|400px]]&lt;br /&gt;
* Die Übersichtsseite zeigt dir die Einträge &amp;quot;BE Listenansicht&amp;quot; und &amp;quot;FE Listenansicht&amp;quot; an.&lt;br /&gt;
* Wir klicken auf &amp;quot;neu&amp;quot;&lt;br /&gt;
* Gib den Namen &amp;quot;FE Detailansicht&amp;quot; an&lt;br /&gt;
* Als Template wähen wir &amp;quot;metamodel_prerendered (global scope) an.&lt;br /&gt;
* In diesem Fall brauchen wir weder eine Zielseite noch ein Filtersettting anzugeben, denn bis hierher und nicht weiter wollen wir gelangen&lt;br /&gt;
* Optional kann auch eine Weiterleitungsseite definiert und ein Filter angegeben werden, wenn man einen Link &amp;quot;Zurück&amp;quot; generieren will&lt;br /&gt;
* Speichern und schliessen&lt;br /&gt;
&lt;br /&gt;
'''Tipp'''&amp;lt;br&amp;gt;&lt;br /&gt;
Weitere Infos wie man einen Zurück-Link erstellt, siehe [[MetaModels_Beispiel_2#Detail-Link_anpassen|unten]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten_liste.png|thumb|400px]]&lt;br /&gt;
Es erscheinen nun drei Einträge in der Liste der Ausgabevorgaben.&lt;br /&gt;
* BE Listenansicht&lt;br /&gt;
* FE Detailansicht&lt;br /&gt;
* FE Listenansicht&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Attribute zur Detailansicht hinzufügen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE_Detailansicht_einrichten2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Das Vorgehen ist analog zum Punkt 4 zu verstehen. Einzig, dass wir hier am Ende alle Attribute anzeigen lassen (inkl. Bild und Beschreibung).&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Module erstellen==&lt;br /&gt;
{{Hinweis|Einige Einstellmöglichkeiten in den nachstehend beschriebenen Modulen sind erst nach einer Zwischenspeicherung des Moduls erreichbar.}}&lt;br /&gt;
[[File:mm_backend_FE-Module_Liste.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Frontend-Modul für Listenansicht einrichten:&lt;br /&gt;
&lt;br /&gt;
* Wähle den ''Modultyp'' &amp;quot;MetaModels-Liste&amp;quot; aus&lt;br /&gt;
* Wähle das entsprechend ''MetaModel'' aus, in unserem Fall &amp;quot;Musicbox&amp;quot;&lt;br /&gt;
* Bei ''Sortieren nach'' und ''Sortierreihenfolge'' das gewünschte Attribut festlegen bzw. ob auf- oder absteigend sortiert werden soll&lt;br /&gt;
* ''Anzuwendende Filtereinstellungen'' bleibt vorläuftig leer. Das heißt soviel wie, dass wir in unserer Liste alle Datensätze (Musikstücke), die wir in unserer Musicbox erfasst haben, in der Liste anzeigen möchten&lt;br /&gt;
* Bei ''Eigenes Template für Datensatzliste auswählen'' den vorgegebenen Default &amp;quot;mod_metamodel_list&amp;quot; nehmen&lt;br /&gt;
* Bei ''Anzuwendende Rendereinstellung'' nehmen wir nun die zuvor definierte Ausgabevoreinstellung &amp;quot;FE Listenansicht&amp;quot;. Damit werden nur die Daten der Felder ausgegeben, die wir unter Punkt 9 als sichtbar gekennzeichnet haben, und zwar in der dort definierten Reihenfolge&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_FE-Module_Detail.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Dieses FE-Modul richten wir analog dem FE-Modul der Listenansicht ein, allerdings mit zwei wichtigen Unterschieden:&lt;br /&gt;
&lt;br /&gt;
* Bei ''Anzuwendende Filtereinstellungen'' muss nun der Filter &amp;quot;FE Link Detail&amp;quot; angewählt werden. Dieser bewirkt, dass man hier, in der Detailansicht, auch nur den Datenansatz angezeigt bekommt, den man in der Listenansicht angeklickt hatte.&lt;br /&gt;
* Bei ''Anzuwendende Rendereinstellungen'' wählen wir die in den Ansichtsdarstellungen definierte Einstellung &amp;quot;FE Detailansicht&amp;quot;. Hier werden alle Daten angezeigt, die wir unter Punkt ... als sichtbar angegeben haben. In diesem Falle alle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Module einbinden und Seitenvorschau==&lt;br /&gt;
[[File:mm_backend_FE-Module_einsetzen.png|thumb|400px]]&lt;br /&gt;
Zum Schluss bindet man die beiden Frontend-Module in den gewünschten Artikel ein.&lt;br /&gt;
Done.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
== Detail-Link anpassen==&lt;br /&gt;
Wenn der Rendereinstellung für die FE-Ansicht der passende Filter mitgegeben wurde, wird am Ende des Items standardmässig ein Link namens '''Details''' generiert. &lt;br /&gt;
Im Standard-Template '''metamodel_prerendered.html5''' sieht der PHP-Code, wo der Link vorkommt, so aus:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php if ($arrItem['jumpTo']['deep']): ?&amp;gt;&lt;br /&gt;
&amp;lt;a href=&amp;quot;&amp;lt;?php echo $arrItem['jumpTo']['url']; ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;?php echo $this-&amp;gt;details; ?&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Die Bezeichnung des Links lässt sich umbenennen, ohne in das Template eingreifen zu müssen.&amp;lt;br&amp;gt;&lt;br /&gt;
Hierzu kann man bei '/system/config/'''langconfig.php'''' folgende Anpassungen machen. 3 Beipiele...&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS['TL_LANG']['MSC']['details'] = '...mehr Details';&lt;br /&gt;
$GLOBALS['TL_LANG']['MSC']['mm_meineTabelle']['details'] = 'weiter...';&lt;br /&gt;
$GLOBALS['TL_LANG']['MSC']['mm_meineTabelle'][id]['details'] = 'Zurück zur Liste';&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
'''1. Fal'''l: Jeder Link in MetaModels wird zu '... mehr Details' umbenannt&amp;lt;br&amp;gt;&lt;br /&gt;
'''2. Fall''': Nur die Links in der MetaModel-Tabelle 'mm_meineTabelle' werden zu 'weiter...' umbeannt&amp;lt;br&amp;gt;&lt;br /&gt;
'''3. Fall''': Interessant, wenn man von der FE Detailansicht zurück zur FE Listenansicht gelangen will. In diesem Fall kann man nicht nur die MM Tabelle angeben, sondern auch die '''id''' der [[MetaModels_Backend:_Ausgabevorgaben#Einstieg|Rendereinstellung]] angeben. &lt;br /&gt;
&lt;br /&gt;
Beispiel für langconfig.php:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php &lt;br /&gt;
/* Put your custom configuration here */ &lt;br /&gt;
$GLOBALS['TL_LANG']['MSC']['mm_musicbox']['details'] = 'weiter...';&lt;br /&gt;
$GLOBALS['TL_LANG']['MSC']['mm_musicbox'][4]['details'] = 'Zurück zur Liste';&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Mögliches Endresultat=&lt;br /&gt;
&lt;br /&gt;
==Frontend Ansicht==&lt;br /&gt;
Und so könnte es aussehen&lt;br /&gt;
* links: Die Daten werden standardmässig in kompakter Form ausgegeben&lt;br /&gt;
* rechts: mit etwas CSS lassen sich die Daten sowohl in der Listen- wie Detailsicht gut formatieren&lt;br /&gt;
* die Labels lassen sich auch ausschalten. Siehe [[MetaModels_Backend:_Eingabemaske#Backend_Liste_gestalten|hier]]&lt;br /&gt;
[[File:mm_frontend_beispiel.png|link=|900px]]&lt;br /&gt;
&lt;br /&gt;
==HTML-Konstrukt==&lt;br /&gt;
Die Daten werden über das Template &amp;quot;metamodel_prerendered.html5&amp;quot; ausgegeben. Jeder Datensatz wird als '''item''' ausgegeben, dieser besteht aus den Attributen, die in den Rendereinstellungen definiert wurden. Bei jedem Attribut wird standardmässig '''label''' und '''value''' ausgegeben.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field attribut1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;label&amp;quot;&amp;gt;Titel des attributs1&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;Wert des attribut1&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field attribut2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;label&amp;quot;&amp;gt;Titel des attribut2&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;span class=&amp;quot;value&amp;quot;&amp;gt;Wert des attribut2&amp;lt;/span&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div class=&amp;quot;field attribut3&amp;quot;&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;item&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_1|Zurück zur Beispiel 1]] | [[MetaModels_Beispiel_3|Weiter zum Beispiel 3: Weitere Filter hinzufügen]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels</id>
		<title>MetaModels</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels"/>
				<updated>2013-07-04T20:21:08Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels|B]]&lt;br /&gt;
{{ExtInfo&lt;br /&gt;
| Dev=Metamodels Team&lt;br /&gt;
| DevSite=&lt;br /&gt;
| Version=ab 2.11.X&lt;br /&gt;
| ERLink=&lt;br /&gt;
| VCSLink=https://github.com/MetaModels/core&lt;br /&gt;
| TrackerLink=https://github.com/MetaModels/core/issues&lt;br /&gt;
| Depending=[[DC_General]] [[Justtextwidgets]] [[MultiColumnWizard]] [[MetaPalettes]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=Vorwort: Wiki-Dokumentation der Erweiterung MetaModels (Nachfolger des Catalog)=&lt;br /&gt;
Die Erweiterung MetaModels ist der Nachfolger der Catalog-Extension. Der Code wurde komplett neu entwickelt. Eine Kompatibilität zum Catalog besteht nicht.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red; font-size:18px; font-weight:bold&amp;quot;&amp;gt;MetaModels läuft mit Contao 2.11.x und setzt PHP 5.3 voraus. &amp;lt;/span&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:black; font-size:18px; font-weight:bold&amp;quot;&amp;gt;MetaModels ist (noch) nicht mit Contao 3.x kompatibel. Wer die Entwicklung voran treiben möchte, kann es [http://now.metamodel.me/en/fundraising hier] per Fundraising tun. &amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Download=&lt;br /&gt;
&lt;br /&gt;
==Download von der Demosite==&lt;br /&gt;
[[Datei:logo-metamodels.png|link=|left|105px]]&lt;br /&gt;
Unter der URL [http://now.metamodel.me now.metamodel.me] findet sich die Webseite zur Extension mit einer Frontentdemo und der Möglichkeit, Installationsarchive in den Formaten '''tgz''', '''tbz''' und '''zip''' mit so genannten Nightly Builds zu laden. Diese Archive beinhalten die MetaModels-Dateien, Attribute, Filter sowie sämtliche anderen Erweiterungen, die für den Betrieb nötig sind und ansonsten separat heruntergeladen und installiert werden müssen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Download aus dem Entwicklungsrepository GitHub==&lt;br /&gt;
&lt;br /&gt;
[[Datei:logo-github.png|link=|left|105px]]&lt;br /&gt;
Zu finden ist die Erweiterung MetaModels auf GitHub:&lt;br /&gt;
[https://github.com/MetaModels github.com/Metamodels]&amp;lt;br&amp;gt;&lt;br /&gt;
Aktuell können das Core, dazu abhängige weitere Erweiterungen und alle weiteren MetaModels Attribute/Filter manuell installiert werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Core===&lt;br /&gt;
* [https://github.com/MetaModels/core MetaModels (Das Core-Modul)]&lt;br /&gt;
* [https://github.com/MetaModels/boilerplate Boilerplate (Erzeugt einen separaten Bereich in der Backend-Navigation)]&lt;br /&gt;
&lt;br /&gt;
===Abhängigkeiten===&lt;br /&gt;
Benötigt werden folgende Erweiterungen:&lt;br /&gt;
* [https://github.com/MetaModels DC_General]&lt;br /&gt;
* [https://contao.org/de/extension-list/view/MetaPalettes.html MetaPalettes]&lt;br /&gt;
* [http://www.contao.org/erweiterungsliste/view/MultiColumnWizard.html MultiColumnWizard]&lt;br /&gt;
* [https://github.com/Discordier/justtextwidgets justtextwidgets]&lt;br /&gt;
* [https://contao.org/de/extension-list/view/geoprotection.de.html geoprotection] (wird nur für das Attribut '''Geoprotection''' benötigt)&lt;br /&gt;
&lt;br /&gt;
===Verfügbare Attribute und Filter===&lt;br /&gt;
Sobald der Core und benötigten sonstigen Erweiterungen installiert sind, werde die weiteren Attributs- und Filterextensions des MetaModels benötigt.&lt;br /&gt;
Dazu gehören:&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Attribute''' !! '''Attribute (translated)''' !! '''Filter'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/MetaModels/attribute_alias Attribut: Alias]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_checkbox Attribut: Checkbox (Kontrollkästchen)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_combinedvalues Attribut: Combined Values (Kombinierte Einträge)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_color Attribut: Color (Farbe)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_country Attribut: Country (Land)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_decimal Attribut: Decimal (Dezimal)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_file Attribut: File (Datei)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_geoprotection Attribut: Geoprotection (Länderzuordnung)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_langcode Attribut: Langcode (Sprachschlüssel)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_longtext Attribut: Longtext (Langtext, Textarea)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_select Attribut: Select (Auswahl)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_numeric Attribut: Numeric (Numerisch)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_rating Attribut: Rating (Bewertung)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_tags Attribut: Tags  (Mehrfachauswahl)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_text Attribut: Text]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_timestamp Attribut: Timestamp (Datum)]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_url Attribut: URL]&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedalias Attribut: Translated Alias]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedfile Attribut: Translated File]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedlongtext Attribut: Translated Longtext]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedselect Attribut: Translated Select]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedtags Attribut: Translated Tags]&lt;br /&gt;
* [https://github.com/MetaModels/attribute_translatedtext Attribut: Translated Text]&lt;br /&gt;
|&lt;br /&gt;
* [https://github.com/MetaModels/filter_checkbox Filter: Checkbox]&lt;br /&gt;
* [https://github.com/MetaModels/filter_fromto Filter: FromTo]&lt;br /&gt;
* [https://github.com/MetaModels/filter_range Filter: Range]&lt;br /&gt;
* [https://github.com/MetaModels/filter_select Filter: Select]&lt;br /&gt;
* [https://github.com/MetaModels/filter_tags Filter: Tags]&lt;br /&gt;
* [https://github.com/MetaModels/filter_text Filter: Text]&lt;br /&gt;
|}&lt;br /&gt;
Attribut- und Filterextensions werden für den Betrieb von MetaModels benötigt. Welche dieser Erweiterungen in einem Projekt zu Einsatz kommen sollen ist abhängig von den benötigten Funktionen.&lt;br /&gt;
{{Hinweis|Das Attribut '''Geoprotection''' ist nicht mehr Teil der Nightly Builds. Kann aber jederzeit über den oben angegeben Link separat geladen werden.}}{{Hinweis|Das Attribut '''Rating''' benötigt die beiden PHP-Dateien '''SimpleAjax.php''' und '''SimpleAjaxFrontend.php''', welche mit dem aktuellen Nightly Build ausgeliefert werden. Die beiden PHP-Dateien müssen im Root-Verzeichnis der Contao-Installation abgelegt werden.}}&lt;br /&gt;
&lt;br /&gt;
==Download via git und Kommandozeile==&lt;br /&gt;
In einer bash (Linux Kommandozeile bzw. cygwin Kommandozeile) kann man sich auch alle Unterprojekte der MetaModels via git clonen. Man sollte jedoch vorher in den Ordner wechseln, wohin die Projekte heruntergeladen werden sollen.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Linux'''  !! '''MacOS'''&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
In Benutzerverzeichnis wechseln und für den Pull ein Verzeichniss anlegen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
In Benutzerverzeichnis wechseln und für den Pull ein Verzeichniss anlegen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd ~&lt;br /&gt;
mkdir MetaModels&lt;br /&gt;
cd MetaModels&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Alle MetaModel Repos holen&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `wget -qO- https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
Alle MetaModel Repos holen&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
for i in `curl https://api.github.com/orgs/MetaModels/repos | \&lt;br /&gt;
grep clone_url | \&lt;br /&gt;
cut -d \&amp;quot; -f4`; do \&lt;br /&gt;
git clone $i; \&lt;br /&gt;
done;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Die zu installieren Ordner und Dateien müssen zur Installation im Contao-System wie folgt hochgeladen werden:&lt;br /&gt;
{| style=&amp;quot;width:80%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! '''Module''' (/system/modules) !! '''Drivers''' (/system/drivers)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
* generalDriver&lt;br /&gt;
* justtextwidgets&lt;br /&gt;
* metamodels&lt;br /&gt;
* metamodels_boilerplate&lt;br /&gt;
* metamodelsattribute_alias&lt;br /&gt;
* metamodelsattribute_checkbox&lt;br /&gt;
* metamodelsattribute_combinedvalues&lt;br /&gt;
* metamodelsattribute_color&lt;br /&gt;
* metamodelsattribute_country&lt;br /&gt;
* metamodelsattribute_decimal&lt;br /&gt;
* metamodelsattribute_file&lt;br /&gt;
* metamodelsattribute_geoprotection&lt;br /&gt;
* metamodelsattribute_langcode&lt;br /&gt;
* metamodelsattribute_longtext&lt;br /&gt;
* metamodelsattribute_numeric&lt;br /&gt;
* metamodelsattribute_rating&lt;br /&gt;
* metamodelsattribute_select&lt;br /&gt;
* metamodelsattribute_tags&lt;br /&gt;
* metamodelsattribute_text&lt;br /&gt;
* metamodelsattribute_timestamp&lt;br /&gt;
* metamodelsattribute_translatedalias&lt;br /&gt;
* metamodelsattribute_translatedfile&lt;br /&gt;
* metamodelsattribute_translatedlongtext&lt;br /&gt;
* metamodelsattribute_translatedselect&lt;br /&gt;
* metamodelsattribute_translatedtags&lt;br /&gt;
* metamodelsattribute_translatedtext&lt;br /&gt;
* metamodelsattribute_url&lt;br /&gt;
* metamodelsfilter_checkbox&lt;br /&gt;
* metamodelsfilter_fromto&lt;br /&gt;
* metamodelsfilter_range&lt;br /&gt;
* metamodelsfilter_select&lt;br /&gt;
* metamodelsfilter_tags&lt;br /&gt;
* metamodelsfilter_text&lt;br /&gt;
* metapalettes&lt;br /&gt;
* multicolumnwizard&lt;br /&gt;
|&lt;br /&gt;
* DC_General.php&lt;br /&gt;
|}&lt;br /&gt;
Danach muss mittels des Installtools ein Update der Datenbank gemacht werden.&lt;br /&gt;
&lt;br /&gt;
=Backend Ansichten=&lt;br /&gt;
&lt;br /&gt;
===Leeres MetaModel===&lt;br /&gt;
[[Datei:MetaModels_Backend_System.png|right|600px]]&lt;br /&gt;
Nach Aktualisierung der Datenbank erscheint '''MetaModels''' neu als eigenständige Einstellung in der Backend-Navigation links.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Erweiterungsverwaltung===&lt;br /&gt;
[[Datei:MetaModels_Backend_System_ER.png|right|600px]]&lt;br /&gt;
In der Erweiterungsverwaltung findet sich hingegen nichts, was auf MetaModels hinweist. Aber das ist gut so (Stand Mai 2013).&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===MetaModel mit null Datensätzen===&lt;br /&gt;
[[Datei:MetaModels_Backend_System_Beispiel.png|right|600px]]&lt;br /&gt;
Nachdem ein erstes neues MetaModel erstellt wurde, erscheint folgende Darstellung:&lt;br /&gt;
Weiterführende Informationen zu einem einfachen Praxisbeispiel findet man unter [[MetaModels_Beispielprojekt|MetaModels Beispielprojekt]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Attribute===&lt;br /&gt;
[[File:icons_attribute.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Attribute|hier]].&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Ausgabevorgaben===&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Ausgabevorgaben|hier]].&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Eingabemaske (fka Paletteneinstellungen)===&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Eingabemaske|hier]].&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Filter===&lt;br /&gt;
[[File:icons_filter.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Filter|hier]].&lt;br /&gt;
&lt;br /&gt;
===Dokumentation der Ansichtseinstellungen===&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|link=|32px]]&lt;br /&gt;
Den Überblick findest du [[MetaModels_Backend:_Ansichtseinstellungen|hier]].&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
Einführende Beispiele, wie man MetaModels einrichten und konfigurieren kannst, findest du hier:&lt;br /&gt;
# [[MetaModels_Beispiel_1| Backend einrichten]] - am Beispiel einer Musiksammlung, Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2| Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3| Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4| Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
&lt;br /&gt;
=Frontendausgabe=&lt;br /&gt;
{{Hinweis|Die Dokumentation sollte in eine andere Seite ausgelagert werden}}&lt;br /&gt;
----&lt;br /&gt;
started by: [[Benutzer:Planepix|Planepix]] 00:49, 28. Nov. 2012 (CET)&amp;lt;br&amp;gt;&lt;br /&gt;
completed by [[Benutzer:Luis|Luis]], [[Benutzer:lucina|Lucina]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-07-04T20:18:00Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels|B]]&lt;br /&gt;
[[Category:MetaModels Basics]]&lt;br /&gt;
=Aufgabenstellung: Backend einrichten=&lt;br /&gt;
Als Beispielprojekt soll eine einfache &amp;quot;Musikbox&amp;quot; gebaut werden, in der Musikstücke mit gewissen Attributen (&amp;quot;Eigenschaften&amp;quot;) erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht, als sei '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; ein MUSS, denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht!&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.&lt;br /&gt;
&lt;br /&gt;
===Auszuführen===&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* mindestens eine unterstützte Sprache auswählen&lt;br /&gt;
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen&lt;br /&gt;
* '''Varianten aktivieren''' vorerst nicht anhaken&lt;br /&gt;
&lt;br /&gt;
Man sieht nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfasst man die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut &amp;quot;Titel&amp;quot; dargestellt):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Interpret&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Dezimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Langtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Datei&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Cover&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias Neuerstellung erzwingen = aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
* Aliasfelder = Titel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''neu''' klicken&lt;br /&gt;
* '''BE Listenansicht''' eingeben&lt;br /&gt;
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:&lt;br /&gt;
&lt;br /&gt;
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.&lt;br /&gt;
* Die Frage, ob alle Attribute hinzugefügt werden sollen(&amp;quot;''Add all attributes to render setting''&amp;quot;), wird mit '''Weiter''' bestätigt.&lt;br /&gt;
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.&lt;br /&gt;
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|400px]]&lt;br /&gt;
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.&lt;br /&gt;
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.&lt;br /&gt;
**Komma =&amp;gt; Ausgabe in der gleichen Zeile wie der vorhergehende Wert&lt;br /&gt;
**Semikolon =&amp;gt; Ausgabe in neuer Zeile.&lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun wurde eine Eingabemaske namens '''BE Erfassung''' erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.&amp;lt;br&amp;gt;&lt;br /&gt;
Im letzten Kapitel auf dieser Seite ('''Die Daten erfassen''') sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.&lt;br /&gt;
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die MetaModels in einem separaten '''Backend-Bereich''' in der BE-Navigation unterbringen.}}{{Hinweis|Die Option '''Sortierung''' ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des '''Backend-Bereich'''s (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.&lt;br /&gt;
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.&lt;br /&gt;
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.&lt;br /&gt;
* Auf Wunsch kan man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.&lt;br /&gt;
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:&lt;br /&gt;
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.&lt;br /&gt;
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]&lt;br /&gt;
&lt;br /&gt;
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' &amp;gt; 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|thumb|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus:&amp;lt;br&amp;gt;Nun wird in der linken Navigationsübersicht &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden&lt;br /&gt;
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Kategorie:MetaModels</id>
		<title>Kategorie:MetaModels</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Kategorie:MetaModels"/>
				<updated>2013-06-21T16:04:29Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: Die Seite wurde geleert.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-06-21T15:50:55Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
[[Category:MetaModels Basics]]&lt;br /&gt;
=Aufgabenstellung: Backend einrichten=&lt;br /&gt;
Als Beispielprojekt soll eine einfache &amp;quot;Musikbox&amp;quot; gebaut werden, in der Musikstücke mit gewissen Attributen (&amp;quot;Eigenschaften&amp;quot;) erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht, als sei '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; ein MUSS, denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht!&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.&lt;br /&gt;
&lt;br /&gt;
===Auszuführen===&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* mindestens eine unterstützte Sprache auswählen&lt;br /&gt;
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen&lt;br /&gt;
* '''Varianten aktivieren''' vorerst nicht anhaken&lt;br /&gt;
&lt;br /&gt;
Man sieht nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfasst man die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut &amp;quot;Titel&amp;quot; dargestellt):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Interpret&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Dezimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Langtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Datei&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Cover&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias Neuerstellung erzwingen = aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
* Aliasfelder = Titel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''neu''' klicken&lt;br /&gt;
* '''BE Listenansicht''' eingeben&lt;br /&gt;
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:&lt;br /&gt;
&lt;br /&gt;
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.&lt;br /&gt;
* Die Frage, ob alle Attribute hinzugefügt werden sollen(&amp;quot;''Add all attributes to render setting''&amp;quot;), wird mit '''Weiter''' bestätigt.&lt;br /&gt;
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.&lt;br /&gt;
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|400px]]&lt;br /&gt;
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.&lt;br /&gt;
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.&lt;br /&gt;
**Komma =&amp;gt; Ausgabe in der gleichen Zeile wie der vorhergehende Wert&lt;br /&gt;
**Semikolon =&amp;gt; Ausgabe in neuer Zeile.&lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun wurde eine Eingabemaske namens '''BE Erfassung''' erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.&amp;lt;br&amp;gt;&lt;br /&gt;
Im letzten Kapitel auf dieser Seite ('''Die Daten erfassen''') sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.&lt;br /&gt;
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die MetaModels in einem separaten '''Backend-Bereich''' in der BE-Navigation unterbringen.}}{{Hinweis|Die Option '''Sortierung''' ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des '''Backend-Bereich'''s (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.&lt;br /&gt;
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.&lt;br /&gt;
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.&lt;br /&gt;
* Auf Wunsch kan man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.&lt;br /&gt;
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:&lt;br /&gt;
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.&lt;br /&gt;
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]&lt;br /&gt;
&lt;br /&gt;
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' &amp;gt; 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|thumb|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus:&amp;lt;br&amp;gt;Nun wird in der linken Navigationsübersicht &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden&lt;br /&gt;
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Kategorie:MetaModels_Basics</id>
		<title>Kategorie:MetaModels Basics</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Kategorie:MetaModels_Basics"/>
				<updated>2013-06-21T15:49:48Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: Die Seite wurde neu angelegt: „Category:MetaModels“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Kategorie:MetaModels</id>
		<title>Kategorie:MetaModels</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Kategorie:MetaModels"/>
				<updated>2013-06-21T15:48:52Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: Die Seite wurde neu angelegt: „Category:MetaModels Basics“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MetaModels Basics]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispielprojekt</id>
		<title>MetaModels Beispielprojekt</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispielprojekt"/>
				<updated>2013-06-21T15:45:12Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
[[Category:MetaModels Basics]]&lt;br /&gt;
&lt;br /&gt;
=MetaModels (aka Catalog 3) lernen an Beispielprojekten=&lt;br /&gt;
==Voraussetzungen==&lt;br /&gt;
* MetaModels ist der Nachfolger von Catalog. Der Code wurde komplett neu entwickelt. Eine Kompatibilität zu Catalog besteht nicht&lt;br /&gt;
* Die Bedienung und Administration von Contao sollte bekannt sein&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;MetaModels setzt Contao 2.11.x voraus&amp;lt;/span&amp;gt;. MetaModels läuft (noch) nicht unter Contao 3.x (Stand April 2013)&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;MetaModels benötigt mindestens PHP 5.3&amp;lt;/span&amp;gt;&lt;br /&gt;
* Bezüglich MetaModels werden keinerlei Vorkenntnisse vorausgesetzt&lt;br /&gt;
&lt;br /&gt;
==Download &amp;amp; Installation==&lt;br /&gt;
* MetaModels kann (noch) nicht über die Erweiterungsverwaltung geladen werden&lt;br /&gt;
* Unter der URL [http://now.metamodel.me now.metamodel.me] findet sich die Möglichkeit, Installationsarchive in den Formaten '''tgz''', '''tbz''' und '''zip''' mit so genannten '''Nightly Builds''' zu laden. &lt;br /&gt;
* Die '''Nightly Builds''' werden stündlich mit dem aktuellsten Stand von MetaModels zum Download bereitgestellt&lt;br /&gt;
* Detaillierte Infos zum Download und zur Installation findet man unter [[MetaModels|MetaModels]].&lt;br /&gt;
&lt;br /&gt;
==Umsetzungsbeispiele==&lt;br /&gt;
Wir werden eine Verwaltung unserer Musiksammlung erstellen und uns in mehreren Beispielen schrittweise von einer einfachen zu komplexeren Anwendungen vorarbeiten.&lt;br /&gt;
# [[MetaModels_Beispiel_1|Backend einrichten]] - Eingeben der Sammlung&lt;br /&gt;
# [[MetaModels_Beispiel_2|Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_3</id>
		<title>MetaModels Beispiel 3</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_3"/>
				<updated>2013-06-21T15:43:16Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
[[Category:MetaModels Basics]]&lt;br /&gt;
&lt;br /&gt;
=Aufgabenstellung: Weitere Filter einrichten=&lt;br /&gt;
Wir bauen einen Mechanismus ein, mit dem wir entscheiden können, welcher der im MetaModel '''Musikbox''' erfassten Datensätze im Frontend erscheinen soll und welcher nicht. Mit dem speziellen Attribut &amp;quot;Published State&amp;quot; lässt sich so was einrichten und über einen Filter im Frontend steuern.&lt;br /&gt;
Darüber hinaus möchten wir die Listenansicht im Frontend etwas interaktiver gestalten, indem wir einen Filter als HTML-Select im Frontend zur Verfügung stellen, der die Liste z.B. nach Länder ausfiltert.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Published Filter im Backend einbauen=&lt;br /&gt;
&lt;br /&gt;
==Start==&lt;br /&gt;
[[File:mm_backend_anpassen0.png|thumb|400px]]&lt;br /&gt;
Die Übersichtsliste in unserer Musiksammlung '''MyMusic''' entspricht bisher in etwa dem nebenstehenden Screenshot.&lt;br /&gt;
&lt;br /&gt;
Hier möchten wir das Icon &amp;quot;Auge&amp;quot; (=&amp;gt; Eintrag veröffentlichen) einfügen, dass wir von anderen Contao-Backend Funktionen kennen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute anpassen==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfassen wir das neue Attribut (s. auch [[MetaModels_Backend:_Attribute|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen1.png|thumb|400px]]&lt;br /&gt;
* Wähle '''Neues Attribut'''&lt;br /&gt;
* Wähle als ''Attribut-Typ'' '''Checkbox''' aus gib als Spaltenname z.B. '''published''' ein&lt;br /&gt;
* Wichtig: '''Veröffentlichen''' muss angeklickt sein&lt;br /&gt;
* In der Attributsübersicht erscheint jetzt das neu angelegte Feld '''Veröffentlicht'''&lt;br /&gt;
&lt;br /&gt;
Nun kann man in den entsprechenden anderen MM-Backend-Funktionen, die weiteren Anpassung vornehmen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben anpassen==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Wir passen die Listendarstellung für das Backend an (s. [[MetaModels_Backend:_Ausgabevorgaben|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen2.png|thumb|400px]]&lt;br /&gt;
* Wir wählen die Attributseinstellungen von '''BE Listenansicht'''&lt;br /&gt;
* Wähle '''Alle hinzufügen''' aus&lt;br /&gt;
* Es gibt einen automatischen Check welche Attribute bereits in die Rendersettings geladen wurden und welche nicht. Das neue Attribut &amp;quot;Veröffendlicht&amp;quot; wird hinzugefügt&lt;br /&gt;
* Es wird am Ende der Attributsliste hinzugefügt&lt;br /&gt;
&lt;br /&gt;
Damit sind die eigentlichen Anpassungen für das Backend schon abgeschlossen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Paletteneinstellung anpassen==&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
Wir passen die Paletteneinstellung für das Backend an (s. [[MetaModels_Backend:_Paletteneinstellungen|Doku zum Dialog]])&lt;br /&gt;
&lt;br /&gt;
Damit das gerade hinzugefügte Attribut auch im Backend wirksam wird, muss noch die Paletteneinstellung angepasst werden.&lt;br /&gt;
* Wir wählen für die Palette '''BE Erfassung''' das Icon ''Die Einstellungen der Palette ID xx bearbeiten''&lt;br /&gt;
* Dann ''Alle hinzufügen'' und zweimal bestätigen&lt;br /&gt;
&lt;br /&gt;
==Backendliste &amp;quot;MyMusik&amp;quot; nochmals prüfen==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_anpassen3.png|thumb|400px]]&lt;br /&gt;
Wenn wir jetzt unsere Übersichtsliste in unserer Musiksammlung &amp;quot;MyMusic&amp;quot; nochmals ansehen, entdecken wir das Icon &amp;quot;Auge&amp;quot;.&lt;br /&gt;
&amp;lt;br&amp;gt;Nun können wir im Backend steuern, ob ein Musikstück im Frontend angezeigt werden soll oder nicht.&lt;br /&gt;
&lt;br /&gt;
Damit das geschieht, müssen wir noch einen Filter erstellen, der den jeweiligen Frontend-Ansichten sagt, dass nur markierte Musikstücke veröffentlicht werden sollen.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Published Filter im Frontend einbauen=&lt;br /&gt;
Schaut man sich jetzt wiederholt die Frontend-Liste der Musicbox an während man im BE mit dem ''veröffentlicht-Auge'' herumspielt, so stellt man keine Veränderung fest.&amp;lt;br&amp;gt;Wir müssen daher in diversen MM-Backend-Funktionen Veränderungen vornehmen&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: [[MetaModels_Backend:_Filter|Filter definieren]]==&lt;br /&gt;
Wir erstellen einen neuen Filter: &amp;quot;FE Filter published&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen1.png|thumb|400px]]&lt;br /&gt;
* Wir wählen &amp;quot;neu&amp;quot;, bestätigen mit weiter&lt;br /&gt;
* Wir wählen den Typ &amp;quot;Published state&amp;quot;, wählen hierzu das vorhin erfasste Attribut &amp;quot; Veröffentlicht [checkbox]&amp;quot; und aktivieren diesen neuen Filter &amp;quot;FE Filter published&lt;br /&gt;
* ... und kehren zurück zur Filter-Übersichtsliste&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Modul anpassen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen2.png|thumb|400px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir wählen hier das Modul, das für unsere Frontend-Ansicht zuständig ist. In unserem Fall das FE-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Dort nehmen wir an folgende Änderungen vor:&lt;br /&gt;
&lt;br /&gt;
* Bei &amp;quot;Anzuwendende Filtereinstellungen&amp;quot; wählen wir den neu erstellen Filter &amp;quot;FE Filter Published&amp;quot; an&lt;br /&gt;
&lt;br /&gt;
Ab sofort werden im Frontend nur noch die Datensätze angezeigt, die wir in unserer Backend-Liste &amp;quot;MyMusik&amp;quot; mit dem Icon &amp;quot;Auge&amp;quot; markiert haben.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Select Filter im Frontend einbauen=&lt;br /&gt;
Hier müssen wir in diversen MM-Backend-Funktionen diverse Veränderungen vornehmen&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Filter definieren==&lt;br /&gt;
Wir nehmen den neuen Filter, ergänzen diesen und geben ihm einen neuen Namen &amp;quot;FE Filter published/Country&amp;quot;. Dieser angepasste Filter muss zwei Bedingungen erfüllen:&lt;br /&gt;
* Er soll wie bisher nur die publizierten Musikstücke anzeigen&lt;br /&gt;
* Er soll nur die Länder anzeigen, die wir über ein Select anwählen, das über der FE Liste angezeigt wird&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen3.png|thumb|400px]]&lt;br /&gt;
* Wir wählen die Filtereinstellungen des &amp;quot;Filters FE Filter published&amp;quot;&lt;br /&gt;
* Wir wählen &amp;quot;neu&amp;quot; und setzen die neue Einstellung unterhalb der Einstellung &amp;quot;Published State&amp;quot; ein&lt;br /&gt;
* Wir nehmen den Typ &amp;quot;Einfache Auswahl&amp;quot;, weisen das Attribut &amp;quot;Land [text]&amp;quot; zu und aktivieren diesen&lt;br /&gt;
* Optional wählen wir noch die Option &amp;quot;Leerer Wert&amp;quot; an. Dies bewirkt, dass im späteren Select überhalb unserer Länderauswahl ein leerer Eintrag generiert wird&lt;br /&gt;
* Wir &amp;quot;Speichern und schliessen&amp;quot; den Dialog&lt;br /&gt;
&lt;br /&gt;
Nun erscheint uns neu der Filter &amp;quot;FE Filter published&amp;quot; als eine Kombination von 2 Filtereinstellungen. Man kann sich nun leicht vorstellen, wie komplex man sich diesen Filter bauen kann, wenn man will.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Neues Frontend-Modul erstellen==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_filter_anpassen4.png|thumb|400px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir erstellen hier ein neues Frontend-Modul&lt;br /&gt;
* Wir wählen hierzu den Modultyp &amp;quot;MetaModels Filter&amp;quot; und geben ihm den Namen &amp;quot;MM - MyMusik Filter&amp;quot;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bestehendes Frontend-Modul anpassen==&lt;br /&gt;
[[File:mm_backend_filter_anpassen5.png|thumb|400px]]&lt;br /&gt;
* Wir gehen über die Themes zu unseren Frontend-Modulen&lt;br /&gt;
* Wir nehmen das &amp;amp;nbsp;Frontend-Modul &amp;quot;MM - MyMusik Liste&amp;quot;&lt;br /&gt;
* Wir sortieren nach &amp;quot;Land&amp;quot; und &amp;quot;Aufsteigend&amp;quot;&lt;br /&gt;
* Neu ist nun, dass wir hier unter &amp;quot;anzuwendende Filtereinstellungen&amp;quot; den überarbeiteten Filter &amp;quot;FE Filter published&amp;quot; nehmen&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Bestehenden Artikel anpassen==&lt;br /&gt;
[[File:mm_backend_filter_anpassen6.png|thumb|400px]]&lt;br /&gt;
* Wir gehen nun zu unserem Artikel, wo wir einst unser Frontend-Modul &amp;quot;MM - MyMusic Liste&amp;quot; verbaut haben&lt;br /&gt;
* Darüber erstellen wir neu ein weiteres Inhaltselement, ein weiteres Frontend-Modul. Diesmal das neu erstellte FE-Modul &amp;quot;MM - MyMusic Filter&amp;quot;&lt;br /&gt;
* to be continued&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Frontend Ansicht=&lt;br /&gt;
Die FE-Liste erscheint nun neu mit einem HTML-Select. Über die Auswahl lässt sich nun die darunterliegende Liste länderspezifisch verkürzen.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_frontend_beispiel_filter.png|link=|900px]]&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_2|Zurück zur Beispiel 2]] | [[MetaModels_Beispiel_4|Weiter Beispiel 4: Weiter MetaModels hinzufügen]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_4</id>
		<title>MetaModels Beispiel 4</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_4"/>
				<updated>2013-06-19T20:28:43Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Neues Attribut 'Stilrichtung' */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Aufgabenstellung: Weiteres MetaModel einrichten=&lt;br /&gt;
Wer mit Catalog arbeitet, ist es gewohnt, Selects einzusetzen, um Datensätze zu kategorisieren. In unserem Fall wäre es z.B. sinnvoll, unsere Musikstücke bestimmten Stilrichtungen zuzuordnen. &amp;lt;br&amp;gt;&lt;br /&gt;
Bei Catalog wird hierfür die Erweiterung [https://contao.org/de/extension-list/view/taxonomy.10089.de.html Taxonomy] eingesetzt, um Hierarchien von Taxonomie-Bedingungen (oder besser bekannt als Tags) zu erstellen, die dann über ein Select bei der Datensatz-Erfassung abgerufen werden können. Im Wesentlichen wird über Taxonomy eine separate Tabelle mit den später abzurufenden Kategorien erfasst. &amp;lt;br&amp;gt;&lt;br /&gt;
Mit MetaModels entfällt der Rückgriff auf Taxonomy. Mit MetaModels kann man eigene Tabellen erfassen, die die Einträge der HTML-Selects enthalten.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Neues MetaModel erstellen=&lt;br /&gt;
&lt;br /&gt;
==Leeres MetaModel==&lt;br /&gt;
[[File:mm_neues_metamodel.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Wir beginnen damit, dass wir unter MetaModels ein neues MetaModel anlegen:&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Wir geben dem neuen MetaModel den Namen '''Musicbox - Stilrichtungen''' und den Tabellennamen '''mm_select_style'''&lt;br /&gt;
* Des weiteren aktivieren wir die '''Übersetzung''' setzen als Sprache '''Deutsch''' ein und aktivieren das '''Fallback'''&lt;br /&gt;
* Speichern und schliessen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
[[File:mm_neues_metamodel2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Nun steht uns ein neues, leeres MetaModel (mit null Datensätzen) zur Verfügung, das wir mit den Begriffen der benötigten Stilrichtungen füllen können.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Wir erfassen zuerst die benötigen Attribute für die Eingabe.&lt;br /&gt;
[[File:mm_neues_metamodel_attribute.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu geben wir folgende Felder ein:&lt;br /&gt;
* '''Stilrichtung'''&lt;br /&gt;
** Attribute Type= Text&lt;br /&gt;
** Column name= style&lt;br /&gt;
** Name (deutsch)= Stilrichtung&lt;br /&gt;
** Description (deutsch)= Pop, Rock, New Wave, Jazz, etc.&lt;br /&gt;
&lt;br /&gt;
* '''Alias'''&lt;br /&gt;
** Attribute Type= Alias&lt;br /&gt;
** Column name= alias&lt;br /&gt;
** Name (deutsch)= Alias&lt;br /&gt;
** Description (deutsch)= Wird für URL benötigt.&lt;br /&gt;
** Unique values= aktiviert&lt;br /&gt;
** Alias fields= Titel&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM Funktion: Ausgabevorgaben==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Es wird eine neue Ausgabevorgabe benötigt.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ausgabevorgaben.png|thumb|400px]]&lt;br /&gt;
* Auf '''Neu''' klicken&lt;br /&gt;
* Die neue Ausgabevorgabe mit '''BE Listenansicht''' benennen&lt;br /&gt;
* speichern und schließen&lt;br /&gt;
* über die Attributeinstellungen alle Attribute hinzufügen&lt;br /&gt;
* Sichtbarkeit(Auge) herstellen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM Funktion: Eingabemaske==&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
Es wird eine neue Eingabemaske benötigt.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_eingabemaske.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''Neu''' klicken&lt;br /&gt;
* Die neue Eingabemaske mit '''BE Erfassung''' benennen&lt;br /&gt;
* Alle Attribute hinzufügen&lt;br /&gt;
* Speichern und schliessen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM Funktion: Filter==&lt;br /&gt;
[[File:icons_filter.png|left|32px]]&lt;br /&gt;
Es wird kein Filter benötigt.&lt;br /&gt;
&lt;br /&gt;
==MM Funktion: Ansichtseinstellungen==&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
Es werden wie gewohnt die Zugriffsberechtigung zugewiesen, damit über die Backend-Navigation auf die Tabelle zugegriffen werden kann.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|thumb|400px]]&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Neues MetaModel 'MyMusik - Stilrichtungen' steht zum Abfüllen bereit=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_navi.png|left|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_navi2.png|left|600px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BE Liste==&lt;br /&gt;
[[File:mm_neues_metamodel_BE_liste.png|thumb|400px]]&lt;br /&gt;
* Über '''Neuer Datensatz''' wird die Liste befüllt&lt;br /&gt;
* Für unserem Fall werden nun die späteren Kategorien erfasst: Pop/Rock, Italo-Rock, New Wave, Fat Beat, Cantautore, Soul/Blues und Jazz&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BE Formular==&lt;br /&gt;
[[File:mm_neues_metamodel_BE_formular.png|thumb|400px]]&lt;br /&gt;
* Das BE Formular sieht ziemlich simpel aus&lt;br /&gt;
* Ein separates Feld &amp;quot;ID&amp;quot; braucht nicht erfasst zu werden, denn dieses wird im Hintergrund automatisch generiert&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Auswahlfeld bei 'Musicbox' hinzufügen=&lt;br /&gt;
Wir klicken unser altes MetaModel '''Musicbox''' an und wählen dort die MM-Funktion '''Attribute''' an.&lt;br /&gt;
==Neues Attribut 'Stilrichtung'==&lt;br /&gt;
[[File:mm_attribut_erfassen_style.png|thumb|400px]]&lt;br /&gt;
* Das neue Attribut ist vom Typ '''Auswahl'''&lt;br /&gt;
* Column name: style&lt;br /&gt;
* Name: Stilrichtung&lt;br /&gt;
* Description:... wie es euch gefällt&lt;br /&gt;
&lt;br /&gt;
Nun kommt der eigentlich wichtige Teil: Man stellt eine Verbindung zum neu geschaffenen MetaModel her&lt;br /&gt;
&lt;br /&gt;
* '''Source Table''': Hier erscheinen alle in der Contao-Installation verfügbaren Tabellen. Ausgewählt wird die neue Tabelle '''mm_select_style'''&lt;br /&gt;
* '''Value column''': Den Namen der Spalte '''style''' auswählen&lt;br /&gt;
* '''Id column''': '''id''' auswählen. Standardmässig führt jede Contao-Tabelle eine ID mit&lt;br /&gt;
* '''Alias column''': '''alias''' auswählen&lt;br /&gt;
* ''' Auswahl-Sortierung''':  Sortierkriterium auswählen&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_atribut_musicbox.png|thumb|400px]]&lt;br /&gt;
Ab sofort steht nun in der BE Erfassung von '''MyMusic''' ein neues Feld '''Stilrichtung''' mit einem Select zur Verfügung. Das Select enthält nun alle Werte, die unter '''MyMusic - Stilrichtungen''' erfasst wurden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Zusätzlichen Select-Filter im Frontend definieren=&lt;br /&gt;
&lt;br /&gt;
==Filter bei MyMusic anpassen==&lt;br /&gt;
[[File:mm_neues_attribut_filter.png|thumb|400px]]&lt;br /&gt;
* Der bereits exisitierende Name des Filters '''FE Filter Published''' wird kurz zu &amp;quot;FE Filter Published/Selects&amp;quot; angepasst&lt;br /&gt;
* Der Filter '''FE Filter Published''' wird um weitere Einstellungen ergänzt, nämlich...&lt;br /&gt;
** eine Einfache Auswahl für das Attribut (Stilrichtung)&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_attribut_filter2.png|thumb|400px]]&lt;br /&gt;
* Nebenan die Anpassung der Einstellung '''Einfache Auswahl''' für das Attribut '''Stilrichtung'''&lt;br /&gt;
* Standardmässig wird im Hintergrund einfach der '''URL-Parameter''' des Feldes (im obigen Beispiel 'country' und 'style') mitgegeben. Dieser lässt sich hier umdefinieren.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frontend-Modul aktualisieren==&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_attribut_FE-Modul.png|thumb|400px]]&lt;br /&gt;
Das bereits existierende FE-Modul '''MM - MyMusik Filter''' muss noch angepasst werden:&lt;br /&gt;
* Anzuwendende Filtereinstellungen: Hier hat sich der Name des Filters bereits selbst aktualisiert&lt;br /&gt;
* Filterparameter: den neu hinzugekommene Parameter '''Stilrichtung''' anklicken&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Frontend Ansicht=&lt;br /&gt;
Im Frontend wird ein weiteres Select angezeigt, aus dem zusätzlich auch die '''Stilrichtungen''' angewählt werden können. &lt;br /&gt;
Die darunter liegende Liste wird entsprechend den oben ausgewählten Kriterien eingegrenzt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:mm_frontend_beispiel_2_selects.jpg|link=|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispiel_3|Zurück zum Beispiel 3]] |&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-06-19T20:19:03Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* BE-Liste */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Aufgabenstellung: Backend einrichten=&lt;br /&gt;
Als Beispielprojekt soll eine einfache &amp;quot;Musikbox&amp;quot; gebaut werden, in der Musikstücke mit gewissen Attributen (&amp;quot;Eigenschaften&amp;quot;) erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht, als sei '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; ein MUSS, denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht!&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.&lt;br /&gt;
&lt;br /&gt;
===Auszuführen===&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* mindestens eine unterstützte Sprache auswählen&lt;br /&gt;
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen&lt;br /&gt;
* '''Varianten aktivieren''' vorerst nicht anhaken&lt;br /&gt;
&lt;br /&gt;
Man sieht nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfasst man die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut &amp;quot;Titel&amp;quot; dargestellt):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Interpret&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Dezimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Langtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Datei&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Cover&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias Neuerstellung erzwingen = aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
* Aliasfelder = Titel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''neu''' klicken&lt;br /&gt;
* '''BE Listenansicht''' eingeben&lt;br /&gt;
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:&lt;br /&gt;
&lt;br /&gt;
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.&lt;br /&gt;
* Die Frage, ob alle Attribute hinzugefügt werden sollen(&amp;quot;''Add all attributes to render setting''&amp;quot;), wird mit '''Weiter''' bestätigt.&lt;br /&gt;
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.&lt;br /&gt;
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|400px]]&lt;br /&gt;
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.&lt;br /&gt;
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.&lt;br /&gt;
**Komma =&amp;gt; Ausgabe in der gleichen Zeile wie der vorhergehende Wert&lt;br /&gt;
**Semikolon =&amp;gt; Ausgabe in neuer Zeile.&lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun wurde eine Eingabemaske namens '''BE Erfassung''' erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.&amp;lt;br&amp;gt;&lt;br /&gt;
Im letzten Kapitel auf dieser Seite ('''Die Daten erfassen''') sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.&lt;br /&gt;
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die MetaModels in einem separaten '''Backend-Bereich''' in der BE-Navigation unterbringen.}}{{Hinweis|Die Option '''Sortierung''' ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des '''Backend-Bereich'''s (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.&lt;br /&gt;
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.&lt;br /&gt;
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.&lt;br /&gt;
* Auf Wunsch kan man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.&lt;br /&gt;
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:&lt;br /&gt;
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.&lt;br /&gt;
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]&lt;br /&gt;
&lt;br /&gt;
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' &amp;gt; 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|thumb|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus:&amp;lt;br&amp;gt;Nun wird in der linken Navigationsübersicht &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden&lt;br /&gt;
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-06-19T20:17:03Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* BE-Liste */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Aufgabenstellung: Backend einrichten=&lt;br /&gt;
Als Beispielprojekt soll eine einfache &amp;quot;Musikbox&amp;quot; gebaut werden, in der Musikstücke mit gewissen Attributen (&amp;quot;Eigenschaften&amp;quot;) erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht, als sei '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; ein MUSS, denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht!&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.&lt;br /&gt;
&lt;br /&gt;
===Auszuführen===&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* mindestens eine unterstützte Sprache auswählen&lt;br /&gt;
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen&lt;br /&gt;
* '''Varianten aktivieren''' vorerst nicht anhaken&lt;br /&gt;
&lt;br /&gt;
Man sieht nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfasst man die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut &amp;quot;Titel&amp;quot; dargestellt):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Interpret&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Dezimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Langtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Datei&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Cover&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias Neuerstellung erzwingen = aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
* Aliasfelder = Titel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''neu''' klicken&lt;br /&gt;
* '''BE Listenansicht''' eingeben&lt;br /&gt;
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:&lt;br /&gt;
&lt;br /&gt;
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.&lt;br /&gt;
* Die Frage, ob alle Attribute hinzugefügt werden sollen(&amp;quot;''Add all attributes to render setting''&amp;quot;), wird mit '''Weiter''' bestätigt.&lt;br /&gt;
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.&lt;br /&gt;
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|400px]]&lt;br /&gt;
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.&lt;br /&gt;
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.&lt;br /&gt;
**Komma =&amp;gt; Ausgabe in der gleichen Zeile wie der vorhergehende Wert&lt;br /&gt;
**Semikolon =&amp;gt; Ausgabe in neuer Zeile.&lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun wurde eine Eingabemaske namens '''BE Erfassung''' erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.&amp;lt;br&amp;gt;&lt;br /&gt;
Im letzten Kapitel auf dieser Seite ('''Die Daten erfassen''') sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.&lt;br /&gt;
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die eigenen MetaModels in einem separaten Bereich in der BE-Navigation unterbringen.}}{{Hinweis|Die Option '''Sortierung''' ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des '''Backend-Bereich'''s (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.&lt;br /&gt;
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.&lt;br /&gt;
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.&lt;br /&gt;
* Auf Wunsch kan man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.&lt;br /&gt;
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:&lt;br /&gt;
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.&lt;br /&gt;
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]&lt;br /&gt;
&lt;br /&gt;
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' &amp;gt; 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|thumb|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus:&amp;lt;br&amp;gt;Nun wird in der linken Navigationsübersicht &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden&lt;br /&gt;
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-06-19T20:16:42Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* BE-Liste */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Aufgabenstellung: Backend einrichten=&lt;br /&gt;
Als Beispielprojekt soll eine einfache &amp;quot;Musikbox&amp;quot; gebaut werden, in der Musikstücke mit gewissen Attributen (&amp;quot;Eigenschaften&amp;quot;) erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht, als sei '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; ein MUSS, denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht!&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.&lt;br /&gt;
&lt;br /&gt;
===Auszuführen===&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* mindestens eine unterstützte Sprache auswählen&lt;br /&gt;
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen&lt;br /&gt;
* '''Varianten aktivieren''' vorerst nicht anhaken&lt;br /&gt;
&lt;br /&gt;
Man sieht nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfasst man die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut &amp;quot;Titel&amp;quot; dargestellt):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Interpret&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Dezimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Langtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Datei&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Cover&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias Neuerstellung erzwingen = aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
* Aliasfelder = Titel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''neu''' klicken&lt;br /&gt;
* '''BE Listenansicht''' eingeben&lt;br /&gt;
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:&lt;br /&gt;
&lt;br /&gt;
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.&lt;br /&gt;
* Die Frage, ob alle Attribute hinzugefügt werden sollen(&amp;quot;''Add all attributes to render setting''&amp;quot;), wird mit '''Weiter''' bestätigt.&lt;br /&gt;
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.&lt;br /&gt;
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|400px]]&lt;br /&gt;
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.&lt;br /&gt;
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.&lt;br /&gt;
**Komma =&amp;gt; Ausgabe in der gleichen Zeile wie der vorhergehende Wert&lt;br /&gt;
**Semikolon =&amp;gt; Ausgabe in neuer Zeile.&lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun wurde eine Eingabemaske namens '''BE Erfassung''' erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.&amp;lt;br&amp;gt;&lt;br /&gt;
Im letzten Kapitel auf dieser Seite ('''Die Daten erfassen''') sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.&lt;br /&gt;
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die eigenen MetaModels in einem separaten Bereich in der BE-Navigation unterbringen.}}&lt;br /&gt;
{{Hinweis|Die Option '''Sortierung''' ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des '''Backend-Bereich'''s (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.}}&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.&lt;br /&gt;
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.&lt;br /&gt;
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.&lt;br /&gt;
* Auf Wunsch kan man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.&lt;br /&gt;
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:&lt;br /&gt;
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.&lt;br /&gt;
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]&lt;br /&gt;
&lt;br /&gt;
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' &amp;gt; 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|thumb|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus:&amp;lt;br&amp;gt;Nun wird in der linken Navigationsübersicht &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden&lt;br /&gt;
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-06-19T20:15:57Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Anmerkung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Aufgabenstellung: Backend einrichten=&lt;br /&gt;
Als Beispielprojekt soll eine einfache &amp;quot;Musikbox&amp;quot; gebaut werden, in der Musikstücke mit gewissen Attributen (&amp;quot;Eigenschaften&amp;quot;) erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht, als sei '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; ein MUSS, denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht!&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.&lt;br /&gt;
&lt;br /&gt;
===Auszuführen===&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* mindestens eine unterstützte Sprache auswählen&lt;br /&gt;
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen&lt;br /&gt;
* '''Varianten aktivieren''' vorerst nicht anhaken&lt;br /&gt;
&lt;br /&gt;
Man sieht nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfasst man die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut &amp;quot;Titel&amp;quot; dargestellt):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Interpret&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Dezimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Langtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Datei&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Cover&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias Neuerstellung erzwingen = aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
* Aliasfelder = Titel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''neu''' klicken&lt;br /&gt;
* '''BE Listenansicht''' eingeben&lt;br /&gt;
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:&lt;br /&gt;
&lt;br /&gt;
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.&lt;br /&gt;
* Die Frage, ob alle Attribute hinzugefügt werden sollen(&amp;quot;''Add all attributes to render setting''&amp;quot;), wird mit '''Weiter''' bestätigt.&lt;br /&gt;
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.&lt;br /&gt;
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|400px]]&lt;br /&gt;
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.&lt;br /&gt;
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.&lt;br /&gt;
**Komma =&amp;gt; Ausgabe in der gleichen Zeile wie der vorhergehende Wert&lt;br /&gt;
**Semikolon =&amp;gt; Ausgabe in neuer Zeile.&lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun wurde eine Eingabemaske namens '''BE Erfassung''' erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.&amp;lt;br&amp;gt;&lt;br /&gt;
Im letzten Kapitel auf dieser Seite ('''Die Daten erfassen''') sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.&lt;br /&gt;
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die eigenen MetaModels in einem separaten Bereich in der BE-Navigation unterbringen.}}&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.&lt;br /&gt;
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.&lt;br /&gt;
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.&lt;br /&gt;
* Auf Wunsch kan man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.&lt;br /&gt;
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:&lt;br /&gt;
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.&lt;br /&gt;
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]&lt;br /&gt;
&lt;br /&gt;
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' &amp;gt; 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|thumb|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus:&amp;lt;br&amp;gt;Nun wird in der linken Navigationsübersicht &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden&lt;br /&gt;
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-06-19T20:15:28Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* BE-Liste */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Aufgabenstellung: Backend einrichten=&lt;br /&gt;
Als Beispielprojekt soll eine einfache &amp;quot;Musikbox&amp;quot; gebaut werden, in der Musikstücke mit gewissen Attributen (&amp;quot;Eigenschaften&amp;quot;) erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht, als sei '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; ein MUSS, denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht!&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.&lt;br /&gt;
&lt;br /&gt;
===Auszuführen===&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* mindestens eine unterstützte Sprache auswählen&lt;br /&gt;
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen&lt;br /&gt;
* '''Varianten aktivieren''' vorerst nicht anhaken&lt;br /&gt;
&lt;br /&gt;
Man sieht nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfasst man die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut &amp;quot;Titel&amp;quot; dargestellt):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Interpret&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Dezimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Langtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Datei&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Cover&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias Neuerstellung erzwingen = aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
* Aliasfelder = Titel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''neu''' klicken&lt;br /&gt;
* '''BE Listenansicht''' eingeben&lt;br /&gt;
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:&lt;br /&gt;
&lt;br /&gt;
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.&lt;br /&gt;
* Die Frage, ob alle Attribute hinzugefügt werden sollen(&amp;quot;''Add all attributes to render setting''&amp;quot;), wird mit '''Weiter''' bestätigt.&lt;br /&gt;
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.&lt;br /&gt;
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|400px]]&lt;br /&gt;
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.&lt;br /&gt;
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.&lt;br /&gt;
**Komma =&amp;gt; Ausgabe in der gleichen Zeile wie der vorhergehende Wert&lt;br /&gt;
**Semikolon =&amp;gt; Ausgabe in neuer Zeile.&lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nun wurde eine Eingabemaske namens '''BE Erfassung''' erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.&amp;lt;br&amp;gt;&lt;br /&gt;
Im letzten Kapitel auf dieser Seite ('''Die Daten erfassen''') sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.&lt;br /&gt;
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die eigenen MetaModels in einem separaten Bereich in der BE-Navigation unterbringen.}}&lt;br /&gt;
&lt;br /&gt;
===Anmerkung===&lt;br /&gt;
Die Option '''Sortierung''' ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des '''Backend-Bereich'''s (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.&lt;br /&gt;
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.&lt;br /&gt;
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.&lt;br /&gt;
* Auf Wunsch kan man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.&lt;br /&gt;
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:&lt;br /&gt;
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.&lt;br /&gt;
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]&lt;br /&gt;
&lt;br /&gt;
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' &amp;gt; 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|thumb|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus:&amp;lt;br&amp;gt;Nun wird in der linken Navigationsübersicht &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden&lt;br /&gt;
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-06-19T20:15:12Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Anmerkung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Aufgabenstellung: Backend einrichten=&lt;br /&gt;
Als Beispielprojekt soll eine einfache &amp;quot;Musikbox&amp;quot; gebaut werden, in der Musikstücke mit gewissen Attributen (&amp;quot;Eigenschaften&amp;quot;) erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht, als sei '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; ein MUSS, denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht!&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.&lt;br /&gt;
&lt;br /&gt;
===Auszuführen===&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* mindestens eine unterstützte Sprache auswählen&lt;br /&gt;
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen&lt;br /&gt;
* '''Varianten aktivieren''' vorerst nicht anhaken&lt;br /&gt;
&lt;br /&gt;
Man sieht nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfasst man die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut &amp;quot;Titel&amp;quot; dargestellt):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Interpret&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Dezimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Langtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Datei&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Cover&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias Neuerstellung erzwingen = aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
* Aliasfelder = Titel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''neu''' klicken&lt;br /&gt;
* '''BE Listenansicht''' eingeben&lt;br /&gt;
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:&lt;br /&gt;
&lt;br /&gt;
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.&lt;br /&gt;
* Die Frage, ob alle Attribute hinzugefügt werden sollen(&amp;quot;''Add all attributes to render setting''&amp;quot;), wird mit '''Weiter''' bestätigt.&lt;br /&gt;
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.&lt;br /&gt;
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|400px]]&lt;br /&gt;
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.&lt;br /&gt;
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.&lt;br /&gt;
**Komma =&amp;gt; Ausgabe in der gleichen Zeile wie der vorhergehende Wert&lt;br /&gt;
**Semikolon =&amp;gt; Ausgabe in neuer Zeile.&lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die eigenen MetaModels in einem separaten Bereich in der BE-Navigation unterbringen.}}&lt;br /&gt;
&lt;br /&gt;
===Anmerkung===&lt;br /&gt;
Die Option '''Sortierung''' ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des '''Backend-Bereich'''s (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.&lt;br /&gt;
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.&lt;br /&gt;
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.&lt;br /&gt;
* Auf Wunsch kan man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.&lt;br /&gt;
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:&lt;br /&gt;
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.&lt;br /&gt;
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]&lt;br /&gt;
&lt;br /&gt;
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' &amp;gt; 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|thumb|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus:&amp;lt;br&amp;gt;Nun wird in der linken Navigationsübersicht &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden&lt;br /&gt;
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-06-19T20:14:33Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Anmerkung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Aufgabenstellung: Backend einrichten=&lt;br /&gt;
Als Beispielprojekt soll eine einfache &amp;quot;Musikbox&amp;quot; gebaut werden, in der Musikstücke mit gewissen Attributen (&amp;quot;Eigenschaften&amp;quot;) erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht, als sei '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; ein MUSS, denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht!&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.&lt;br /&gt;
&lt;br /&gt;
===Auszuführen===&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* mindestens eine unterstützte Sprache auswählen&lt;br /&gt;
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen&lt;br /&gt;
* '''Varianten aktivieren''' vorerst nicht anhaken&lt;br /&gt;
&lt;br /&gt;
Man sieht nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfasst man die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut &amp;quot;Titel&amp;quot; dargestellt):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Interpret&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Dezimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Langtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Datei&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Cover&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias Neuerstellung erzwingen = aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
* Aliasfelder = Titel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''neu''' klicken&lt;br /&gt;
* '''BE Listenansicht''' eingeben&lt;br /&gt;
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:&lt;br /&gt;
&lt;br /&gt;
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.&lt;br /&gt;
* Die Frage, ob alle Attribute hinzugefügt werden sollen(&amp;quot;''Add all attributes to render setting''&amp;quot;), wird mit '''Weiter''' bestätigt.&lt;br /&gt;
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.&lt;br /&gt;
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|400px]]&lt;br /&gt;
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.&lt;br /&gt;
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.&lt;br /&gt;
**Komma =&amp;gt; Ausgabe in der gleichen Zeile wie der vorhergehende Wert&lt;br /&gt;
**Semikolon =&amp;gt; Ausgabe in neuer Zeile.&lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die eigenen MetaModels in einem separaten Bereich in der BE-Navigation unterbringen.}}&lt;br /&gt;
&lt;br /&gt;
===Anmerkung===&lt;br /&gt;
Die Option '''Sortierung''' ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des '''Backend-Bereich'''s (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.&lt;br /&gt;
&lt;br /&gt;
Nun wurde eine Eingabemaske namens '''BE Erfassung''' erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.&amp;lt;br&amp;gt;&lt;br /&gt;
Im letzten Kapitel auf dieser Seite ('''Die Daten erfassen''') sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.&lt;br /&gt;
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.&lt;br /&gt;
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.&lt;br /&gt;
* Auf Wunsch kan man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.&lt;br /&gt;
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:&lt;br /&gt;
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.&lt;br /&gt;
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]&lt;br /&gt;
&lt;br /&gt;
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' &amp;gt; 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|thumb|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus:&amp;lt;br&amp;gt;Nun wird in der linken Navigationsübersicht &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden&lt;br /&gt;
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-06-19T20:14:06Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Anmerkung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Aufgabenstellung: Backend einrichten=&lt;br /&gt;
Als Beispielprojekt soll eine einfache &amp;quot;Musikbox&amp;quot; gebaut werden, in der Musikstücke mit gewissen Attributen (&amp;quot;Eigenschaften&amp;quot;) erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht, als sei '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; ein MUSS, denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht!&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.&lt;br /&gt;
&lt;br /&gt;
===Auszuführen===&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* mindestens eine unterstützte Sprache auswählen&lt;br /&gt;
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen&lt;br /&gt;
* '''Varianten aktivieren''' vorerst nicht anhaken&lt;br /&gt;
&lt;br /&gt;
Man sieht nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfasst man die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut &amp;quot;Titel&amp;quot; dargestellt):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Interpret&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Dezimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Langtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Datei&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Cover&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias Neuerstellung erzwingen = aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
* Aliasfelder = Titel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''neu''' klicken&lt;br /&gt;
* '''BE Listenansicht''' eingeben&lt;br /&gt;
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:&lt;br /&gt;
&lt;br /&gt;
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.&lt;br /&gt;
* Die Frage, ob alle Attribute hinzugefügt werden sollen(&amp;quot;''Add all attributes to render setting''&amp;quot;), wird mit '''Weiter''' bestätigt.&lt;br /&gt;
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.&lt;br /&gt;
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|400px]]&lt;br /&gt;
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.&lt;br /&gt;
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.&lt;br /&gt;
**Komma =&amp;gt; Ausgabe in der gleichen Zeile wie der vorhergehende Wert&lt;br /&gt;
**Semikolon =&amp;gt; Ausgabe in neuer Zeile.&lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die eigenen MetaModels in einem separaten Bereich in der BE-Navigation unterbringen.}}&lt;br /&gt;
&lt;br /&gt;
===Anmerkung===&lt;br /&gt;
Die Option '''Sortierung''' ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des '''Backend-Bereich'''s (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.&lt;br /&gt;
&lt;br /&gt;
Nun wurde eine Eingabemaske namens '''BE Erfassung''' erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.&lt;br /&gt;
&lt;br /&gt;
Im letzten Kapitel auf dieser Seite ('''Die Daten erfassen''') sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.&lt;br /&gt;
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.&lt;br /&gt;
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.&lt;br /&gt;
* Auf Wunsch kan man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.&lt;br /&gt;
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:&lt;br /&gt;
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.&lt;br /&gt;
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]&lt;br /&gt;
&lt;br /&gt;
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' &amp;gt; 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|thumb|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus:&amp;lt;br&amp;gt;Nun wird in der linken Navigationsübersicht &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden&lt;br /&gt;
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-06-19T20:13:26Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* Anmerkung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Aufgabenstellung: Backend einrichten=&lt;br /&gt;
Als Beispielprojekt soll eine einfache &amp;quot;Musikbox&amp;quot; gebaut werden, in der Musikstücke mit gewissen Attributen (&amp;quot;Eigenschaften&amp;quot;) erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht, als sei '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; ein MUSS, denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht!&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.&lt;br /&gt;
&lt;br /&gt;
===Auszuführen===&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* mindestens eine unterstützte Sprache auswählen&lt;br /&gt;
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen&lt;br /&gt;
* '''Varianten aktivieren''' vorerst nicht anhaken&lt;br /&gt;
&lt;br /&gt;
Man sieht nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfasst man die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut &amp;quot;Titel&amp;quot; dargestellt):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Interpret&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Dezimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Langtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Datei&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Cover&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias Neuerstellung erzwingen = aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
* Aliasfelder = Titel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''neu''' klicken&lt;br /&gt;
* '''BE Listenansicht''' eingeben&lt;br /&gt;
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:&lt;br /&gt;
&lt;br /&gt;
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.&lt;br /&gt;
* Die Frage, ob alle Attribute hinzugefügt werden sollen(&amp;quot;''Add all attributes to render setting''&amp;quot;), wird mit '''Weiter''' bestätigt.&lt;br /&gt;
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.&lt;br /&gt;
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|400px]]&lt;br /&gt;
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.&lt;br /&gt;
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.&lt;br /&gt;
**Komma =&amp;gt; Ausgabe in der gleichen Zeile wie der vorhergehende Wert&lt;br /&gt;
**Semikolon =&amp;gt; Ausgabe in neuer Zeile.&lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die eigenen MetaModels in einem separaten Bereich in der BE-Navigation unterbringen.}}&lt;br /&gt;
&lt;br /&gt;
===Anmerkung===&lt;br /&gt;
Die Option '''Sortierung''' ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des '''Backend-Bereich'''s (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.&lt;br /&gt;
&lt;br /&gt;
Nun wurde eine Render-Einstellung namens '''BE Erfassung''' erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.&lt;br /&gt;
&lt;br /&gt;
Im letzten Kapitel auf dieser Seite ('''Die Daten erfassen''') sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.&lt;br /&gt;
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.&lt;br /&gt;
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.&lt;br /&gt;
* Auf Wunsch kan man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.&lt;br /&gt;
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:&lt;br /&gt;
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.&lt;br /&gt;
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]&lt;br /&gt;
&lt;br /&gt;
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' &amp;gt; 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|thumb|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus:&amp;lt;br&amp;gt;Nun wird in der linken Navigationsübersicht &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden&lt;br /&gt;
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/MetaModels_Beispiel_1</id>
		<title>MetaModels Beispiel 1</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/MetaModels_Beispiel_1"/>
				<updated>2013-06-19T20:11:33Z</updated>
		
		<summary type="html">&lt;p&gt;Luis: /* BE-Liste */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Admin HOWTOS]]&lt;br /&gt;
[[Category:MetaModels]]&lt;br /&gt;
=Aufgabenstellung: Backend einrichten=&lt;br /&gt;
Als Beispielprojekt soll eine einfache &amp;quot;Musikbox&amp;quot; gebaut werden, in der Musikstücke mit gewissen Attributen (&amp;quot;Eigenschaften&amp;quot;) erfasst werden. Zu diesem Zweck wird zuerst das Backend aufgebaut. Hierzu braucht man eine Übersichtsliste und ein Erfassungsformular.&lt;br /&gt;
&lt;br /&gt;
===Vorgehensschritte===&lt;br /&gt;
# [[MetaModels|Start: Installation]] - Download und Installation von MetaModels&lt;br /&gt;
# [[MetaModels_Beispiel_1|Beispiel 1: Backend einrichten]] - MetaModel erstellen, Daten erfassen&lt;br /&gt;
# [[MetaModels_Beispiel_2|Beispiel 2: Frontend einrichten]] - Die Inhalte im Frontend anzeigen (Liste und Detail)&lt;br /&gt;
# [[MetaModels_Beispiel_3|Beispiel 3: Weitere Filter einrichten]] – Inhalte auf Published setzen, einfache Select-Filter&lt;br /&gt;
# [[MetaModels_Beispiel_4|Beispiel 4: Weiteres MetaModels einrichten]] - komplexe Select-Filter einsetzen&lt;br /&gt;
# [[MetaModels_Beispiel:_Übersetzter_select|Weiteres Beispiel: Übersetzter select]] - Mehrsprachiges Select-Attribut einrichten&lt;br /&gt;
&lt;br /&gt;
=Eine leere Datenbank erstellen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_startscreen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Zuerst wird ein neues MetaModel erstellt. Technischen gesehen wird dabei in der Contao-Datenbank eine leere Tabelle angelegt. &lt;br /&gt;
&lt;br /&gt;
* Klick auf '''Neues MetaModel'''&lt;br /&gt;
* Name: '''Musicbox'''&lt;br /&gt;
* TabellenName: '''mm_musicbox'''&lt;br /&gt;
&lt;br /&gt;
===Anmerkungen===&lt;br /&gt;
&lt;br /&gt;
* Obwohl es so aussieht, als sei '''Übersetzung''' eine frei wählbare Option, ist &amp;quot;diese Option&amp;quot; ein MUSS, denn ohne Sprachenzuweisung funktioniert das ganze MetaModel nicht!&lt;br /&gt;
* '''Varianten unterstützen''' wird vorläufig nicht benötigt.... und gegebenenfalls zu einem späteren Zeitpunkt erläutert.&lt;br /&gt;
&lt;br /&gt;
===Auszuführen===&lt;br /&gt;
&lt;br /&gt;
* '''Übersetzung''' anhaken&lt;br /&gt;
* mindestens eine unterstützte Sprache auswählen&lt;br /&gt;
* eine Sprache (z.B. '''Deutsch''') zum Fallback machen&lt;br /&gt;
* '''Varianten aktivieren''' vorerst nicht anhaken&lt;br /&gt;
&lt;br /&gt;
Man sieht nun ein MetaModel &amp;quot;Musicbox&amp;quot; mit 0 (null) Datensätzen und einer Reihe von Icons, die nun zur Weiterbearbeitung genutzt werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MetaModels Backend-Funktionen==&lt;br /&gt;
Kurze Erklärung, was sich hinter den nun dargestellten Symbolen verbirgt (in Klammern ist angegegeben, was als Tooltip ausgegeben wird):&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_funktionen_icons.png|link=|border]]&lt;br /&gt;
&lt;br /&gt;
[[File:icons_bearbeiten.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier gelangt man wieder zurück zum gleichen Screen, wie bie der Erstellung eines neuen MetaModels. Hier kann man jederzeit sowohl den '''Namen''' als auch den '''Tabellennamen''' des MetaModels ändern.&lt;br /&gt;
&lt;br /&gt;
# [[MetaModels_Backend:_Attribute|'''Attribute''']] (Attribute für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ausgabevorgaben|'''Ausgabevorgaben''']] (Render-Einstellungen für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Eingabemaske|'''Eingabemaske''']] (Eingabemaske für das MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Filter|'''Filter''']] (Filter für MetaModel ID x definieren)&lt;br /&gt;
# [[MetaModels_Backend:_Ansichtseinstellungen|'''Paletten- und Ansichtseinstellungen''']] (Definieren Sie die Eingabe- / Ausgabe-Optionen für MetaModel ID x)&lt;br /&gt;
&lt;br /&gt;
=Das Backend konfigurieren=&lt;br /&gt;
&lt;br /&gt;
Um das Backend für die Erfassung der Daten vorzubereiten benötigt man a) eine Übersichtsliste und b) ein Erfassungsformular. Hierzu braucht man 4 der 5 Backend-Funktionen von MetaModels.&lt;br /&gt;
&lt;br /&gt;
* Datenbank erstellen, benennen, Sprachvariable zuweisen&lt;br /&gt;
* Felder definieren, Attribute festlegen, Erfassungsformular gestalten&lt;br /&gt;
* Übersichtsliste definieren&lt;br /&gt;
* Erfassung (z.B. für Redakteure) freigeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Attribute==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_attribute.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier erfasst man die benötigen Felder für die Eingabe.&lt;br /&gt;
s. [[MetaModels_Backend:_Attribute|allgemeine Infos]] zu den Attributen&lt;br /&gt;
&lt;br /&gt;
[[File:mm_attribute_erfassen.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Hierzu gibt man folgende Felder ein (im nebenstehenden Screen ist das beispielhaft für das Attribut &amp;quot;Titel&amp;quot; dargestellt):&lt;br /&gt;
{|&lt;br /&gt;
|- &lt;br /&gt;
| '''Titel'''&lt;br /&gt;
|&lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= title&lt;br /&gt;
* Name (deutsch)= Titel&lt;br /&gt;
* Description (deutsch)= Name des Stücks&lt;br /&gt;
|- &lt;br /&gt;
| '''Interpret'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= composer&lt;br /&gt;
* Name (deutsch)= Interpret&lt;br /&gt;
* Description (deutsch)= Name der Band, SängerIn oder InterpretIn&lt;br /&gt;
|- &lt;br /&gt;
| '''Land'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Text&lt;br /&gt;
* Column name= country&lt;br /&gt;
* Name (deutsch)= Land&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
|- &lt;br /&gt;
| '''Jahr'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Dezimal&lt;br /&gt;
* Column name= year&lt;br /&gt;
* Name (deutsch)= Jahr&lt;br /&gt;
* Description (deutsch)= Erscheinungsjahr&lt;br /&gt;
|- &lt;br /&gt;
| '''Beschreibung'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Langtext&lt;br /&gt;
* Column name= description&lt;br /&gt;
* Name (deutsch)= Beschreibung&lt;br /&gt;
* Description (deutsch)= Wikipedia, Kurzbeschreibung, etc.&lt;br /&gt;
|- &lt;br /&gt;
| '''Cover'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Datei&lt;br /&gt;
* Column name= images&lt;br /&gt;
* Name (deutsch)= Cover&lt;br /&gt;
* Description (deutsch)= Cover, Bilder&lt;br /&gt;
|- &lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|Bis jetzt wurde bei keinem der Attribute die Option '''Unique values''' aktiviert.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Um die Einträge eindeutig identifizieren zu können, wird zusätzlich ein Alias-Attribut erzeugt:&lt;br /&gt;
|- &lt;br /&gt;
| '''Alias'''&lt;br /&gt;
| &lt;br /&gt;
* Attribute Type= Alias&lt;br /&gt;
* Column name= alias&lt;br /&gt;
* Name (deutsch)= Alias&lt;br /&gt;
* Description (deutsch)=&lt;br /&gt;
* Unique values= aktiviert&lt;br /&gt;
* Alias Neuerstellung erzwingen = aktiviert&amp;lt;br&amp;gt;(dann muss kein Alias eingegeben werden, wird neu berechnet bei Änderung des Titels)&lt;br /&gt;
* Aliasfelder = Titel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Ausgabevorgaben (aka Render-Einstellungen)==&lt;br /&gt;
[[File:icons_ausgabevorgaben.png|left|32px]]&lt;br /&gt;
Hier wird die Ansicht erfasst: Eine Listendarstellung für das Backend.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_definieren.png|right|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
* Auf '''neu''' klicken&lt;br /&gt;
* '''BE Listenansicht''' eingeben&lt;br /&gt;
* Der Rest kann so stehen bleiben, denn für die BE Listenansicht braucht man weder eine '''Zielseite''' noch '''Filter settings'''.&lt;br /&gt;
&lt;br /&gt;
(s. [[MetaModels_Backend:_Ausgabevorgaben|allgemeine Ausgabe-Vorgaben]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_ausgabe_attribute_definieren.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Um auszuwählen, welche Felder in der BE Listenansicht angezeigt werden sollen, klickt man einfach auf das entsprechende Icon rechts:&lt;br /&gt;
&lt;br /&gt;
* '''Add all''' fügt alle Felder auf einen Rutsch hinzu. Man kann auch '''Neu''' wählen und die Felder einzeln hinzufügen, aber mit '''Add all''' gehts am schnellsten.&lt;br /&gt;
* Die Frage, ob alle Attribute hinzugefügt werden sollen(&amp;quot;''Add all attributes to render setting''&amp;quot;), wird mit '''Weiter''' bestätigt.&lt;br /&gt;
* Nun werden alle Attribute aufgelistet, die im vorangegangenen Schritt erfasst worden sind.&lt;br /&gt;
&lt;br /&gt;
Über das übliche 'Auge' werden nur die Attribute sichtbar gemacht, die in der Backend-Liste angezeigt werden sollen.&lt;br /&gt;
Für dieses Tutorial wählen wir : '''Titel''', '''Interpret''', '''Land''' und '''Jahr'''.&lt;br /&gt;
&lt;br /&gt;
(( alter Screen, wird ersetzt ))&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Eingabemaske (fka Paletteneinstellungen)==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_paletteneinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wo und wie im BE die Daten zur Musicbox erfasst werden sollen.&lt;br /&gt;
&lt;br /&gt;
===BE-Liste===&lt;br /&gt;
[[File:mm_paletten_BE_liste.png|thumb|400px]]&lt;br /&gt;
Nach Klick auf '''Neue Eingabemaske''' öffnet sich ein [[MetaModels_Backend:_Eingabemaske|Erfassungsformular]]. Hier die Werte eingeben, wie nebenan abgebildet:&lt;br /&gt;
* Name: '''BE Erfassung'''&lt;br /&gt;
* Option '''Als Standard benutzen'''&lt;br /&gt;
* Panel-Layout: Es stehen 4 Werte ('''filter''', '''sort''', '''search''' und '''limit''') zur Verfügung. Diese können auch über das Icon rechts abgerufen werden.&lt;br /&gt;
**Werden hier mehrere Werte eingegeben, so sind diese entweder durch Komma (,) oder durch Semikolon (;) voneinander zu trennen - nur mit Leerzeichen getrennte Werte werden ignoriert.&lt;br /&gt;
**Komma =&amp;gt; Ausgabe in der gleichen Zeile wie der vorhergehende Wert&lt;br /&gt;
**Semikolon =&amp;gt; Ausgabe in neuer Zeile.&lt;br /&gt;
* Integration: '''Als Einzeltabelle'''&lt;br /&gt;
* Sortiermodus: '''2 Datensätze nach wählbarem Feld sortiert darstellen''' (Wichtig: Sowohl dieser Wert als auch '''sort''' im '''Panel-Layout''' müssen definiert sein, ansonsten erscheint die Sortier-Funktion nicht.&lt;br /&gt;
* Sortierung: Auf- oder Absteigend... wie es dir gefällt&lt;br /&gt;
* Backend-Bereich: '''Inhalte''' (oder wo soll es in der Backend-Navigation eingesetzt werden)&lt;br /&gt;
* Backend-Icon: Auf Wunsch kann hier ein eigenes Icon gesetzt werden&lt;br /&gt;
* Backend-Beschreibung: wie abgebildet&lt;br /&gt;
{{Hinweis|Mit der Erweiterung '''MetaModels Boilerplate''' (Nightly Build) kann man die eigenen MetaModels in einem separaten Bereich in der BE-Navigation unterbringen.}}&lt;br /&gt;
&lt;br /&gt;
===Anmerkung===&lt;br /&gt;
Die Option '''Sortierung''' ist beim erstmaligen Bearbeiten der Seite noch nicht sichtbar. Es empfiehlt sich daher, nach Auswahl des '''Backend-Bereich'''s (hier: Inhalte) die Seite zu speichern. Jetzt kann die Sortierung festgelegt werden.&lt;br /&gt;
&lt;br /&gt;
Nun wurde eine Palette namens '''BE Erfassung''' erstellt. Im Folgenden wird nun das Erfassungs-Formular ein wenig gestaltet.&lt;br /&gt;
&lt;br /&gt;
Im letzten Kapitel auf dieser Seite ('''Die Daten erfassen''') sieht man, wie die Liste/das Formular zwecks Erfassung der Musikstücke aussieht.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===BE-Formular===&lt;br /&gt;
[[File:mm_paletten_BE_formular.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Man fügt nun alle Attribute zur Palette hinzu, indem man auf das Icon rechts (''Die Einstellungen der Palette ID xx bearbeiten'') klickt.&lt;br /&gt;
* '''Alle hinzufügen''' wählen und alle nun folgenden Screens bestätigen.&lt;br /&gt;
* Man erhält so eine Liste aller Attribute, die man einzeln bearbeiten kann.&lt;br /&gt;
* Auf Wunsch kan man hier auch die Reihenfolge umstellen und so bestimmen, wie die Daten erfasst werden sollen.&lt;br /&gt;
* Angefangen wird mit dem ersten Eintrag '''Titel [text]'''&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:mm_paletten_BE_formular2.png|thumb|400px]]&lt;br /&gt;
&lt;br /&gt;
Folgendes Beispiel zeigt, was man bei der Erfassung des Attributs '''Titel''' alles einstellen kann.&amp;lt;br&amp;gt;&lt;br /&gt;
Ein Klick auf das Editier-Icon zeigt die wichtigsten Einstellungen:&lt;br /&gt;
* Backend-Class: Damit kann man das Formular bzw. die Erfassungfelder etwas gestalten. 5 Werte stehen zur Verfügung: '''w50''', '''clr''', '''long''', '''wizard''' und '''m12'''&lt;br /&gt;
* Pflichtfeld: Durch Anklicken legt man fest, ob auf diesem Feld eine Inhaltsprüfung stattfinden soll. Die Felder werden mit einem roten Asterisk gekennzeichnet.&lt;br /&gt;
* Filterbar, Durchsuchbar, Sortierbar: Mit diesen Optionen kann man die BE-Liste etwas organisieren. Praktisch wenn man mehrere Dutzend/Hunderte von Datensätze erfasst hat.&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MM-Funktion: Zugriffsrechte definieren==&lt;br /&gt;
&lt;br /&gt;
[[File:icons_ansichtseinstellungen.png|left|32px]]&lt;br /&gt;
&lt;br /&gt;
Hier legt man fest, wer im Backend auf die Daten von MetaModel zugreifen und diese editieren darf.&lt;br /&gt;
&lt;br /&gt;
[[File:mm_neues_metamodel_ansichtseinstellungen.png|730px]]&lt;br /&gt;
&lt;br /&gt;
Damit die Benutzer den MM auch sehen können, muß in den Gruppen-/Benutzerrechten auch noch dieser MM freigeschaltet werden. Den MM findet man unter 'Erlaubte Module' &amp;gt; 'Backend Module'. Je nachdem ob man den MM einzeln oder Untergeordnet anzeigen lässt dann an der jeweiligen Stelle.&lt;br /&gt;
&lt;br /&gt;
=Die Daten erfassen=&lt;br /&gt;
&lt;br /&gt;
[[File:mm_backend_erfassen.png|thumb|600px]]&lt;br /&gt;
&lt;br /&gt;
Und so sieht's aus:&amp;lt;br&amp;gt;Nun wird in der linken Navigationsübersicht &amp;quot;Backend-Module&amp;quot; ein neuer Eintrag angezeigt und man kann mit der Erfassung der Musikstücke beginnen.&lt;br /&gt;
&lt;br /&gt;
* Mit Klick auf '''MyMusik''' gelangt man auf die BE Listenansicht. Diese ist noch leer&lt;br /&gt;
* Mit Klick auf '''Neuer Datensatz'''. öffnet sich ein Formular, mit dem sich nun der erste Datensatz erfassen lässt&lt;br /&gt;
* Die gewünschten Werte eingeben und mit '''Speichern und Schliessen''' bestätigen&lt;br /&gt;
* Nun erscheint der erste Eintrag in der BE Listenansicht&lt;br /&gt;
* Diesen Vorgang wiederholen, bis alle Datensätze erfasst wurden&lt;br /&gt;
* Über der BE Listenansicht stehen nun die Panel-Layout Funktionen '''Suchen''', '''Sortieren''', '''Filtern''' und '''Anzeigen''' zur Verfügung&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[MetaModels_Beispielprojekt|Zurück zur Beispiel-Übersicht]] | [[MetaModels_Beispiel_2|Weiter zum Beispiel 2: Erstellung der Frontend-Ansicht]]&lt;/div&gt;</summary>
		<author><name>Luis</name></author>	</entry>

	</feed>