Bestehende Codebasis als Ausgangsstand aufgenommen. - .gitignore: Kundendaten (uploads_*), Smarty-Compile-Cache (templates_c), Laufzeit-Temp und Datenbank-Dumps ausgeschlossen; Verzeichnisstruktur ueber .gitkeep erhalten - .gitattributes: Zeilenenden normalisiert (LF im Repo), Binaerformate markiert - db-backup.php: MySQL-Zugangsdaten kommen jetzt wie im Rest der Anwendung aus der externen Konfiguration statt hartkodiert aus der Datei; Passwort wird ueber eine temporaere Optionsdatei statt per Kommandozeile uebergeben, Fehler von mysqldump/gzip werden gemeldet, Aufraeumen aelterer Backups berechnet Jahr und Monat konsistent Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
37 lines
1.0 KiB
PHP
37 lines
1.0 KiB
PHP
<?php
|
|
/**
|
|
* Smarty plugin
|
|
*
|
|
* @package Smarty
|
|
* @subpackage PluginsModifier
|
|
*/
|
|
/**
|
|
* Smarty count modifier plugin
|
|
* Type: modifier
|
|
* Name: count
|
|
* Purpose: counts all elements in an array or in a Countable object
|
|
* Input:
|
|
* - Countable|array: array or object to count
|
|
* - mode: int defaults to 0 for normal count mode, if set to 1 counts recursive
|
|
*
|
|
* @param mixed $arrayOrObject input array/object
|
|
* @param int $mode count mode
|
|
*
|
|
* @return int
|
|
*/
|
|
function smarty_modifier_count($arrayOrObject, $mode = 0)
|
|
{
|
|
/*
|
|
* @see https://www.php.net/count
|
|
* > Prior to PHP 8.0.0, if the parameter was neither an array nor an object that implements the Countable interface,
|
|
* > 1 would be returned, unless value was null, in which case 0 would be returned.
|
|
*/
|
|
|
|
if ($arrayOrObject instanceof Countable || is_array($arrayOrObject)) {
|
|
return count($arrayOrObject, (int) $mode);
|
|
} elseif ($arrayOrObject === null) {
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|