» »

Vgraditev dinamične strani v HTML ogrodje

Vgraditev dinamične strani v HTML ogrodje

joker16_7 ::

Pozdravljeni!

Prosim vas za malo usmeritve pri izdelavi službene platforme. Imam kar nekaj izkušenj s programiranjem, vendar sem v osnovi strojnik, zato mi marsikateri programerski izziv predstavlja pretežek ali vsaj časovno močno zamuden postopek.
Nova platforma je v osnovi povsem zadostna na osnovi HTML-ja v kombinaciji s CSS-jem, vendar potrebuje eno dinamično podstran "My projects". Podstran mora vsebovati zgolj 4 gumbe - dodaj projekt, briši projekt, arhviraj projekt in arhiv. Vsak zaposleni bi si lahko s pomočjo omenjenih gumbov "skreiral" svojo lastno podstran, kjer bi imel neke vrste bližnjice, ki bi predstavljale globoko zakopane mape na serverju.
Težavo nameravam rešiti z vgraditvijo predelanega template-a Java/PHP skripte. Zanima me ali sem se sploh pravilno lotil problema in če da, kater template mi priporočate, da uporabim?

Hvala že v naprej! :)
"Ambition is the path to success. Persistence is the vehicle you arrive in."
Bill Bradley

joker16_7 ::

P.S.: Identifikator vsakega userja je Visual Basic datoteka v kateri so informacije vseh zaposlenih na podlagi Computer name-a.
"Ambition is the path to success. Persistence is the vehicle you arrive in."
Bill Bradley

joker16_7 ::

Še nekaj dodatnih informacij... Takole kliče skripta npr. Notepad:



Treba bi bilo urediti, da bi klicala VBS datoteko, ki je na serverju.

Takole pa izgleda del HTML kode, ki kliče to skripto:



Upam, da je kaj pomagalo :)
"Ambition is the path to success. Persistence is the vehicle you arrive in."
Bill Bradley

Stari89 ::

Ni mi čist jasno, kaj želiš naredit, ampak če boš izvajal skripte na serverju ti JavaScript (ni isto kot Java!) na clientu ne bo dosti pomagal.
Če ti na serverju laufa PHP, si poglej naslednji članek o osnovah obrazcev: klik.
Ni mi čisto jasno, kako boš s PHPjem prišel do imena clienta. Če z JavaScriptom prideš do njega s pomočjo ActiveXObject, ga lahko posreduješ PHP skripti preko Ajaxa (uporabi v navezi z jQuery, ti precej olajša delo). Na ta način lahko ohraniš podobno strukturo metode RunScript(), recimo kaj takega (psevdokoda, vzemi zelo z rezervo):

<!-- vključen jQuery -->
<script src="jquery-3.1.1.min.js"></script>
<script type="text/javascript>
  function Runscript() {
  WsShell = new ActiveXObject("WScript.Shell");
  clientComputerName = WsShell.getClientComputerNameSomehowIDontKnowHow();
  $.ajax({
    url: '/TvojaSkripta.php',
    data: { client: clientComputerName },
    type: 'POST',
    dataType: 'json',
    error: function() { alert('Ajax error!'); },
    success: function() { alert('Ajax success!'); }
  });
}
</script>


Potem pa to s PHP skripto obdelaš na približno tak način: TvojaSkripta.php

$clientComputerName = $_POST['client'];
...
echo json_encode(array('status' => 'success'));


Recimo, tko na hitr, ziher je miljavžent napak vmes. Zdej pa marš med knjige in učit! :D
LP

mm&r ::

Skriptiranje z uporabo ActiveX ti bo tekel izključno samo v Internet Explorerju, MS Edge mislim, da tudi tega ne podpira.
Osebno bi ti svetoval ASP.NET MVC aplikacijo (custom HTML/CSS template niso problem), kjer na strežniku vklopiš Windows AD avtentifikacijo.
Strežnik ob vsakem klicu ve, kater uporabnik je izvedel klic in s katerega računalnika in glede na to lahko potem zgradiš poslovno logiko dostopa do map.

Zgodovina sprememb…

  • spremenil: mm&r ()

joker16_7 ::

Najbrž bo potrebno malo dodatne razlage, ker nismo profesionalci na tem področju je malo težje razložiti kaj točno se želi :))

Trenutno smo v tej fazi:

- HTML link, ki kliče funkcijo:
<a href="#" onClick="RunScript();">


- Funkcija

<script type="text/javascript" language="javascript">
    function RunScript() {
    var objShell = new ActiveXObject("WScript.Shell");
    objShell.Run("wscript.exe test.vbs"), 1, false;
    }
</script>


Poskušamo vzpostaviti interno (intranet) "spletno" stran, ki bi združevala informacije na enem mestu - trenutno so te razdrobljene in ne omogočajo efektivnega dela. Vstopna stran vsebuje gumb My_projects, ki naj bi vsakega posameznika preusmerila na osebno stran. Zaporedje izgleda nekako takole:

Vstopna stran -> Povezava na My_projects -> štart skripte (skripta se nahaja na lokalnem serverju - kot tudi celotna "spletna" stran) -> VBS prebere ime računalnika -> vbs uporabnika preusmeri na osebno stran (novo okno).

Stvar deluje brez problema dokler se skripta nahaja lokalno (npr namizje) s kodo priloženo zgoraj. Imamo težave spremeniti lokacijo direktorija kjer se skripta zažene. Poskušali smo s kombinacijami pushd in pa setCurrentDir funkcij ampak ne najdemo prave kombinacije. Rešitev je zelo blizu a hkrati zelo daleč :D

Naj omenim, da stran izdelujemo "navadni" delavci, torej nimamo admin pravic, itd... Se pravi ne moremo stvari upravljati s strani serverja ali pa preveč komplicirati na ravni novih programov/inštalacij in podobno.

"Varnost" z našega stališča ni problem, saj vse teče lokalno znotraj podjetja, sama skripta pa tudi ni nič posebnega.

Upam, da dodatno pojasnilo pomaga pri reševanju zagate.

Hvala še enkrat 8-)

P.S.: Še malo za predstavo kako izgleda vstopna stran...

"Ambition is the path to success. Persistence is the vehicle you arrive in."
Bill Bradley

Zgodovina sprememb…

  • spremenilo: joker16_7 ()

Stari89 ::

Mislim, da vem kaj te muči.
objShell.Run("wscript.exe test.vbs"), 1, false;

Ker koda teče na cliet računalniku (ne na strežniku), bo objectShell.Run uspel najt wscript.exe (saj se nahaja v System32, ki je v PATH environment variablu). Ne bo pa uspel najt "test.vbs", saj ga imaš na strežniku.
Skripto moraš nekako prenest na clienta, preden jo zaženeš. Morda bi vžgala taka varianta:
<script type="text/vbscript" src="test.vbs"></script>
<a href="#" onClick="vbscript:ZacetnaFunkcija()">My Projects</a>

ZacetnaFunkcija() -> nekje v test.vbs moraš met tole funkcijo z istim imenom!

Viri: vir 1, vir 2

Upam, da pomaga! Z vbscript še nisem delal! :P

joker16_7 ::

Pozdravljen

Hvala za odgovor ampak s tem sem še vedno na istem. Zadeva teče na client računalniku brez problema. Rad pa bi, da s clientom nimam opravka in da zadeva teče iz serverja. Problem je seveda v naslovu serverja ker po client računalniku bi se slej ko prej uspel sprehodit do specifičnega direktorija - direktno klicat očitno tudi ne gre. Zato sem se pa igral tudi s funkcijo pushd, da bi le ta ustvarila virtualni disk, ki ima črko - kamor se lahko premakneš.
"Ambition is the path to success. Persistence is the vehicle you arrive in."
Bill Bradley

Stari89 ::

Sej maš temle:
<script type="text/vbscript" src="test.vbs"></script>
<a href="#" onClick="vbscript:ZacetnaFunkcija()">My Projects</a>

vse datoteke na serverju (html in "test.vbs"). Res pa je, da se koda nato izvaja na clientu. Če želiš "test.vbs" izvajat direkt na serverju, je z Javascriptom (ki vedno laufa na clientu) ne boš uspel kar tako pognat. Boš moral uporabit PHP skripto (ki vedno laufa na serverju)(če mate PHP server), da ti zažene "test.vbs" in vrne response. Ni pa mi jasno, kako boš potem z .vbs skripto dobil ime clienta, če pa laufa na serverju.
<script type="text/javascript" language="javascript">
    function RunScript() {
    var objShell = new ActiveXObject("WScript.Shell");
    objShell.Run("wscript.exe test.vbs"), 1, false;
    }
</script>

To ti zalaufa wscript.exe na clientu, ne na serverju.

joker16_7 ::

V osnovi je zadeva čisto preprosta. VBS bo tekel tam od koder ga zaženem - na client računalniku. Gre se samo za to da se skripta (datoteka) nahaja na serverju se pravi, jo jaz samo kličem od tam - požene pa se na clientu. Server v tem primeru je samo mrežna lokacija oz interni fizični server - od tu naprej ne zanm razložit zaradi pomanjkanja znanja ampak ne govorimo o serverju kot se ga uporablja za internetne storitve ali izvajanje dostopov...

Po domače povedano lokacija v omrežju je namesto G:\server\folder\folder - \\server\folder\folder in jo lahko obravnavaš kot navaden mrežen disk - ker pa gre seveda za interni server smo mogoče malo zašli v semantiko oz strokovno plat programiranja za kar se opravičujem.
"Ambition is the path to success. Persistence is the vehicle you arrive in."
Bill Bradley

joker16_7 ::

Težavo je v enem dnevu rešil ponudnik na fiverrju za vsega 20 dolarjev, in sicer z uporabo JavaScripta. Priporočam ;)
"Ambition is the path to success. Persistence is the vehicle you arrive in."
Bill Bradley


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

JS frameworks: knockoutJS, angularJS, react, ...

Oddelek: Programiranje
417330 (4175) kuall
»

Vsebina tretje spletne strani

Oddelek: Izdelava spletišč
71454 (1237) alexa-lol
»

Nasvet pred izdelavo

Oddelek: Programiranje
163055 (2399) Gandalfar
»

Menu samo v eni datoteki (brez frame-ov)

Oddelek: Izdelava spletišč
131572 (1341) R33D3M33R
»

Alternative server side jezikom?

Oddelek: Izdelava spletišč
222501 (2153) CWIZO

Več podobnih tem