Example #1
0
/**
 * Функция обработки тегов полей с использованием шаблонов
 * в соответствии с типом поля
 *
 * @param int $rubric_id	идентификатор рубрики
 * @param int $document_id	идентификатор документа
 * @param int $maxlength	максимальное количество символов обрабатываемого поля
 * @return string
 */
function request_get_document_field($rubric_id, $document_id, $maxlength = '')
{
    if (!is_numeric($rubric_id) || $rubric_id < 1 || !is_numeric($document_id) || $document_id < 1) {
        return '';
    }
    $document_fields = get_document_fields($document_id);
    if (empty($document_fields[$rubric_id])) {
        return '';
    }
    $field_value = trim($document_fields[$rubric_id]['field_value']);
    if ($field_value == '' && $document_fields[$rubric_id]['tpl_req_empty']) {
        return '';
    }
    //	if ($maxlength != 'more')
    //	{
    //		$field_value = strip_tags($field_value, '<br /><strong><em><p><i>');
    //	}
    $func = 'get_field_' . $document_fields[$rubric_id]['rubric_field_type'];
    if (is_callable($func)) {
        $field_value = $func($field_value, 'req', "", "", "", $maxlength, $document_fields, $rubric_id);
    } else {
        $field_value = get_field_default($field_value, 'req', "", "", "", $maxlength, $document_fields, $rubric_id);
    }
    if ($maxlength != '') {
        if ($maxlength == 'more' || $maxlength == 'esc') {
            if ($maxlength == 'more') {
                $teaser = explode('<a name="more"></a>', $field_value);
                $field_value = $teaser[0];
            } else {
                $field_value = addslashes($field_value);
            }
        } elseif (is_numeric($maxlength)) {
            if ($maxlength < 0) {
                $field_value = str_replace(array("\r\n", "\n", "\r"), " ", $field_value);
                $field_value = strip_tags($field_value, "<a>");
                $field_value = preg_replace('/  +/', ' ', $field_value);
                $field_value = trim($field_value);
                $maxlength = abs($maxlength);
            }
            if ($maxlength != 0) {
                $field_value = mb_substr($field_value, 0, $maxlength) . (strlen($field_value) > $maxlength ? '... ' : '');
            }
        } else {
            return false;
        }
    }
    /*	if (!$document_fields[$rubric_id]['tpl_req_empty'])
    	{
    		$field_value = preg_replace('/\[tag:parametr:(\d+)\]/ie', '@$field_param[\\1]', $document_fields[$rubric_id]['rubric_field_template_request']);
    	}
    */
    return $field_value;
}
Example #2
0
function get_field_docfromrubcheck($field_value, $type, $field_id = '', $rubric_field_template = '', $tpl_field_empty = 0, &$maxlength = '', $document_fields = 0, $rubric_id = 0, $dropdown = '')
{
    global $AVE_DB, $AVE_Template, $AVE_Core, $AVE_Document;
    $res = 0;
    switch ($type) {
        case 'edit':
            $sql = "SELECT Id,document_title from " . PREFIX . "_documents WHERE rubric_id='" . $dropdown . "' order by document_title";
            $field_value = unserialize($field_value);
            $res = $AVE_DB->Query($sql);
            $field = "";
            while ($row = $res->FetchRow()) {
                $field .= "<input name=\"feld[" . $field_id . "][]\" value=\"" . $row->Id . "\" type=\"checkbox\" " . (in_array($row->Id, $field_value) == false ? "" : "checked=checked") . "><label>" . htmlspecialchars($row->document_title, ENT_QUOTES) . "</label></br>";
            }
            $field .= "";
            $res = $field;
            break;
        case 'doc':
            $field_value1 = unserialize($field_value);
            if (is_array($field_value1)) {
                $res = $AVE_DB->Query("SELECT Id,document_title FROM " . PREFIX . "_documents WHERE Id IN (" . implode(', ', $field_value1) . ")");
                $result = array();
                while ($mfa = $res->FetchArray()) {
                    $result[$mfa['Id']] = $mfa['document_title'];
                }
                $res = '';
                if ($tpl_field_empty) {
                    $res .= '<ul>';
                }
                foreach ($field_value1 as $k => $v) {
                    $field_value = htmlspecialchars($v, ENT_QUOTES);
                    $field_value = pretty_chars($field_value);
                    $field_value = clean_php($field_value);
                    if (!$tpl_field_empty) {
                        $field_param = explode('|', $field_value);
                        $field_value = preg_replace('/\\[tag:parametr:(\\d+)\\]/ie', '@$field_param[\\1]', $rubric_field_template);
                    } else {
                        $field_value = "<li>" . $result[$field_value] . "</li>";
                    }
                    $res .= $field_value;
                }
                if ($tpl_field_empty) {
                    $res .= '</ul>';
                }
            }
            break;
        case 'req':
            $res = get_field_default($field_value, $type, $field_id, $rubric_field_template, $tpl_field_empty, $maxlength, $document_fields, $rubric_id);
            break;
        case 'name':
            $res = 'FIELD_DOCFROMRUB_CHECK';
            break;
    }
    return $res ? $res : $field_value;
}
function get_table_defaults_sources($tablename, $fields)
{
    foreach ($fields[$tablename] as $idx => $field) {
        if (!isset($field['default']) || !empty($field['dsource'])) {
            continue;
        }
        $fields[$tablename][$idx]['dsource'] = get_field_default($tablename, $field['name']);
    }
    return $fields;
}
Example #4
0
/**
 * Функция обработки тэгов полей с использованием шаблонов
 * в соответствии с типом поля
 *
 * @param int $rubric_id	идентификатор рубрики
 * @param int $document_id	идентификатор документа
 * @param int $maxlength	максимальное количество символов обрабатываемого поля
 * @return string
 */
function request_get_document_field($rubric_id, $document_id, $maxlength = '')
{
    if (!is_numeric($document_id) || $document_id < 1) {
        return '';
    }
    $document_fields = get_document_fields($document_id);
    if (!is_array($document_fields[$rubric_id])) {
        $rubric_id = intval($document_fields[$rubric_id]);
    }
    if (empty($document_fields[$rubric_id])) {
        return '';
    }
    $field_value = trim($document_fields[$rubric_id]['field_value']);
    if ($field_value == '' && $document_fields[$rubric_id]['tpl_req_empty']) {
        return '';
    }
    $func = 'get_field_' . $document_fields[$rubric_id]['rubric_field_type'];
    if (is_callable($func)) {
        $field_value = $func($field_value, 'req', "", "", "", $maxlength, $document_fields, $rubric_id);
    } else {
        $field_value = get_field_default($field_value, 'req', "", "", "", $maxlength, $document_fields, $rubric_id);
    }
    if ($maxlength != '') {
        if ($maxlength == 'more' || $maxlength == 'esc' || $maxlength == 'img') {
            if ($maxlength == 'more') {
                //$teaser = explode('<a name="more"></a>', $field_value);
                $teaser = explode('<hr />', $field_value);
                $field_value = $teaser[0];
            } elseif ($maxlength == 'esc') {
                $field_value = addslashes($field_value);
            } elseif ($maxlength == 'img') {
                $field_value = getImgSrc($field_value);
            }
        } elseif (is_numeric($maxlength)) {
            if ($maxlength < 0) {
                $field_value = str_replace(array("\r\n", "\n", "\r"), " ", $field_value);
                $field_value = strip_tags($field_value, "<a>");
                $field_value = preg_replace('/  +/', ' ', $field_value);
                $field_value = trim($field_value);
                $maxlength = abs($maxlength);
            }
            if ($maxlength != 0) {
                $field_value = mb_substr($field_value, 0, $maxlength) . (strlen($field_value) > $maxlength ? '... ' : '');
            }
        } else {
            return false;
        }
    }
    return $field_value;
}
Example #5
0
function get_field_gps_google($field_value, $type, $field_id = '', $rubric_field_template = '', $tpl_field_empty = 0, &$maxlength = '', $document_fields = 0, $rubric_id = 0, $dropdown = '')
{
    $res = 0;
    switch ($type) {
        case 'edit':
            $res = get_field_default($field_value, $type, $field_id, $rubric_field_template, $tpl_field_empty, $maxlength) . '<input type="button" class="basicBtn" value="+" onclick="SetPlaceMarkCoords();return false;"/>&nbsp;<input type="button" class="basicBtn" value="X" onclick="ErasePlaceMarkCoords();return false;"/>';
            $code = '<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var geocoder = new google.maps.Geocoder();
var map=null;
var marker=null;

function updateMarkerPosition(latLng) {
  marker.setTitle([latLng].join(", "));
  document.getElementById("feld_<#--FIELD_ID--#>").value = [
    latLng.lat(),
    latLng.lng()
  ].join(", ");
}

function initialize() {
  if("<#--FIELD_VALUE--#>">""){
	var latlng = new google.maps.LatLng(<#--FIELD_VALUE--#>);
  }
  else
  {
    var latlng = new google.maps.LatLng(15.870, 100.992);
  }
  map = new google.maps.Map(document.getElementById("Map"), {
    zoom: 5,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  });
  if("<#--FIELD_VALUE--#>">""){
		SetPlaceMarkCoords();
	}
}

  function showAddress(address) {
    geocoder.geocode({
      "address": address,
      "partialmatch": true}, geocodeResult);
  }

  function geocodeResult(results, status) {
    if (status == "OK" && results.length > 0) {
      map.fitBounds(results[0].geometry.viewport);
    }
  }

function parseLatLng(value) {
  value.replace("/\\s//g");
  var coords = value.split(",");
  var lat = parseFloat(coords[0]);
  var lng = parseFloat(coords[1]);
  if (isNaN(lat) || isNaN(lng)) {
    return null;
  } else {
    return new google.maps.LatLng(lat, lng);
  }
}


function ErasePlaceMarkCoords(){
   marker.setMap(null);
}
function SetPlaceMarkCoords(){
  if(marker==null){marker = new google.maps.Marker({
    position: map.getCenter(),
    title: "",
    map: map,
    draggable: true
  });}else {
	marker.setMap(map);
	marker.setPosition(map.getCenter());
	}

  // Update current position info.
  updateMarkerPosition(map.getCenter());

  // Add dragging event listeners.

  google.maps.event.addListener(marker, "drag", function() {
    updateMarkerPosition(marker.getPosition());
  });

  google.maps.event.addListener(marker, "dragend", function() {
    updateMarkerPosition(marker.getPosition());
  });
}
// Onload handler to fire off the app.
google.maps.event.addDomListener(window, "load", initialize);



</script>
';
            $code .= '<p>
			<input type="text" id="address" style="width:525px;" value="" />
            <input class="basicBtn" type="button" value="Искать" onclick="showAddress(document.getElementById(\'address\').value);return false;"/>
            <div id="Map" style="width:600px;height:400px"></div>';
            $res .= str_ireplace('<#--FIELD_ID--#>', $field_id, str_ireplace('<#--FIELD_VALUE--#>', $field_value, $code));
            break;
        case 'doc':
            $res = get_field_default($field_value, $type, $field_id, $rubric_field_template, $tpl_field_empty, $maxlength);
            break;
        case 'req':
            $res = get_field_default($field_value, $type, $field_id, $rubric_field_template, $tpl_field_empty, $maxlength, $document_fields, $rubric_id);
            break;
        case 'name':
            $res = 'FIELD_GPS_GOOGLE';
            break;
    }
    return $res ? $res : $field_value;
}
Example #6
0
function get_field_video_wmv($field_value, $type, $field_id = '', $rubric_field_template = '', $tpl_field_empty = 0, &$maxlength = '', $document_fields = 0, $rubric_id = 0, $dropdown = '')
{
    $res = 0;
    switch ($type) {
        case 'edit':
            $res = get_field_video_mov($field_value, $type, $field_id, $rubric_field_template, $tpl_field_empty, $maxlength);
            break;
        case 'doc':
            $res = get_field_video_avi($field_value, $type, $field_id, $rubric_field_template, $tpl_field_empty, $maxlength);
            break;
        case 'req':
            $res = get_field_default($field_value, $type, $field_id, $rubric_field_template, $tpl_field_empty, $maxlength, $document_fields, $rubric_id);
            break;
        case 'name':
            $res = 'FIELD_VIDEO_WMV';
            break;
    }
    return $res ? $res : $field_value;
}