예제 #1
0
/**
 * This function look for 'pt' param in request and set proper tpl var
 *
 * @param
 *            loadDetails - if set to true name, icon and link etc.
 *            of the geopath will be load to template
 */
function parsePowerTrailFilter($loadDetails = false)
{
    global $powerTrailModuleSwitchOn;
    if (!$powerTrailModuleSwitchOn) {
        // powerTrails disabled in settings.inc.php
        tpl_set_var("powertrail_ids", "");
        tpl_set_var("pt_filter_enabled", '0', false);
        return;
    }
    if (!isset($_REQUEST['pt']) || !preg_match('/^[0-9]+(\\|[0-9]+)*$/', $_REQUEST['pt'])) {
        // no param or improper param value
        tpl_set_var("pt_filter_enabled", '0', false);
        tpl_set_var("powertrail_ids", "");
        return;
    }
    // set powertrails_ids param
    tpl_set_var("powertrail_ids", $_REQUEST['pt']);
    if (!$loadDetails) {
        tpl_set_var("pt_filter_enabled", '0', false);
        return;
    }
    // load powertrail details
    $powertrailsIds = explode('|', $_REQUEST['pt']);
    if (!is_array($powertrailsIds) || count($powertrailsIds) == 0) {
        tpl_set_var("pt_filter_enabled", '0', false);
        return;
    }
    if (count($powertrailsIds) > 1) {
        // many powertrails are selected
        // TODO...
        tpl_set_var("pt_filter_enabled", '1', false);
        tpl_set_var("pt_name", "HowDoYouFindIt - you're hacker! TBD");
    } else {
        $ptObj = new \lib\Objects\PowerTrail\PowerTrail(array('id' => (int) $powertrailsIds[0], 'fieldsStr' => 'id,name,type'));
        if ($ptObj->isDataLoaded()) {
            tpl_set_var("pt_filter_enabled", '1', false);
            tpl_set_var("pt_url", $ptObj->getPowerTrailUrl());
            tpl_set_var("pt_name", $ptObj->getName());
            tpl_set_var("pt_icon", $ptObj->getFootIcon());
        } else {
            tpl_set_var("pt_filter_enabled", '0', false);
        }
    }
}