contao/test — Issue #2519: HOOK: show article in ModuleArticle.php
Author: importer
Created: 2011-11-29 09:49:36+00:00
State: open
Labels: Feature, frontend, Pending

Ich wünsche mir den folgenden Hook, um Artikel bei gewissen Faktoren abschalten bzw. ausblenden zu können:

```

// HOOK: show article
if (isset($GLOBALS['TL_HOOKS']['showArticle']) && is_array($GLOBALS['TL_HOOKS']['showArticle']))
{
foreach ($GLOBALS['TL_HOOKS']['showArticle'] as $callback)
{
$this->import($callback[0]);
$return = $this->$callback[0]->$callback[1]($this);

if ($return == 'doNotShow')
{
return '';
break;
}
}
}
```

```
/**
* Class Article
*/
class Article extends System
{

/**
* Do not show article
*/
public function doNotShowArticle($objArticle)
{
if ($objArticle->id == 3)
{
$return = 'doNotShow';
}

return $return;
}
}
```

```
$GLOBALS['TL_HOOKS']['showArticle'][]	= array('Article', 'doNotShowArticle');
```

Hook getestet, er funktioniert.

Praxisbeispiel:

Seite:
- Projects

Artikel:
- Projekt anzeigen
- Alle Projekte anzeigen
- Idee anzeigen
- Alle Ideen anzeigen

So kann man zum Beispiel bei gewissen Get-Parametern Artikel ein- bzw. ausschalten:

1. Bei www.domain.com/projects/
- Artikel: Alle Projekte anzeigen
2. Bei www.domain.com/projects/project/3/
- Artikel: Projekt anzeigen
3. Bei www.domain.com/projects/project/3/idea/1/
- Artikel: Idee anzeigen
4. Bei www.domain.com/projects/project/3/ideas/all/
- Artikel: Alle Ideen anzeigen

Gleiche Implementation fände ich für ContentElement.php sehr sinnvoll!

--- _Originally created by innovativecreation on September 9th, 2010, at 02:36pm (ID 2519)_