SlideShare ist ein Scribd-Unternehmen logo
Pimcore
@timglabisch
works @anymotion
Pimcore
Documente   Assets   Objekte
Pimcore
WARUM NUTZT ANYMOTION PIMCORE?

 Ermöglicht Entwickler eine Oberfläche für
 Redakteure zu schaffen.
                                               Erfindet das Rad nicht neu.
                                               Aufsatz auf das Zend Framework.


Extrem flexibel. Nutze was du möchtest,
nicht mehr.
                                               System gibt nichts Vor. Viele
                                               Freiheiten.
      Man findet alles schnell. (Halbwegs)
      Saubere Struktur.

                                             Hohe Wiedervendbarkeit.
                                             Don‘t repeat yourself.
Was ist nicht so toll?

Zend_Navigation

Zend_Form

Testabdeckung
Demo,


Userinterface
Pimcore
ZF > MVC
PIMCORE > MVC
Website_Controller_Action



      Pimcore_Controller_Action



                Zend_Controller_Action
Pimcore_Mail


               Zend_Mail
Pimcore Manual



                 Zend Manual
                  Extjs Manual
M   V   C
VIEW
CONTROLLER
Pimcore
ORDNERSTRUKTUR




Änderungen „erlaubt“
/website/*
ORDNERSTRUKTUR




Config
/website/var/config/setting.xml
ORDNERSTRUKTUR




Schreibrechte
/website/var/*
ORDNERSTRUKTUR
Controller
/website/controllers/*Controller.php
ORDNERSTRUKTUR




Views
/website/views/scripts/[CONTROLLER]/[ACTION].php
ORDNERSTRUKTUR




     Statische Dateien
     /website/static/*
ORDNERSTRUKTUR




     Services
     /website/lib/Website/*

     Beispiele:
     /website/lib/Website/Form/Contact.php
     /website/lib/Apache/Solr/*
PSR-0
Website_Controller_Action
LIB/website/Controller/Action
TASK

  Ausgabe des Textes foo
  auf der Startseite
TASK

 Ausgabe des aktuellen Timestamps
 auf der Startseite
TASK
 Ausgabe des Textes foo im View
TASK
Ausgabe des aktuellen Timestamps
im View
TASK

Berechnung des aktuellen Timestamps im
  Controller und Übergabe an den View.
TASK

Pflegbarer Text auf der Startseite
DOCUMENT TAGS
<?=$this->image(“NAME“)?>
<?=$this->image(“NAME“)?>
<?=$this->image(“NAME“)?>
<?=$this->image(“NAME“)?>
<?=$this->image(“NAME“)?>
<?=$this->image(“NAME“)?>
<?=$this->image(..., ARGS)?>
Pimcore
$this->editmode
$this->template(filename)
Pimcore
Pimcore
Loops
Loops
Menu?

foreach(Document::getByPath(‘/‘)->getChilds() as $documents)
  ; // ….
Zend Navigation?

   Pimcore Navigation!
Objekte
Objekte auslesen
Pimcore
Properties
thx, fragen?


  @timglabisch
Areas
Pimcore
area.xml
view.php

    Html x)
edit.php
action.php
Website Config
Translations
          <?=$this->translate("imprint")?>
Statische Routen
Pimunit
 /**
 * @group db
 */
public function testSetUpDatabaseByDocument()
{
   $this->assertEquals($this->countDocuments(), 1);

    $document = new Document_Page();
    $document->setKey('test');
    $document->setParentId(1);
    $document->setPublished(1);
    $document->save();

    unset($document);

    $this->assertEquals($this->countDocuments(), 2);
}

Weitere ähnliche Inhalte

ODP
PDF
Modern angular 02_angular_mit_type_script
PDF
Javascript auf Client und Server mit node.js - webtech 2010
PPTX
PDF
Automatisierte infrastruktur mit ansible
PDF
Große Applikationen mit AngularJS
PDF
Fanstatic pycon.de 2012
PDF
Automatisierung mit grunt
Modern angular 02_angular_mit_type_script
Javascript auf Client und Server mit node.js - webtech 2010
Automatisierte infrastruktur mit ansible
Große Applikationen mit AngularJS
Fanstatic pycon.de 2012
Automatisierung mit grunt

Was ist angesagt? (14)

PDF
Javascript done right
PDF
Automation with Ansible
PDF
Grunt
PDF
WordPress Multisite
PDF
Frontend Performance
PPTX
Einführung React Native
PDF
Webapplikationen mit Node.js
PDF
Wordpress Benutzerrollen und Eigenschaften
PDF
JavaScript Performance
PDF
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
PDF
An Introduction to Ruby On Rails
PDF
Einführung in React
PDF
JsUnconf 2014
PDF
Javascript done right
Automation with Ansible
Grunt
WordPress Multisite
Frontend Performance
Einführung React Native
Webapplikationen mit Node.js
Wordpress Benutzerrollen und Eigenschaften
JavaScript Performance
Verteilte Anwendungen bei Azure mit Docker und Kubernetes
An Introduction to Ruby On Rails
Einführung in React
JsUnconf 2014
Anzeige

Andere mochten auch (19)

PPTX
Pimcore - Product Management systeem
PPTX
Bringing Digital & Transformation Together with Pimcore
PPTX
Services and Solutions for Banks
PDF
ScienceSoft Corporate Profile
PPTX
SharePoint Solutions to Build Environment for Effective Collaboration
PPTX
Loyalty Program Management System for Retail
PPT
How to Embed a PowerPoint Presentation Using SlideShare
PDF
2 krajcik-universal and equal access to health-care services
PPTX
Bidang yang dinilai dlm skpm standars 1 dan 2
PPTX
Jeimy lucero gomez1
PDF
2 stolarz-presentation prag isa stolarz 2012 end
PPTX
Ophelia and gertrude
PPTX
Karol yuliana albarracin 1
PDF
Accenture fjord-trends-2015
PDF
Визардфорум - сервис вебинаров и видеоконференций.
PPT
Miller Arenas 2
PPTX
KAROL DAYANA GALINDO
PDF
Лицензирование СПО в российских условиях. Анализ проблем и решений
PDF
쏘셜 시큐리티 은퇴 혜택 극대화 하기
Pimcore - Product Management systeem
Bringing Digital & Transformation Together with Pimcore
Services and Solutions for Banks
ScienceSoft Corporate Profile
SharePoint Solutions to Build Environment for Effective Collaboration
Loyalty Program Management System for Retail
How to Embed a PowerPoint Presentation Using SlideShare
2 krajcik-universal and equal access to health-care services
Bidang yang dinilai dlm skpm standars 1 dan 2
Jeimy lucero gomez1
2 stolarz-presentation prag isa stolarz 2012 end
Ophelia and gertrude
Karol yuliana albarracin 1
Accenture fjord-trends-2015
Визардфорум - сервис вебинаров и видеоконференций.
Miller Arenas 2
KAROL DAYANA GALINDO
Лицензирование СПО в российских условиях. Анализ проблем и решений
쏘셜 시큐리티 은퇴 혜택 극대화 하기
Anzeige

Pimcore

Hinweis der Redaktion

  • #8: Custom Navigation teilweise sehr umständlichSchreibt Ihr tests?testframework vorhanden - Pimunit
  • #12: Pimcore nutzt MVC überallPimcore = ModulWebsite = ModulProgrammierung gut vom Core kopierbar
  • #17: Default Controller -&gt; Default ActionAction = FunktionViele Controller besser als Gott Controller.Beispiel:FormControllerForumController...Thin Controllers!
  • #19: Bitte keine Änderungen im Pimcore Ordner machenEs gibt immer alternativen, beispielsweise kann durch den Include Path etwas überschrieben werden.Im Normalfall nicht nötig!
  • #20: Bitte keine Änderungen im Pimcore Ordner machenEs gibt immer alternativen, beispielsweise kann durch den Include Path etwas überschrieben werden.Im Normalfall nicht nötig!
  • #21: Bsp generierung Captcha.
  • #22: Alle Controller
  • #23: css, js, images, ....
  • #24: Haltet die Controller kleinBaut ServicesDurch Autoloading hier ablegen!
  • #34: View Helper -&gt; Zend View HelperImmer: $this-&gt;NAMEPimcore Tags.Formulare, ...Eigene, (etwas komplexer)Einfachste weg sowas einzubinden!?
  • #36: PHP, tu was du willst!
  • #37: Elementname, eindeutig!
  • #38: $this ist ein Pimcore_View (Zend_View)
  • #39: Gibt eine Instanz von Pimcore_Document_Tag zurück
  • #40: Instanz muss nicht ausgegeben werden.Aufruf von InstanzfunktionenBeispiel: getSrc
  • #41: Pimcore spezifischPimcore DokumentationOder Extjs spezifisch
  • #42: True oder False jenachdem man sich im editmode befindetStylesheets einbindenElemente umsortieren
  • #43: True oder False jenachdem man sich im editmode befindetStylesheets einbindenElemente umsortieren
  • #44: Controller und Action EinstellbarModul ignorierenTemplate ignorieren
  • #45: Predefined PagesÜbers Kontextmenu
  • #46: Loop multiple element TagsZiffer an die ZahlBlock in die Datenbank&lt;?phpwhile($this-&gt;block(&quot;contentblock&quot;)-&gt;loop()) { ?&gt;     &lt;h2&gt;&lt;?php echo $this-&gt;input(&quot;subline&quot;); ?&gt;&lt;/h2&gt;     &lt;?php echo $this-&gt;wysiwyg(&quot;content&quot;); ?&gt; &lt;?php } ?&gt;
  • #47: Alternative zu den SelectboxenSind quasi „Plugins“Müssen aktiviert werden über da backendFieses div zwischen den Einträgen&lt;?php echo $this-&gt;areablock(&apos;some_area_block&apos;,array( &quot;allowed&quot; =&gt; array( &quot;example&quot;, )));?&gt;
  • #52: Object_XXXX();Parent_idsetKey()-&gt;save();$entries = newObject_Myclassname_List();$entries -&gt;setOffset($offset);$entries -&gt;setLimit($perPage);$entries -&gt;setOrderKey(&quot;date&quot;);$entries -&gt;setOrder(&quot;desc&quot;);$entries -&gt;setCondition(&quot;name LIKE &quot; . $entries-&gt;quote(&quot;%bernie%&quot;)); // makesurethatyouquote variables in conditions!foreach ($entriesas $entry) { $entry-&gt;getName(); }
  • #55: Alternative zu den SelectboxenSind quasi „Plugins“Müssen aktiviert werden über da backendFieses div zwischen den Einträgen&lt;?php echo $this-&gt;areablock(&apos;some_area_block&apos;,array( &quot;allowed&quot; =&gt; array( &quot;example&quot;, )));?&gt;
  • #56: Liegt in website/var/areas Achtung Versionskontrolle
  • #57: Metadaten für jede AreaName wird in der Liste angezeigtVersion ist interessant für das UpdateBeispiele aus Pimcore DokumentationExample Package in der Dokumentation
  • #58: optionalAlternative für viewNur im editmodeKannte ich so nichtNutzt $this-&gt;editmode
  • #59: Optional„controller“Wenn logikAction ‚action‘ wird aufgerufenNamenkonvention MyBrickName ersetztenBrickname
  • #60: Facebook API Key
  • #61: http://www.pimcore.org/wiki/display/PIMCORE/Custom+Routes+%28Static+Routes%29/some-example/some~random~text_45/some-example/This+is+some+random+text_998_category_776Im View: &lt;?= $this-&gt;url(array(         &quot;text&quot; =&gt; &quot;This is some random text&quot;,         &quot;id&quot; =&gt; 998,         &quot;categoryId&quot; =&gt; 776,         &quot;getExample&quot; =&gt; &quot;some value&quot;     ),     &quot;example&quot; ) ?&gt;Warum statische Routen?Quizfrage:Wo findet man $this-&gt;Url?/var/www/atraveo/pimcore/lib/Pimcore/View/Helper