1 заметка с тегом

WebloginPE

Добавление нового параметра в WebloginPE Modx Evo

2 ноября 2016, 15:29

Добавление параметра &dobFormat в сниппет WebloginPE в Modx Evo.

Редактируем код сниппета:

Пример Bruno

$dateFormat = isset($dateFormat) ? $dateFormat : '%A %B %d, %Y at %I:%M %p';
$dobFormat = isset($dobFormat) ? $dobFormat : '%m-%d-%Y';//add by Bruno

А также 

$wlpe->CustomTable($customTable, $customFields, $prefixTable, $tableCheck);
$wlpe->dobFormat=$dobFormat;//add by Bruno



Редактируем файл webloginpe.class.php:

$age = substr($ageDecimal, 0, strpos($ageDecimal, "."));
$modx->setPlaceholder('view.dob', strftime($this->dobFormat, $viewUser['dob']));//dobFormat by Bruno
$modx->setPlaceholder('view.age', $age);

А также

// CREDIT : Guillaume for not format an empty date
$value==0?'':$modx->setPlaceholder('user.'.$key, strftime($this->dobFormat, $value));//dobFormat by Bruno
$modx->setPlaceholder('user.age', strftime('%Y', time() - $value));



В этом же файле перепишем функцию MakeDateForDb:

function MakeDateForDb($date)//modified by Bruno for $dobFormat
    {
        $formatArray= split('[/.-]', $this->dobFormat);
        $dateArray= split('[/.-]', $date);
        // $date is a string like 01-22-1975.
        if (count($dateArray) !== 3)
            return $this->FormatMessage($this->LanguageArray[27]);
        $daypos = array_search('%d', $formatArray);
        $monthpos = array_search('%m', $formatArray);
        $yearpos = array_search('%Y', $formatArray);
 
        // $dateArray is somethink like [0]=01, [1]=22, [2]=1975
        // make a unix timestamp out of the original date string.
        $timestamp = mktime(0, 0, 0, $dateArray[$monthpos], $dateArray[$daypos], $dateArray[$yearpos]);
        return $timestamp;
    }



После данных изменений добавляем параметр в вызове сниппета &dobFormat=`%d.%m.%Y` или в любом нужном для Вас формате.

MODx   MODx EVO   WebloginPE