Extbase - Timestamp nutzen: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 5: Zeile 5:
 
The table fields are named as crdate, and cruser so getters should be named getCrdate and get getCruser. In your model you need to add a field and a getter:
 
The table fields are named as crdate, and cruser so getters should be named getCrdate and get getCruser. In your model you need to add a field and a getter:
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">
/** @var int */
+
/**
protected $crdate;
+
* crdate
 +
* @var int  
 +
*/
 +
protected $crdate;
  
 
/**
 
/**
Zeile 19: Zeile 22:
 
(do the same with cruser field)
 
(do the same with cruser field)
  
And finally in you setup.txt most probably you'll need to add a mappings for these fields:
+
And finally in you setup.txt most probably you'll need to add a '''mappings for these fields''':
 
<syntaxhighlight lang="typoscript">
 
<syntaxhighlight lang="typoscript">
config.tx_extbase.persistence.classes {
+
config.tx_extbase {
    Tx_Someext_Domain_Model_Somemodel {
+
persistence {
        mapping {
+
classes {
            columns.crdate.mapOnProperty = crdate
+
Vendor\MyPackage\Domain\Model\Modelname {
            columns.cruser.mapOnProperty = cruser   
+
mapping {
        }
+
columns {
    }
+
tstamp.mapOnProperty = tstamp
 +
hidden.mapOnProperty = hidden
 +
crdate.mapOnProperty = crdate
 +
cruser_id.mapOnProperty = cruserId
 +
}
 +
}
 +
}
 +
}
 +
}
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
Zeile 33: Zeile 44:
 
=== Beispiel ===
 
=== Beispiel ===
  
Dieses Beispiel funktioniert, aber es erscheint mir nicht sinnvoll das $TCA zu überschreiben
+
Evtl. könnte man das TCA mit den Standardwerten die Typo3 nutzt zu überschreiben oder sogar diese kopieren. Wenn man nur wüßte wo die sind :-)
  
 
<syntaxhighlight lang="typoscript">
 
<syntaxhighlight lang="typoscript">

Aktuelle Version vom 26. Juni 2015, 18:11 Uhr

Beispiele[Bearbeiten]

Beispiel crdate und tstamp nutzen[Bearbeiten]

http://stackoverflow.com/questions/13733546/how-to-use-standard-fields-like-crdate-and-cruser-id-with-typo3-and-extbase (2015-06)

The table fields are named as crdate, and cruser so getters should be named getCrdate and get getCruser. In your model you need to add a field and a getter:

	/**
	 * crdate 
	 * @var int 
	 */
	protected $crdate;

/**
* Returns the crdate
*
* @return int
*/
public function getCrdate() {
    return $this->crdate;
}

(do the same with cruser field)

And finally in you setup.txt most probably you'll need to add a mappings for these fields:

config.tx_extbase {
	persistence {
		classes {
			Vendor\MyPackage\Domain\Model\Modelname {
				mapping {
					columns {
						tstamp.mapOnProperty = tstamp
						hidden.mapOnProperty = hidden
						crdate.mapOnProperty = crdate
						cruser_id.mapOnProperty = cruserId
					}
				}
			}
		}
	}
}

Beispiel[Bearbeiten]

Evtl. könnte man das TCA mit den Standardwerten die Typo3 nutzt zu überschreiben oder sogar diese kopieren. Wenn man nur wüßte wo die sind :-)

$TCA['tx_myext_domain_model_mymodel']['columns']['crdate'] = Array (
            'exclude' => 1,
            'label' => 'Creation date',
            'config' => Array (
                'type' => 'none',
                'format' => 'date',
                'eval' => 'date',
 
            ));
);

das model erweitern um ein DateTime property und entsprechende getter und setter methoden.

/**
	 * crdate
	 *
	 * @var string
	 */
	protected $crdate; 
 
 
         /**
	 * Returns the crdate
	 *
	 * @return string $crdate
	 */
	public function getCrdate() {
		return $this->crdate;
	}
 
	/**
	 * Sets the crdate
	 *
	 * @param string $crdate
	 * @return void
	 */
	public function setCrdate($crdate) {
		$this->crdate = $crdate;
	}

ausschlaggebend ist zuerst das tca. was dort nicht enthalten ist, wird auch nicht in das model gemappt.

So lässt sich das Datum in Fluid noch ordentlich formatiert ausgeben:

<f:format.date format="d.m.Y - H:i">{firma.tstamp}</f:format.date> Uhr

Vorsicht - scheinbar nutzt der View Helper immer gmt. D.h. die Uhr geht 1h falsch bei uns.