Вопрос к профессионалам на миллион

(Ответов: 17, Просмотров: 1193)
Страница 2 из 2 Первая 12
  1. Студент Аватар для Арамис
    • Регистрация: 21.10.2013
    • Сообщений: 46
    • Репутация: 6
    Закажите перевод шаблона
    • 0
  2. Творец Аватар для M_W
    • Регистрация: 01.05.2013
    • Сообщений: 1,107
    • Репутация: 294
    efs,
    Цитата Сообщение от efs Посмотреть сообщение
    вам необходимо найти в шаблоне темы, где именно инициализируется вывод карты и там отредактировать, указав параметры, отвечающие за локализацию
    об этом я написал в стартпосте, что не знаю, какой файл править.

    ---------- Сообщение добавлено 18:22 ---------- Предыдущее 18:21 ----------

    Цитата Сообщение от SerdjioStrel Посмотреть сообщение
    А Вы пробовали от Нью-Йорка передвинуть карту, к примеру, на Москву? Над Украиной двойное название, ну укр и англ. языке, над Россией - тоже двойное. Если Вы хотите применить шаблон на Москве, обратно же, для примера, то необходимо выводить карту не с центровкой по Манхеттену, а на Кремле. И названия будут на русском и английском
    улицы в городах только на русском - очевидно, что я пробовал.

    ---------- Сообщение добавлено 18:23 ---------- Предыдущее 18:22 ----------

    Цитата Сообщение от %D0%90%D1%80%D0%B0%D0%BC%D0%B8%D1%81 Посмотреть сообщение
    Закажите перевод шаблона
    гениально просто. Однако шаблон я весь перевел самостоятельно. Проблема, если Вы не заметили, в Гугл-карте.

    ---------- Сообщение добавлено 18:39 ---------- Предыдущее 18:23 ----------

    3s777, выдал два файла с данным скриптом, добавил параметр &language=ru - ничего не изменилось
    Качественный VPS | - за 3700 рублей в год || 2 Гб || 2000 МГц || 50 Гб || и не только
    • 0
  3. Гуру Аватар для 3s777
    • Регистрация: 09.02.2013
    • Сообщений: 1,417
    • Репутация: 384
    • Webmoney BL: ?
    M_W, а регион не пробовали прописывать? типа &region=RU
    • 0
  4. Творец Аватар для M_W
    • Регистрация: 01.05.2013
    • Сообщений: 1,107
    • Репутация: 294
    3s777,пробовал.
    Качественный VPS | - за 3700 рублей в год || 2 Гб || 2000 МГц || 50 Гб || и не только
    • 0
  5. Гуру Аватар для 3s777
    • Регистрация: 09.02.2013
    • Сообщений: 1,417
    • Репутация: 384
    • Webmoney BL: ?
    M_W, плагины кэширования отключены? точно ничего нигде не кэшируется?
    За карту отвечают точно файлы темы? Может с темой были какие плагины?
    Возможно параметры в api.google передаются через php код в файлах где вы его нашли.
    Покажите код файлов где был найдет код гугла.
    • 0
  6. Творец Аватар для M_W
    • Регистрация: 01.05.2013
    • Сообщений: 1,107
    • Репутация: 294
    3s777, плагины отключены, нигде не кэшируется. Плагинов нет, насколько я помню.
    PHP код:
    <?php

    if( !class_exists'ACF_Location_Field' ) && class_exists'acf_Field' ) ) :

    /*
     * Advanced Custom Fields - Location Field add-on
     *
     * @author Julien Bechade <julien.bechade@gmail.com>
     * @contributor Brian Zoetewey <brian.zoetewey@ccci.org>
     * @version 1.0
     *
     */

    class acf_field_location extends acf_Field
    {


        
    /*--------------------------------------------------------------------------------------
        *
        *    Constructor
        *    - This function is called when the field class is initalized on each page.
        *    - Here you can add filters / actions and setup any other functionality for your field
        *
        *    @author Elliot Condon
        *    @since 2.2.0
        *
        *-------------------------------------------------------------------------------------*/

        
    public function __construct($parent)
        {
            
    //Call parent constructor
            
    parent::__construct($parent);

            
    // set name / title
            
    $this->name 'location-field'// variable name (no spaces / special characters / etc)
            
    $this->title __'Location''acf-location-field' ); // field label (Displayed in edit screens)

            
    add_action'admin_print_scripts', array( &$this'admin_print_scripts' ), 12);
            
    add_action'admin_print_styles',  array( &$this'admin_print_styles' ),  12);

           }


        
    /*--------------------------------------------------------------------------------------
        *
        *    admin_head
        *    - this function is called in the admin_head of the edit screen where your field
        *    is created. Use this function to create css and javascript to assist your
        *    create_field() function.
        *
        *    @author Elliot Condon
        *    @since 2.2.0
        *
        *-------------------------------------------------------------------------------------*/

        
    public function admin_head()
        {
            echo 
    '<script src="https://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>';
        }


        
    /*--------------------------------------------------------------------------------------
        *
        *    admin_print_scripts / admin_print_styles
        *    - this function is called in the admin_print_scripts / admin_print_styles where
        *    your field is created. Use this function to register css and javascript to assist
        *    your create_field() function.
        *
        *    @author Elliot Condon
        *    @since 3.0.0
        *
        *-------------------------------------------------------------------------------------*/

        
    public function admin_print_styles()
        {
            global 
    $pagenow;
            
    wp_register_style'acf-location-field'plugins_url'css/input.css'__FILE__ ) );

            if( 
    in_array$pagenow, array( 'post.php''post-new.php''admin.php' ) ) )
            {
                
    wp_enqueue_style'acf-location-field' );
            }
        }

        public function 
    admin_print_scripts()
        {
            global 
    $pagenow;
            
    //wp_register_script( 'acf-location-field', $this->base_uri_abs . '/js/script.js', array( 'jquery' ) );

            
    if( in_array$pagenow, array( 'post.php''post-new.php' ) ) )
            {
                
    //wp_enqueue_script( 'acf-location-field' );
            
    }
        }


        
    /*--------------------------------------------------------------------------------------
        *
        *    set_field_defaults
        *    - populates the fields array with defaults for this field type
        *
        *    @param array $field
        *    @return array
        *
        *-------------------------------------------------------------------------------------*/

        
    private function set_field_defaults(&$field)
        {
            
    $field['center'] = isset($field['center']) ? $field['center'] : '48.856614,2.3522219000000177';
            
    $field['zoom'] = isset($field['zoom']) ? $field['zoom'] : '2';
            
    $field['val'] = isset($field['val']) ? $field['val'] : 'address';
            
    $field['scrollwheel'] = isset($field['scrollwheel']) ? $field['scrollwheel'] : '1';
        }


        
    /*--------------------------------------------------------------------------------------
        *
        *    create_options
        *    - this function is called from core/field_meta_box.php to create extra options
        *    for your field
        *
        *    @params
        *    - $key (int) - the $_POST obejct key required to save the options to the field
        *    - $field (array) - the field object
        *
        *    @author Elliot Condon
        *    @since 2.2.0
        *
        *-------------------------------------------------------------------------------------*/

        
    public function create_options($key$field)
        {
            
    $this->set_field_defaults($field);

            
    ?>
            <tr class="field_option field_option_<?php echo $this->name?>">
                <td class="label">
                    <label><?php _e('Map address','acf-location-field'); ?></label>
                    <p class="description"><?php _e('Return the address along with the coordinates.','acf-location-field'); ?></p>
                </td>
                <td>
                    <?php
                    $this
    ->parent->create_field(array(
                        
    'type' => 'radio',
                        
    'name' => 'fields['.$key.'][val]',
                        
    'value' => $field['val'],
                        
    'layout' => 'horizontal',
                        
    'choices' => array(
                            
    'address' => __('Yes''acf-location-field'),
                            
    'coordinates' => __('No''acf-location-field')
                        )
                    ));
                    
    ?>
                </td>
            </tr>
            <tr class="field_option field_option_<?php echo $this->name?>">
                <td class="label">
                    <label><?php _e('Map center','acf-location-field'); ?></label>
                    <p class="description"><?php _e('Latitude and longitude to center the initial map.','acf-location-field'); ?></p>
                </td>
                <td>
                    <?php
                    $this
    ->parent->create_field(array(
                        
    'type'    =>    'text',
                        
    'name'    =>    'fields['.$key.'][center]',
                        
    'value'    =>    $field['center']
                    ));
                    
    ?>
                </td>
            </tr>
            <tr class="field_option field_option_<?php echo $this->name?>">
                <td class="label">
                    <label><?php _e('Map zoom','acf-location-field'); ?></label>
                    <p class="description"><?php _e('','acf-location-field'); ?></p>
                </td>
                <td>
                    <?php
                    $this
    ->parent->create_field(array(
                        
    'type'    =>    'text',
                        
    'name'    =>    'fields['.$key.'][zoom]',
                        
    'value'    =>    $field['zoom']
                    ));
                    
    ?>
                </td>
            </tr>
            <tr class="field_option field_option_<?php echo $this->name?>">
                <td class="label">
                    <label><?php _e('Map Scrollwheel','acf-location-field'); ?></label>
                    <p class="description"><?php _e('Allows scrollwheel zooming on the map field','acf-location-field'); ?></p>
                </td>
                <td>
                    <?php
                    $this
    ->parent->create_field(array(
                        
    'type' => 'radio',
                        
    'name' => 'fields['.$key.'][scrollwheel]',
                        
    'value' => $field['scrollwheel'],
                        
    'layout' => 'horizontal',
                        
    'choices' => array(
                            
    '1' => __('Yes''acf-location-field'),
                            
    '0' => __('No''acf-location-field')
                        )
                    ));
                    
    ?>
                </td>
            </tr>
            <?php
        
    }


        
    /*--------------------------------------------------------------------------------------
        *
        *    pre_save_field
        *    - this function is called when saving your acf object. Here you can manipulate the
        *    field object and it's options before it gets saved to the database.
        *
        *    @author Elliot Condon
        *    @since 2.2.0
        *
        *-------------------------------------------------------------------------------------*/

        
    public function pre_save_field($field)
        {
            
    // do stuff with field (mostly format options data)

            
    return parent::pre_save_field($field);
        }


        
    /*--------------------------------------------------------------------------------------
        *
        *    create_field
        *    - this function is called on edit screens to produce the html for this field
        *
        *    @author Elliot Condon
        *    @since 2.2.0
        *
        *-------------------------------------------------------------------------------------*/

        
    public function create_field($field)
        {
            
    $this->set_field_defaults($field);

            
    // Build an unique id based on ACF's one.
            
    $pattern = array('/\[/''/\]/');
            
    $replace = array('_''');
            
    $uid preg_replace($pattern$replace$field['name']);
            
    // Retrieve options value
            
    $zoom $field['zoom'];
            
    $center explode(','$field['center']);
            
    $scrollwheel $field['scrollwheel'];

        
    ?>
        <script type="text/javascript">
            function location_init(uid){
                function addMarker(position,address){
                    if(marker){marker.setMap(null)}
                    marker = new google.maps.Marker({map:map,position:position,title:address,draggable:true});
                    map.setCenter(position);
                    dragdropMarker()
                }
                function dragdropMarker(){
                    google.maps.event.addListener(marker,'dragend',function(mapEvent){
                        coordinates = mapEvent.latLng.lat()+','+mapEvent.latLng.lng();locateByCoordinates(coordinates)})
                }
                function locateByAddress(address){
                    geocoder.geocode({'address':address},function(results,status){
                        if(status == google.maps.GeocoderStatus.OK){
                            addMarker(results[0].geometry.location,address);
                            coordinates = results[0].geometry.location.lat()+','+results[0].geometry.location.lng();
                            coordinatesAddressInput.value = address+'|'+coordinates;ddAddress.innerHTML=address;
                            ddCoordinates.innerHTML = coordinates
                        }
                        else{
                            alert("<?php _e("This address could not be found: ",'acf-location-field');?>"+status)
                        }
                    })
                }
                function locateByCoordinates(coordinates){
                    latlngTemp = coordinates.split(',',2);
                    lat = parseFloat(latlngTemp[0]);
                    lng = parseFloat(latlngTemp[1]);
                    latlng = new google.maps.LatLng(lat,lng);
                    geocoder.geocode({'latLng':latlng},function(results,status){
                        if(status == google.maps.GeocoderStatus.OK){
                            address = results[0].formatted_address;addMarker(latlng,address);
                            coordinatesAddressInput.value = address+'|'+coordinates;ddAddress.innerHTML=address;ddCoordinates.innerHTML=coordinates
                        }
                        else{
                            alert("<?php _e("This place could not be found: ",'acf-location-field');?>"+status)
                        }
                    })
                }
                var map,lat,lng,latlng,marker,coordinates,address,val;
                var geocoder = new google.maps.Geocoder();
                var ddAddress = document.getElementById('location_dd-address_'+uid);
                var dtAddress = document.getElementById('location_dt-address_'+uid);
                var ddCoordinates = document.getElementById('location_dd-coordinates_'+uid);
                var locationInput = document.getElementById('location_input_'+uid);
                var location = locationInput.value;
                var coordinatesAddressInput = document.getElementById('location_coordinates-address_'+uid);
                var coordinatesAddress = coordinatesAddressInput.value;
                if(coordinatesAddress){
                    var coordinatesAddressTemp = coordinatesAddress.split('|',2);
                    coordinates = coordinatesAddressTemp[1];
                    address = coordinatesAddressTemp[0]
                }if(address){
                    ddAddress.innerHTML = address
                }
                if(coordinates){
                    ddCoordinates.innerHTML = coordinates;
                    var latlngTemp = coordinates.split(',',2);
                    lat = parseFloat(latlngTemp[0]);
                    lng = parseFloat(latlngTemp[1])
                }else{
                    lat = <?php echo $center[0];?>;
                    lng = <?php echo $center[1];?>
                }
                latlng = new google.maps.LatLng(lat,lng);
                var mapOptions = {
                    zoom:<?php echo $zoom;?>,
                    center:latlng,
                    mapTypeId:google.maps.MapTypeId.ROADMAP,scrollwheel: <?php echo $scrollwheel?>
                };
                map = new google.maps.Map(document.getElementById('location_map_'+uid),mapOptions);
                if(coordinates){
                    addMarker(map.getCenter())
                }
                google.maps.event.addListener(map,'click',function(point){
                    locateByCoordinates(point.latLng.lat()+','+point.latLng.lng())
                });
                locationInput.addEventListener('keypress',function(event){
                    if(event.keyCode == 13){
                        location=locationInput.value;
                        var regexp = new RegExp('^\-?[0-9]{1,3}\.[0-9]{6,},\-?[0-9]{1,3}\.[0-9]{6,}$');
                        if(location){
                            if(regexp.test(location)){
                                locateByCoordinates(location)
                            }
                            else{
                                locateByAddress(location)}
                            }
                            event.stopPropagation();
                            event.preventDefault();
                            return false
                        }
                    },false);
                dtAddress.addEventListener('click',function(){
                    if(coordinates){
                        locateByCoordinates(coordinates)
                    }
                },false)
            };

            jQuery(document).ready(function(){
                location_init("<?php echo $uid;?>");
            });
            var mapids = Array();
            jQuery(document).on('acf/setup_fields',function(e){
                var new_uid = jQuery(".repeater .row input[id*=location_coordinates]").not(".exsist").last().attr("id");

                if(new_uid) {
                    new_uid = new_uid.replace("location_coordinates-address_","");
                    location_init(new_uid);
                    jQuery(".repeater .row input[id*=location_coordinates]").addClass("exsist");
                }
            });
        </script>
        <input type="hidden" value="<?php echo $field['value']; ?>" id="location_coordinates-address_<?php echo $uid?>" name="<?php echo $field['name']; ?>"/>
        <input type="text" id="location_input_<?php echo $uid?>" placeholder="<?php _e('Search for a location','acf-location-field'); ?>" />
        <dl class="location_dl">
            <dt class="location_dt-address" id="location_dt-address_<?php echo $uid?>" role="button" title="<?php _e('Find the complete address','acf-location-field'); ?>"><?php _e('Address: ','acf-location-field'); ?></dt>
            <dd class="location_dd" id="location_dd-address_<?php echo $uid?>">&nbsp;</dd>
            <dt class="location_dt-coordinates"><?php _e('Coordinates: ','acf-location-field'); ?></dt>
            <dd class="location_dd" id="location_dd-coordinates_<?php echo $uid?>">&nbsp;</dd>
        </dl>
        <div class="location_map-container">
            <div class="location_map" id="location_map_<?php echo $uid?>"></div>
        </div>
        <?php
        
    }

        
    /*--------------------------------------------------------------------------------------
        *
        *    update_value
        *    - this function is called when saving a post object that your field is assigned to.
        *    the function will pass through the 3 parameters for you to use.
        *
        *    @params
        *    - $post_id (int) - usefull if you need to save extra data or manipulate the current
        *    post object
        *    - $field (array) - usefull if you need to manipulate the $value based on a field option
        *    - $value (mixed) - the new value of your field.
        *
        *    @author Elliot Condon
        *    @since 2.2.0
        *
        *-------------------------------------------------------------------------------------*/

        
    public function update_value($post_id$field$value)
        {
            
    // do stuff with value

            // save value
            
    parent::update_value($post_id$field$value);
        }





        
    /*--------------------------------------------------------------------------------------
        *
        *    get_value
        *    - called from the edit page to get the value of your field. This function is useful
        *    if your field needs to collect extra data for your create_field() function.
        *
        *    @params
        *    - $post_id (int) - the post ID which your value is attached to
        *    - $field (array) - the field object.
        *
        *    @author Elliot Condon
        *    @since 2.2.0
        *
        *-------------------------------------------------------------------------------------*/

        
    public function get_value($post_id$field)
        {
            
    // get value
            
    $value parent::get_value($post_id$field);

            
    // format value

            // return value
            
    return $value;
        }


        
    /*--------------------------------------------------------------------------------------
        *
        *    get_value_for_api
        *    - called from your template file when using the API functions (get_field, etc).
        *    This function is useful if your field needs to format the returned value
        *
        *    @params
        *    - $post_id (int) - the post ID which your value is attached to
        *    - $field (array) - the field object.
        *
        *    @author Elliot Condon
        *    @since 3.0.0
        *
        *-------------------------------------------------------------------------------------*/

        
    public function get_value_for_api($post_id$field)
        {
            
    // get value
            
    $value $this->get_value($post_id$field);

            
    // format value
            
    $value explode('|'$value);
            
            
    // check that we have a value
            
    $value array_filter$value );
            if ( empty (
    $value ) ) return '';

            if (
    $field['val'] == 'address')
            {
                
    $value = array( 'coordinates' => $value[1], 'address' => $value[0] );
            }
            else {
                
    $value $value[1];
            }

            
    // return value
            
    return $value;

        }

    }
    endif; 
    //class_exists 'ACF_Location_Field'

    ?>
    PHP код:
    <?php

    class acf_field_location extends acf_field
    {
        
    // vars
        
    var $settings// will hold info such as dir / path
            
    $defaults// will hold default field options
            
            
        /*
        *  __construct
        *
        *  Set name / label needed for actions / filters
        *
        *  @since    3.6
        *  @date    23/01/13
        */
        
        
    function __construct()
        {
            
    // vars
            
    $this->name 'location-field';
            
    $this->label __('Location Map','acf-location-field');
            
    $this->category __('Content','acf');
            
    $this->defaults = array(
                
    'center' => '48.856614,2.3522219000000177',
                
    'zoom'    =>    16,
                
    'val'    =>    'address',
                
    'scrollwheel'    =>    1
            
    );
            
            
            
    // do not delete!
            
    parent::__construct();
            
            
            
    // settings
            
    $this->settings = array(
                
    'path' => apply_filters('acf/helpers/get_path'__FILE__),
                
    'dir' => apply_filters('acf/helpers/get_dir'__FILE__),
                
    'version' => '1.0.0'
            
    );
            

        }
        
        
        
    /*
        *  input_admin_enqueue_scripts()
        *
        *  This action is called in the admin_enqueue_scripts action on the edit screen where your field is created.
        *  Use this action to add css + javascript to assist your create_field() action.
        *
        *  $info    http://codex.wordpress.org/Plugin_API/Action_Reference/admin_enqueue_scripts
        *  @type    action
        *  @since    3.6
        *  @date    23/01/13
        */

        
    function input_admin_enqueue_scripts()
        {
            
    // register acf scripts
            //wp_register_script( 'acf-input-location', $this->settings['dir'] . 'js/input.js', array('acf-input'), $this->settings['version'] );
            
    wp_register_style'acf-input-location'$this->settings['dir'] . 'css/input.css', array('acf-input'), $this->settings['version'] ); 
            
            
            
    // scripts
            
    wp_enqueue_script(array(
                
    //'acf-input-location',    PHP in JS? What the?
            
    ));

            
    // styles
            
    wp_enqueue_style(array(
                
    'acf-input-location',    
            ));
            
        }
        
        
        
    /*
        *  input_admin_head()
        *
        *  This action is called in the admin_head action on the edit screen where your field is created.
        *  Use this action to add css and javascript to assist your create_field() action.
        *
        *  @info    http://codex.wordpress.org/Plugin_API/Action_Reference/admin_head
        *  @type    action
        *  @since    3.6
        *  @date    23/01/13
        */

        
    function input_admin_head()
        {
            echo 
    '<script src="https://maps.googleapis.com/maps/api/js?sensor=false" type="text/javascript"></script>';
        }
        
        
        
    /*
        *  create_options()
        *
        *  Create extra options for your field. This is rendered when editing a field.
        *  The value of $field['name'] can be used (like bellow) to save extra data to the $field
        *
        *  @type    action
        *  @since    3.6
        *  @date    23/01/13
        *
        *  @param    $field    - an array holding all the field's data
        */
        
        
    function create_options$field )
        {
            
    // defaults
            
    $field array_merge($this->defaults$field);
            
            
            
    // key is needed in the field names to correctly save the data
            
    $key $field['name'];
            
            
            
    // Create Field Options HTML
            
    ?>
    <tr class="field_option field_option_<?php echo $this->name?>">
        <td class="label">
            <label><?php _e('Return Value','acf-location-field'); ?></label>
        </td>
        <td>
            <?php
            do_action
    ('acf/create_field', array(
                
    'type' => 'radio',
                
    'name' => 'fields['.$key.'][val]',
                
    'value' => $field['val'],
                
    'layout' => 'horizontal',
                
    'choices' => array(
                    
    'address' => __('Coordinates & Address''acf-location-field'),
                    
    'coordinates' => __('Coordinates''acf-location-field')
                )
            ));
            
    ?>
        </td>
    </tr>
    <tr class="field_option field_option_<?php echo $this->name?>">
        <td class="label">
            <label><?php _e('Map center','acf-location-field'); ?></label>
            <p class="description"><?php _e('Latitude and longitude to center the initial map.','acf-location-field'); ?></p>
        </td>
        <td>
            <?php
            do_action
    ('acf/create_field', array(
                
    'type'    =>    'text',
                
    'name'    =>    'fields['.$key.'][center]',
                
    'value'    =>    $field['center']
            ));
            
    ?>
        </td>
    </tr>
    <tr class="field_option field_option_<?php echo $this->name?>">
        <td class="label">
            <label><?php _e('Map zoom','acf-location-field'); ?></label>
            <p class="description"><?php _e('','acf-location-field'); ?></p>
        </td>
        <td>
            <?php
            do_action
    ('acf/create_field', array(
                
    'type'    =>    'number',
                
    'name'    =>    'fields['.$key.'][zoom]',
                
    'value'    =>    $field['zoom']
            ));
            
    ?>
        </td>
    </tr>
    <tr class="field_option field_option_<?php echo $this->name?>">
        <td class="label">
            <label><?php _e('Map Scrollwheel','acf-location-field'); ?></label>
            <p class="description"><?php _e('Allows scrollwheel zooming on the map field','acf-location-field'); ?></p>
        </td>
        <td>
            <?php
            do_action
    ('acf/create_field', array(
                
    'type' => 'radio',
                
    'name' => 'fields['.$key.'][scrollwheel]',
                
    'value' => $field['scrollwheel'],
                
    'layout' => 'horizontal',
                
    'choices' => array(
                    
    => __('Yes''acf-location-field'),
                    
    => __('No''acf-location-field')
                )
            ));
            
    ?>
        </td>
    </tr>
            <?php
            
        
    }
        
        
        
    /*
        *  create_field()
        *
        *  Create the HTML interface for your field
        *
        *  @param    $field - an array holding all the field's data
        *
        *  @type    action
        *  @since    3.6
        *  @date    23/01/13
        */
        
        
    function create_field$field )
        {
            
    // defaults
            
    $field array_merge($this->defaults$field);
            
            
    // Build an unique id based on ACF's one.
            
    $pattern = array('/\[/''/\]/');
            
    $replace = array('_''');
            
    $uid preg_replace($pattern$replace$field['name']);
            
    // Retrieve options value
            
    $zoom $field['zoom'];
            
    $center explode(','$field['center']);
            
    $scrollwheel $field['scrollwheel'];

            
    ?>
    <script type="text/javascript">
        function location_init(uid){
            function addMarker(position,address){
                if(marker){marker.setMap(null)}
                marker = new google.maps.Marker({map:map,position:position,title:address,draggable:true});
                map.setCenter(position);
                dragdropMarker()
            }
            function dragdropMarker(){
                google.maps.event.addListener(marker,'dragend',function(mapEvent){
                    coordinates = mapEvent.latLng.lat()+','+mapEvent.latLng.lng();locateByCoordinates(coordinates)})
            }
            function locateByAddress(address){
                geocoder.geocode({'address':address},function(results,status){
                    if(status == google.maps.GeocoderStatus.OK){
                        addMarker(results[0].geometry.location,address);
                        coordinates = results[0].geometry.location.lat()+','+results[0].geometry.location.lng();
                        coordinatesAddressInput.value = address+'|'+coordinates;ddAddress.innerHTML=address;
                        ddCoordinates.innerHTML = coordinates
                    }
                    else{
                        alert("<?php _e("This address could not be found: ",'acf-location-field');?>"+status)
                    }
                })
            }
            function locateByCoordinates(coordinates){
                latlngTemp = coordinates.split(',',2);
                lat = parseFloat(latlngTemp[0]);
                lng = parseFloat(latlngTemp[1]);
                latlng = new google.maps.LatLng(lat,lng);
                geocoder.geocode({'latLng':latlng},function(results,status){
                    if(status == google.maps.GeocoderStatus.OK){
                        address = results[0].formatted_address;addMarker(latlng,address);
                        coordinatesAddressInput.value = address+'|'+coordinates;ddAddress.innerHTML=address;ddCoordinates.innerHTML=coordinates
                    }
                    else{
                        alert("<?php _e("This place could not be found: ",'acf-location-field');?>"+status)
                    }
                })
            }
            var map,lat,lng,latlng,marker,coordinates,address,val;
            var geocoder = new google.maps.Geocoder();
            var ddAddress = document.getElementById('location_dd-address_'+uid);
            var dtAddress = document.getElementById('location_dt-address_'+uid);
            var ddCoordinates = document.getElementById('location_dd-coordinates_'+uid);
            var locationInput = document.getElementById('location_input_'+uid);
            var location = locationInput.value;
            var coordinatesAddressInput = document.getElementById('location_coordinates-address_'+uid);
            var coordinatesAddress = coordinatesAddressInput.value;
            if(coordinatesAddress){
                var coordinatesAddressTemp = coordinatesAddress.split('|',2);
                coordinates = coordinatesAddressTemp[1];
                address = coordinatesAddressTemp[0]
            }if(address){
                ddAddress.innerHTML = address
            }
            if(coordinates){
                ddCoordinates.innerHTML = coordinates;
                var latlngTemp = coordinates.split(',',2);
                lat = parseFloat(latlngTemp[0]);
                lng = parseFloat(latlngTemp[1])
            }else{
                lat = <?php echo $center[0];?>;
                lng = <?php echo $center[1];?>
            }
            latlng = new google.maps.LatLng(lat,lng);
            var mapOptions = {
                zoom:<?php echo $zoom;?>,
                center:latlng,
                mapTypeId:google.maps.MapTypeId.ROADMAP,scrollwheel: <?php echo $scrollwheel?>
            };
            map = new google.maps.Map(document.getElementById('location_map_'+uid),mapOptions);
            if(coordinates){
                addMarker(map.getCenter())
            }
            google.maps.event.addListener(map,'click',function(point){
                locateByCoordinates(point.latLng.lat()+','+point.latLng.lng())
            });
            locationInput.addEventListener('keypress',function(event){
                if(event.keyCode == 13){
                    location=locationInput.value;
                    var regexp = new RegExp('^\-?[0-9]{1,3}\.[0-9]{6,},\-?[0-9]{1,3}\.[0-9]{6,}$');
                    if(location){
                        if(regexp.test(location)){
                            locateByCoordinates(location)
                        }
                        else{
                            locateByAddress(location)}
                        }
                        event.stopPropagation();
                        event.preventDefault();
                        return false
                    }
                },false);
            dtAddress.addEventListener('click',function(){
                if(coordinates){
                    locateByCoordinates(coordinates)
                }
            },false)
        };

        jQuery(document).ready(function(){
            location_init("<?php echo $uid;?>");
        });
        var mapids = Array();
        jQuery(document).on('acf/setup_fields',function(e){
            var new_uid = jQuery(".repeater .row input[id*=location_coordinates]").not(".exsist").last().attr("id");

            if(new_uid) {
                new_uid = new_uid.replace("location_coordinates-address_","");
                location_init(new_uid);
                jQuery(".repeater .row input[id*=location_coordinates]").addClass("exsist");
            }
        });
    </script>
    <input type="hidden" value="<?php echo $field['value']; ?>" id="location_coordinates-address_<?php echo $uid?>" name="<?php echo $field['name']; ?>"/>
    <input type="text" id="location_input_<?php echo $uid?>" placeholder="<?php _e('Search for a location','acf-location-field'); ?>" />
    <dl class="location_dl">
        <dt class="location_dt-address" id="location_dt-address_<?php echo $uid?>" role="button" title="<?php _e('Find the complete address','acf-location-field'); ?>"><?php _e('Address: ','acf-location-field'); ?></dt>
        <dd class="location_dd" id="location_dd-address_<?php echo $uid?>">&nbsp;</dd>
        <dt class="location_dt-coordinates"><?php _e('Coordinates: ','acf-location-field'); ?></dt>
        <dd class="location_dd" id="location_dd-coordinates_<?php echo $uid?>">&nbsp;</dd>
    </dl>
    <div class="location_map-container">
        <div class="location_map" id="location_map_<?php echo $uid?>"></div>
    </div>
            <?php
        
    }
        
        
        
        
    /*
        *  format_value_for_api()
        *
        *  This filter is appied to the $value after it is loaded from the db and before it is passed back to the api functions such as the_field
        *
        *  @type    filter
        *  @since    3.6
        *  @date    23/01/13
        *
        *  @param    $value    - the value which was loaded from the database
        *  @param    $field    - the field array holding all the field options
        *
        *  @return    $value    - the modified value
        */
        
        
    function format_value_for_api$value$post_id$field )
        {
            
    // defaults
            
    $field array_merge($this->defaults$field);
        

            
    // format value
            
    $value explode('|'$value);
            
            if( 
    $field['val'] == 'address' )
            {
                
    $value = array( 'coordinates' => $value[1], 'address' => $value[0] );
            }
            else
            {
                
    $value $value[1];
            }
            
            
            return 
    $value;
        }
        
    }


    // create field
    new acf_field_location();

    ?>
    Качественный VPS | - за 3700 рублей в год || 2 Гб || 2000 МГц || 50 Гб || и не только
    • 0
  7. Гуру Аватар для 3s777
    • Регистрация: 09.02.2013
    • Сообщений: 1,417
    • Репутация: 384
    • Webmoney BL: ?
    M_W, скорее всего это что-то не то
    Вот такой код формируют скрипты на вывод в шаблоне
    <script type='text/javascript' src='http://maps.google.com/maps/api/js?sensor=true&#038;libraries=places&#038;language =en&#038;ver=3.9.2'></script>
    т.е как видите язык стоит en, а значит он где-то задается. Или в коде или в админке. Попробуйте поискать тотал файлы темы по слову "language" или просто "google"
    • 1

    Спасибо сказали:

    M_W(25.10.2014),
  8. Творец Аватар для M_W
    • Регистрация: 01.05.2013
    • Сообщений: 1,107
    • Репутация: 294
    3s777,вопрос решен! Огромное Вам спасибо! Нашел таки!
    Качественный VPS | - за 3700 рублей в год || 2 Гб || 2000 МГц || 50 Гб || и не только
    • 0
Страница 2 из 2 Первая 12

Похожие темы

Темы Раздел Ответов Последний пост
Вопрос к профессионалам Адвордс
PPC и контекстная реклама 8 14.03.2014 21:35
Вопрос к профессионалам Адвордс
Вопросы от новичков 0 01.03.2014 23:20
VerifiedAccount доверяй профессионалам!
Реклама партнерских программ 1 28.11.2011 02:16
Абузоустойчивый хостинг-сервис, доверяй профессионалам
Хостинг и Серверы 0 23.02.2010 01:42
Доверим трафик профессионалам!?
Общие вопросы поисковой оптимизации 52 09.10.2009 18:08

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры