Working with attributes in Magento; Let’s simplify our lives!

[I'm writing this in English because I've searched the internet for a solution to my question and was unable to find anything useful.]

So, for the past two months I had a project for an online shop. I accepted the project as a challenge, because my experience with Magento was null. I was looking for a way to mark products as new, and later on I had to mark them as a promotion (here I wanted to use percentage). After a lot of googling I stumbled upon this little trick. But having to make a whole new attribute, meaning the client would have to do something more just for that made me feel uncomfortable. But I accepted it as a solution. A few days ago I had to do the percentage bit. So I proceeded to making the custom attribute, in which the client would have to input the % the price was off. That’s when I discovered I can easily use ANY attribute to my advantage.

The first thing I did was to redo the marking of new products. I was able to get the “from date”, the “to date” and I could determine the “now”. Here’s the code:

<?php
 $nfd = strtotime($_product->getNewsFromDate()); //I like working with seconds so I'm transforming everything to epoch
 $ntd = strtotime($_product->getNewsToDate()); // Same as above
 $now = strtotime('now');

$price = $_product->getSpecialPrice();
 $discounted = $_product->getPrice();
 $discount = round(($price/$discounted)*100); //This is the formula for percentage
 if ($nfd < $now && $now < $ntd) { // This verifies if "now" is between the "from" and "to" dates..
 ?>

<!--<div class="discount"><?php echo $discount . '%'; ?></div>-->
 <div class="new-product">produs nou</div> // .. and if it is, we do whatever we want with it.
 <?php } ?>

It has to be used in template/catalog/product/list.phtml.The above code also takes out the percentage of discount. Yes, it’s damn simple, but I was unable to find anything useful, just some Magento extensions, all having a price over 50$. I really hope it helps, and if you find this useful please share to other beginners :)

Definiția fricii: Samsung.

Încep să scriu cam mult despre subiecte legate de Android. Fie că sunt aplicații, fie că sunt telefoane, sunt pasionat ce să mai. Cu produsele Apple nu am chiar nimic, doar că sunt prea shiny și prea overpriced pentru gustul meu. Plus că îmi place open-source-ul și să umblu în telefon și să schimb chestii prin el, lucru care la iPhone nu prea merge. Dar nu despre asta vroiam să scriu, ci despre frică.

Una din cele mai intâlnite metode de a învăța un copil mic că ceva nu e în regulă, este să bagi puțin frica în el. Chit că îi explici cu frumosul de ce nu e bine, chit că bagi o minciunică, facând lucrul respectiv să pară mai nasol decât este, fie că îl bați ca pe un animal, tot în jurul fricii se învârte treaba. Cam așa și cu Samsung.

Anul trecut (parcă tot în perioada asta) a fost acel proces între Samsung și Apple, în care Apple zicea că Samsung a furat designul iPhone. Și încă vreo 10 chestii. De curiozitate, m-am uitat la un filmuleț pe Youtube, și m-am cam lămurit. Și mai venea o acuzație, și mai râdeam puțin. Pe scurt, Apple a câștigat procesul, cel puțin în cazul designului. Astfel, toate telefoanele Samsung (mid si high-end) apărute în ultimul an arată la fel. Serios!

S-au speriat, au făcut pe ei și se pare că Samsung Galaxy S4, care stă să apară va arăta la fel.

SuperUser vs. SuperSU

supersuEu sunt în lumea Android de vreo doi ani și am avut două telefoane, cam slăbuțe ele amândouă, dar cu comunități solide în spate. În total am avut soft original 30 de minute, la al doilea telefon. Cât mi-a luat să ajung de la magazin acasă. Primul l-am luat de pe okazii gata rootat. Ce înseamnă comunități solide? Păi actualul Samsung Galaxy 5 rulează Android 4.2.1 lansat acum vreo 3 luni.

Tot timpul, pe ambele telefoane am avut aplicația Superuser. De curând am văzut câțiva din oamenii de pe MADTeam vorbind despre SuperSU, aplicație pe care eu o știam, și de developer auzisem și știam că e zeu, dar nu mă gândisem să încerc. Și acești oameni discutau cum că SuperSU ar da permisiunile mai repede, ceea ce e destul de important pentru un telefon vechi cu soft nou, care poate să fie de multe ori foarte lent. Și m-am decis să încerc. Mă gândeam că va necesita o operațiune complicată de instalare, că nu o să îmi iasă și că iar o să ajung să șterg tot și să reinstalez softul. Nici pe departe! SuperSU s-a ocupat singur de aplicația veche, a înlocuit-o și a mers din prima. Ba chiar a mers și să o fac System App. Are și opțiunea să se bage în așa hal în intern încât după un wipe total făcut azi, după reinstalare era încă acolo! Impresionant! Și da, dă permisiunile mai repede, dar face și ca telefonul să fie mai rapid per total!

Singura explicație pe care am putut să mi-o dau a fost că, fiind legat de Link2SD care are nevoie de perimisiuni, dând permisiunile mai repede, lagul se mai diminuează. Nu știu dacă asta este explicația dar una peste alta, SuperSU bate de departe Superuser!

[app]eu.chainfire.supersu[/app]

[app]eu.chainfire.supersu.pro[/app]

Mărimea contează

dkmb86g_487pr55s2hc_bLa început calculatoarele erau mari de tot, cât o cameră îmi povestea mama. Și încete și greu de operat. Dar făceau treaba, chiar mai bine decât un om. Altfel nu ar fi prins la public. Cam la fel și telefoanele mobile. Dar, odata cu avansarea treptată a tehnologiei, ele s-au micșorat. Timp de ~25 de ani, telefoanele mobile au ajuns de la adevărate cărămizi la lucruri normale, care nu atrag neapărat atenția, dar sunt practice. Până s-a ajuns la ceva de genul ăsta. Cât se poate de normal, nu? Eu încă am acest telefon în sertar și îl folosesc de fiecare dată când plec undeva unde știu că se va bea mult. Se numește drinking-phone.

Eh, după atâția ani de evoluție a telefoanelor, a venit vremea smartphoneurilor. Care și ele au început cătinel cătinel. Cam așa. Doar că ele au început să crească. Și să tot crească. Și să nu se mai oprească. Și s-a ajuns la Samsung Galaxy Note II care în opinia mea este o glumă proastă. Și Note I la fel. Și Galaxy S3 mi se pare cam mare. De fapt, mi se pare exagerat orice telefon care nu te lasă să ajungi cu degetul dintr-o parte în alta și de sus în jos fără să miști telefonul în palmă, și în general un telefon care  nu se poate manevra în siguranță cu o singură mână.

Și cum zilele astea a fost CES2013, discutam chestia asta cu un prieten, care mi-a arătat următorul filmuleț de prezentare:

Continue reading

Butoane sociale care nu încetinesc siteul. Cum?

Știu că mai demult am văzut pe un site, niște butoane sociale care apăreau întâi ca imagini și mai apoi ele în sine, funcționale. Acela era un plugin de WordPress dar atunci nu am dat mare importanță acestui aspect. Recent am văzut că si pe XDA-Developers au tot ceva de genul ăsta. Și cum e bine cunoscut faptul că Twitter continuă să aibe servere de căcat, am decis să fac și eu niște butoane sociale deștepte.

Ideea este să încărcăm butoanele (conținut de pe alte siteuri, javascript în special) doar dacă este nevoie. Adică dacă cineva vrea să le folosească = dacă dă cu mouseul pe deasupra lor (hover). Eh, pentru început am făcut poză la butoane și le-am pus pur și simplu în locul vechilor butoane. Cam așa:

.recommend {
background: url('') no-repeat;
height: 21px;
width: 87px;
}

.tweet {
background: url('') no-repeat;
height: 20px;
width: 59px;
}

.googleplus {
background: url('') no-repeat;
height: 20px;
width: 32px;
}

 

La url se pun imaginile iar apoi în pagină se pun div-uri, span-uri sau li-uri cu clasele respective. Bun, acum apar imagini cu butoanele, dar cam atât. Cam neinteresant. Următorul pas a fost să ascund aceste butoane, la hover. M-am folosit bineînțeles de puținul jQuery pe care îl știu:

jQuery(document).ready(function() {
jQuery('.imageshare').hover(function(){
jQuery('.imageshare li').css('display','none');
});
});

În momentul ăsta suntem gata să inserăm butoanele în sine. Și asta se face cel mai simplu cu funcția .load(). Astfel, scriptulețul ajunge în halul ăsta:


jQuery(document).ready(function() {
jQuery('.imageshare').hover(function(){
jQuery('.imageshare li').css('display','none');
jQuery('.sharebox').load('');
});
});

În load punem link către o pagină separată care conține doar butoanele. La Facebook am folosit varianta HTML5, pentru că știe să ia singură url-ul. Altfel dădeam în altele.

Și cam gata :) . Da, știu că nu e mare lucru, și nici că e o idee originală. Dar acest micro-tutorial l-am facut pentru că îmi place ca unele lucruri să fie făcute fără pluginuri (a se vedea adăugarea butoanelor sociale).

PS: La mulți ani!

PS2: Twitter, get your shit together!

Am făcut trecerea la Solid Explorer!

Când mi-am luat primul telefon cu Android anul trecut, am căutat un file explorer bun și cât mai ieftin, eventual gratis. Și am încercat mai multe. Până la urmă m-am oprit la ES File Explorer. El nu e un produs de proastă calitate, doamne ferește. De curând am participat puțin și la beta-testingul următoarei versiuni, care implică rescrierea totală a aplicației, dar și redesignul ei. Și nu prea îmi plăcea ce vedeam. În primul rând, pe telefonul meu slăbut, actuala versiune de ES File Explorer mai făcea figuri și mai lăguia din când în când. Versiunea beta pe de altă parte, stătea mult până afișa folderele, la fiecare pornire. Poate nu făcea cache..

Dar am dat peste un zeitgeist al XDA-Developers, care vorbea și despre un alt file explorer. Și m-am gândit să îl încerc. Și după aproximativ 5 secunde mi-am dat seama de ce a fost menționat în acel video. Ce m-a făcut să îmi placă această aplicație atât de mult?

  • copiere/mutare cu drag and drop între cele două ecrane diferite
  • este rapid
  • interfața plăcută
  • este rapid
  • ușurința cu care se folosește
  • este rapid
  • tocmai ce am descoperit: poti accesa cardul prin FTP (cam cum face și AirDroid). Da, e o idee bună, dar nu renunț deocamdată la AirDroid.

Așa cum zice și reviewul meu de pe Play Store:

shot_30122012_235103 (1)

Deja l-am tocat la cap pe un amic să încerce :-D

[app]pl.solidexplorer[/app]

[app]pl.solidexplorer.unlocker[/app]