Brukar:Lastorset/Lærdom/eZ publish

Frå Wikipedia – det frie oppslagsverket

< Brukar:Lastorset | Lærdom

Her har eg samla ting eg har lært om eZ publish.

Innhaldsliste

[endre] override.ini

Hugs skilnaden på Match[node] og Match[parent_node] ! (Eg skulle bruka ein override på kvart element i lista over mappene under node 60 (Lenker). Eg skreiv Match[node]=60 .)

[endre] foreach ... as $item

Ikkje bland $node og $item

[endre] Forum topic

I malen er det to ulike deler: ein som tek seg av topic, den andre som tek seg av reply. NB! Den fyrste brukar $node, den andre $reply.

[endre] CSS og pagelayouten slik eZ har honom

  1. eZ har implementert trespaltestrukturen i pagelayout ved å floata menyane left og right, og so leggja margin på #maincontent. Skal du løyna menyane, må du ogso justera marginane på #maincontent.
  1. Sjekk allvegen margins og padding, ikkje berre left og right!

[endre] Breiddefeil i IE

div#maincontent-design {ldelim} width: 98%; {rdelim} /* This is needed to avoid width bug in IE 5.5 */

[endre] Blaing i treet (Online Editor)

For at ein brukar skal kunne bla gjennom treet, må siteaccessen ha tilgang til admin-designet.

[endre] Sitatfeil i Mozilla

div.quote-design og div.quote-end skapar vanskar for Mozilla, og er difor fjerna frå malen eg laga for HK.

[endre] Roller

Dersom du gjev rolla Anonymous user til ein Editor, vil han ikkje kunna bruka admin-siteaccessar.

Generelt bør du unngå å laga for mange overlappande rollor, seier Xplore Software.

[endre] site.ini:DesignSettings

Lista er sortert i STIGANDE prioritert fylgja. Altso vinn den siste designen i lista.

[endre] Siteaccessar, flytjing og caching

Ver varsam når du har same netstaden under to ulike URIar, og dei har ulike tilgangsmetoder. Lastar du nettstaden ved hjelp av URI-matching med index.php og heimemappe (http://www.server.net/~brukar/index.php/live) vil alle koplingane verta lagra slik. Då får du vanskar når du brukar hostmatching utan index.php og heimemappa (http://www.domene.no).

Forsvinn ikkje index.php frå URIen når du går til Virtual Host-modus, kan du slå på [SiteAccessSettings]ForceVirtualHost i site.ini.

[endre] Dersom innhaldslister ikkje oppdaterer seg når du publiserer nytt materiale

Pass på at [VersionView] AvailableSiteDesignList inneheld alle sitedesignar der cachen må tømmast. Dette må gjerast i content.ini for ADMINISTRASJONSsiteaccessane, ikkje berre brukarsiteaccessane!

[endre] Dersom dynamiske ting forsvinn eller endrar seg andre gong du lastar sida

Det kan vera at det dynamiske innhaldet brukar ein variabel som ikkje er tilgjengeleg når ein hentar den cacha utgåva. Difor må ein cache-block kring det aktuelle dynamiske innhaldet. Bruk nøklar som avgjer når det dynamiske innhaldet lastar seg.

Døme: createtools prøver å leita i $node, som forsvinn ved cache-henting. Eg bruka difor {cache-block keys=array($uri_string, $current_user.contentobject_id} kring.

[endre] Dersom omsetjingar ikkje dukkar opp

Tving nyinnlesing av omsetjingsfiler ved å bruka UNIX-kommandoen touch på ei omsetjingsfil (translation.ts).

[endre] Dokumentasjon av eZ publish

Dokumentasjonen kan ofte vera litt sketchy. Nokre nyvinningar i versjon 3.6 er til dømes berre dokumenterte i nyvinningsoversikta til 3.6.

[endre] Nyttige skript

Sjå i /bin/php/ etter nyttige skript, til dømes til kopiering av eit heilt subtre.

eZ Cache Handler
Allows for easy clearing of Cache files (Merk: skil ikkje mellom siteaccessar, slik han kan gjeva inntrykk av!)
eZ publish Translation Checker
Will display some statistics on a given translation
eZ publish Database Converter
Convert the database to the given type
eZ publish Script Executor
Allows execution of simple PHP scripts which uses eZ publish functionality, when the script is called all necessary initialization is done
eZ publish SQL diff
Displays differences between two database schemas and sets exit code based whether there is a difference or not
eZ publish SQL Schema dump
Dump sql schema to specified file or standard output
eZ publish SQL Schema insert
Insert database schema and data to specified database
This script will make a copy of a content object subtree and place it in a specified
eZ publish Template Compiler
eZ publish Template Syntax Checker
eZ publish static cache generator

[endre] Diagnose av treige sider

I denne diskusjonen kjem det fram at

  • dersom det er einskilde sider som er treige, sjekk i debuglistinga kor mange spørjingar vert gjorde
  • dersom heile nettstaden er treig, sjekk pagelayout. Skal ein ha god yteevne, hald spørjingstalet under fem.

[endre] Mystiske Fatal errors

eZ publish 3.7 og PHP 4.4 løyser alle referansefeila. Desse fjernar mange mystiske feil.

[endre] Dobbelt hovudplassering etter galen import

Er du ikkje varsam når du importerer, kan du koma til å gjeva dobbelte hovudplasseringar. Dette kan gjeva mystiske konsekvensar, som til dømes at eit søk gjev dobbelte resultat, sjølv om du slår på main_node_only, eller at å henta hovudplasseringa gjev tomt resultat.

[endre] $node er ikkje tilgjengeleg etter caching

Til mange føremål kan $module_result.content_info brukast i staden.

[endre] Hugs å definera variablane!

Sjølv om variabeldefinisjon i teorien er påkravd, er det ikkje alltid ein får melding når dei ikkje er definerte.

[endre] Henting av eit namngjeve attributt

eZContentObject->dataMap() hentar ein hashtabell med attributtnamn og innhald.

I malane: Hugs å nytta .content dersom du er interessert i innhaldet på attributtet, heller enn ezcontentattribute-objektet!

[endre] Dersom ingenting kjem fram i loggfilene

Sjekk at [DebugSettings] DebugOutput er aktivert på alle siteaccessane som skal bruka modulen. Dette kan gjelda både brukar- og adminsiteaccessar.

[endre] Kjekke innstillingar

[endre] site.ini

[endre] [SiteSettings]

IndexPage
DefaultPage

[endre] [ContentSettings]

EditDirtyObjectAction
Hindrar at brukarane får forvirrande spørsmål om utkast etc. når dei redigerer eit objekt

[endre] Under Min konto

  • Slå på locations-redigering for å kunne leggja til og endra plasseringar direkte frå objektredigeringsvindauga.


[endre] Kjekke utvidingar

[endre] Applications

  • Ymse e-postløysingar for nyhendebrev
  • Change owner
  • Sitemanager
  • Local translations

[endre] Hacks

  • [AJAX-TreeMenu] On demand tree menu
  • Title Weighed/Word Frequency Search Plugin

[endre] How to make a workflow event

(skal integrerast i eZ publish-dokumentasjonen, dersom det går an)

This text assumes general knowledge of how to make extensions.

Add the folder event/eventtypes/(name of event) to your extension. In this folder, create a file called (name of event)type.php defining a class called (name of event)Type. This class should extend eZWorkflowEventType (which you must include from kernel/classes/ezworkflowtype.php).

[endre] Registering your event type

In the class file, but outside the class definition itself, call

eZWorkflowEventType::registerType( (event id), "(event name)type" );

(event id) is the identification you have chosen for your workflow type (you may wish to define it in a constant).

[endre] The constructor of your workflow-type class

Name your workflow type by calling $this->eZWorkflowEventType( $id, $name ). $id is the identification you have chosen for your workflow type. $name is the name that will be visible to users. (Use ezi18n together with a custom translation to internationalize it.)

Limit valid triggers by callid $this->setTriggerTypes($types). $types is a three-dimensional array of strings. The first index indicates the module, the second the workflow function, and the third the event. (See documentation on workflows for information on these concepts.) For example, if you wish to limit trigger bindings to content-object publishing, use the following call:

$this->setTriggerTypes( array( 'content' => array( 'publish' => array( 'before' , 'after' ) ) ) );

If you don't want to limit trigger bindings, use the following setting:

$this->setTriggerTypes( array( '*' => true ) );

[endre] Event execution

When your event is executed, the system will call the method execute( &$process, &$event ). $process is an eZPersistentObject representing the current workflow process. $event is an object of the class you are creating, and contains the actual configuration settings.

You will probably need the parameters of the process. Retrieve an associative array using a statement such as the following:

$parameters = $process->attribute( 'parameter_list' );

One important parameter is the object_id.

From this point, it is up to you to figure out what you want to do!

[endre] Event configuration

Add an override for workflow.ini with the following settings:

[EventSettings]
ExtensionDirectories[]=extensionName
AvailableEventTypes[]=event_eventName