/** * Функция обработки тегов полей с использованием шаблонов * в соответствии с типом поля * * @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; }
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; }
/** * Функция обработки тэгов полей с использованием шаблонов * в соответствии с типом поля * * @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; }
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;"/> <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; }
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; }