Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Aplikacja - plik js


Rekomendowane odpowiedzi

Cześć,

 

Jestem na etapie tworzenia swojej pierwszej aplikacji do IPS - w skrócie ujmując wyświetla ona dane z bazy w formie widgetu.

W jednej z kolejnych wersji na localhoscie postanowiłem dodać odświeżanie nowych danych za pomocą jquery.

 

Zrobiłem co następuje:

1. Utworzyłem plik applications\apka\dev\js\front\check.js

2. W funkcji render widgetu dopisane jest:

\IPS\Output::i()->jsFiles = array_merge( \IPS\Output::i()->jsFiles, \IPS\Output::i()->js( 'check.js', 'apka', 'front' ) );

3. Na localhoscie wszystko działa pięknie - js się zgłasza po jsona i ładnie sobie parsuje:

<script type='text/javascript' src='http://localhost/applications/apka/dev/js/front/check.js?v=c8d1df3613' data-ips></script>

4. Skompilowałem js w ACP, wygenerowałem nową wersję aplikacji - zadowolony zrobiłem update na innym forum i tutaj okazała się kupa. Instalacja przebiegła bez żadnych problemów, plik data/javascript.xml zawiera poprawnego jsa:

<file javascript_app="apka" javascript_location="front" javascript_path="" javascript_name="check.js" javascript_type="framework" javascript_version="10100" javascript_position="1000050">

Jednakże na owym forum po aktualizacji IPS nie ładuje tego js. Nie ma kompletnie po nim śladu w kodzie strony. Próbowałem reset cache, szukać swojego kodu i wygląda jakby tego pliku nigdzie nie utworzył i miał go w poważaniu.

Próba zrobienia var_dump na \IPS\Output::i()->jsFiles zaraz po dodaniu check.js do owego arraya też sprawia, że go tam nie ma.

 

Bardzo bym prosił o jakąś pomoc jak to ugryźć ponieważ stanąłem w miejscu.

 

//edit Wiem, zły dział. Zaraportowana prośba o przeniesienie. Biję się w pierś.

Edytowane przez lukasin
Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager
2 godziny temu, lukasin napisał:

2. W funkcji render widgetu dopisane jest:

Widgety są "keszowane". Zrobiłeś przebudowę w zakładce Support?

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Minęło już kilkanaście godzin od wykonania tego - raczej problemem nie jest cache widgetu ponieważ trochę zmieniła się też budowa tabeli i ona jest wyświetlana poprawnie.

Jednakże po moim pliku .js ani śladu po instalacji aplikacji. Wymuszenie wyczyszczenia cache niestety nie pomaga.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Patrzę w Output.php i... powinno to działać, a jednak nie działa. Hm.

Czy eksportujesz apkę w jakiejś wersji, a potem dołożyłeś js i następną wersję? Co masz w applications/apka/data/javascript.xml?

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Zacząłem pracę nad następną wersją i nadałem jej nowy numer (z 1.0.0.0 na 1.1.0.0).

Co do javascript.xml - część tego już w pierwszym poście dałem, tutaj całość:

<?xml version="1.0" encoding="UTF-8"?>
<javascript app="apka">
 <file javascript_app="apka" javascript_location="check" javascript_path="" javascript_name="check.js" javascript_type="framework" javascript_version="10100" javascript_position="1000050"><![CDATA[        jQuery(document).ready(function($) {
            var iloscSekund = 10;
            var $table = $('#reports');

            setInterval(function() {
				var id = $table.find('tr').eq(1).attr('data-id');
                $.get("/index.php?app=apka&module=autocheck&controller=check&do=records&lastid="+id, function(data) {
					if(data[0]){
                    var html = '<td>'+data[1]+'</td><td>'+data[2]+'</td><td>'+data[3]+'</td><td>'+data[4]+'</td><td>'+data[5]+'</td>';
                    $table.find('tr:first').after('<tr data-id="'+data[0]+'">'+html+'</tr>');
                    $table.find('tr:last').remove();
					}
                });
            }, iloscSekund * 1000)
        });]]></file>
</javascript>

Póki co zrobiłem obejście problemu używając resources i działa jak natura chciała - choć nie ukrywam zastanawia mnie nadal dlaczego wcześniejsze rozwiązanie (teoretycznie zgodne z tym co piszą na stronie IPS) nie chce działać poza wersją dev.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

W międzyczasie możesz wysłać zapytanie do nich, bo może jakiś błąd? Ciężko na tym etapie mi powiedzieć.

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Manager

Nie wiem czy to Ty tam napisałeś, ale mamy podobny problem na forum IPSu: https://invisioncommunity.com/forums/topic/455955-include-js/

  • Lubię to 1

intermedia - profesjonalne rozwiązania Invision Power Board

---

Chcesz uzyskać szybko i sprawnie pomoc? Uzupełnij wersję i adres w profilu.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.