Внешний скрипт для двойки

Внешний скрипт для двойки

#1 7 апреля 2016 в 08:24
Как в двойке, в статью добавить php код? В первой ветке можно было Внешний скрипт подцепить.
#2 7 апреля 2016 в 08:37

Как в двойке, в статью добавить php код?

mic
А зачем?

В первой ветке можно было Внешний скрипт подцепить.

mic
Во второй был где-то подобный виджет.
#3 7 апреля 2016 в 08:41

А зачем?

Val
нужно информер в статье вывести
#5 7 апреля 2016 в 10:17
Val, у меня есть этот виджет он косячный. Еще он будет выводить во всех статьях, а мне надо пока в одной
#6 7 апреля 2016 в 10:38
mic, как вариант пропишите в файле шаблона ..\templates\default\content\default_item.tpl.php с фильтрацией по требуемой статье
#7 7 апреля 2016 в 10:47
Val, тоже так думаю, но это костыльный метод) и не получится под h1 вывести код, либо до, либо после всех полей. В первой ветке это было красиво реализовано, а тут гемор.
#9 7 апреля 2016 в 11:08
Evanescence, Думаю такой код не будет работать:
  1. <?php
  2. $city_id = 27612;
  3. $cache_lifetime = 7200;
  4. $cache_file = 'weather_'.$city_id.'.xml';
  5. function loadxmlyansex($city_id)
  6. {
  7. $url = 'http://export.yandex.ru/weather-ng/forecasts/'.$city_id.'.xml';
  8. $userAgent = 'Googlebot/2.1 (+http://www.google.com/bot.html)';
  9. $xml = 'weather_'.$city_id.'.xml';
  10. $ch = curl_init($url);
  11. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  12. curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
  13. curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
  14. $output = curl_exec($ch);
  15. $fh = fopen($xml, 'w');
  16. fwrite($fh, $output);
  17. fclose($fh);
  18. }
  19.  
  20. if ( file_exists($cache_file) ) {
  21. $cache_modified = time() - @filemtime($cache_file);
  22. if ( $cache_modified > $cache_lifetime )
#10 7 апреля 2016 в 11:12
mic, Тогда лучше создать поле
#11 7 апреля 2016 в 11:19
Evanescence, какое?
#12 7 апреля 2016 в 12:18

какое?

mic
Поле что бы вывести результат, только я не понял, что выводить ваш код? вроде нету echo а что то записывает в файл
#13 7 апреля 2016 в 12:25
Evanescence, нету такого поля, было бы я тему не создавал. Это не весь код был.Вот полный код:
  1. <?php
  2. $city_id = 27612; //id города, вписать свой, можно узнать тут https://pogoda.yandex.ru/static/cities.xml - параметр city id=
  3. $cache_lifetime = 7200; //время кэша файла в секундах, 3600=1 час
  4. $cache_file = 'weather_'.$city_id.'.xml'; // временный файл-кэш
  5.  
  6. function loadxmlyansex($city_id)
  7. {
  8. $url = 'http://export.yandex.ru/weather-ng/forecasts/'.$city_id.'.xml';
  9. $userAgent = 'Googlebot/2.1 (+http://www.google.com/bot.html)';
  10. $xml = 'weather_'.$city_id.'.xml';
  11. $ch = curl_init($url);
  12. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  13. curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
  14. curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
  15. $output = curl_exec($ch);
  16. $fh = fopen($xml, 'w');
  17. fwrite($fh, $output);
  18. fclose($fh);
  19. }
  20.  
  21. if ( file_exists($cache_file) ) {
  22. $cache_modified = time() - @filemtime($cache_file);
  23. if ( $cache_modified > $cache_lifetime )
  24.  
  25. {
  26. //обновляем файл погоды, если время файла кэша устарело
  27. loadxmlyansex($city_id);
  28. }
  29. }
  30. else {
  31. //если нет файла погоды вообще, закачиваем его
  32. loadxmlyansex($city_id);
  33. }
  34. ?>
  35. <?php
  36. if(file_exists($cache_file)):
  37. $data = simplexml_load_file($cache_file); ?>
  38. <style type="text/css">
  39. .weather .date{font-size:13px;font-weight:700;padding-bottom:5px;text-transform:uppercase;border-bottom:1px solid #d5d5d5;margin-top:10px;}
  40. .weather .item{background-color:#DAD9D5;padding:15px;font-family:Georgia;margin-bottom:20px;}
  41. .weather .item table{border:0;width:100%;}
  42. .weather .item table td{padding-bottom:15px;width:20%;vertical-align:baseline;padding-right:5px;}
  43. .weather .item .day-part td{font-size:18px;}
  44. .weather .item .day-temp td{font-size:30px;}
  45. .weather .item .day-temp td img{margin-left:5px;}
  46. .weather .item .day-param td{font-size:12px;}
  47. .weather .item .day-param td p{padding-bottom:3px;}
  48. .weather .days{margin-top:35px;border:0;width:100%;}
  49. .weather .days td{width:50%;padding-bottom:35px;}
  50. .weather .days a{font-family:Georgia;font-size:18px;text-decoration:underline;font-weight:700;}
  51.  
  52. .tabs input[type=radio] {
  53. position: absolute;
  54. top: -9999px;
  55. left: -9999px;
  56. }
  57. .tabs {
  58. width: 1000px;
  59. float: none;
  60. list-style: none;
  61. position: relative;
  62. padding: 0;
  63. margin: 75px auto;
  64. font-family: "Georgia";
  65. }
  66. .tabs li{
  67. float: left;
  68. }
  69. .tabs label {
  70. display: block;
  71. padding: 10px 8px;
  72. border-radius: 2px 2px 0 0;
  73. color: #000;
  74. font-size: 18px;
  75. font-weight: normal;
  76. font-family: 'Lily Script One', helveti;
  77. background: rgba(255,255,255,0.2);
  78. cursor: pointer;
  79. position: relative;
  80. top: 3px;
  81. -webkit-transition: all 0.2s ease-in-out;
  82. -moz-transition: all 0.2s ease-in-out;
  83. -o-transition: all 0.2s ease-in-out;
  84. transition: all 0.2s ease-in-out;
  85. }
  86. .tabs label:hover {
  87. background: rgba(255,255,255,0.5);
  88. top: 0;
  89. }
  90. [id^=tab]:checked + label {
  91. background: #B7B7B7;
  92. color: white;
  93. }
  94. [id^=tab]:checked ~ [id^=tab-content] {
  95. display: block;
  96. }
  97. .tab-content{
  98. z-index: 2;
  99. display: none;
  100. text-align: left;
  101. width: 100%;
  102. font-size: 20px;
  103. line-height: 140%;
  104. padding-top: 10px;
  105. background: #B7B7B7;
  106. padding: 15px;
  107. color: white;
  108. position: absolute;
  109. top: 53px;
  110. left: 0;
  111. box-sizing: border-box;
  112. -webkit-animation-duration: 0.5s;
  113. -o-animation-duration: 0.5s;
  114. -moz-animation-duration: 0.5s;
  115. animation-duration: 0.5s;
  116. }</style><div class="weather"><ul class="tabs"><?php
  117. foreach($data->day as $day):?>
  118. <li><?php $s6=$s6+1;?><input type="radio"
  119. <?php if($s6==1) echo "checked";
  120. else
  121. echo "";?> name="tabs" id="tab<?php echo $s1=$s1+1;?>">
  122. <label for="tab<?php echo $s2=$s2+1;?>"><div class="date"><?php echo getDayDate($day['date']);?></div></label>
  123. <div id="tab-content<?php echo $s3=$s3+1;?>" class="tab-content animated fadeIn">
  124. <div class="item"><table><tr class="day-part"><td>Утром</td><td>Днем</td><td>Вечером</td><td>Ночью</td>
  125. </tr><tr class="day-temp"><?php for($i = 0;$i < 4;$i++): // т.к. нам не нужны данные day_short и night_short, мы останавливаем проход на 4
  126. $img = $day->day_part[$i]->{'image-v3'};?><td><?php echo getTempSign($day->day_part[$i]->{'temperature-data'}->avg);?> °C <img src="pogoda/<?php echo $img;?>.png" width="48" height="48" /></td><?php endfor;?>
  127. </tr><tr class="day-param"><?php for($i = 0;$i < 4;$i++): // т.к. нам не нужны данные day_short и night_short, мы останавливаем проход на 4?>
  128. <td><p><strong><?php echo $day->day_part[$i]->weather_type;?></strong></p><p>ветер: <?php echo getWindDirection($day->day_part[$i]->wind_direction).' '.$day->day_part[$i]->wind_speed;?> м/с</p>
  129. <p>влажность: <?php echo $day->day_part[$i]->humidity;?>%</p><p>давление: <?php echo $day->day_part[$i]->pressure;?> мм рт. ст.</p>
  130. </td><?php endfor;?></tr></table></div></div></li><?php
  131. endforeach;?>
  132. </ul></div>
  133. <?php
  134. endif;
  135. // получаем локализованную дату
  136. function getDayDate($date)
  137. {
  138. $date = strtotime($date);
  139. $months = array('','/01','/02','/03','/04','/05','/06','/07','/08','/09','/10','/11','/12');
  140. $days = array('ВС','ПН', 'ВТ', 'СР', 'ЧТ', 'ПТ', 'СБ');
  141. return $days[date('w', $date)].', '.(int)date('d',$date).' '.$months[date('n', $date)];
  142. }
  143. // получаем знак температуры
  144. function getTempSign($temp)
  145. {
  146. $temp = (int)$temp;
  147. return $temp > 0 ? '+'.$temp : $temp;
  148. }
  149. // получаем направления ветра
  150. function getWindDirection($wind)
  151. {
  152. $wind = (string)$wind;
  153. $wind_direction = array('s'=>'&#8593; ю','n'=>'&#8595; с','w'=>'&#8594; з','e'=>'&#8592; в','sw'=>'&#8599; юз','se'=>'&#8598; юв','nw'=>'&#8600; сз','ne'=>'&#8601; св');
  154. return $wind_direction[$wind];
  155. }
  156. ?>
#14 7 апреля 2016 в 12:31
mic, не проще создать статическую страницу и прикрепить к ней виджет погоды?
#15 7 апреля 2016 в 12:35
Soul, не проще т.к виджет не будет под заголовком.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.