Wednesday, April 4, 2012

..

Ok! Lets show our talents!

Friday, July 15, 2011

My custom jQuery selector for finding elements who have a text that begin with some string

My jQuery custom selector code:
$.expr[':'].textBeginWith = function (obj, index, meta) {
var $this = $(obj);
var subString = $this.text().substring(0, meta[3].length);

return (subString.toLowerCase() == (meta[3]).toLowerCase());
};

Usage example:
var elements = $('a:textBeginWith("My demo")');

As a result we will have selected all "a" elements whit "My demo" text at the beggining of the sentense.

Why do I need this code, well, the closest selector which will find all "a" elements with "My demo" text inside is "contains", BUT, contains will find any substring in sentence, not only at the beggining.

Tuesday, June 29, 2010

jAPI Direct - Direct call PHP methods from JavaScript

jAPI Direct contains PHP and JavaScript script that enables you to call PHP methods direct from JavaScript just by typing their names.

For example you can call PHP method that looks like this:

class MySimpleMath {

public function Addition($firstParam, $seccondParam) {
$sum = $firstParam+$seccondParam; echo $sum;
}
}
...from JavaScript just with:

MySimpleMath.Addition(1,2); And you will have as a result: "3"

So simple is in it? :)

--------------------------
jAPI Direct Implementation

To use jAPI in your project you will have to fallow a few steps only.

First download jAPI project source from this address.

Make sure that you included in your html page all scripts properly. You also have to include this two scripts in your html file: jAPI.js, jAPI-Remote.php.
jAPI-Remote.php actually can be any php script from which you want to use their server side methods.

You have to include jAPI-Core.php script in this file (jAPI-Remote.php) by adding this line of code at the beggining of your script:

include("httpHandler/jAPI-CORE.php");

And at the end of your script you will have to create a new instance of jAPI Base Class like this:

//all classes names comma separated as jAPIBaseClass parameter which you want to use

new jAPIBaseClass('YourClass,AnotherClass');

So, that's it! :)

If you have any question, feel free to ask.
vladica.savic@gmail.com

Cheers

Saturday, June 19, 2010

Ext Direct Tutorial

Pozdrav nakon dužeg vremena opet, i da nastavimo sa još nekim zanimljivim i korisnim stvarcicama vezanim za ExtJS.

Jedna od veoma korisnih stvari koju cu pokušati da približim citaocima koji su zalutali ovde je takozvani Ext Direct.

Šta je Ext Direct i cemu služi?

Ext Direct je možemo reci platforma koja omogucava direktno pozivanje server side metoda sa klijentske strane.
Postoje odgovarajuci API-i za implementiranje ove platforme za veliki broj programskih jezika kao što su:
PHP, .NET, Java, Ruby, i drugi. Ja licno imam iskustva u radu sa Ext Direct-om u kombinaciji sa PHP-om i .NET-om, ali verujem da sve funkcioniše poprilicno ok i za druge programske jezike.

Ono što je zajednicko za server side koji koristi ovu platformu je da korisnik treba da uradi sledece:
- Da konfiguriše koja ce "komponenta" (koji server side deo) biti dostupna sa klijentske strane.
- Da integriše odgovarajuci API.
- Da konfiguriše odgovarajuci takozvani ruter, tj. deo koji ce biti zadužen za preusmeravanje "zahteva" od klijentske strane ka odgovarajucim serverskim metodama.

Šta nam je potrebno da bi mogli da koristimo Ext Direct?
Da ne bi odstupali od prethodnog dela tutorijala, i ovaj put cemo se za serverski deo oslanjati na PHP. Ext Direct Api za PHP ciji je inace autor João Bruni, ExtDirectApp.php skripta se može naci ovde.

Takodje, povezivanje sa ExtDirect API-jem u ovom slucaju uradjeno je preko skripte app.js koja izgleda ovako:
Code:

Ext.namespace( 'Ext.DirectTurorial' );

//Podesavanje API-a
Ext.DirectTurorial.REMOTING_API = {
'url': 'app.php',
'type': 'remoting',
'actions': { 'MojaBaseKlasa': [%actions%] }
};

Ext.Direct.addProvider( Ext.DirectTurorial.REMOTING_API );

Ext.Direct.on( 'exception', function(e) { alert( 'Greska: ' + e.message ) } );

//Direktan poziv PHP metode i hvatanje odgovora sa servera!
MojaBaseKlasa.VratiNekiResponce( function(result){ alert( result ); } );


index.html stranica bi trebalo da izgleda ovako
Code:

<html>
<head>
<title>Ext.Direct PRIMER</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-all.js"></script>
<script type="text/javascript" src="app.php"></script>
</head>
<body>
<h1>Ext Direct tutorijal.</h1>
</body>
</html>


Primecujete da na kraju u html fajlu ukljucujemo kao javascript php fajl, i verovatno se pitate zašto je to tako.
Odgovor je zato što nam on služi kao ruter svih zahteva koji ce dolaziti na server i koji ce vracati odgovarajuci responce.

Naj jednostavniji primer može izgledati ovako (app.php):
Code:

<?php
require 'ExtDirectApp.php';

class MojaBaseKlasa extends ExtDirectActions
{
public function VratiNekiResponce()
{
return "Pozdrav svima koji ste zalutali ovde! Ovo je odgovor sa servera!";
}
}

new ExtDirectController( 'MojaBaseKlasa' );
?>

Dakle, u ovom delu koda, mi ukljucujemo ExtDirect Api i klasu cije funkcije želimo da pozivamo, "proširujemo" sa ExtDirectActions klasom, i pravimo Ext Direct Contoler objekat cijem konstruktoru prosledjujemo kao parametar naziv klase iz koje želimo da sa klijentske strane pozivamo serverske metode.


Koje su prednosti?
Prednosti su ocigledne, što se tice programera, na njemu je da lepo organizuje kod, i bez problema da štedi kod i prste, a da dobije na produktivnosti.

Koje su mane?
Iskreno, ja nisam naišao na nešto što bi mi preterano zasmetalo, tako da ostajete uskraceni za ovaj odgovor.

Pozdrav

Sunday, March 21, 2010

Windows 7 Chrome didn't work? Here is the sollution how to solve chrome problem on windows 7

If you have a problem that google chroome application didn't work on your window 7 (dont want to open any website) you can solve that problem by editing your registry.

Press WIN+R key on your keyboard to open RUN dialog, and enter "regedit" inside the input field and press enter.

The new registry window will be opened, expand the next registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ChromeHTML\shell\open\command

And edit his value for that key:
(add marked value at the end of the path)

"C:\Users\yourAccountName\AppData\Local\Google\Chrome\Application\chrome.exe" --no-sandbox -- "%1"

Close all opened windows and it's done, your chrome is ready to go ;)

Tuesday, December 8, 2009

Najava - Srpski ExtJS Tutorijal

Za manje od deset dana objavicu na ovoj strani ExtJS tutorijal koji sam pisao u slobodno vreme. Citamo se uskoro... :)

Napokon, evo tutorijala na ovoj adresi

Sunday, May 17, 2009

Brisanje Windows.old foldera koji kreira Windows 7 i Windows Vista

Instaliran Windows 7 i prvo sto sam primetio je da je napravio Windows.old folder u kome se nalazi sve ono sto sam imao na prethodnoj verziji Windows-a (WinXP), i sta se desava, kao i sav kulturan svet pokusah da obrisem taj folder, medjutim, Windows 7 mi lepo kaze da nemam privilegije da ga obrisem. I bacih pogled na net da vidim u kom zecu lezi grm, kad mucak, nista, i kao po obicaju bacih se na dobri stari metod pokusaja i pogresaka, i stvar je u sledecem, Windows 7 (a na netu sam procitao da i Windows Vista) pravi folder Windows.old u kome smesta podatke o prethodnom Windows-u kako bi kasnije mogao da neko eventualno povrati racunar u ranije stanje, medjutim, taj folder po nekom defoltu ne moze biti obrisan jer nema podesene privilegije nad tim folderom.

Kako se resiti napasti? Pa postupak je sledeci:

Desni klik na folder koji se ne da obrisati, i zatim izabrati stavku Properties, a zatim Security, Advanced, Owner, ukoliko u delu Current owner stoji da nije naveden korisnik koji ima privilegije nad folderm, znaci da je problem pronadjem, jednostavno mu dodajte privilegije korisniku koji ce da radi s tim folderom sta mu je volja (u mom slucaju obrise) tako sto kliknete na ime korisnika koji preuzima privilegije, a ukoliko ga nema u listi izaberite opciju Edit pa u njoj izaberite korisnika jer ce tu biti izlistani svi korisnici.

Kraca verzija znaci:
Desni klik na folder, Properties->Security->Advanced->Owner

Pozdrav i svako dobro, nadam se da je ovo nekome pomoglo.