0 Пользователей и 1 Гость просматривают эту тему.
  • 34 Ответов
  • 2575 Просмотров
*

deminevgen

  • Захожу иногда
  • 115
  • 2 / 0
[Решено] Вывод данных в js
« : 08.01.2016, 16:22:14 »
Я в js и php не силён, но вот как выводятся данные из XML файла я понял.
Код
<field name="PLG_SMOOTH_SPEED" type="text" extension="plg_system_smooth_scroll_speed" description="PLG_SMOOTH_SPEED_DESC"/>
и в php файл потом добавляем
Код
if( $displayData['params']->get('plg_system_smooth_scroll_speed')!= '' ) {
?> бла бла бла и <?php echo $displayData['params']->get('plg_system_smooth_scroll_speed'); ?> бла бла бла <?php
}
а как мне вывести тоже самое в js файле? именно эту строку
Код
<?php echo $displayData['params']->get('plg_system_smooth_scroll_speed'); ?>
« Последнее редактирование: 11.01.2016, 10:20:58 от deminevgen »
*

deminevgen

  • Захожу иногда
  • 115
  • 2 / 0
Re: Вывод данных в js
« Ответ #1 : 08.01.2016, 16:44:00 »
Объясняю я плохо! Вообщем есть плагин с js файлом. Он отвечает за плавность скрола по странице, но настройки скорости анимации и шага при скроле менять из админки нельзя. Я уже добавил в XML файл следующее:
Код
<config>
<fields name="params">
<fieldset name="basic">
<field name="PLG_SMOOTH_SPEED" type="text" extension="plg_system_s1" description="PLG_SMOOTH_SPEED_DESC"/>
<field name="PLG_SMOOTH_HEIGHT" type="text" extension="plg_system_h1" description="PLG_SMOOTH_HEIGHT_DESC"/>
</fieldset>
</fields>
</config>
и в файл  ru-RU.plg_system_smooth_scroll.ini следующее :
Код
PLG_SMOOTH_SCROLL="Плагин - плавный скроллинг"
PLG_SMOOTH_SCROLL_DESC="Плагин - плавный скроллинг для Joomla 3.0+"
PLG_SMOOTH_HEIGHT="ВЫСОТА"
PLG_SMOOTH_HEIGHT_DESC="ВЫСОТА ПРОКРУТКИ"
PLG_SMOOTH_SPEED="СКОРОСТЬ"
PLG_SMOOTH_SPEED_DESC="СКОРОСТЬ ПРОКРУТКИ"
Теперь мне надо вместо дефолтных значений в файле jquery.smooth-scroll.min.js
Код
var ssc_framerate = 150;
var ssc_animtime = 500;
var ssc_stepsize = 150;
var ssc_pulseAlgorithm = true;
var ssc_pulseScale = 6;
var ssc_pulseNormalize = 1;
var ssc_keyboardsupport = true;
var ssc_arrowscroll = 50;
var ssc_frame = false;
var ssc_direction = {
  x: 0,
  y: 0
};
выводить значения которые я внесу в админке плагина, как это сделать?
*

Shustry

  • Гуру
  • 6434
  • 745 / 3
Re: Вывод данных в js
« Ответ #2 : 08.01.2016, 19:15:23 »
Кодируете в JSON и выводите где-нибудь на странице. Можно в качестве произвольного html-атрибута. В JS-скрипте получаете атрибут, раскодируете. Всё просто.
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Вывод данных в js
« Ответ #3 : 08.01.2016, 19:26:24 »
на сколько я понимаю, есть альтернативный путь - вызывать конфигурацию в php

вот на примере галереи
Код
$doc->addScriptDeclaration('      jQuery(document).ready(function() {jQuery("a[rel^=\"prettyPhoto\"]").prettyPhoto({'.ltrim($ppparams,",").'})}); //v.4.315');

т.е. если сама инициализация - небольшая, то берем всю статичную часть и помещаем в строковую переменную

$my_script="тут блок с самого начала скрипта и со всеми статичными параметрами".тут_выводим_переменные."тут конец скрипта";

и выводим
Код
$doc->addScriptDeclaration($my_script);
*

deminevgen

  • Захожу иногда
  • 115
  • 2 / 0
Re: Вывод данных в js
« Ответ #4 : 08.01.2016, 19:36:21 »
на сколько я понимаю, есть альтернативный путь - вызывать конфигурацию в php

вот на примере галереи
Код
$doc->addScriptDeclaration('      jQuery(document).ready(function() {jQuery("a[rel^=\"prettyPhoto\"]").prettyPhoto({'.ltrim($ppparams,",").'})}); //v.4.315');


Тоесть не используя сторонний файл js , просто помещаем сам скрипт в php и с помощью
Код
<?php echo $displayData['params']->get('plg_system_smooth_scroll_speed'); ?>
выводим значения из админки? так я понимаю вас?
Спойлер
[свернуть]
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Вывод данных в js
« Ответ #5 : 08.01.2016, 19:37:53 »
да, я дописал в сообщении
на самом деле, можно совмещать.

обычно скрипт идет в 2-х частях:
обработчик + инициализация.

инициализация запускается по событию (document).ready и там как раз все переменные выставляются.
вот эту часть выносим в php, а весь остальной код можно цеплять стандартно через js файл
*

deminevgen

  • Захожу иногда
  • 115
  • 2 / 0
Re: Вывод данных в js
« Ответ #6 : 08.01.2016, 19:56:14 »
Скрипт работает, когда я его помещаю в php, но вот когда я делаю вот так var ssc_stepsize = <?php echo $displayData['params']->get('plg_system_nnframework'); ?>;   вместо числа то выдает
Parse error: syntax error, unexpected 'params' (T_STRING) in C:\open\OpenServer\domains\intechnic.pro\plugins\system\smooth_scroll\smooth_scroll.php on line 284

предварительно вписав вот так ещё строку : if( $displayData['params']->get('lg_system_nnframework')!= '' ) {

PS. Дуб дубом в js и php, на стадии массивов я))))
« Последнее редактирование: 08.01.2016, 20:00:56 от deminevgen »
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Вывод данных в js
« Ответ #7 : 08.01.2016, 20:10:47 »
омг. зачем это все? ))
вы же в php получаете данные, берете напрямую, без echo

$ssc_stepsize=$displayData['params']->get('plg_system_nnframework');

потом через точку прицепляете параметры к основному скрипту и через точку же цепляете конец.

*

deminevgen

  • Захожу иногда
  • 115
  • 2 / 0
Re: Вывод данных в js
« Ответ #8 : 08.01.2016, 20:24:07 »
Всё равно вот так вот :
Код
Parse error: syntax error, unexpected 'params' (T_STRING) in C:\open\OpenServer\domains\intechnic.pro\plugins\system\smooth_scroll\smooth_scroll.php on line 281

вот все файлы моего плаги :
папка language
script.php :
Спойлер
[свернуть]
файл smooth_scroll.php
Спойлер
[свернуть]
файл query.smooth-scroll.min.js
Спойлер
[свернуть]
и файл XML
Спойлер
[свернуть]
« Последнее редактирование: 08.01.2016, 20:39:49 от deminevgen »
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Вывод данных в js
« Ответ #9 : 08.01.2016, 20:50:28 »
блин, я так не работаю ))
мне в этих файлах не разобраться в таком режиме.

делается так.
сначала надо добиться, чтобы просто статичный текст добавлялся в блок.

т.е.

Код
$ssc_stepsize="var ssc_stepsize = 150;";

добиваетесь, чтобы эта строка срабатывала, т.е. код собирался правильно.
потом уже добиваетесь, чтобы переменная $ssc_stepsize получала нужный параметр
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Re: Вывод данных в js
« Ответ #10 : 08.01.2016, 21:05:45 »
Код
Parse error: syntax error, unexpected 'params' (T_STRING) in C:\open\OpenServer\domains\intechnic.pro\plugins\system\smooth_scroll\smooth_scroll.php on line 281
Вот интересно, что надо сделать, чтобы получить ошибку синтаксиса в 281 строке, в файле из 39 строк.
*

deminevgen

  • Захожу иногда
  • 115
  • 2 / 0
Re: Вывод данных в js
« Ответ #11 : 08.01.2016, 21:18:44 »
Код
Parse error: syntax error, unexpected 'params' (T_STRING) in C:\open\OpenServer\domains\intechnic.pro\plugins\system\smooth_scroll\smooth_scroll.php on line 281
Вот интересно, что надо сделать, чтобы получить ошибку синтаксиса в 281 строке, в файле из 39 строк.
да я добавлял скрипт целиком в файл и пробовал на этой строке менять значение
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вывод данных в js
« Ответ #12 : 08.01.2016, 21:22:24 »
ТС, вы же не поленились выкладывать код всех файлов, почему нельзя выкладывать smooth_scroll.php в том виде, в каком вызывал ошибку?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

deminevgen

  • Захожу иногда
  • 115
  • 2 / 0
Re: Вывод данных в js
« Ответ #13 : 08.01.2016, 22:19:01 »
блин, я так не работаю ))
мне в этих файлах не разобраться в таком режиме.

делается так.
сначала надо добиться, чтобы просто статичный текст добавлялся в блок.

т.е.

Код
$ssc_stepsize="var ssc_stepsize = 150;";

добиваетесь, чтобы эта строка срабатывала, т.е. код собирался правильно.
потом уже добиваетесь, чтобы переменная $ssc_stepsize получала нужный параметр
эту строку где выводить? в исполняемом php файле?
Вообще не могу понять, я запутался окончательно))))))))
А почему нельзя вот так выводить, как я в cackle делал?
Код
<?php


//no direct access
defined('_JEXEC') or die('Restricted Access');
if( $displayData['params']->get('cackle_appID')!= '' ) {
?>

<div id="mc-container"></div>
<script type="text/javascript">
cackle_widget = window.cackle_widget || [];
cackle_widget.push({widget: 'Comment', id: <?php echo $displayData['params']->get('cackle_appID'); ?>});
(function() {
    var mc = document.createElement('script');
    mc.type = 'text/javascript';
    mc.async = true;
    mc.src = ('https:' == document.location.protocol ? 'https' : 'http') + '://cackle.me/widget.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(mc, s.nextSibling);
})();
</script>
<?php
}
« Последнее редактирование: 08.01.2016, 22:37:06 от deminevgen »
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Вывод данных в js
« Ответ #14 : 08.01.2016, 23:00:00 »
ну как бы не айс весь код мешать с php.
но можно и так, по идее.
тут проблема в том, что скрипт js как-то не совсем подходит для передачи ему параметов мои способом, ибо переменные задаются не в блоке инициализации, а не пойми где.
да и события "загрузка документа" я не нашел.

но в связи с этим можно попробовать переназначить переменную после загрузки документа
$doc->addScriptDeclaration('   jQuery(document).ready(function() { ssc_stepsize = 500; }); ');


*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Вывод данных в js
« Ответ #15 : 08.01.2016, 23:05:01 »
т.е. вот после этой строки добавить

Код
$doc->addScript(JURI::base().'media/smooth_scroll/js/jquery.smooth-scroll.min.js');
*

deminevgen

  • Захожу иногда
  • 115
  • 2 / 0
Re: Вывод данных в js
« Ответ #16 : 10.01.2016, 00:40:10 »
Спасибо за помощь, всё работает отлично, только не получается из XML подтянуть данные) чёт еррорит) ну да ладно, разберусь)
Код
		$doc->addScriptDeclaration('   jQuery(document).ready(function() { ssc_stepsize = $displayData['params']->get('speed'); }); ');
Это вообще имеет смысл?
Код
Parse error: syntax error, unexpected 'params' (T_STRING) in C:\open\OpenServer\domains\intechnic.pro\plugins\system\smooth_scroll\smooth_scroll.php on line 37
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Вывод данных в js
« Ответ #17 : 10.01.2016, 00:47:23 »
сначала получаем значение из XML в переменную в php
вот когда ты через echo её сможешь вывести, тогда и можно добавлять ее вывод в код.

Код
$mySpeed=$displayData['params']->get('speed');
echo $mySpeed;

*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вывод данных в js
« Ответ #18 : 10.01.2016, 00:51:49 »
Синтаксическая ошибка. Можно попробовать так
Код: php-brief
$doc->addScriptDeclaration("jQuery(document).ready(function(){ssc_stepsize=".$displayData['params']->get('speed').";})");
Не будь паразитом, сделай что-нибудь самостоятельно!
*

deminevgen

  • Захожу иногда
  • 115
  • 2 / 0
Re: Вывод данных в js
« Ответ #19 : 10.01.2016, 00:57:08 »
Код
	<fields name="params" addfieldpath="/plugins/system/smooth_scroll">
<fieldset name="basic">
<field name="speed" type="text"  label="PLG_SMOOTH_SPEED" description="PLG_SMOOTH_SPEED_DESC" />
<field name="height" type="text"  label="PLG_SMOOTH_HEIGHT" description="PLG_SMOOTH_HEIGHT_DESC" />
       </fieldset>
</fields>
</config>
</extension>
Получаю null
Код
Fatal error: Call to a member function get() on null in C:\open\OpenServer\domains\intechnic.pro\plugins\system\smooth_scroll\smooth_scroll.php on line 4
Что не так делаю? вроде раньше работало)))
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вывод данных в js
« Ответ #20 : 10.01.2016, 01:01:26 »
А нельзя сразу выложить строку 4? Что за игра в гадалку?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

deminevgen

  • Захожу иногда
  • 115
  • 2 / 0
Re: Вывод данных в js
« Ответ #21 : 10.01.2016, 01:04:20 »
А нельзя сразу выложить строку 4? Что за игра в гадалку?
сначала получаем значение из XML в переменную в php
вот когда ты через echo её сможешь вывести, тогда и можно добавлять ее вывод в код.

Код
$mySpeed=$displayData['params']->get('speed');
echo $mySpeed;


*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вывод данных в js
« Ответ #22 : 10.01.2016, 01:06:11 »
$displayData как-то объявлена?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Вывод данных в js
« Ответ #23 : 10.01.2016, 01:20:33 »
ну в общем мы тут уже ничем не поможем, наверно )
смотри другие плагины и добивайся получения своего параметра. все остальное для счастья у тебя есть. )
*

deminevgen

  • Захожу иногда
  • 115
  • 2 / 0
Re: Вывод данных в js
« Ответ #24 : 10.01.2016, 01:22:29 »
$displayData как-то объявлена?
Нет
Я просто повторюсь, что в c php и js на стадии освоения, делал по анологии в шаблоне helix3
вот такой пример: XML
Код
	            <fieldset name="basic" addfieldpath="/plugins/system/helix3/fields">

<field name="cackle_appID" type="text" class="child comment_engine comment_engine_cackle" label="HELIX_CACKLE_ID" description="HELIX_CACKLE_ID_DESC" />
Спойлер
[свернуть]
Спойлер
[свернуть]
Ничего я не объявил))) Пойду почитаю как данные из XML в php перетащить.
Всем спасибо за помощь! Осталось дело за малым)
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Re: Вывод данных в js
« Ответ #25 : 10.01.2016, 01:31:35 »
так ты не с шаблона сдирай, а с плагинов тогда.
я просто сам не пишу плагины, тоже только хакаю чужое под настроение.
но примеры то надо явно брать с подобных расширений, а не с шаблонов.
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
Re: Вывод данных в js
« Ответ #26 : 10.01.2016, 07:20:58 »
Ничего я не объявил))) Пойду почитаю как данные из XML в php перетащить.
Код: php
var_dump($this->params->get('speed'));
*

deminevgen

  • Захожу иногда
  • 115
  • 2 / 0
Re: Вывод данных в js
« Ответ #27 : 10.01.2016, 12:12:47 »
Код: php
var_dump($this->params->get('speed'));

String(4) 1600 - я в админке именно столько и выставил
когда просто вставляю в самое начало кода то норм выдает стринг а когда пытаюсь в строку пихануть то T-STRING
      $doc->addScriptDeclaration('   jQuery(document).ready(function() { ssc_stepsize = ($this->params->get('speed'); }); ');
получаю
Спойлер
[свернуть]
« Последнее редактирование: 10.01.2016, 12:18:21 от deminevgen »
*

passer

  • Завсегдатай
  • 1013
  • 75 / 3
*

effrit

  • Легенда
  • 10132
  • 1118 / 13
  • effrit.com
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как ограничить вывод количества результатов?

Автор misteri27

Ответов: 0
Просмотров: 423
Последний ответ 03.12.2021, 16:34:23
от misteri27
Вывод графика работы с “Открыто / закрыто” на сайте

Автор leo78

Ответов: 8
Просмотров: 898
Последний ответ 25.08.2020, 12:18:03
от leo78
Вывод рейтинга jlex review

Автор koskanalya

Ответов: 0
Просмотров: 737
Последний ответ 17.01.2020, 14:05:54
от koskanalya
Uikit ручная инициализация DatePicker [РЕШЕНО]

Автор dm-krv

Ответов: 5
Просмотров: 1253
Последний ответ 25.09.2019, 12:39:35
от dm-krv
[РЕШЕНО]smooth scroll plugin

Автор lexxbry

Ответов: 5
Просмотров: 1862
Последний ответ 19.06.2018, 11:39:48
от dmitry_stas