Jump to content

Objašnjenje - šta se dogodilo danas kada sajt nije radio kako treba


Препоручена порука

Dakle, kao što su neki danas primetili, oni koji su koristili teme "Pouke.org Gradient" i "Pouke.org Midnight" u jednom trenutku više nisu mogli da koriste sajt. Šta se desilo? Da vam objasnim.

Neki forumaši su se žalili da kada kliknu na "Ignore" nekog forumaša, oni i dalje vide sadržaj od forumaša kojeg su ignorisali (iako nakon ingorisanja više ništa ne bi trebalo da vide od blokiranog forumaša, kao što je slučaj na facebook, twitter, itd.). I ja sam odlučio da probam to nekako da popravim. Vi koji se bar malo razumete u programiranje znate da se svaki sajt sastoji od računarskog koda koji je pisan u nekom jeziku. "Pouke.org" radi na "Invision Community" platformi (btw, veoma kompleksan kod) i sajt radi na PHP / MySQL serverskim jezicima. Da stvar bude smešnija, ja čak nisam ni dirao PHP kod, niti HTML. Već CSS.

A kako sam uspeo da zabrljam CSS kod i da sve funkcionalnosti na sajtu postanu nedostupne? Problem je ležao u pogrešnom targetovanju CSS klasa u DOM pregledaču.

Kada se neki korisnik na "Pouke.org" ignoriše, browser upiše HTML klasu u DOM pregledaču pod imenom "ipsHide". I šta sam ja tu uradio? Pa evo ovako nešto, ovaj kod sam upisao u CSS datoteku sajta:

.ipsHide {
   display: none !important;
}

I šta sam ja ovime uradio? Rekao sam računaru da ukloni sve sa sajta što nosi klasu "ipsHide" i desilo se šta se desilo, sve na sajtu se zeznulo. Ja sam mislio da se ta klasa aktivira samo na ignorisane članove, međutim ta klasa je bila upisana i u ostale delove foruma, kao što su slanje privatnih poruka, notifikacije, odgovaranje na teme, taster "pošalji" i taj kod se izvršio na celom forumu umesto da se izvršio samo na ignorisane članove.

A šta sam trebao uraditi? Pa trebao sam pametnije targetovati CSS klasu, na ovaj način:

.cPost.ipsBox.ipsComment.ipsComment_parent.ipsClearfix.ipsClear.ipsColumns.ipsColumns_noSpacing.ipsColumns_collapsePhone.ipsHide {
  display: none !important;
}

E ovako bi već radilo kako treba, jer bi se onda kod izvršio i sadržaj bi se sakrio samo ukoliko se sve ove klase nalaze u DOM pregledaču. Ako samo jedna od ovih klasa fali, kod se neće izvršiti jer ne ispunjava uslov.

Ovo će najbolje razumeti oni koji znaju programiranje, dok oni koji nikada nisu radili programiranje, ovo će im biti totalno nejasno, ali neka znaju samo da zbog moje greške sajt se na par minuta "raspao".

Naravno, ovo nije efikasan način (ovo se radi preko JavaScript-a ili PHP-a, a ne preko CSS-a), no ja sam mislio da ću moći i samo sa CSS kodom da popravim tu opciju za ignorisanje članova. 

Eto, ko radi taj i greši. :) 

200_OK.jpg

Mornië alantië

Link to comment
Подели на овим сајтовима

пре 2 минута, Vladan3 рече

Што би моји рекли: преко прече наоколо ближе

Hah, pa da, to se ovde desilo. Ali evo znam da si mi ti pričao da si radio u Visual Basic, beše jel da? Znaš i sam da CSS služi samo za stil aplikacije ili sajta, ne i za funkcionalnost, no ja se pravim "pro" pa se mislim "ma mož' ti ovako" a funkcionalnosti aplikacije/sajta se pišu u programskim jezicima, ne u "Cascading Style Sheets" :D 

200_OK.jpg

Mornië alantië

Link to comment
Подели на овим сајтовима

пре 13 минута, WiseMan рече

 i desilo se šta se desilo, sve na sajtu se zeznulo

Будући да сам радио и са хардвером и са софтвером ово ме подсетило на осећај када након неког "enter" или "run" или укључивања рачунара након интервенције схватим да нисам требао и у глави се створи једно велико "НЕЕЕ" и ладан зној и адреналин одмах шта ћу и како ћу да се чупам и вадим... :)) 

Link to comment
Подели на овим сајтовима

пре 3 минута, WiseMan рече

Hah, pa da, to se ovde desilo. Ali evo znam da si mi ti pričao da si radio u Visual Basic, beše jel da? Znaš i sam da CSS služi samo za stil aplikacije ili sajta, ne i za funkcionalnost, no ja se pravim "pro" pa se mislim "ma mož' ti ovako" a funkcionalnosti aplikacije/sajta se pišu u programskim jezicima, ne u "Cascading Style Sheets" :D 

И Cobol преисторијски и Јава и С++ :)  Нисам се петљао са CSS али знам за шта служи. Па добро, пробао си, зезнуо, вратио и све ок. Боље на ситници него да стварно срушиш сајт.

А зар немаш у том окружењу у којем радиш неки начин да видиш на шта се све односи та класа у виду списка или неке хијерархије. Ја сам колико се сећам у Јави могао да видим у виду структуре које су класе имале које објекте и остало, мада ми је све кроз маглу сада.

Link to comment
Подели на овим сајтовима

Управо сада, Vladan3 рече

А зар немаш у том окружењу у којем радиш неки начин да видиш на шта се све односи та класа у виду списка или неке хијерархије

Naravno, ima u svakom browseru "Dev tools" i ja sam to koristio, nego ja sam mislio da se klasa primenjuje samo na ignorisane članove, ne i na ostale delove sajta. Pogrešno sam targetovao CSS.

200_OK.jpg

Mornië alantië

Link to comment
Подели на овим сајтовима

Управо сада, Grizzly Adams рече

CSS је иначе ко створен за такве грешке.

Ali samo sam trebao pametnije da targetujem klase, ne da targetujem sve što nosi .ipsHide klasu, već samo ako nosi i specifične klase sa sobom. Ali kao što rekoh, CSS ne služi sa definisanje funkcionalnosti sajta. Ma šta ti ja objašnjavam, ti to radiš već godinama :D 

200_OK.jpg

Mornië alantië

Link to comment
Подели на овим сајтовима

×
×
  • Креирај ново...