Shogal: Крик: о_О iptables после ребута проигнорировал правила =(, Shogal ты как с json?
Да, iptables после ребута не загружает автоматом правила, их надо через iptables-restore загружать в скрипте поднятия сети (предварительно сохранив в файл). А по поводу json, что именно интересует?
Есть мод под джумлу, там обновление его идёт аяксом, реализация ajax как я понимаю идёт через json. Обновляется неполностью скрип, а 2 переменые это какая песня играет и скулько слушают поток. Я добавил ещё и опесание потока, типа кто в эфире ну оно само по себе не обновляется.
Вот содержимое нескольких файлов в которых это всё реализовано:
update.js
IceCastUpdater = new Class({
title: '',
el: Class.empty,
active: false,
initialize: function(id, el) {
this.id = id;
this.el = el;
this.update.periodical(5000, this);
},
update: function() {
var t = this;
if (this.active) return;
this.active = true;
var myAjax = new Ajax(siteroot + '/modules/mod_icecast/ajax.php?id=' + this.id + '&ts=' + $time(), {
method: 'get',
onComplete: function(response) {
t.active = false;
var result = Json.evaluate(response);
$ES('.icecast-song', t.el).setText(result.title);
$ES('.icecast-listeners', t.el).setText(result.listeners);
}
}).request();
}
});
window.addEvent('domready', function() {
$$('.icecast_title').each(function(el) {
new IceCastUpdater(el.getText(), el.getParent());
});
});
тут как я понял надо добавить строчку
$ES('.icecast-description', t.el).setText(result.stream_description); после
$ES('.icecast-listeners', t.el).setText(result.listeners);ajax.php<?php
/**
* ICECAST - A Joomla internet radio statistic module
* @version 1.0.9
* @package mod_icecast.zip
* @copyright (C) 2010 by sli
*/
/*
* Поскольку этот скрипт является отдельной точкой входа,
* инициализируем фреймворк так же, как это сделано в /index.php
*/
define( '_JEXEC', 1 );
define('JPATH_BASE', dirname(dirname(dirname(__FILE__))) );
define( 'DS', DIRECTORY_SEPARATOR );
require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );
$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();
// Подключаем хелпер
require_once(dirname(__FILE__).DS.'helper.php');
jimport('joomla.application.module.helper');
function paramsById($id)
{
$db = JFactory::getDBO();
$db->setQuery('SELECT params FROM #__modules WHERE id = '. $db->quote($id));
return new JParameter($db->loadResult());
}
$data = ModHelperIceCast::getParams(paramsById(JRequest::getInt('id')));
if (!isset($data->listeners)) {
$data->listeners = 0;
$data->cur_song = 'n/a';
}
echo '{listeners: ', $data->listeners, ', title: "', str_replace('"', '\'\'', $data->cur_song), '"}';
?>
Чё тут дописать я не могу понять, пробовал эксперементировать, скрипт вобще перестаёт обновлять.
и вывод уже идёт:
default.php<?php
/**
* ICECAST - A Joomla internet radio statistic module
* @version 1.0.9
* @package mod_icecast.zip
* @copyright (C) 2009 - 2010 by Gronpipmaster and sli
* @Copyright (C) 2011 Nisel Alexander
*/
defined('_JEXEC') or die('Restricted access'); // no direct access
$link = $ipstream.':'.$port.'/'.$serverpoint.'.'.$serverpointtip;
JHTML::script('update.js', 'media/mod_icecast/');
?>
<div align = "center" class="icecast<?php echo $params->get('moduleclass_sfx'); ?>">
<script type="text/javascript">var siteroot = "<?php echo $baseurl ?>";</script>
<span class='icecast_title' style='display:none'><?php echo $module->id ?></span>
<a href="<?php echo $host ?>" target="_blank"><b><?php echo $ice2_station ?></b></a><p>
<div class="icacast-song"><?php echo JText::_( 'PLAYING' );?>
<p /><p class="icecast-song"><?php echo $item->cur_song?></div>
<div class="icacast-description">В эфире:
<span class="icecast-description"><?php echo $item->stream_description?></span></div><br />
<?php echo JText::_( 'CLICK' );?>
<div class="icacast-play">
<a href="http://<?php echo $link?>">
<img src="<?php echo $baseurl?>/media/mod_icecast/play.png" title="<?php echo JText::_( 'ALT_IMG' );?>" alt="<?php echo JText::_( 'ALT_IMG' );?>"></a>
</div>
<div class="icacast-list"><?php echo JText::_( 'PEOPLE' );?> <b class="icecast-listeners"><?php echo $item->listfake ?></b></div>
<div class="icacast-bitrate"><?php echo JText::_( 'BITRATE' );?> <b><?php echo $bitrate?></b> <?php echo JText::_( 'KBPS' );?></div>
</div>
Тут я дописывл:
<div class="icacast-description">В эфире:
<span class="icecast-description"><?php echo $item->stream_description?></span></div><br />