Utvikler cookbook

4.14. "Hello world" i ACF

Bakgrunn

 

I denne artikkelen vil du lære å:

Fremgangsmåte

 Komponenten består av disse fire filene som vi skal gå i detalj på straks:

lib/components/modules/HelloWorld/HelloWorld.php
lib/components/modules/HelloWorld/actions/helloworld.php
lib/components/modules/HelloWorld/views/helloworld.php
templates/helloworld.tpl

Component

Fila HelloWorld.php ser slik ut: 

<?php
class HelloWorld extends Component {
    var $__FILE__ = __FILE__;
    var $__CLASS__ = __CLASS__;

    var $autoForwardActions = true;
    var $autoForwardViews = true;

    function __construct($componentConstraints = null) {
        parent::Component($componentConstraints);

        $this->actionObjectDefault = 'helloworld';
        $this->requestMode = 'helloworldMode';

        $this->loadActionMappings();
        $this->authorized = true;
    }
}

 $this->loadActionMappings() leser inn og registrerer funksjoner fra filer i actions/ og views/

Actions

Her definerer vi en funksjon med navn "hello" som setter et parameter "hello" til strengen "Hello world".

<?php
class HelloWorld_Action_helloworld extends EP_Action {
    public function hello() {
        $this->setParam('hello', 'Hello world');
    }
}

 Navnet på klassen må følge mønsteret komponentklassenavn + "_Action_" + filnavn for at Component->loadActionMappings() skal finne den og registrere funksjonene.

Views

I funksjonen ved samme navn i viewet henter vi verdien av parameteret "hello" som satt av action og tilordner det til en Smarty-variabel "hello". 

<?php
class HelloWorld_View_helloworld extends EP_View {
    public function hello() {
        $this->assign('hello', $this->getParam('hello'));
        return ACTION_STATUS_OK;
    }
}

 Klassenavnet må også her følge samme mønster from for actions; komponentklassenavn + "_View_" + filnavn.

Template

 I templaten setter vi verdien fra Smarty-variablen "hello" inn i en div.

 <div class="hello">{$hello}</div>

Merk: for at output skal ende i angitt smarty-mal _må_ det velges "Output til smarty" fra fanen "Avansert" i innstillinger på frontendobjektet. Alternativt må viewet selv skrive output direkte via $this->setOutput('<sometags />') eller $this->displayTemplate('foo.tpl').

Oppsett av frontend-objektet i EP

På siden der du ønsker å bruke ACF-komponenten velger du "Ny" -> "Nytt objekt", deretter ACF Komponent.
 

 

Gi objektet en tittel. Last opp og velg visningsmalen du lagde for komponenten. Velg et plasseringspunkt på siden. Under fanen "Generelt" må du velge ACF-komponenten du har laget. Skriv inn "local.components" under "Domene" for lokale ACF komponenter. Under "Lokasjon" skriver du "modules.HelloWorld", og standardmodus settes til "helloworld.hello". Standardmodus er den funksjonen som kjører dersom ikke noe annet er spesifisert via parametret med navnet vi spesifiserte i $this->requestMode i komponenten. 

 

 

Trykk "Lagre og lukk" og komponenten skal være aktiv på siden du har valgt.

 

 

Mer informasjon

Les mer i artikkelen "Datamodell i EasyPublish-modul".

 

05.06.14

Hjelp / support

Jeg finner ikke det jeg leter etter

Vår dokumentasjon er stadig under utvikling. Vi endrer og legger til nye kapitler og bøker etter hvert som EasyPublish CMS endrer og vokser. Skulle du likevel ikke finne det du leter etter så ta kontakt med oss via support@escio.no.

Jeg har funnet en feil

Hvis du har funnet en feil i vår dokumentasjon så ønsker vi å rette på den. Send oss et hint til support@escio.no.

Translate

You can translate this documentation by using Google Translate. Select your language:

×