Dragonfly


Dragonfly

Advertisements

While uploading rename file by replacing special character


I have faced some problem to download files which name has special character (like #).  So I have come up a solution by modifying drupal’s core file, includes>file.inc

on file.inc there is a code block like the following,

// Begin building file object.    
$file = new stdClass();   
$file->filename = file_munge_filename(trim(basename($_FILES['files']['name'][$source]), '.'), $extensions);    
$file->filepath = $_FILES['files']['tmp_name'][$source];    
$file->filemime = file_get_mimetype($file->filename);

I have replaced the code with the following code block,

// Begin building file object.     
$file = new stdClass();	 
$file->filename = trim(basename($_FILES["files"]["name"][$source]), '.');	 
$fn = trim(basename($_FILES["files"]["name"][$source]), '.');	 
// split filename based around the . and 3 or 4 letter ext 	 
preg_match("/(^[A-Za-z0-9.].*)(\.[a-z]{3}|\.[a-z]{4})$/", $fn, $matches);	
// replace anything in name ($matches [1]) that is not letter, number or underscore	 
$fn = preg_replace("/[^A-Za-z0-9_]/","_", trim($matches[1]));	 
// remove the dot from .ext suffix	 
$ext = trim($matches[2], '.');	 
//shorten filename to be 54 chars with ext (50+4)	 
$stem = substr($fn, 0, 50);	 
$file->filename = $stem . "." . $ext;     
// Create temporary name/path for newly uploaded files.     
//$file->filepath = tempnam(file_directory_temp(), 'tmp_');    
$file->filepath = $_FILES['files']['tmp_name'][$source];    
$file->filemime = file_get_mimetype($file->filename);


Upload file with any extension in drupal


Drupal has a default extension list and files with those extension only allowed to upload. From administrator UI (administratot>file upload) we can add other extension. But if we want to modify the default list we can do that by modifying includes>file.inc

on file.inc there is a code block like the following,

$extensions = ”;    foreach ($user->roles as $rid => $name) {      $extensions .= ‘ ‘. variable_get(“upload_extensions_$rid”,      variable_get(‘upload_extensions_default’, ‘jpg jpeg gif png txt html doc xls pdf ppt pps odt ods odp’));    }

So we can add our desire extension.

There is also a validation function to check the files with allowed extension. We can disregard the validation.

function file_validate_extensions($file, $extensions) {

global $user;
$errors = array();
// Bypass validation for uid  = 1.

if ($user->uid != 1) {

$regex = ‘/\.(‘. ereg_replace(‘ +’, ‘|’, preg_quote($extensions)) .’)$/i’;

if (!preg_match($regex, $file->filename)) {

$errors[] = t(‘Only files with the following extensions are allowed: %files-allowed.’, array(‘%files-allowed’ => $extensions));

}

}

return $errors;

}

BHO Development using managed code


Browser Helper Object (BHO) is a plug-in for Internet Explorer (IE). BHO let developers to drive IE. A plug-in is a program which extends the functionality of a browser. It can be used to retrieve information or modify the content of the webpage that is being displayed in a browser window, or it may just be used to provide the user an option to see the day’s Stock market status or, weather in a toolbar.

To start BHO development can be depressing at the very first beginning to learn all those things. As a beginner I want to share my experience to other beginners. Here I am going to explain the simple implementation of BHO.

A Browser Helper Object is a COM object loaded for each IE window. As a browser window is opened, it creates its own copy of the BHO; and, when the window is closed, it destroys its copy of the BHO. You will need a COM dll which interact with browser. This need to done by implementing the IObjectWithSite in class. We need to use COM interop library to implement COM dll in our dotNet project.

While we are writing in C#, we also need to write the interface IObjectWithSite ourselves. Also, we have to then implement the interface in your BHO. To interact with the HTML document, we will need to add a reference to the Microsoft.mshtml library & to get the DOM or the webpage currently in the browser, we will have to add SHDocVw library as a reference. Also, we will have to add 2 functions which will register (& unregister) our COM component as a BHO with Internet Explorer with the key.

Say Hello to BHO development world:

Let’s create a Hello world project regarding BHO. Start a new C# class library project. I named it as ‘HelloBHOWorld’.

Continue reading

Getting execution plan through C#


private void Form1_Load(object sender, EventArgs e)

{

string strConn = “server=Localhost;database=AMT_DB;UID=sa;PWD=”;

SqlConnection conn = new SqlConnection(strConn);

SqlDataReader reader;

conn.Open();

SqlCommand cmd = new SqlCommand();

cmd.Connection = conn;

cmd.CommandText = “SET SHOWPLAN_ALL ON”;

cmd.CommandType = CommandType.Text;

cmd.ExecuteNonQuery();

cmd.CommandText = “select * from script S inner join scriptline SL on S.scriptid=SL.scriptid”;

cmd.CommandType = CommandType.Text;

reader = cmd.ExecuteReader();

while (reader.Read())

{

MessageBox.Show(“physicalop ” + reader[4].ToString());

MessageBox.Show(“logicalop ” + reader[5].ToString());

MessageBox.Show(“argument ” + reader[6].ToString());

MessageBox.Show(“estimateio ” + reader[9].ToString());

MessageBox.Show(“estimatecpu ” +reader[10].ToString());

}

cmd.CommandText = “SET SHOWPLAN_ALL OFF”;

cmd.CommandType = CommandType.Text;

cmd.ExecuteNonQuery();

conn.close

}



বরষা উৎসব


rain dropsপৃথিবির নানা দেশে জাকজমক করে পালন করা হয় বৃষ্টি উৎসব। এমনি একটা দেশ ইরান।এই উৎসব পালনের পেছনে আছে একটা ইতিহাস, হয়তো কাল্পনিক!

ইরানের তুর শহরে বাস করত এক রাজা। তার নাম আফরাসিয়াব। এই রাজার শাসনামলে প্রায় আট বছর ‘তুর’ শহরে কোনো বৃষ্টি ছিল না। তুরের সব  ঞ্জাণী  আর জ্যোতিষীদের ডেকে রাজা একদিন জানতে চাইলেন, ‘আচ্ছা, আমার এই শহরে বৃষ্টি নেই কেন? কারণ জানা থাকলে নির্ভয়ে আমাকে জানাতে পারো।’

প্রাণের ভয়ে অনেকেই সেদিন সত্য কথা বলেনি। কিন্তু জু তাহ্‌মাস্‌প রাজার শাস্তিকে পরোয়া না করে বললেন, ‘রাজা, আপনি ধীরে ধীরে অবিশ্বাসী হয়ে উঠছেন। মহামতি ফারিদুন আপনাকে তুর্কিস্তান শাসন করতে বলেছেন। কিন্তু আপনি তার কথা না শুনে তুর্কিস্তানের সাথে ইরানও শাসন করছেন। এতে মহামতি ফারিদুন নাখোশ হয়েছেন। এ জন্যই এই শহরে কোনো বৃষ্টি নেই।’

রাজা আফরাসিয়াব জানতে চাইলেন, ‘আপনার কথা যে সত্যি তা নিশ্চিত হব কিভাবে? জু তাহ্‌মাস্‌প বললেন, ‘আমি এখান থেকে একটা তীর ছুড়ে দেব। তীরটি যেখানে গিয়ে পড়বে ওটাই হবে আপনার রাজ্যের সীমানা।’ প্রস্তাবটা রাজার পছন্দ হল। দু’জন মিলে একটা চুক্তিতে এলেন। রাজা বললেন, ‘আপনার ছুড়ে দেয়া তীর যেখানে পড়বে ওই পর্যন্তই আমার রাজ্যের সীমানা, এটা আমি মেনে নেব এবং ইরান ছেড়ে চলে যাব। তারপরেও আমি চাই বৃষ্টি হোক’
তীর নিক্ষেপের দিন চলে এলো। সৃষ্টিকর্তার নামে জু ইরান থেকে যে তীর নিক্ষেপ করলেন দেবতা অহুরামাজ্‌দ-এর আদেশে সেই তীর গিয়ে পড়ল তুরানে। চুক্তি অনুযায়ী রাজা আফরাসিয়াব ইরান ছেড়ে তুরানে চলে গেলেন। আর কী অবাক কাণ্ড সেই মুহূর্তেই ঝর ঝর বৃষ্টি নেমে এলো। আর এই ঘটনার মধ্য দিয়েই রাজা আফরাসিয়াব সাক্ষী হয়ে রইলেন যে,  তার কারণেই এত বছর এই এলাকায় বৃষ্টি হয়নি।

অনেক বছর আগে ঘটে যাওয়া এই ঘটনাকে ইরানিরা আজও উৎসব হিসেবে পালন করে যাচ্ছে।