За последние 24 часа нас посетили 16477 программистов и 1578 роботов. Сейчас ищут 917 программистов ...

Вызов информера

Тема в разделе "JavaScript и AJAX", создана пользователем rustrek, 27 дек 2012.

  1. rustrek

    rustrek Активный пользователь

    С нами с:
    17 дек 2012
    Сообщения:
    23
    Симпатии:
    0
    Здравствуйте.

    Делают новостной информер для пользователей. Сделал страницу на которой пользователь может настроить информер под себя - размер картинки, цвет рамки, цвет текста, размер текста и т.д..

    Всё работает вот пример [​IMG]

    сложностей не было.

    теперь мне нужно всё это передать посредством js пользователю, делаю следуюшее:

    создал отдельный php файл, в нём сделал функцию вывода новостей.

    создал в нём переменные и передают их в js файл
    Код (Text):
    1.  
    2. function jsCodeHtmlChars(r) {
    3.     r=jsStringReplace(r,"'","'");
    4.     return (r);
    5. }
    6. function jsStringReplace(text,searchString, replaceString) {
    7.     lengthSearchString=searchString.length;
    8.     lengthReplaceString=replaceString.length;
    9.     rezultText=text;
    10.     start_poz=0;
    11.     while ((poz=rezultText.indexOf(searchString,start_poz))!=-1) {
    12.             firstPart=rezultText.substring(0,poz);
    13.             lengthRezultText=rezultText.length;
    14.             endPart=rezultText.substring(poz+lengthSearchString, lengthRezultText );
    15.             rezultText=firstPart+replaceString+endPart;
    16.             start_poz=poz+lengthReplaceString;
    17.         }
    18.     return (rezultText);
    19. }
    20. var openLinks = (links == '1') ? ' target="_blank" ' : '';
    21. var startBlock = '<div id="iinews20">';
    22. var feedName = jsCodeHtmlChars('');
    23. var startUl = '<ul>';
    24.  
    25. {exp:weblog:entries limit="1" category="not 24" weblog="news" disable="categories|trackbacks|pagination|member_data|category_fields" dynamic="off"}
    26. var srartLi0 = '<li>';
    27. var startDiv0 = '<div>';
    28. var itemImg0 = jsCodeHtmlChars('<!--IMG-->{exp:ce_img:pair src="{pic_rss}" filter="brightness,11|selective_blur" hash_filename="yes" width="100" height="68" crop="yes"}<a href="{homepage}news/{url_title}/"'+openLinks+'><img height="68" style="width:100px; height: 68px; border: 0px solid rgb(255, 255, 255);" width="100" height="68" alt="{title}" src="http://monavista.ru{made}" align="left" /></a>{/exp:ce_img:pair}<!--END IMG-->');
    29. var headLine0 = jsCodeHtmlChars('<div class="headline"><a href="{homepage}news/{url_title}/"'+openLinks+'>{title}</a></div>');
    30. var itemDate0 = '<span class="date">{entry_date format="%d.%m.%Y"}&nbsp;</span>';
    31. var itemText0 = jsCodeHtmlChars('<span class="announce">{exp:cleaner}{exp:trunchtml chars="200" inline=".."}{content}{/exp:trunchtml}{/exp:cleaner}</span>');
    32. var endDiv0 = '</div>';
    33. var endLi0 = '</li>';
    34. {/exp:weblog:entries}
    35. {exp:weblog:entries offset="1" limit="18" category="not 24" weblog="news" disable="categories|trackbacks|pagination|member_data|category_fields" dynamic="off"}
    36. var srartLi{count} = '<li>';
    37. var startDiv{count} = '<div>';
    38. var itemImg{count} = jsCodeHtmlChars('{exp:ce_img:pair src="{pic_rss}" filter="brightness,11|selective_blur" hash_filename="yes" width="100" height="68" crop="yes"}<a href="{homepage}news/{url_title}/"'+openLinks+'><img height="68" style="width:100px; height: 68px; border: 0px solid rgb(255, 255, 255);" width="100" height="68" alt="{title}" src="http://monavista.ru{made}" align="left" /></a>{/exp:ce_img:pair}<!--END IMG-->');
    39. var headLine{count} = jsCodeHtmlChars('<div class="headline"><a href="{homepage}news/{url_title}/"'+openLinks+'>{title}</a></div>');
    40. var itemDate{count} = '<span class="date">{entry_date format="%d.%m.%Y"}&nbsp;</span>';
    41. var itemText{count} = jsCodeHtmlChars('<span class="announce">{exp:cleaner}{exp:trunchtml chars="200" inline=".."}{content}{/exp:trunchtml}{/exp:cleaner}</span>');
    42. var endDiv{count} = '</div>';
    43. var endLi{count} = '</li>';
    44. {/exp:weblog:entries}
    45.  
    46. var endUl = '</ul>';
    47. var endBlock = '<div style="clear:both;height:1px;display:block;font-size:1px"></div></div>';
    48. document.write (startBlock);
    49. document.write (feedName);
    50. document.write (startUl);
    51. var numToShow = (nItems != 'all' && nItems != undefined) ? nItems : 19;
    52. for (i=0;i<numToShow;i++) {
    53.     document.write (eval('srartLi'+i));
    54.     document.write (eval('startDiv'+i));
    55.     if (showImg == '1') document.write (eval('itemImg'+i));  // picture
    56.     document.write (eval('headLine'+i));                   // title
    57.     if (showTxt == '1') document.write (eval('itemDate'+i)); // date
    58.     if (showTxt == '1') document.write (eval('itemText'+i)); // text
    59.     document.write (eval('endDiv'+i));
    60.     document.write (eval('endLi'+i));
    61. }
    62. document.write (endUl);
    63. document.write (endBlock);
    передача - $content = str_replace('{title}',$title,$content);

    но теперь не могу понять как мне инклудить в js что бы вызвать функции php?

    вывод будет такой

    Код (Text):
    1.  
    2. <style type='text/css'>
    3. <<<здесь стили >>>
    4. </style>
    5. <script type="text/javascript">var nItems = "4";var showImg = 1;var showTxt = 1;var fName = 0;var credit = 0;var links = 0;</script>
    6. <script src="/infor.js" type="text/javascript" charset="utf-8"></script><div style="padding-top:5px;font-size:11px;"></div>
    где nItems = "4" количество новостей и т.д...

    перечитал кучу литературы, запутался ещё больше, подскажите как правильно вызвать эти новости посредством вывода в js файл ?
     
  2. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Омайгаребл...
     
  3. rustrek

    rustrek Активный пользователь

    С нами с:
    17 дек 2012
    Сообщения:
    23
    Симпатии:
    0
    да, я писал в 4 утра, вот и получился каламбур.

    А на мой непонятный французский, не обращайте внимание, я из украины и 7 лет живу в праге, так, что согласен, что я далеко не Пушкин, с этим сбродом языков (украинский, русский, чешский, английский)

    лан буду разбираться
     
  4. alba2001

    alba2001 Активный пользователь

    С нами с:
    7 фев 2012
    Сообщения:
    56
    Симпатии:
    0
    Код (Text):
    1. но теперь не могу понять как мне инклудить в js что бы вызвать функции php?
    Ничего из этого не понял.
    Если хотите вызывать php скрипт не перегружая страничку клиента используйте технологию ajax.