Git: Geänderte Dateien Zippen und Filestruktur beibehalten

10. März 2011 in Allgemein von Leo

Falls man für ein Projekt Git nutzt und nun die geänderten Dateien bündeln und als Zip haben möchte, kann dies ganz simpel mit ein paar Commands machen. Mit Git diff können wir einen Vergleich machen. Was hat sich geändert.

In unserem Zip welches in meinem Beispiel später wieder auf einen anderen Server gespielt wird und dort die Live Dateien überschreibt, muss natürlich die Filestruktur beibehalten werden.

Der Befehl der uns all diese Arbeit nun abnimmt sieht folgendermassen aus:

git archive --output=export.zip HEAD $(git diff --name-only --diff-filter=ACMR $(git rev-parse HEAD))

Kurz erklärt:

git archive --output=export.zip

Erstellt schlussendlich das Zip, also der Output.

git diff --name-only --diff-filter=ACMR

Dies würde einzeln ausgeführt eine Liste mit den geänderten Dateien anzeigen (diff).

git rev-parse HEAD

Dies ermittelt uns die ID des letzten Commits. Die ID ist hierbei ein Hash Wert.

Eigene Flexform in Extension einbauen

1. Oktober 2010 in TYPO3 von Leo

Eine Flexform kann in einer Extension benutzt werden, um eingaben und weiteres übers Backend an der Extension vorzunehmen.
Um solch eine Flexform in der eigenen Extension hinzuzufügen geht man folgendermassen vor:

1. Man legt in der eigenen Extension eine XML Datei an, am besten flexform.xml oder wie oft üblich flexform_ds.xml.

2. Nun fügt man folgende Zeilen in seine XML Datei ein:

<T3DataStructure>
  <sheets>
    <sDEF>
      <ROOT>
        <TCEforms>
          <sheetTitle>Optionen</sheetTitle>
        </TCEforms>
        <type>array</type>
        <el>
           <eine_option>
              <TCEforms>
              <label>Modus</label>
              <config>
              <items type="array">
                 <numIndex index="0" type="array">
                    <numIndex index="0">Listen Ansicht</numIndex>
                    <numIndex index="1">Detail Ansicht</numIndex>
                 </numIndex>
              </items>
              </config>
            </TCEforms>
           </eine_option>
        </el>
      </ROOT>
    </sDEF>
  </sheets>
</T3DataStructure>

Dies wäre ein Beispiel für eine Einstellung, welche natürlich so alleine nicht funktioniert.

3. Als nächstes müssen wir die Flexform in unserer Extension sozusagen registrieren, bzw. einbinden. Folgender Code kommt in die Datei “ext_tables.php” unserer Extension:

$TCA['tt_content']['types']['list']['subtypes_addlist'][$_EXTKEY.'_pi1'] ='pi_flexform';
t3lib_extMgm::addPiFlexFormValue($_EXTKEY.'_pi1', 'FILE:EXT:'.$_EXTKEY . 'pi1/flexform_ds.xml');

Der Pfad in Zeile 2 muss je nachdem wo eure Flexform liegt und heisst noch angepasst werden.

4. Um nun auf die Einstellungen als Variabeln, welche wir über die Flexform eingegeben haben im Code der Extension zugreifen zu können, benötigen wir folgenden Code am Anfang (Main):

$this->pi_initPIflexForm();

Und um wirklich auf die Variabeln zugreifen zu können folgendes:

$this->code = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'eine_option', 'sDEF');

Übrigens, ab TYPO3 4.2.1 soll folgender Code reichen um auf die Einstellungen zuzugreifen:

$this->code = $this->pi_getFFvalue($this->cObj->data['pi_flexform'], 'eine_option');

Eine Ausführliche Beschreibung zu Flexformen gibt es in der TYPO3 Wiki.

CSS für Anfänger #1

10. Oktober 2009 in CSS von Leo

Auf dem Lehrlings Blog will ich euch natürlich auch Sachen zeigen und vor allem Erklären, die ich selbst erst gerade, oder auch schon seit längerem gelernt habe. Dazu gehört zum Beispiel gerade CSS. Bei der Arbeit als Web Developer verwendet man CSS sehr häufig, da CSS entscheidet, wie die Sachen schlussendlich aussehen. Damit ist Farbe, grösse, Schriftart etc. gemeint. Hier nun also der erste Teil zu “CSS für Anfänger”, in welchem ich euch CSS etwas Näherbringe und natürlich hoffe das ihr es auch Versteht. Falls es Fragen gibt, könnt ihr mir diese gerne in den Kommentaren stellen.