<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: Dmitry-sh's Code Snippets</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sun, 27 Jul 2008 04:29:20 GMT</pubDate>
    <description>DZone Snippets: Dmitry-sh's Code Snippets</description>
    <item>
      <title>PHP: Pagination</title>
      <link>http://snippets.dzone.com/posts/show/5214</link>
      <description>// Another example for creating pagination.&lt;br /&gt;// Usage:&lt;br /&gt;// print get_page_nav($page_current, $page_total);&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;	/**&lt;br /&gt;	 * Creates links to pages.&lt;br /&gt;	 * &lt;br /&gt;	 * @param	integer	$page_current The current page number.&lt;br /&gt;	 * @param	integer	$page_total The total number of pages.&lt;br /&gt;	 * @return 	string	HTML-code.&lt;br /&gt;	 */&lt;br /&gt;	function get_page_nav($page_current, $page_total)&lt;br /&gt;	{&lt;br /&gt;		$ar_pages = array();&lt;br /&gt;		/* HTML-tag to select the current page */&lt;br /&gt;		$str_tag = 'strong';&lt;br /&gt;		/* Language strings */&lt;br /&gt;		$str_page_prev = '&#1055;&#1088;&#1077;&#1076;&#1099;&#1076;&#1091;&#1097;&#1072;&#1103;';&lt;br /&gt;		$str_page_next = '&#1057;&#1083;&#1077;&#1076;&#1091;&#1102;&#1097;&#1072;&#1103;';&lt;br /&gt;		/* String placed between the first and last page numbers */&lt;br /&gt;		$str_more = '..';&lt;br /&gt;		/* String to separate page numbers */&lt;br /&gt;		$str_d = $this-&gt;sys['char_split_pages'];&lt;br /&gt;		/* URL for paging */&lt;br /&gt;		$str_url = 'index.php?book='.$this-&gt;gv['book'].'&amp;amp;page=%d';&lt;br /&gt;		&lt;br /&gt;		/* The number of links to pages displayed before and after the current page. 1 2 (3) 1 2 */&lt;br /&gt;		$int_max = 2;&lt;br /&gt;		$cnt_new = $page_current;&lt;br /&gt;		$cnt_max = $page_current + $int_max;&lt;br /&gt;		$cnt_min = $page_current - $int_max;&lt;br /&gt;		/* Fix the maximum number of pages */&lt;br /&gt;		if ($cnt_max &gt; $page_total)&lt;br /&gt;		{&lt;br /&gt;			$cnt_max = $page_total;&lt;br /&gt;		}&lt;br /&gt;		/* First page */&lt;br /&gt;		if ($cnt_min &gt; 1)&lt;br /&gt;		{&lt;br /&gt;			$ar_pages[] = '&lt;a href="'.sprintf($str_url, 1).'"&gt;1&lt;/a&gt;';&lt;br /&gt;			$ar_pages[] = $str_more;&lt;br /&gt;		}&lt;br /&gt;		/* For each page number */&lt;br /&gt;		for ($i = 1; $i &lt;= $page_total; $i++)&lt;br /&gt;		{&lt;br /&gt;			if ( ($i &gt;= $cnt_min &amp;&amp; $i &lt;= $cnt_max) )&lt;br /&gt;			{&lt;br /&gt;				if ($i == $page_current)&lt;br /&gt;				{&lt;br /&gt;					$ar_pages[] = '&lt;a href="'.sprintf($str_url, $i).'"&gt;&lt;'.$str_tag.'&gt;'.$i.'&lt;/'.$str_tag.'&gt;&lt;/a&gt;';&lt;br /&gt;				}&lt;br /&gt;				else&lt;br /&gt;				{&lt;br /&gt;					$ar_pages[] = '&lt;a href="'.sprintf($str_url, $i).'"&gt;'.$i.'&lt;/a&gt;';&lt;br /&gt;				}&lt;br /&gt;			}&lt;br /&gt;			$cnt_new++;&lt;br /&gt;		}&lt;br /&gt;		/* The last page */&lt;br /&gt;		if ($cnt_max &gt; 1 &amp;&amp; ($page_current + $int_max) &lt; $page_total)&lt;br /&gt;		{&lt;br /&gt;			$ar_pages[] = $str_more;&lt;br /&gt;			$ar_pages[] = '&lt;a href="'.sprintf($str_url, $page_total).'"&gt;'.$page_total.'&lt;/a&gt;';&lt;br /&gt;		}&lt;br /&gt;		/* Links to Next/Prev pages */&lt;br /&gt;		if ($page_current &gt; 1)&lt;br /&gt;		{&lt;br /&gt;			$ar_pages[] = '&lt;a href="'.sprintf($str_url, ($page_current - 1) ).'"&gt;'.$str_page_prev.'&lt;/a&gt;';&lt;br /&gt;		}&lt;br /&gt;		if ($page_current &lt; $page_total)&lt;br /&gt;		{&lt;br /&gt;			$ar_pages[] = '&lt;a href="'.sprintf($str_url, ($page_current + 1) ).'"&gt;'.$str_page_next.'&lt;/a&gt;';&lt;br /&gt;		}&lt;br /&gt;		return implode($str_d, $ar_pages);&lt;br /&gt;	}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 12 Mar 2008 01:11:08 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5214</guid>
      <author>Dmitry-Sh (Dmitry Shilnikov)</author>
    </item>
    <item>
      <title>Translit</title>
      <link>http://snippets.dzone.com/posts/show/5021</link>
      <description>// Transliteration (or Translit for short).&lt;br /&gt;// Converts Russian characters into Latin on-the-fly.&lt;br /&gt;// Save the code as UTF-8.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;html&gt;&lt;br /&gt;&lt;head&gt;&lt;br /&gt;&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;&lt;br /&gt;&lt;title&gt;Translit&lt;/title&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;/* Javascript functions */&lt;br /&gt;function JSfunc()&lt;br /&gt;{&lt;br /&gt;	/* Making transliteration! */&lt;br /&gt;	this.strTranslit = function(el)&lt;br /&gt;	{&lt;br /&gt;		new_el = document.getElementById('out');&lt;br /&gt;		A = new Array();&lt;br /&gt;		A["&#1025;"]="YO";A["&#1049;"]="I";A["&#1062;"]="TS";A["&#1059;"]="U";A["&#1050;"]="K";A["&#1045;"]="E";A["&#1053;"]="N";A["&#1043;"]="G";A["&#1064;"]="SH";A["&#1065;"]="SCH";A["&#1047;"]="Z";A["&#1061;"]="H";A["&#1066;"]="'";&lt;br /&gt;		A["&#1105;"]="yo";A["&#1081;"]="i";A["&#1094;"]="ts";A["&#1091;"]="u";A["&#1082;"]="k";A["&#1077;"]="e";A["&#1085;"]="n";A["&#1075;"]="g";A["&#1096;"]="sh";A["&#1097;"]="sch";A["&#1079;"]="z";A["&#1093;"]="h";A["&#1098;"]="'";&lt;br /&gt;		A["&#1060;"]="F";A["&#1067;"]="I";A["&#1042;"]="V";A["&#1040;"]="A";A["&#1055;"]="P";A["&#1056;"]="R";A["&#1054;"]="O";A["&#1051;"]="L";A["&#1044;"]="D";A["&#1046;"]="ZH";A["&#1069;"]="E";&lt;br /&gt;		A["&#1092;"]="f";A["&#1099;"]="i";A["&#1074;"]="v";A["&#1072;"]="a";A["&#1087;"]="p";A["&#1088;"]="r";A["&#1086;"]="o";A["&#1083;"]="l";A["&#1076;"]="d";A["&#1078;"]="zh";A["&#1101;"]="e";&lt;br /&gt;		A["&#1071;"]="YA";A["&#1063;"]="CH";A["&#1057;"]="S";A["&#1052;"]="M";A["&#1048;"]="I";A["&#1058;"]="T";A["&#1068;"]="'";A["&#1041;"]="B";A["&#1070;"]="YU";&lt;br /&gt;		A["&#1103;"]="ya";A["&#1095;"]="ch";A["&#1089;"]="s";A["&#1084;"]="m";A["&#1080;"]="i";A["&#1090;"]="t";A["&#1100;"]="'";A["&#1073;"]="b";A["&#1102;"]="yu";&lt;br /&gt;		new_el.value = el.value.replace(/([\u0410-\u0451])/g,&lt;br /&gt;			function (str,p1,offset,s) {&lt;br /&gt;				if (A[str] != 'undefined'){return A[str];}&lt;br /&gt;			}&lt;br /&gt;		);&lt;br /&gt;	}&lt;br /&gt;	/* Normalizes a string, e&#1102; =&gt; eyu */&lt;br /&gt;	this.strNormalize = function(el)&lt;br /&gt;	{&lt;br /&gt;		if (!el) { return; }&lt;br /&gt;		this.strTranslit(el);&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;var oJS = new JSfunc();&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;/head&gt;&lt;br /&gt;&lt;body&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&#1074;&#1074;&#1077;&#1076;&#1080;&#1090;&#1077; &#1090;&#1077;&#1082;&#1089;&#1090;:&lt;/p&gt;&lt;br /&gt;&lt;textarea onkeyup="oJS.strNormalize(this)" style="height:10em;width:100%" id="in"&gt;&lt;/textarea&gt;&lt;br /&gt;&lt;p&gt;&#1088;&#1077;&#1079;&#1091;&#1083;&#1100;&#1090;&#1072;&#1090;:&lt;/p&gt;&lt;br /&gt;&lt;textarea style="height:10em;width:100%" id="out"&gt;&lt;/textarea&gt;&lt;br /&gt;&lt;br /&gt;&lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 21 Jan 2008 19:24:26 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5021</guid>
      <author>Dmitry-Sh (Dmitry Shilnikov)</author>
    </item>
    <item>
      <title>PHP: multibyte function to get string length</title>
      <link>http://snippets.dzone.com/posts/show/4145</link>
      <description>&lt;code&gt;&lt;br /&gt;	/**&lt;br /&gt;	 * Get string length, multibyte.&lt;br /&gt;	 *&lt;br /&gt;	 * @param   string  $t Any string content&lt;br /&gt;	 * @param   string  $encoding Charset encoding&lt;br /&gt;	 * @return  int     String length&lt;br /&gt;	 */&lt;br /&gt;	function mb_strlen($t, $encoding = 'UTF-8')&lt;br /&gt;	{&lt;br /&gt;		/* --enable-mbstring */&lt;br /&gt;		if (function_exists('mb_strlen'))&lt;br /&gt;		{&lt;br /&gt;			return mb_strlen($t, $encoding);&lt;br /&gt;		}&lt;br /&gt;		else&lt;br /&gt;		{&lt;br /&gt;			return strlen(utf8_decode($t));&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Fri, 15 Jun 2007 05:35:44 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4145</guid>
      <author>Dmitry-Sh (Dmitry Shilnikov)</author>
    </item>
    <item>
      <title>PHP-function to optimize a CSS-file</title>
      <link>http://snippets.dzone.com/posts/show/4137</link>
      <description>&lt;code&gt;&lt;br /&gt;	/**&lt;br /&gt;	 * Converts a CSS-file contents into one string&lt;br /&gt;	 *&lt;br /&gt;	 * @param    string  $t Text data&lt;br /&gt;	 * @param    int     $is_debug Skip convertion&lt;br /&gt;	 * @return   string  Optimized string&lt;br /&gt;	 */&lt;br /&gt;	function text_smooth_css($t, $is_debug = 0)&lt;br /&gt;	{&lt;br /&gt;		if ($is_debug) { return $t; }&lt;br /&gt;		/* Remove comments */&lt;br /&gt;		$t = preg_replace("/\/\*(.*?)\*\//s", ' ', $t);&lt;br /&gt;		/* Remove new lines, spaces */&lt;br /&gt;		$t = preg_replace("/(\s{2,}|[\r\n|\n|\t|\r])/", ' ', $t);&lt;br /&gt;		/* Join rules */&lt;br /&gt;		$t = preg_replace('/([,|;|:|{|}]) /', '\\1', $t);&lt;br /&gt;		$t = str_replace(' {', '{', $t);&lt;br /&gt;		/* Remove ; for the last attribute */&lt;br /&gt;		$t = str_replace(';}', '}', $t);&lt;br /&gt;		$t = str_replace(' }', '}', $t);&lt;br /&gt;		return $t;&lt;br /&gt;	}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 13 Jun 2007 13:42:52 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4137</guid>
      <author>Dmitry-Sh (Dmitry Shilnikov)</author>
    </item>
    <item>
      <title>Glossword WAMP source code (NSIS)</title>
      <link>http://snippets.dzone.com/posts/show/4135</link>
      <description>// NSIS (http://nsis.sourceforge.net/)&lt;br /&gt;// Glossword WAMP (http://sourceforge.net/projects/glossword/)&lt;br /&gt;// Apache, MySQL and PHP are stored in archive usr.exe, directory /usr/local&lt;br /&gt;// phpMyAdmin is in archive htdocs.exe, directory /htdocs/phpmyadmin&lt;br /&gt;// Additionaly you need files with phrases: English.nsh and Russian.nsh&lt;br /&gt;// ------------------------------------------&lt;br /&gt;// English.nsh:&lt;br /&gt;// LangString SECT_01 ${LANG_ENGLISH} "Glossword ${PRODUCT_VERSION}"&lt;br /&gt;// LangString TXT_02 ${LANG_ENGLISH} "Thank you for installing Glossword.\r\nFor news and updates go to http://sourceforge.net/projects/glossword/"&lt;br /&gt;// LangString DESC_SecGw ${LANG_ENGLISH} "Glossword program core files."&lt;br /&gt;// ------------------------------------------&lt;br /&gt;// install.bat&lt;br /&gt;// @echo on&lt;br /&gt;// cls&lt;br /&gt;// SET ipath=%1&lt;br /&gt;// cd "%ipath%/usr/local/apache2/bin"&lt;br /&gt;// httpd.exe -k install -n Apache2_GW&lt;br /&gt;// httpd.exe -k start -n Apache2_GW&lt;br /&gt;// cd "%ipath%/usr/local/mysql5/bin"&lt;br /&gt;// mysqld-nt.exe --install MySQL50_GW --defaults-file="%ipath%/usr/local/mysql5/bin/my-custom.cnf"&lt;br /&gt;// net start MySQL50_GW&lt;br /&gt;// ------------------------------------------&lt;br /&gt;// uninstall.bat&lt;br /&gt;// @echo off&lt;br /&gt;// cls&lt;br /&gt;// SET ipath=%1&lt;br /&gt;// cd "%ipath%/usr/local/apache2/bin"&lt;br /&gt;// httpd.exe -k stop -n Apache2_GW&lt;br /&gt;// httpd.exe -k uninstall -n Apache2_GW&lt;br /&gt;// net stop MySQL50_GW&lt;br /&gt;// cd "%ipath%/usr/local/mysql5/bin"&lt;br /&gt;// mysqld-nt.exe --remove MySQL50_GW&lt;br /&gt;// ------------------------------------------&lt;br /&gt;// unpack.bat&lt;br /&gt;// @echo off&lt;br /&gt;// usr.exe -y&lt;br /&gt;// htdocs.exe -y&lt;br /&gt;// del usr.exe&lt;br /&gt;// del htdocs.exe&lt;br /&gt;// del unpack.bat&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now you can create your own WAMP package.&lt;br /&gt;&lt;br /&gt;; Glossword Desktop edition: Apache, MySQL, PHP&lt;br /&gt;; Written by Dmitry Shilnikov (c) 2002-2007&lt;br /&gt;; tty01@rambler.ru&lt;br /&gt;;--------------------------------&lt;br /&gt;;Include Modern UI&lt;br /&gt;&lt;br /&gt;  	!include "MUI.nsh"&lt;br /&gt;&lt;br /&gt;; replace in file with count of changes&lt;br /&gt;	!include "FileFunc.nsh"&lt;br /&gt;	&lt;br /&gt;;--------------------------------&lt;br /&gt;;Custom variables&lt;br /&gt;&lt;br /&gt;	!define PRODUCT_NAME "Apache, MySQL, PHP"&lt;br /&gt;	!define PRODUCT_VERSION "Apache/2.2.4, MySQL 5.0.41-community-nt, PHP 5.2.3 for Windows"&lt;br /&gt;	!define DIR_SRC "."&lt;br /&gt;	!define THIS_DIR_INSTALLTO "Glossword-WAMP"&lt;br /&gt;&lt;br /&gt;;--------------------------------&lt;br /&gt;;General&lt;br /&gt;&lt;br /&gt;	Name "${PRODUCT_NAME}"&lt;br /&gt;	OutFile "glossword-wamp.exe"&lt;br /&gt;&lt;br /&gt;	;Folder selection page&lt;br /&gt;	InstallDir "$PROGRAMFILES\Glossword-WAMP"&lt;br /&gt;&lt;br /&gt;;--------------------------------&lt;br /&gt;;Interface Settings&lt;br /&gt;&lt;br /&gt;	!define MUI_ABORTWARNING&lt;br /&gt;	!define MUI_UI ${NSISDIR}\Contrib\UIs\modern.exe&lt;br /&gt;	!define MUI_ICON ${DIR_SRC}\install\gw_new.ico&lt;br /&gt;	!define MUI_UNICON ${DIR_SRC}\install\gw_remove.ico&lt;br /&gt;	!define MUI_FINISHPAGE_TEXT $(TXT_02)&lt;br /&gt;	&lt;br /&gt;;--------------------------------&lt;br /&gt;;Pages&lt;br /&gt;&lt;br /&gt;!insertmacro MUI_PAGE_WELCOME&lt;br /&gt;!insertmacro MUI_PAGE_DIRECTORY&lt;br /&gt;!insertmacro MUI_PAGE_INSTFILES&lt;br /&gt;!insertmacro MUI_PAGE_FINISH&lt;br /&gt;&lt;br /&gt;;Uninstaller pages&lt;br /&gt;!insertmacro MUI_UNPAGE_CONFIRM&lt;br /&gt;!insertmacro MUI_UNPAGE_INSTFILES&lt;br /&gt;&lt;br /&gt;;--------------------------------&lt;br /&gt;;Languages&lt;br /&gt;&lt;br /&gt;!insertmacro MUI_LANGUAGE "English"&lt;br /&gt;!insertmacro MUI_LANGUAGE "Russian"&lt;br /&gt;&lt;br /&gt;;--------------------------------&lt;br /&gt;;Installer Sections&lt;br /&gt;&lt;br /&gt;Section "$(SECT_01)" SecGw&lt;br /&gt;&lt;br /&gt;	SetDetailsPrint textonly&lt;br /&gt;	DetailPrint "Installing server files..."&lt;br /&gt;    SetOverwrite ifnewer&lt;br /&gt;	&lt;br /&gt;	DetailPrint "htdocs..."&lt;br /&gt;	CreateDirectory "$INSTDIR\htdocs"&lt;br /&gt;	CreateDirectory "$INSTDIR\htdocs\glossword"&lt;br /&gt;&lt;br /&gt;	SetOutPath "$INSTDIR"&lt;br /&gt;	File "usr.exe"&lt;br /&gt;	File "htdocs.exe"&lt;br /&gt;	File "unpack.bat"&lt;br /&gt;	File "install.bat"&lt;br /&gt;	File "uninstall.bat"&lt;br /&gt;	File "localhost.url"&lt;br /&gt;	File "phpinfo.url"&lt;br /&gt;    File "phpmyadmin.url"&lt;br /&gt;    File "news.url"&lt;br /&gt;    File "glossword-wamp224_5041_523.txt"&lt;br /&gt;	&lt;br /&gt;	ExecWait '"unpack.bat"'&lt;br /&gt;&lt;br /&gt;	SetOutPath "$INSTDIR"&lt;br /&gt;	; change configuraiton files&lt;br /&gt;	DetailPrint "httpd.conf..."&lt;br /&gt;	ClearErrors&lt;br /&gt;	FileOpen $0 "$INSTDIR\usr\local\apache2\conf\httpd.conf" "r"&lt;br /&gt;	GetTempFileName $R0&lt;br /&gt;	FileOpen $1 $R0 "w"&lt;br /&gt;	loop1:&lt;br /&gt;		FileRead $0 $2&lt;br /&gt;		IfErrors done1&lt;br /&gt;		StrCmp $2 "# Created by install$\r$\n" 0 +2&lt;br /&gt;		StrCpy $2 "# Created by glossword-amp.exe$\r$\n"&lt;br /&gt;		StrCmp $2 "DocumentRoot $\"E:/usr/httpdocs/svn/Glossword Desktop/htdocs$\"$\r$\n" 0 +2&lt;br /&gt;		StrCpy $2 "DocumentRoot $\"$INSTDIR\htdocs$\"$\r$\n"&lt;br /&gt;		StrCmp $2 "ServerRoot $\"E:/usr/httpdocs/svn/Glossword Desktop/usr/local/apache2$\"$\r$\n" 0 +2&lt;br /&gt;		StrCpy $2 "ServerRoot $\"$INSTDIR\usr\local\apache2$\"$\r$\n"&lt;br /&gt;		FileWrite $1 $2&lt;br /&gt;	Goto loop1&lt;br /&gt;	done1:&lt;br /&gt;		FileClose $0&lt;br /&gt;		FileClose $1&lt;br /&gt;		Delete "$INSTDIR\usr\local\apache2\conf\httpd.conf"&lt;br /&gt;		CopyFiles /SILENT $R0 "$INSTDIR\usr\local\apache2\conf\httpd.conf"&lt;br /&gt;		Delete $R0&lt;br /&gt;	;		&lt;br /&gt;	DetailPrint "my-custom.cnf..."&lt;br /&gt;	ClearErrors&lt;br /&gt;	FileOpen $0 "$INSTDIR\usr\local\mysql5\bin\my-custom.cnf" "r"&lt;br /&gt;	GetTempFileName $R0&lt;br /&gt;	FileOpen $1 $R0 "w"&lt;br /&gt;	loop2:&lt;br /&gt;		FileRead $0 $2&lt;br /&gt;		IfErrors done2&lt;br /&gt;		StrCmp $2 "basedir=$\"../mysql5/$\"$\r$\n" 0 +2&lt;br /&gt;		StrCpy $2 "basedir=$\"$INSTDIR\usr\local\mysql5\$\"$\r$\n"&lt;br /&gt;		StrCmp $2 "datadir=$\"../mysql5/data/$\"$\r$\n" 0 +2&lt;br /&gt;		StrCpy $2 "datadir=$\"$INSTDIR\usr\local\mysql5\data\$\"$\r$\n"&lt;br /&gt;		FileWrite $1 $2&lt;br /&gt;	Goto loop2&lt;br /&gt;	done2:&lt;br /&gt;		FileClose $0&lt;br /&gt;		FileClose $1&lt;br /&gt;		Delete "$INSTDIR\usr\local\mysql5\bin\my-custom.cnf"&lt;br /&gt;		CopyFiles /SILENT $R0 "$INSTDIR\usr\local\mysql5\bin\my-custom.cnf"&lt;br /&gt;		Delete $R0&lt;br /&gt;	;&lt;br /&gt;	DetailPrint "php.ini..."&lt;br /&gt;	ClearErrors&lt;br /&gt;	FileOpen $0 "$INSTDIR\usr\local\php5\php.ini" "r"&lt;br /&gt;	GetTempFileName $R0&lt;br /&gt;	FileOpen $1 $R0 "w"&lt;br /&gt;	loop5:&lt;br /&gt;		FileRead $0 $2&lt;br /&gt;		IfErrors done5&lt;br /&gt;		StrCmp $2 "extension_dir = $\"../../php5/ext$\"$\r$\n" 0 +2&lt;br /&gt;		StrCpy $2 "extension_dir = $\"$INSTDIR\usr\local\php5\ext$\"$\r$\n"&lt;br /&gt;		StrCmp $2 "session.save_path = $\"c:/temp$\"$\r$\n" 0 +2&lt;br /&gt;		StrCpy $2 "session.save_path = $\"$TEMP$\"$\r$\n"&lt;br /&gt;		FileWrite $1 $2&lt;br /&gt;	Goto loop5&lt;br /&gt;	done5:&lt;br /&gt;		FileClose $0&lt;br /&gt;		FileClose $1&lt;br /&gt;		Delete "$INSTDIR\usr\local\php5\php.ini"&lt;br /&gt;		CopyFiles /SILENT $R0 "$INSTDIR\usr\local\php5\php.ini"&lt;br /&gt;		Delete $R0&lt;br /&gt;	;	&lt;br /&gt;	DetailPrint "install.bat..."&lt;br /&gt;	ClearErrors&lt;br /&gt;	FileOpen $0 "$INSTDIR\install.bat" "r"&lt;br /&gt;	GetTempFileName $R0&lt;br /&gt;	FileOpen $1 $R0 "w"&lt;br /&gt;	loop3:&lt;br /&gt;		FileRead $0 $2&lt;br /&gt;		IfErrors done3&lt;br /&gt;		StrCmp $2 "set ipath=%1$\r$\n" 0 +2&lt;br /&gt;		StrCpy $2 "set ipath=$INSTDIR$\r$\n"&lt;br /&gt;		FileWrite $1 $2&lt;br /&gt;	Goto loop3&lt;br /&gt;	done3:&lt;br /&gt;		FileClose $0&lt;br /&gt;		FileClose $1&lt;br /&gt;		Delete "$INSTDIR\install.bat"&lt;br /&gt;		CopyFiles /SILENT $R0 "$INSTDIR\install.bat"&lt;br /&gt;		Delete $R0&lt;br /&gt;	;&lt;br /&gt;	DetailPrint "uninstall.bat..."&lt;br /&gt;	ClearErrors&lt;br /&gt;	FileOpen $0 "$INSTDIR\uninstall.bat" "r"&lt;br /&gt;	GetTempFileName $R0&lt;br /&gt;	FileOpen $1 $R0 "w"&lt;br /&gt;	loop4:&lt;br /&gt;		FileRead $0 $2&lt;br /&gt;		IfErrors done4&lt;br /&gt;		StrCmp $2 "set ipath=%1$\r$\n" 0 +2&lt;br /&gt;		StrCpy $2 "set ipath=$INSTDIR$\r$\n"&lt;br /&gt;		FileWrite $1 $2&lt;br /&gt;	Goto loop4&lt;br /&gt;	done4:&lt;br /&gt;		FileClose $0&lt;br /&gt;		FileClose $1&lt;br /&gt;		Delete "$INSTDIR\uninstall.bat"&lt;br /&gt;		CopyFiles /SILENT $R0 "$INSTDIR\uninstall.bat"&lt;br /&gt;		Delete $R0&lt;br /&gt;	ExecWait '"install.bat"'&lt;br /&gt;	;nsExec::ExecToStack '"install.bat"'&lt;br /&gt;&lt;br /&gt;	SetOverwrite off&lt;br /&gt;&lt;br /&gt;	CreateDirectory "$SMPROGRAMS\${THIS_DIR_INSTALLTO}"&lt;br /&gt;	CreateShortCut "$SMPROGRAMS\${THIS_DIR_INSTALLTO}\Glossword at localhost.lnk" "$INSTDIR\localhost.url"&lt;br /&gt;	CreateShortCut "$SMPROGRAMS\${THIS_DIR_INSTALLTO}\Glossword development news.lnk" "$INSTDIR\news.url"&lt;br /&gt;	CreateShortCut "$SMPROGRAMS\${THIS_DIR_INSTALLTO}\phpinfo().lnk" "$INSTDIR\phpinfo.url"&lt;br /&gt;    CreateShortCut "$SMPROGRAMS\${THIS_DIR_INSTALLTO}\phpMyAdmin.lnk" "$INSTDIR\phpmyadmin.url"&lt;br /&gt;	CreateShortCut "$SMPROGRAMS\${THIS_DIR_INSTALLTO}\Apache Monitor.lnk" "$INSTDIR\usr\local\apache2\bin\ApacheMonitor.exe"&lt;br /&gt;	CreateShortCut "$SMPROGRAMS\${THIS_DIR_INSTALLTO}\Remove Glossword WAMP.lnk" "$INSTDIR\uninstall.exe"&lt;br /&gt;    CreateShortCut "$SMPROGRAMS\${THIS_DIR_INSTALLTO}\Release notes.lnk" "$INSTDIR\glossword-wamp224_5041_523.txt"&lt;br /&gt;&lt;br /&gt;  	WriteUninstaller "$INSTDIR\uninstall.exe"&lt;br /&gt;SectionEnd&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;;--------------------------------&lt;br /&gt;;Descriptions&lt;br /&gt;&lt;br /&gt;!include "${DIR_SRC}\install\English.nsh"&lt;br /&gt;!include "${DIR_SRC}\install\Russian.nsh"&lt;br /&gt;&lt;br /&gt;!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN&lt;br /&gt;	!insertmacro MUI_DESCRIPTION_TEXT ${SecGw} $(DESC_SecGw)&lt;br /&gt;!insertmacro MUI_FUNCTION_DESCRIPTION_END&lt;br /&gt; &lt;br /&gt;;--------------------------------&lt;br /&gt;; Functions&lt;br /&gt;&lt;br /&gt;Function .onInit&lt;br /&gt;	!insertmacro MUI_LANGDLL_DISPLAY&lt;br /&gt;FunctionEnd&lt;br /&gt;&lt;br /&gt;;--------------------------------&lt;br /&gt;;Uninstaller Section&lt;br /&gt;&lt;br /&gt;Section Uninstall&lt;br /&gt;	&lt;br /&gt;	SetOutPath "$INSTDIR"&lt;br /&gt;	ExecWait '"uninstall.bat"'&lt;br /&gt;&lt;br /&gt;	SetShellVarContext current&lt;br /&gt;	Delete "$SMPROGRAMS\${THIS_DIR_INSTALLTO}\Remove Glossword WAMP.lnk"&lt;br /&gt;	Delete "$SMPROGRAMS\${THIS_DIR_INSTALLTO}\Apache Monitor.lnk"&lt;br /&gt;	Delete "$SMPROGRAMS\${THIS_DIR_INSTALLTO}\Glossword at localhost.lnk"&lt;br /&gt;	Delete "$SMPROGRAMS\${THIS_DIR_INSTALLTO}\Glossword development news.lnk"&lt;br /&gt;	Delete "$SMPROGRAMS\${THIS_DIR_INSTALLTO}\phpinfo().lnk"&lt;br /&gt;    Delete "$SMPROGRAMS\${THIS_DIR_INSTALLTO}\phpMyAdmin.lnk"&lt;br /&gt;    Delete "$SMPROGRAMS\${THIS_DIR_INSTALLTO}\Release Notes.lnk"&lt;br /&gt;	RMDir /r "$SMPROGRAMS\${THIS_DIR_INSTALLTO}"&lt;br /&gt;	RMDir /r "$INSTDIR\usr\local\apache2"&lt;br /&gt;	RMDir /r "$INSTDIR\usr\local\php5"&lt;br /&gt;	RMDir /r "$INSTDIR\usr\local\mysql5\bin"&lt;br /&gt;	RMDir /r "$INSTDIR\usr\local\mysql5\share"&lt;br /&gt;	RMDir /r "$INSTDIR\htdocs\phpmyadmin"&lt;br /&gt;	Delete "$INSTDIR\install.bat"&lt;br /&gt;	Delete "$INSTDIR\uninstall.bat"&lt;br /&gt;	Delete "$INSTDIR\glossword-wamp224_5041_523.txt"&lt;br /&gt;	Delete "$INSTDIR\localhost.url"&lt;br /&gt;	Delete "$INSTDIR\phpinfo.url"&lt;br /&gt;	Delete "$INSTDIR\phpmyadmin.url"&lt;br /&gt;&lt;br /&gt; 	;RMDir /r "$INSTDIR"&lt;br /&gt;	SetAutoClose true&lt;br /&gt;  &lt;br /&gt;SectionEnd&lt;br /&gt;</description>
      <pubDate>Wed, 13 Jun 2007 09:12:40 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4135</guid>
      <author>Dmitry-Sh (Dmitry Shilnikov)</author>
    </item>
  </channel>
</rss>
