Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/croogo/croogo/Core/src/Database/Type/LinkType.php
<?php

namespace Croogo\Core\Database\Type;

use
Cake\Database\Driver;
use
Cake\Database\Type;
use
Croogo\Core\Link;

class
LinkType extends Type
{

    public function
toPHP($value, Driver $driver)
    {
        if (
stristr($value, 'controller:')) {
            return
Link::createFromLinkString($value);
        } else {
            return new
Link($value);
        }
    }

    public function
marshal($value)
    {
        if (
is_null($value)) {
            return
null;
        }

        if (
is_array($value)) {
           
$value = array_map(function ($val) {
                return
str_replace('/', '%2f', $val);
            },
$value);
            if (
count($value) === 1) {
               
$value = $value[0];
            } else {
               
$value = implode('/', $value);
            }
        }

        if (
strstr($value, 'controller:')) {
            return
Link::createFromLinkString($value);
        } else {
            return new
Link($value);
        }
    }

    public function
toDatabase($value, Driver $driver)
    {
        return (string)
$value;
    }
}