Bolt\Legacy\Storage::isValidColumn PHP Méthode

isValidColumn() private méthode

Check if a given name is a valid column, and if it can be used in queries.
private isValidColumn ( string $name, array $contenttype, boolean $allowVariants = false ) : boolean
$name string
$contenttype array
$allowVariants boolean
Résultat boolean
    private function isValidColumn($name, $contenttype, $allowVariants = false)
    {
        $isValidColumn = false;
        if ($this->isMultiOrderQuery($name)) {
            $separatedOrders = $this->getOrderBys($name);
        } else {
            $separatedOrders = [$name];
        }
        //Loop through each term if multiple
        foreach ($separatedOrders as $index => $name) {
            $name = trim($name);
            // Strip the minus in '-title' if allowed.
            if ($allowVariants) {
                if (strlen($name) > 0 && $name[0] == "-") {
                    $name = substr($name, 1);
                }
                $name = $this->getFieldName($name);
            }
            // Check if the $name is in the contenttype's fields.
            if (isset($contenttype['fields'][$name])) {
                $isValidColumn = true;
            }
            if (in_array($name, Content::getBaseColumns())) {
                $isValidColumn = true;
            }
            // Repeating fields are handled differently so skip here
            if (isset($contenttype['fields'][$name]) && $contenttype['fields'][$name]['type'] == 'repeater') {
                $isValidColumn = false;
            }
            if (!$isValidColumn) {
                return false;
            }
        }
        return true;
    }