Tuesday, May 29, 2012

Joomla 2.5!: Classes for Accessing Database

For selecting:

$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('field1,fieldn');
$query->from('#__tablename');
$db->setQuery((string)$query);
$results = $db->loadObjectList();
if ($results){
    foreach($results as $result) 
    {
        //$result->field1
        //$result->fieldn;
    }
}


For inserting:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->insert('#__tablename');
$query->set("field1='value1', fieldn='valuen'");
$db->setQuery($query);
$db->query();
To get the last insert id, use:
$db->insertid();

For udating:
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->update('#__tablename');
$query->set("field1='value1', fieldn='valuen'");
$query->where("fieldx='valuex'");
$db->setQuery($query);
$db->query();

For simple query:

$db = JFactory::getDbo();
$query = "<YOUR QUERY>";
$db->setQuery($query);
$db->query();

Monday, May 28, 2012

IE CSS: Make input password same size with input text

Let declare css for input types with same font, e.g:

<style type="text/css">
  input {
      font-family: sans-serif;                
  }
</style>

Tuesday, May 22, 2012

Encrypt by PHP & Decrypt by ASP.NET (C#) and vice versa

Ref: http://stackoverflow.com/questions/1278974/php-encryption-vb-net-decryption

php.ini, enable:
extension=php_mcrypt.dll

Here is my modified code:

PHP file:
<?php

function decryptRJ256($key,$iv,$string_to_decrypt)
{
    $string_to_decrypt = base64_decode($string_to_decrypt);
    $rtn = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $string_to_decrypt, MCRYPT_MODE_CBC, $iv);
    $rtn = rtrim($rtn, "\0\4");
    return($rtn);
}

function encryptRJ256($key,$iv,$string_to_encrypt)
{
    $rtn = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $string_to_encrypt, MCRYPT_MODE_CBC, $iv);
    $rtn = base64_encode($rtn);
    return($rtn);
}

$ky = 'lkirwf897+22#bbtrm8814z5qq=498j5'; // 32 * 8 = 256 bit key
$iv = '741952hheeyy66#cs!9hjv887mxx7@8y'; // 32 * 8 = 256 bit iv

$text = "Here is my data to encrypt !!!";

$etext = encryptRJ256($ky, $iv, $text);
$dtext = decryptRJ256($ky, $iv, $etext);

header('Location: http://localhost/test.aspx?t='.$etext);
?>

ASP.NET (C#):

public static string DecryptRJ256(string prm_key, string prm_iv, string prm_text_to_decrypt) {

var sEncryptedString = prm_text_to_decrypt;

var myRijndael = new RijndaelManaged() {
 Padding = PaddingMode.Zeros,
 Mode = CipherMode.CBC,
 KeySize = 256,
 BlockSize = 256
};

var key = Encoding.ASCII.GetBytes(prm_key);
var IV = Encoding.ASCII.GetBytes(prm_iv);

var decryptor = myRijndael.CreateDecryptor(key, IV);

var sEncrypted = Convert.FromBase64String(sEncryptedString);

var fromEncrypt = new byte[sEncrypted.Length];

var msDecrypt = new MemoryStream(sEncrypted);
var csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read);

csDecrypt.Read(fromEncrypt, 0, fromEncrypt.Length);

return (Encoding.ASCII.GetString(fromEncrypt));
}

public static string EncryptRJ256(string prm_key, string prm_iv, string prm_text_to_encrypt) {

var sToEncrypt = prm_text_to_encrypt;

var myRijndael = new RijndaelManaged() {
 Padding = PaddingMode.Zeros,
 Mode = CipherMode.CBC,
 KeySize = 256,
 BlockSize = 256
};

var key = Encoding.ASCII.GetBytes(prm_key);
var IV = Encoding.ASCII.GetBytes(prm_iv);

var encryptor = myRijndael.CreateEncryptor(key, IV);

var msEncrypt = new MemoryStream();
var csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write);

var toEncrypt = Encoding.ASCII.GetBytes(sToEncrypt);

csEncrypt.Write(toEncrypt, 0, toEncrypt.Length);
csEncrypt.FlushFinalBlock();

var encrypted = msEncrypt.ToArray();

return (Convert.ToBase64String(encrypted));
}


protected void Page_Load(object sender, EventArgs e)
    {
//Shared 256 bit Key and IV here
string sKy = " lkirwf897+22#bbtrm8814z5qq=498j5 "; //32 chr shared ascii string (32 * 8 = 256 bit)
string sIV = " 741952hheeyy66#cs!9hjv887mxx7@8y "; //32 chr shared ascii string (32 * 8 = 256 bit)

if(Request.QueryString["t"]!=null)
{
string t = Request.QueryString["t"].ToString();
t = t.Trim().Replace(" ", "+");
Button1.Text = DecryptRJ256(sKy, sIV, t);
}
    }



Friday, May 18, 2012

Joomla! 2.5: Latest News Enhanced Modules

Recommend it for your website:
http://www.simplifyyourweb.com/index.php/downloads/category/14-latest-news-enhanced

Thursday, May 17, 2012

Joomla: show module title

Joomla won't show module title if your template declares display style of the module is "none" or nothing.
Check your template to CHANGE it:
<jdoc:include type="modules" name="position-name" style="none" />
TO:
<jdoc:include type="modules" name="position-name" style="xhtml" />
Subscribe to RSS Feed Follow me on Twitter!