コード例 #1
0
function smarty_modifier_tiki_long_datetime($string)
{
    global $prefs, $smarty;
    $smarty->loadPlugin('smarty_modifier_tiki_date_format');
    // if you change the separator do not forget to change the translation instruction in lib/prefs/long.php
    return smarty_modifier_tiki_date_format($string, $prefs['long_date_format'] . ' ' . $prefs['long_time_format']);
}
コード例 #2
0
function smarty_modifier_tiki_long_date($string)
{
    global $prefs;
    $smarty = TikiLib::lib('smarty');
    $smarty->loadPlugin('smarty_modifier_tiki_date_format');
    return smarty_modifier_tiki_date_format($string, $prefs['long_date_format']);
}
コード例 #3
0
function smarty_modifier_tiki_short_date($string)
{
    global $prefs;
    $smarty = TikiLib::lib('smarty');
    $smarty->loadPlugin('smarty_modifier_tiki_date_format');
    $date = smarty_modifier_tiki_date_format($string, $prefs['short_date_format']);
    if ($prefs['jquery_timeago'] === 'y') {
        TikiLib::lib('header')->add_jq_onready('$("time.timeago").timeago();');
        return '<time class="timeago" datetime="' . TikiLib::date_format('c', $string, false, 5, false) . '">' . $date . '</time>';
    } else {
        return $date;
    }
}
コード例 #4
0
function smarty_modifier_tiki_short_datetime($string, $intro = '', $same = 'y')
{
    global $prefs, $smarty;
    $smarty->loadPlugin('smarty_modifier_tiki_date_format');
    $date = smarty_modifier_tiki_date_format($string, $prefs['short_date_format']);
    $time = smarty_modifier_tiki_date_format($string, $prefs['short_time_format']);
    if ($same != 'n' && $prefs['tiki_same_day_time_only'] == 'y' && $date == smarty_modifier_tiki_date_format(time(), $prefs['short_date_format'])) {
        //tra('on') tra('on:') tra('at') tra('at:')
        return empty($intro) ? $time : str_replace(array('on', 'On'), array('at', 'At'), $intro) . ' ' . $time;
    } else {
        // if you change the separator do not forget to change the translation instruction in lib/prefs/short.php
        $time = $date . ' ' . $time;
        return empty($intro) ? $time : tra($intro) . ' ' . $time;
    }
}
コード例 #5
0
function smarty_modifier_tiki_short_datetime($string, $intro = '', $same = 'y')
{
    global $prefs;
    $smarty = TikiLib::lib('smarty');
    $smarty->loadPlugin('smarty_modifier_tiki_date_format');
    $date = smarty_modifier_tiki_date_format($string, $prefs['short_date_format']);
    $time = smarty_modifier_tiki_date_format($string, $prefs['short_time_format']);
    $intro = !empty($intro) ?: tra($intro) . ' ';
    if ($prefs['jquery_timeago'] === 'y' && $same === 'y') {
        TikiLib::lib('header')->add_jq_onready('$("time.timeago").timeago();');
        return '<time class="timeago" datetime="' . TikiLib::date_format('c', $string, false, 5, false) . '">' . $date . ' ' . $time . '</time>';
    } else {
        if ($same != 'n' && $prefs['tiki_same_day_time_only'] == 'y' && $date == smarty_modifier_tiki_date_format(time(), $prefs['short_date_format'])) {
            //tra('on') tra('on:') tra('at') tra('at:')
            return str_replace(array('on', 'On'), array('at', 'At'), $intro) . $time;
        } else {
            // if you change the separator do not forget to change the translation instruction in lib/prefs/short.php
            $time = $date . ' ' . $time;
            return $intro . ' ' . $time;
        }
    }
}
コード例 #6
0
function smarty_function_datetime_range($params, $smarty)
{
    global $prefs;
    $smarty = TikiLib::lib('smarty');
    $smarty->loadPlugin('smarty_modifier_tiki_date_format');
    if (!is_array($params) || !isset($params['from']) || !isset($params['to'])) {
        trigger_error(tra("Missing 'to' or 'from' parameter"));
        return;
    }
    if ($params['datetime_separator']) {
        $datetime_separator = tra($params['datetime_separator']);
    } else {
        $datetime_separator = tra("at");
    }
    if ($params['range_separator']) {
        $range_separator = tra($params['range_separator']);
    } else {
        $range_separator = tra("to");
    }
    if ($params['type'] == 'long') {
        $fromDate = smarty_modifier_tiki_date_format($params['from'], $prefs['long_date_format']);
        $fromTime = smarty_modifier_tiki_date_format($params['from'], $prefs['long_time_format']);
        $toDate = smarty_modifier_tiki_date_format($params['to'], $prefs['long_date_format']);
        $toTime = smarty_modifier_tiki_date_format($params['to'], $prefs['long_time_format']);
    } else {
        $fromDate = smarty_modifier_tiki_date_format($params['from'], $prefs['short_date_format']);
        $fromTime = smarty_modifier_tiki_date_format($params['from'], $prefs['short_time_format']);
        $toDate = smarty_modifier_tiki_date_format($params['to'], $prefs['short_date_format']);
        $toTime = smarty_modifier_tiki_date_format($params['to'], $prefs['short_time_format']);
    }
    if ($fromDate == $toDate && $prefs['tiki_same_day_time_only'] == 'y') {
        $range = $fromDate . ' ' . $datetime_separator . ' ' . $fromTime . ' ' . $range_separator . ' ' . $toTime;
    } else {
        $range = $fromDate . ' ' . $datetime_separator . ' ' . $fromTime . ' ' . $range_separator . ' ' . $toDate . ' ' . $datetime_separator . ' ' . $toTime;
    }
    return $range;
}
コード例 #7
0
function smarty_modifier_tiki_long_date($string)
{
    global $prefs;
    return smarty_modifier_tiki_date_format($string, $prefs['long_date_format']);
}
コード例 #8
0
function smarty_modifier_tiki_short_date($string)
{
    global $prefs, $smarty;
    $smarty->loadPlugin('smarty_modifier_tiki_date_format');
    return smarty_modifier_tiki_date_format($string, $prefs['short_date_format']);
}
コード例 #9
0
function wikiplugin_trackerstat($data, $params)
{
    global $prefs, $tiki_p_admin_trackers;
    $trklib = TikiLib::lib('trk');
    $tikilib = TikiLib::lib('tiki');
    $smarty = TikiLib::lib('smarty');
    extract($params, EXTR_SKIP);
    if ($prefs['feature_trackers'] != 'y' || !isset($trackerId) || !($tracker_info = $trklib->get_tracker($trackerId))) {
        return $smarty->fetch("wiki-plugins/error_tracker.tpl");
    }
    $perms = Perms::get(array('type' => 'tracker', 'object' => $trackerId));
    if (!$perms->view_trackers) {
        return tra('Permission denied');
    }
    if (!empty($show_lastmodif)) {
        $date = $trklib->lastModif($trackerId);
        if (!function_exists('smarty_modifier_tiki_date_format')) {
            include 'lib/smarty_tiki/modifier.tiki_date_format.php';
        }
        if ($show_lastmodif == 'y') {
            $show_lastmodif = $prefs['short_date_format'];
        }
        return smarty_modifier_tiki_date_format($date, tra($show_lastmodif));
    }
    if (!isset($status)) {
        $status = 'o';
    } elseif (!$trklib->valid_status($status)) {
        return tra('invalid status');
    }
    if (isset($show_count) && $show_count == 'n') {
        $smarty->assign('show_count', 'n');
    } else {
        $smarty->assign('show_count', 'y');
    }
    if (isset($show_percent) && $show_percent == 'y') {
        $average = 'y';
        $smarty->assign('show_percent', 'y');
    } else {
        $smarty->assign('show_percent', 'n');
    }
    if (isset($show_bar) && $show_bar == 'y') {
        $average = 'y';
        $smarty->assign('show_bar', 'y');
    } else {
        $smarty->assign('show_bar', 'n');
    }
    if (isset($show_link) && $show_link == 'y') {
        $smarty->assign('show_link', 'y');
    } else {
        $smarty->assign('show_link', 'n');
    }
    $allFields = $trklib->list_tracker_fields($trackerId, 0, -1, 'position_asc', '');
    for ($iUser = count($allFields['data']) - 1; $iUser >= 0; $iUser--) {
        if ($allFields['data'][$iUser]['type'] == 'u') {
            // this tracker has a user field - can look for the value the user sets
            break;
        }
    }
    if ($iUser <= -1) {
        for ($iIp = count($allFields['data']) - 1; $iIp >= 0; $iIp--) {
            if ($allFields['data'][$iIp]['type'] == 'I') {
                // this tracker has a IP field - can look for the value the user sets
                break;
            }
        }
    }
    if (!empty($fields)) {
        $listFields = $fields;
    } else {
        foreach ($allFields['data'] as $f) {
            $listFields[] = $f['fieldId'];
        }
    }
    if ($t = $trklib->get_tracker_options($trackerId)) {
        $tracker_info = array_merge($tracker_info, $t);
    }
    $status_types = $trklib->status_types();
    foreach ($listFields as $fieldId) {
        for ($i = count($allFields['data']) - 1; $i >= 0; $i--) {
            if ($allFields['data'][$i]['fieldId'] == $fieldId) {
                break;
            }
        }
        if ($i < 0) {
            return tra('incorrect fieldId') . ' ' . $fieldId;
        }
        if ($allFields['data'][$i]['type'] == 'u' || $allFields['data'][$i]['type'] == 'I' || $allFields['data'][$i]['type'] == 's') {
            continue;
        }
        if (!($allFields['data'][$i]['isHidden'] == 'n' || $allFields['data'][$i]['isHidden'] == 'p' || $allFields['data'][$i]['isHidden'] == 'y' && $tiki_p_admin_trackers == 'y')) {
            continue;
        }
        if ($allFields['data'][$i]['type'] == 'e') {
            $categlib = TikiLib::lib('categ');
            $parent = (int) $allFields['data'][$i]['options'];
            // FIXME: Lazy access to the first option. Only works when a field only has its first option set.
            if ($parent > 0) {
                $filter = array('identifier' => $parent, 'type' => 'children');
                $listCategs = $categlib->getCategories($filter, true, false);
            } else {
                $listCategs = array();
            }
            if ($tracker_info['oneUserItem'] == 'y') {
                $itemId = $trklib->get_user_item($trackerId, $tracker_info);
            }
            $j = 0;
            foreach ($listCategs as $category) {
                $objects = $categlib->get_category_objects($category['categId'], 'trackeritem', array('table' => 'tiki_tracker_items', 'join' => 'itemId', 'filter' => 'trackerId', 'bindvars' => $trackerId));
                if ($status == 'opc' || $tracker_info['showStatus'] == 'n') {
                    $v[$j]['count'] = count($objects);
                } else {
                    $v[$j]['count'] = 0;
                    foreach ($objects as $o) {
                        $s = $trklib->get_item_info($o['itemId']);
                        if (strstr($status, $s['status']) !== false) {
                            ++$v[$j]['count'];
                        }
                    }
                }
                $v[$j]['value'] = $category['name'];
                if ($tracker_info['oneUserItem'] == 'y') {
                    foreach ($objects as $o) {
                        if ($o['itemId'] == $itemId) {
                            $v[$j]['me'] = 'y';
                            break;
                        }
                    }
                }
                $v[$j]['href'] = "trackerId={$trackerId}&amp;filterfield={$fieldId}&amp;filtervalue[{$fieldId}][]=" . $category['categId'];
                $j++;
            }
        } elseif ($allFields['data'][$i]['type'] == 'h') {
            //header
            $stat['name'] = $allFields["data"][$i]['name'];
            $stat['values'] = array();
            $stats[] = $stat;
            continue;
        } else {
            if ($iUser >= 0) {
                global $user;
                $userValues = $trklib->get_filtered_item_values($allFields['data'][$iUser]['fieldId'], $user, $allFields['data'][$i]['fieldId']);
            } else {
                if ($iIp >= 0) {
                    $userValues = $trklib->get_filtered_item_values($allFields['data'][$iIp]['fieldId'], $tikilib->get_ip_address(), $allFields['data'][$i]['fieldId']);
                }
            }
            $allValues = $trklib->get_all_items($trackerId, $fieldId, $status, $allFields);
            $j = -1;
            foreach ($allValues as $value) {
                $value = trim($value);
                if ($j < 0 || $value != $v[$j]['value']) {
                    ++$j;
                    $v[$j]['value'] = $value;
                    $v[$j]['count'] = 1;
                    if (isset($userValues) && in_array($value, $userValues)) {
                        $v[$j]['me'] = 'y';
                    }
                    $v[$j]['href'] = "trackerId={$trackerId}&amp;filterfield={$fieldId}&amp;filtervalue[{$fieldId}]=" . urlencode($value);
                } else {
                    ++$v[$j]['count'];
                }
            }
        }
        if (isset($average)) {
            $total = $trklib->get_nb_items($trackerId);
            for (; $j >= 0; --$j) {
                $v[$j]['average'] = 100 * $v[$j]['count'] / $total;
                if ($tracker_info['showStatus'] == 'y') {
                    $v[$j]['href'] .= "&amp;status={$status}";
                }
            }
        }
        if (!empty($v)) {
            $stat['name'] = $allFields['data'][$i]['name'];
            $stat['values'] = $v;
            $stats[] = $stat;
        }
        unset($v);
    }
    $smarty->assign_by_ref('stats', $stats);
    return '~np~' . $smarty->fetch('wiki-plugins/wikiplugin_trackerstat.tpl') . '~/np~';
}
コード例 #10
0
function smarty_modifier_tiki_short_date($string)
{
    global $tikilib;
    return smarty_modifier_tiki_date_format($string, $tikilib->get_short_date_format(), null, tra("%a %d of %b, %Y"));
}
コード例 #11
0
function smarty_modifier_tiki_short_time($string)
{
    global $tikilib;
    return smarty_modifier_tiki_date_format($string, $tikilib->get_short_time_format(), null, tra("%H:%M %Z"));
}
コード例 #12
0
function smarty_modifier_tiki_long_datetime($string)
{
    global $tikilib;
    return smarty_modifier_tiki_date_format($string, $tikilib->get_long_datetime_format(), null, tra("%A %d of %B, %Y[%H:%M:%S %Z]"));
}
コード例 #13
0
function smarty_modifier_tiki_short_time($string)
{
    global $prefs;
    return smarty_modifier_tiki_date_format($string, $prefs['short_time_format']);
}