За последние 24 часа нас посетили 21817 программистов и 1692 робота. Сейчас ищут 1050 программистов ...

Лучший вариант php кода в js

Тема в разделе "PHP для новичков", создана пользователем Domaden, 18 мар 2018.

  1. Domaden

    Domaden Новичок

    С нами с:
    25 дек 2016
    Сообщения:
    10
    Симпатии:
    0
    Используя тему wordpress захотел убрать всё лишнее из шапки в отдельные файлы.
    Есть скрипт прописанный именно в шапке (код использует php вставки).
    Код (Text):
    1. <script>
    2.  
    3.     $(window).load(function() {
    4.        $('#slideshow').nivoSlider({
    5.             effect: '<?php echo of_get_option('sl_effect'); ?>',
    6.             animSpeed: <?php echo of_get_option('sl_animation_speed'); ?>,
    7.             pauseTime: <?php echo of_get_option('sl_pausetime'); ?>,
    8.             controlNav: false,
    9.             directionNav: <?php echo of_get_option('sl_dir_nav'); ?>
    10.        });
    11.     });
    12.    
    13.     $(function(){
    14.            
    15.         $('#footer_widget > li > h3').append('<span class="icon-plus-sign"></span>');
    16.         $('#sidebar > li > h3').append('<span class="icon-plus-sign"></span>');
    17.        
    18.          $('#vitrina .partnerka, #main-content > .partnerka, .table_price .partnerka, #vitrina_inn .partnerka,#sidebar_slider_wrapp .slider_rotator.partnerka').each(function() {
    19.             var part = $(this).find('.partnerka_url').text();
    20.             $(this).find('.wpshop_bag .wpshop_buy .line_1 td.wpshop_button').html('<a href="'+part+'" target="_blank"><span><?php _e( 'Купить', 'wp-shop' ); ?></span></a>');
    21.         });
    22.         $('.table_price tbody .partnerka').each(function() {
    23.             var part = $(this).find('.partnerka_url').text();
    24.             $(this).find('td.wpshop_buttons .wpshop_bag .wpshop_buy .line_1 td.wpshop_button').html('<a href="'+part+'" target="_blank"><span><?php _e( 'Купить', 'wp-shop' ); ?></span></a>');
    25.         });
    26.        
    27.         $('#vitrina_inn #item .old_price, #similar_wrap #item_similar .old_price, #rotator #item_rotator .old_price, #rotator_sidebar .slider_rotator .old_price').each(function() {
    28.             var text = $(this).text();
    29.             $(this).parent('.price_box').find('.wpshop_price').append("<p class='through'>"+text+"</p>");
    30.         });
    31.        
    32.         $('#vitrina_inn #item .wpshop_buy,#rotator #item_rotator .wpshop_buy,.vitrina_element .wpshop_buy, #rotator_sidebar .slider_rotator .wpshop_buy').each(function() {
    33.             $("tr:first",this).each(function(){
    34.                 $(this).addClass('first_price');
    35.              });
    36.         });
    37.                        
    38.         $('.table_price > tbody > tr > td').has('div.wpshop_bag').addClass('price_col');
    39.         $('.table_price > tbody > tr > td').has('div.img').addClass('img_col');
    40.         $('#sidebar > li:has(div.search)').addClass('li_search');
    41.        
    42.         $('#sidebar li.menu-item:has(ul.sub-menu)').addClass('parent_dir');
    43.         $('#sidebar > li:not(:has(h3))').addClass('no_title');
    44.         $('#sidebar li.cat-item:has(ul.children)').addClass('parent_dir');
    45.         $('#sidebar li.parent_dir > ul').before('<span class="grower"></span>');
    46.         $('.grower').click(function() {
    47.             $(this).toggleClass('bounce');
    48.             $(this).parent('#sidebar li').find('> ul').slideToggle(600);
    49.         });
    50.        
    51.         $('.single_bread a:last').addClass('last_bread');
    52.         $('.single_bread span:last').addClass('last_arrow');
    53.        
    54.         $('.wpshop_button a').html('Купить');
    55.        
    56.         var banner_count = $('#banner_center').children().length-1;
    57.         var banner_mar = $('#banner_center .banner_item:last').css('margin-left');
    58.         var banner_width = $('.banner_item').width();
    59.         var banner_rez = banner_count * banner_width + parseInt(banner_mar) * (banner_count-1);
    60.         $('#banner_center').css('width',banner_rez);
    61.            
    62.         $('form input#search').addClass('active');
    63.            
    64.         $.fn.clearDefault = function(){
    65.             return this.each(function(){
    66.                 var default_value = $(this).val();
    67.                 $(this).focus(function(){
    68.                     if ($(this).val() == default_value) $(this).val("");
    69.                 });
    70.                 $(this).blur(function(){
    71.                     if ($(this).val() == "") $(this).val(default_value);
    72.                 });
    73.             });
    74.         };  
    75.        
    76.         $('form input#search').clearDefault();
    77.        
    78.         var $comment_form = jQuery('form#commentform');
    79.         $comment_form.find('input, textarea').each(function(index,domEle){
    80.             var $et_current_input = jQuery(domEle),
    81.                 $et_comment_label = $et_current_input.siblings('label'),
    82.                 et_comment_label_value = $et_current_input.siblings('label').text();
    83.             if ( $et_comment_label.length ) {
    84.                 $et_comment_label.hide();
    85.                 if ( $et_current_input.siblings('span.required') ) {
    86.                     et_comment_label_value += $et_current_input.siblings('span.required').text();
    87.                     $et_current_input.siblings('span.required').hide();
    88.                 }
    89.                 $et_current_input.val(et_comment_label_value);
    90.             }
    91.         }).live('focus',function(){
    92.             var et_label_text = jQuery(this).siblings('label').text();
    93.             if ( jQuery(this).siblings('span.required').length ) et_label_text += jQuery(this).siblings('span.required').text();
    94.             if (jQuery(this).val() === et_label_text) jQuery(this).val("");
    95.         }).live('blur',function(){
    96.             var et_label_text = jQuery(this).siblings('label').text();
    97.             if ( jQuery(this).siblings('span.required').length ) et_label_text += jQuery(this).siblings('span.required').text();
    98.             if (jQuery(this).val() === "") jQuery(this).val( et_label_text );
    99.         });
    100.  
    101.         $comment_form.find('input#submit').click(function(){
    102.             if (jQuery("input#url").val() === jQuery("input#url").siblings('label').text()) jQuery("input#url").val("");
    103.         });
    104.        
    105.            
    106.         if ($('#slider_wrapp').length > 0) {
    107.             $('#menu-wrap-wide').addClass('gray');
    108.         }  
    109.        
    110.         if($("#main_widgets").children().length > 0){
    111.             $('#slideshow').addClass('narrow');
    112.         }
    113.        
    114.         $(".container_img").imagezoomsl({
    115.             zoomrange: [1, 3],
    116.             zoomstart: 1.5,
    117.             innerzoom: true,
    118.             magnifierborder: "none"
    119.         });
    120.        
    121.         $(".thumb_img img").click(function(){
    122.             var that = this;
    123.             $(".container_img").fadeOut(600, function(){
    124.                 $(this).attr("src",        $(that).attr("src"))
    125.                 .attr("data-large", $(that).attr("data-tmb-large"))
    126.                 .fadeIn(1000);              
    127.             });
    128.             return false;
    129.  
    130.         });
    131.        
    132.         $('#galery_wrapp div:nth-child(4n+6)').addClass('four_img');
    133.        
    134.     });
    135.    
    136.     $(window).resize(function(){
    137.         var banner_count = $('#banner_center').children().length-1;
    138.         var banner_mar = $('#banner_center .banner_item:last').css('margin-left');
    139.         var banner_width = $('.banner_item').width();
    140.         var banner_rez = banner_count * banner_width + parseInt(banner_mar) * (banner_count-1);
    141.         $('#banner_center').css('width',banner_rez);
    142.     });
    Как лучше спрятать этот код? (shkaf-vstroy. ru - сайт)
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.585
    Симпатии:
    1.762
    Как вариант поставить это всё в data-атрибуты #slideshow, а потом получать их уже в JS
     
  3. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @Domaden, скрипт выполняется после загрузки страницы.
    Перенесите его, например, в footer.php схемы.