<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:gd="http://schemas.google.com/g/2005" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkAFRX4zeyp7ImA9WhRRFEw.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460</id><updated>2011-11-27T10:31:54.083-08:00</updated><category term="linux copy" /><category term="block referrer" /><category term="nic teaming" /><category term="drupal preprocess" /><category term="finding IP locations" /><category term="ssh tunneling" /><category term="you might also like" /><category term="compile kernel" /><category term="display block drupal" /><category term="drupal block div" /><category term="drupal snippet" /><category term="gzip compression" /><category term="openvas" /><category term="eaccelerator" /><category term="sed" /><category term="iostat" /><category term="imagefield" /><category term="simple newsletter drupal" /><category term="set privileges" /><category term="template php" /><category term="paypal button" /><category term="clean url" /><category term="bzip" /><category term="ipmi" /><category term="compress" /><category term="drupal api" /><category term="Making Money" /><category term="awstats exclude" /><category term="amanda" /><category term="dns geographic" /><category term="apache solr" /><category term="java" /><category term="zfs over nfs" /><category term="poptop" /><category term="hardware information" /><category term="linux vpn server" /><category term="google adsense tips" /><category term="php opcode caching" /><category term="optimizing" /><category term="shared hosting" /><category term="drupal social networking" /><category term="phim" /><category term="FreeNAS" /><category term="networking" /><category term="esofthub" /><category term="squid" /><category term="NAT" /><category term="webit expo" /><category term="Solaris 10 Adding New Disk" /><category term="skipfiles" /><category term="drupal cck" /><category term="free linux ram" /><category term="dragon ball" /><category term="too meny open files" /><category term="load balancing" /><category term="inodes" /><category term="aquia drupal" /><category term="ubuntu" /><category term="/dev/shm" /><category term="vmstat" /><category term="memcachefs" /><category term="drupal project" /><category term="vnstat" /><category term="dns jumper" /><category term="php curl" /><category term="virtualization" /><category term="simple balance" /><category term="mail" /><category term="change nameserver" /><category term="List child taxonomy terms of current parent term" /><category term="domainkeys" /><category term="drupal online offline" /><category term="install perl" /><category term="search engine" /><category term="pidgin" /><category term="hacking" /><category term="tftp backup cisco configuration" /><category term="geting node id" /><category term="paypal donation" /><category term="simple dom html" /><category term="volume group recovery" /><category term="drupal performance" /><category term="vnc server" /><category term="co hoi thanh cong" /><category term="clvm" /><category term="19 basic seo techniques" /><category term="related content" /><category term="tuning" /><category term="anti http dos" /><category term="nginx load balancer" /><category term="nfs" /><category term="high performance drupal" /><category term="nic bonding" /><category term="security scanner" /><category term="Aquia" /><category term="named" /><category term="drupal view" /><category term="cisco ssh" /><category term="CacheFS" /><category term="drupal image attach" /><category term="network bandwidth monitoring" /><category term="drupal imagecache" /><category term="p2p" /><category term="5 menu js hoặc css tuyệt vời cho bạn" /><category term="briged networking" /><category term="howto" /><category term="Drupal Theming View" /><category term="phpmyadmin" /><category term="memcacheDB" /><category term="ssh" /><category term="music" /><category term="shell scripts" /><category term="php preg_match" /><category term="swap usage" /><category term="redhat clustering" /><category term="web application scanner" /><category term="ddos" /><category term="vnc" /><category term="migrate cacti from 32bit to 64bit" /><category term="mẹ" /><category term="tar" /><category term="automatich ssh" /><category term="nginx cache" /><category term="nameserver" /><category term="sudo" /><category term="mail server" /><category term="view template" /><category term="unix" /><category term="shorewall" /><category term="mod_rewrite" /><category term="check remote file exists" /><category term="routing" /><category term="merging js" /><category term="caching" /><category term="drupal adsense" /><category term="os mode" /><category term="Removing a Cluster Member" /><category term="related posts" /><category term="online password" /><category term="maxclient" /><category term="lighttpd" /><category term="drupal seo" /><category term="linux performance" /><category term="mogilefs" /><category term="rsync" /><category term="blogspot" /><category term="block class" /><category term="drupal image caption" /><category term="drupal content slider" /><category term="php snippets" /><category term="storage" /><category term="managing drupal company" /><category term="nfs server" /><category term="apachesolr search" /><category term="drupal viewslider" /><category term="mysql connection" /><category term="vlan" /><category term="theming drupal" /><category term="css" /><category term="Tivoli Storage Manager" /><category term="32 bit" /><category term="web 2.0" /><category term="how many open files being used" /><category term="http://www.smashblogtips.com/18-best-seo-tips-for-your-internet-marketing-campaigns/" /><category term="go tieng viet voi pidgin" /><category term="performance" /><category term="script change filename in linux" /><category term="drupal site maintenance" /><category term="cluster suide" /><category term="rsync ssh port" /><category term="tcp tuning" /><category term="dkim" /><category term="backup" /><category term="parted" /><category term="drupal role user" /><category term="sock proxy" /><category term="centos" /><category term="jQuery" /><category term="drupal 6 theming" /><category term="clean url drupal" /><category term="mysql" /><category term="rsync partial" /><category term="html dom" /><category term="cifs" /><category term="useful php code" /><category term="ssh timeout" /><category term="Converting WMA to MP3 Using FFmpeg" /><category term="google adsense" /><category term="increase ip_conntrack_max" /><category term="vncserver" /><category term="useful linux command rpm" /><category term="regular expression" /><category term="octoshape" /><category term="physical CPUs in Linux" /><category term="override drupal variables" /><category term="remote exploitation" /><category term="logrotate" /><category term="godaddy" /><category term="sopcast" /><category term="reverse ip" /><category term="swap file" /><category term="Google Analytics" /><category term="dos tool" /><category term="mysql remote connection" /><category term="memcahed" /><category term="man in the middle attack" /><category term="Designing Scalable SMTP Networks" /><category term="top access ip" /><category term="lighttpd prevent hot linking" /><category term="memcached" /><category term="drupal panel" /><category term="drupal database connect" /><category term="drupal check login" /><category term="hardisk space" /><category term="drupa snippet" /><category term="Drupal Rocks Education Websites" /><category term="drupal seperate images" /><category term="trunking" /><category term="single-rank" /><category term="link aggregation" /><category term="cpu cores in linux" /><category term="file system caching" /><category term="drupal argument" /><category term="fs-cache" /><category term="redis" /><category term="convert wma to mp3" /><category term="glusterfs" /><category term="mysql master slave" /><category term="benchmark" /><category term="gzip" /><category term="drupal most views" /><category term="curl" /><category term="rpm" /><category term="dropdown menu" /><category term="memcache" /><category term="dstat" /><category term="mmsclient" /><category term="mysql privileges" /><category term="tips tricks" /><category term="archive" /><category term="internet protocol" /><category term="tag cloud" /><category term="tar over ssh" /><category term="seo guide" /><category term="sms gateway" /><category term="trai tim tre tho" /><category term="squid cache" /><category term="cisco video" /><category term="hai" /><category term="ip_conntrack table full" /><category term="system administrator handbook" /><category term="PHPTemplate engine" /><category term="How to Load Balance Apache" /><category term="internet tv" /><category term="cisco lab" /><category term="isntalling Acquia drupal" /><category term="php" /><category term="change dns" /><category term="Can't locate IO/Socket/SSL.pm" /><category term="drupal setup" /><category term="drupal related node" /><category term="apache solr custom path" /><category term="seo basic" /><category term="lucene" /><category term="seperate node template" /><category term="monitoring" /><category term="install php" /><category term="cdn" /><category term="drupal taxonomy" /><category term="nas" /><category term="Munin" /><category term="pattern matching" /><category term="display categories drupal" /><category term="csync2" /><category term="blogger" /><category term="apache throughput" /><category term="drupal developer" /><category term="mysql performance" /><category term="drupal base theme" /><category term="/etc/fstab" /><category term="drupal subdomain" /><category term="command line" /><category term="iptables" /><category term="dmidecode" /><category term="linkwithin" /><category term="torrentflux" /><category term="e-commerce" /><category term="dropping packet" /><category term="drupal access count" /><category term="install sun java on centos" /><category term="make money online" /><category term="drupal sidebar" /><category term="navicat" /><category term="phptemplate" /><category term="restore mbr" /><category term="list all files with full path" /><category term="cuộc sống" /><category term="TraceEnable  Off" /><category term="drupal module" /><category term="array" /><category term="cry on my shoulder" /><category term="restore" /><category term="redhat" /><category term="lustre" /><category term="linux forensic" /><category term="CloneZilla" /><category term="upgrade php 5.2.x" /><category term="lsof" /><category term="xay dung site truong hoc dung drupal" /><category term="nginx" /><category term="torrent" /><category term="dual-rank" /><category term="advanced seo" /><category term="cacti" /><category term="solaris" /><category term="crontab" /><category term="moneybooker" /><category term="dns in solaris" /><category term="job scheduling" /><category term="64 bit" /><category term="prefork" /><category term="linux kernel cache" /><category term="directory listing" /><category term="cbm" /><category term="string search" /><category term="drupal library" /><category term="LVM" /><category term="drupal 6 meta tags" /><category term="calomel" /><category term="distributed file system" /><category term="hide nginx server header" /><category term="ssh so slowly" /><category term="snmpd" /><category term="putty" /><category term="ffmpeg" /><category term="secure download" /><category term="memory" /><category term="kannel" /><category term="unbrakable linux oracle" /><category term="mount iso" /><category term="cck" /><category term="drupal jcarousel" /><category term="wordpress" /><category term="ssh on cisco router" /><category term="sand animation" /><category term="Banned From Adsense" /><category term="writev" /><category term="dns" /><category term="theming author node" /><category term="optimization" /><category term="53 kỹ thuật CSS ko thể bỏ qua" /><category term="apf" /><category term="simplenews" /><category term="lighttpd optimizing" /><category term="block theming drupal" /><category term="nslookup" /><category term="ettercap" /><category term="intrusion detecion" /><category term="xcache" /><category term="kiem tien" /><category term="lighttp 1.5" /><category term="drupal global variables" /><category term="Kỷ Băng Hà II - Ice Age II" /><category term="linux process" /><category term="zombie process" /><category term="solaris zone" /><category term="rpmbuild" /><category term="monit" /><category term="mysql copy data export data table" /><category term="mysql install" /><category term="mplayer" /><category term="GFS" /><category term="z-index css" /><category term="oracle linux" /><category term="drupal block system" /><category term="preg_match" /><category term="google earnings" /><category term="csync" /><category term="drupal themeing view" /><category term="ext4" /><category term="httpdos" /><category term="van son" /><category term="skipfish" /><category term="imagick" /><category term="x-flash" /><category term="firewall" /><category term="detecting SAN disk" /><category term="Facebook" /><category term="hoai linh" /><category term="ulimit" /><category term="database scaling" /><category term="network speed" /><category term="drupa theme photoshop" /><category term="Acquia 2 min video - Enterprise 2.0 Launchpad Round 2" /><category term="module drupal" /><category term="ethtool" /><category term="Web Server HTTP Trace/Track Method Support Cross-Site Tracing Vulnerability" /><category term="IBM DS4700 storage" /><category term="drupal theme" /><category term="modcache" /><category term="Supermicro" /><category term="linux commands" /><category term="virtual manager" /><category term="cross site scripting attack" /><category term="seo" /><category term="super micro" /><category term="user login block" /><category term="drupal tips tricks" /><category term="ipneighbors" /><category term="tcp proxy" /><category term="paypal" /><category term="install svn with apache centos redhat" /><category term="Scalable Web Architectures" /><category term="hidden process" /><category term="shorewall standalone" /><category term="php array" /><category term="kernel" /><category term="swap" /><category term="building imagemagick" /><category term="ds4000" /><category term="find and replace" /><category term="run root command" /><category term="SAN" /><category term="Drupal Rocks Library Websites" /><category term="mod_security" /><category term="disable mod_security" /><category term="anti slowris httpd dos" /><category term="thiet ke web" /><category term="building small business website" /><category term="Adding and Deleting Members" /><category term="drupal php" /><category term="control cpu usage" /><category term="drupal ubercart" /><category term="linux server" /><category term="rpms" /><category term="drupal development" /><category term="penetration testing" /><category term="bandwith" /><category term="cluster file system" /><category term="open source" /><category term="Advertising" /><category term="date" /><category term="rewrite" /><category term="drupal related content" /><category term="clone xen" /><category term="firefox" /><category term="cisco" /><category term="e-payment" /><category term="yum" /><category term="finding zombie process in linux" /><category term="Layout Optimization" /><category term="application monitoring" /><category term="argument drupal view" /><category term="clone disk" /><category term="dos apache" /><category term="tips" /><category term="restore broken raid" /><category term="upgrade php" /><category term="drupal url" /><category term="grep" /><category term="archiving" /><category term="maxclients" /><category term="hidden port" /><category term="mysql upgrade" /><category term="geographic dns" /><category term="imagecache" /><category term="max limit open files in linux" /><category term="bind" /><category term="xen" /><category term="cluster manager" /><category term="splunk" /><category term="Server Configuration" /><category term="performance tuning" /><category term="linux cluster" /><category term="drupal theming" /><category term="doshttp" /><category term="download mms" /><category term="ext3" /><category term="virtual ip" /><category term="minify javascript" /><category term="mod_cache" /><category term="vmware" /><category term="security" /><category term="install slowloris" /><category term="mysql 5.1.50" /><category term="dns wildcard" /><category term="reverse proxy" /><category term="pptp" /><category term="Drupal Rocks the Social Publishing Web" /><category term="fdisk 2TB" /><category term="cpu usage" /><category term="reset root password" /><category term="user authentication" /><category term="system tuning" /><category term="mysql replication" /><category term="vlc player" /><category term="oracle" /><category term="Brand Management" /><category term="drupal hook" /><category term="adsense earnings" /><category term="count files" /><category term="filesystem" /><category term="webserver performance" /><category term="image hosting" /><category term="add new disk" /><category term="zend framework" /><category term="digg" /><category term="scaling memached" /><category term="bamboo" /><category term="session" /><category term="drupal 6" /><category term="ZFS Solaris File System" /><category term="architecture" /><category term="kernel: NETDEV WATCHDOG: eth0: transmit timed out on Poweredge" /><category term="string match" /><category term="nice" /><category term="Flick" /><category term="linux swap" /><category term="minify css" /><category term="Get vocabulary id by term or node" /><category term="fuse" /><category term="cache" /><category term="create mysql database" /><category term="drupal codes" /><category term="kill process by name" /><category term="tcp buffer" /><category term="anti slowloris" /><category term="postfix" /><category term="load" /><category term="website scallable" /><category term="limit cpu" /><category term="myipneighbors" /><category term="yume.vn" /><category term="scaling with memcached" /><category term="awstats" /><category term="php 5.3.x" /><category term="compression" /><category term="gaining root" /><category term="backup config cisco" /><category term="find" /><category term="bing" /><category term="ibm" /><category term="python" /><category term="drupal content types" /><category term="drupal category" /><category term="telnet" /><category term="123relax.net" /><category term="name server" /><category term="mysql allow access from network" /><category term="p2p internet TV" /><category term="dos" /><category term="Servers" /><category term="linux rescue" /><category term="attack apache" /><category term="display block slideshow" /><category term="open dell manager" /><category term="drupal jobs" /><category term="too maney tcp sockets" /><category term="database" /><category term="ZFS" /><category term="linux" /><category term="apache" /><category term="maxrequestperchild" /><category term="bypass firewall" /><category term="adsense optimization" /><category term="Linux LVM" /><category term="syslog" /><category term="Drupal Rocks Newspaper and Journalism Websites" /><category term="watching user on your linux system" /><category term="color bandwith monitor" /><category term="proxy cache" /><category term="winscp" /><category term="disk space" /><category term="ipmi 2.0" /><category term="IPMIView" /><category term="linux recovery" /><category term="virt-install" /><category term="dell manager" /><category term="adsense tips" /><category term="drupal" /><category term="drupal clone" /><category term="send email" /><category term="apc" /><title>All about linux</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://thuannvn.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>507</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/blogspot/zAsx" /><feedburner:info uri="blogspot/zasx" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;AkAFRX8-eip7ImA9WhRRFEw.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-6200298100338954304</id><published>2011-11-27T10:31:00.001-08:00</published><updated>2011-11-27T10:31:54.152-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-27T10:31:54.152-08:00</app:edited><title>Extract domain, path etc from a full url with PHP</title><content type="html">&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;PHP's parse_url function makes it easy to extract the domain, path and other useful bits of information from a full URL. This can be useful for a variety of purposes, such as when spidering content from a website and needing to extract particular pieces of information from the links in the page.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;h2 style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; text-align: left;"&gt;Returning an associative array&lt;/h2&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;The parse_url function takes the url as the first argument and an optional component value as the second argument. If the second argument is omitted then it returns the found values as an associative array.&lt;/div&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;This post is at http://www.electrictoolbox.com/php-extract-domain-from-full-url/ and getting the associative array of information from it is done like this:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-color: rgb(102, 102, 102); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(102, 102, 102); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(102, 102, 102); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(102, 102, 102); border-top-style: solid; border-top-width: 1px; clear: both; color: #333333; font-size: 11px; overflow-x: auto; overflow-y: hidden; padding-bottom: 1em; padding-left: 10px; padding-right: 10px; padding-top: 10px; text-align: left;"&gt;$url = "http://www.electrictoolbox.com/php-extract-domain-from-full-url/";
$parts = parse_url($url);
&lt;/pre&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;Then doing print_r($parts) will output this:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-color: rgb(102, 102, 102); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(102, 102, 102); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(102, 102, 102); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(102, 102, 102); border-top-style: solid; border-top-width: 1px; clear: both; color: #333333; font-size: 11px; overflow-x: auto; overflow-y: hidden; padding-bottom: 1em; padding-left: 10px; padding-right: 10px; padding-top: 10px; text-align: left;"&gt;Array
(
    [scheme] =&amp;gt; http
    [host] =&amp;gt; www.electrictoolbox.com
    [path] =&amp;gt; /php-extract-domain-from-full-url/
)
&lt;/pre&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;If they are present, the array will also contain values for port, user, pass (i.e. password), query (the query string component of the URL) and fragment (the part after the #).&lt;/div&gt;&lt;h2 style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; text-align: left;"&gt;Returning a string&lt;/h2&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;If all you are after is a single component from the array as a single string, pass the second "component" parameter from the following constants: PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY or PHP_URL_FRAGMENT.&lt;/div&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;To just get the domain from this blog post's URL, do this:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-color: rgb(102, 102, 102); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(102, 102, 102); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(102, 102, 102); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(102, 102, 102); border-top-style: solid; border-top-width: 1px; clear: both; color: #333333; font-size: 11px; overflow-x: auto; overflow-y: hidden; padding-bottom: 1em; padding-left: 10px; padding-right: 10px; padding-top: 10px; text-align: left;"&gt;$url = "http://www.electrictoolbox.com/php-extract-domain-from-full-url/";
$domain = parse_url($url, PHP_URL_HOST);
&lt;/pre&gt;&lt;h2 style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; text-align: left;"&gt;PHP Documentation&lt;/h2&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;For more information read the&amp;nbsp;&lt;a href="http://www.php.net/parse_url" style="color: #535378;"&gt;PHP manual page&lt;/a&gt;&amp;nbsp;for this function.&lt;/div&gt;&lt;h2 style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; text-align: left;"&gt;Follow up posts&lt;/h2&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;Have a read of my post titled "&lt;a href="http://www.electrictoolbox.com/php-keywords-search-engine-referer-url-2/" style="color: black;"&gt;PHP: get keywords from search engine referer url&lt;/a&gt;" to find out how to use the parse_url function in conjunction with the parse_str function to see what query string visitors have entered into a search engine.&lt;/div&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;&lt;a href="http://www.electrictoolbox.com/php-extract-domain-from-full-url/"&gt;http://www.electrictoolbox.com/php-extract-domain-from-full-url/&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-6200298100338954304?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NMUisK46v1dFYSUFKpYDGRYz4-8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NMUisK46v1dFYSUFKpYDGRYz4-8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NMUisK46v1dFYSUFKpYDGRYz4-8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NMUisK46v1dFYSUFKpYDGRYz4-8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/okK1GZGeQ0Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/6200298100338954304/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/11/extract-domain-path-etc-from-full-url.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/6200298100338954304?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/6200298100338954304?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/okK1GZGeQ0Y/extract-domain-path-etc-from-full-url.html" title="Extract domain, path etc from a full url with PHP" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/11/extract-domain-path-etc-from-full-url.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ENRXkzeyp7ImA9WhRRE0o.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-4782655390369247798</id><published>2011-11-26T23:36:00.001-08:00</published><updated>2011-11-26T23:41:34.783-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-26T23:41:34.783-08:00</app:edited><title>Find all anchor tags in a page with PHP and the Simple HTML DOM Parser</title><content type="html">&lt;span class="Apple-style-span" style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px;"&gt;This post shows how to download a web page and find all the link anchor tags in the page using PHP and the Simple HTML DOM Parser which has a jQuery like syntax selector.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; text-align: left;"&gt;PHP Simple HTML DOM Parser&lt;/h2&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;The PHP Simple HTML DOM Parser makes it easy to find particular elements within an HTML page in a similar way to jQuery. It can be downloaded from&amp;nbsp;&lt;a href="http://simplehtmldom.sourceforge.net/" style="color: #535378;"&gt;http://simplehtmldom.sourceforge.net/&lt;/a&gt;&amp;nbsp;where there are also several examples.&lt;/div&gt;&lt;h2 style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; text-align: left;"&gt;Finding the &amp;lt;a&amp;gt; tags from a web page&lt;/h2&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;First of all include the Simple HTML DOM Parser using either include, require, include_once or require_once:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-color: rgb(102, 102, 102); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(102, 102, 102); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(102, 102, 102); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(102, 102, 102); border-top-style: solid; border-top-width: 1px; clear: both; color: #333333; font-size: 11px; overflow-x: auto; overflow-y: hidden; padding-bottom: 1em; padding-left: 10px; padding-right: 10px; padding-top: 10px; text-align: left;"&gt;require_once('/path/to/simple_html_dom.php');
&lt;/pre&gt;&lt;div style="background-color: #eeeeee; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;And then load the webpage into the DOM using either the file_get_html() or str_get_html() helper functions. The filename passed to file_get_html() can either be the URL to the web page or the filename of a local file. str_get_html() takes a string instead of a filename.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-color: rgb(102, 102, 102); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(102, 102, 102); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(102, 102, 102); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(102, 102, 102); border-top-style: solid; border-top-width: 1px; clear: both; color: #333333; font-size: 11px; overflow-x: auto; overflow-y: hidden; padding-bottom: 1em; padding-left: 10px; padding-right: 10px; padding-top: 10px; text-align: left;"&gt;$dom = file_get_html('http://www.google.com/');
$dom = str_get_html('... some html string ...');
&lt;/pre&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;Now do find() on the DOM for 'a' tags as in the following example which echos out the "href" property with a linebreak between each one:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-color: rgb(102, 102, 102); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(102, 102, 102); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(102, 102, 102); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(102, 102, 102); border-top-style: solid; border-top-width: 1px; clear: both; color: #333333; font-size: 11px; overflow-x: auto; overflow-y: hidden; padding-bottom: 1em; padding-left: 10px; padding-right: 10px; padding-top: 10px; text-align: left;"&gt;foreach($dom-&amp;gt;find('a') as $a) {
    if($a-&amp;gt;href) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; echo $a-&amp;gt;href . "\n";
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}
&lt;/pre&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;Using www.google.com as an example the above would output this:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-color: rgb(102, 102, 102); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(102, 102, 102); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(102, 102, 102); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(102, 102, 102); border-top-style: solid; border-top-width: 1px; clear: both; color: #333333; font-size: 11px; overflow-x: auto; overflow-y: hidden; padding-bottom: 1em; padding-left: 10px; padding-right: 10px; padding-top: 10px; text-align: left;"&gt;http://images.google.co.nz/imghp?hl=en&amp;amp;tab=wi
http://maps.google.co.nz/maps?hl=en&amp;amp;tab=wl
http://news.google.co.nz/nwshp?hl=en&amp;amp;tab=wn
http://groups.google.co.nz/grphp?hl=en&amp;amp;tab=wg
http://books.google.co.nz/bkshp?hl=en&amp;amp;tab=wp
http://mail.google.com/mail/?hl=en&amp;amp;tab=wm
http://www.google.co.nz/intl/en/options/
http://scholar.google.co.nz/schhp?hl=en&amp;amp;tab=ws
http://blogsearch.google.co.nz/?hl=en&amp;amp;tab=wb
http://translate.google.co.nz/?hl=en&amp;amp;tab=wT
http://www.youtube.com/?hl=en&amp;amp;tab=w1&amp;amp;gl=NZ
http://www.google.com/calendar/render?hl=en&amp;amp;tab=wc
http://docs.google.com/?hl=en&amp;amp;tab=wo
http://www.google.co.nz/reader/view/?hl=en&amp;amp;tab=wy
http://sites.google.com/?hl=en&amp;amp;tab=w3
http://www.google.co.nz/intl/en/options/
/url?sa=p&amp;amp;pref=ig&amp;amp;pval=3&amp;amp;q=http://www.google.co.nz/ig%3Fhl%3Den%26source%3Diglk&amp;amp;usg=AFQjCNGi5EQv2pmx9Kd5MdCX46heegpxAw
/preferences?hl=en
https://www.google.com/accounts/Login?hl=en&amp;amp;continue=http://www.google.co.nz/
/advanced_search?hl=en
/language_tools?hl=en
http://www.google.co.nz/setprefs?sig=0_Va9MAZW7LCKUpGRFXj4-Xh78Tkc=&amp;amp;hl=mi
/intl/en/ads/
/services/
/intl/en/about.html
http://www.google.com/ncr
/intl/en/privacy.html
&lt;/pre&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;Notice that these are the hrefs as they appear in the HTML source, so some are relative to the current document/domain and some are absolute containing a full http:// path.&lt;/div&gt;&lt;h2 style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 15px; margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; text-align: left;"&gt;Resolving the paths&lt;/h2&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;I've posted how to resolve the paths to full http:// URLs using the url_to_absolute library from Nadeau Software Consulting in my earlier post titled "&lt;a href="http://www.electrictoolbox.com/extract-images-web-page-php/" style="color: #535378;"&gt;Extract images from a web page with PHP and the Simple HTML DOM Parser&lt;/a&gt;"&lt;/div&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;I will write a&amp;nbsp;&lt;a href="http://www.electrictoolbox.com/php-resolve-relative-urls-absolute/" style="color: #535378;"&gt;standalone post&lt;/a&gt;&amp;nbsp;about how to do this later this week, which also deals with a slight issue with the URLs returned as they are partially encoded by default using rawurlencode() which is not really ideal. This later post shows the modification needed to resolve this along with some additional examples.&lt;/div&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="background-color: #eeeeee; color: #333333; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0.75em; margin-top: 0.75em; text-align: left;"&gt;&lt;a href="http://www.electrictoolbox.com/find-anchor-tags-php-simple-html-dom-parser/"&gt;http://www.electrictoolbox.com/find-anchor-tags-php-simple-html-dom-parser/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-4782655390369247798?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/kPmX1f5XOZVgjL9DyWYJP8Q1zcs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kPmX1f5XOZVgjL9DyWYJP8Q1zcs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/kPmX1f5XOZVgjL9DyWYJP8Q1zcs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/kPmX1f5XOZVgjL9DyWYJP8Q1zcs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/tZnx5WC2hVg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/4782655390369247798/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/11/find-all-anchor-tags-in-page-with-php.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/4782655390369247798?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/4782655390369247798?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/tZnx5WC2hVg/find-all-anchor-tags-in-page-with-php.html" title="Find all anchor tags in a page with PHP and the Simple HTML DOM Parser" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/11/find-all-anchor-tags-in-page-with-php.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MBRH47fyp7ImA9WhRRE0w.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-4870071467168769699</id><published>2011-11-26T06:57:00.000-08:00</published><updated>2011-11-26T06:57:35.007-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-26T06:57:35.007-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="aquia drupal" /><category scheme="http://www.blogger.com/atom/ns#" term="drupal imagecache" /><title>special characters in filename cause image to not get created</title><content type="html">Drupal ImageCache:&lt;br /&gt;
&lt;h1 id="page-subtitle" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 1.846em; font-weight: normal; line-height: 1.25em; margin-bottom: 0.375em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;special characters in filename cause image to not get created&lt;/h1&gt;&lt;div&gt;Solved:&lt;/div&gt;&lt;div&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #f6f6f2; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace; font-size: 12px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;$imagecache_path &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #f6f6f2; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace; font-size: 12px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;= &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #f6f6f2; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace; font-size: 12px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;str_replace&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #f6f6f2; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace; font-size: 12px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;(&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #f6f6f2; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #dd0000; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace; font-size: 12px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;' '&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #f6f6f2; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace; font-size: 12px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;, &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #f6f6f2; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #dd0000; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace; font-size: 12px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;'%20'&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #f6f6f2; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace; font-size: 12px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;, &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #f6f6f2; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace; font-size: 12px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;$imagecache_path&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #f6f6f2; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace; font-size: 12px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; white-space: pre-wrap;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #007700; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 18px; white-space: pre-wrap;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #007700; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 18px; white-space: pre-wrap;"&gt;That mean you remove special character like #,&amp;amp; in URL.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #007700; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 18px; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #007700; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 18px; white-space: pre-wrap;"&gt;Good luck to you&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #007700; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 18px; white-space: pre-wrap;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://drupal.org/node/129433"&gt;http://drupal.org/node/129433&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-4870071467168769699?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fSbKA4-X_SAHhZI6cf9gcVGJKkM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fSbKA4-X_SAHhZI6cf9gcVGJKkM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fSbKA4-X_SAHhZI6cf9gcVGJKkM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fSbKA4-X_SAHhZI6cf9gcVGJKkM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/N9XYd7R1wFw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/4870071467168769699/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/11/special-characters-in-filename-cause.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/4870071467168769699?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/4870071467168769699?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/N9XYd7R1wFw/special-characters-in-filename-cause.html" title="special characters in filename cause image to not get created" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/11/special-characters-in-filename-cause.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4GQXg6fSp7ImA9WhRSGUk.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-8637257403140417342</id><published>2011-11-21T23:28:00.001-08:00</published><updated>2011-11-21T23:28:40.615-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-21T23:28:40.615-08:00</app:edited><title>ClamAV on CentOS 5.5</title><content type="html">&lt;div style="background-color: #3a2820; color: #444444; font-family: Arial, 'Trebuchet MS', sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;I know this is Linux and viruses are not supposed to be an issue, but face it we have other operating systems connecting and they are known for bringing these little monsters in, so it is our duty to seek and destroy those on the server. In steps ClamAV, a fast, free and efficient anti-virus solution. Dag Wieers maintains many packages for downloads and he just happens to have what we are looking for with ClamAV. Once you have this installed there are many other applications to integrate with on your server.&lt;/div&gt;&lt;div style="margin-bottom: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;To install&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;1. Download the file using wget&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;$ sudo wget http://packages.sw.be/clamav/clamav-0.96.4-1.el5.rf.i386.rpm&lt;/code&gt;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;$ sudo wget http://packages.sw.be/clamav/clamav-db-0.96.4-1.el5.rf.i386.rpm&lt;/code&gt;&lt;/div&gt;&lt;div style="margin-bottom: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Install it&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;$ sudo rpm -ivh clamav-0.96*.rpm&lt;/code&gt;&lt;/div&gt;&lt;div style="margin-bottom: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Now that we have it installed there are a few things we need to learn about it and do. First thing is to update the definitions. We achieve this by running the command freshclam. Freshclam requires and Internet connection to download and update the virus definitions. All you have to do is type the command, press enter and voila! We are up to date.&lt;/div&gt;&lt;div style="margin-bottom: 18px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;2. To run antivirus and print infected files&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;clamscan -ri /home&lt;/code&gt;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;3. To remove infected files and emails.&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;clamscan -ri --remove /home&lt;/code&gt;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;4. Running as Cron Daily Job&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;To run antivirus as a cron job (automatically scan daily) just run&amp;nbsp;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;crontab -e&lt;/code&gt;&amp;nbsp;from your command line. Then add the following line and save the file. I have added them to my root crontab for this example.&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;02 1 * * * root clamscan -R /var/www&lt;/code&gt;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;This will run the cron job daily @ 1.02 AM by scanning the public html files. You can change the folder to whatever you want for mail etc.&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;00 11 * * * * root freshclam&lt;/code&gt;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;This will update the anti-virus database at 11 am daily.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-8637257403140417342?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yYes1AOQwWcmQeswv3SNKnWrWN4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yYes1AOQwWcmQeswv3SNKnWrWN4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yYes1AOQwWcmQeswv3SNKnWrWN4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yYes1AOQwWcmQeswv3SNKnWrWN4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/2_1sHNTfOAA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/8637257403140417342/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/11/clamav-on-centos-55.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/8637257403140417342?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/8637257403140417342?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/2_1sHNTfOAA/clamav-on-centos-55.html" title="ClamAV on CentOS 5.5" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/11/clamav-on-centos-55.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MHQHo7eip7ImA9WhRSFUQ.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-180352058937853727</id><published>2011-11-17T20:43:00.001-08:00</published><updated>2011-11-17T20:43:51.402-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-17T20:43:51.402-08:00</app:edited><title>CentOS change hostname without reboot</title><content type="html">&lt;b style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Step 1:&lt;/b&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px;"&gt;You may also need to add/change the hostname in the /etc/hosts file. By default this would look something like this, using our www.example.com example again:&lt;/span&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px;"&gt;127.0.0.1&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white; color: red; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;www.example.com&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px;"&gt;&amp;nbsp;localhost localhost.localdomain&lt;/span&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;b style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Step 2:&lt;/b&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px;"&gt;The file /etc/sysconfig/network contains the hostname and will look something like this:&lt;/span&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px;"&gt;NETWORKING="yes"&lt;/span&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px;"&gt;GATEWAY="10.1.1.1"&lt;/span&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px;"&gt;HOSTNAME="&lt;/span&gt;&lt;span style="background-color: white; color: red; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;www.example.com&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px;"&gt;"&lt;/span&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;b style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Step 3:&lt;/b&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px;"&gt;This change won't take affect until the next reboot, but you can make the change happen immediately using the hostname command like so:&lt;/span&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px;"&gt;$&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: white; color: red; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;hostname ftp.example.com&lt;/span&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;br style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;b style="background-color: white; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Step 4:&lt;/b&gt;&lt;br /&gt;
&lt;div style="background-color: white; color: red; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;service syslog restart&lt;/div&gt;&lt;div style="background-color: white; color: red; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="background-color: white; color: red; font-family: Arial, Verdana, sans-serif; font-size: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://shebangme.blogspot.com/2010/10/centos-change-hostname-without-reboot.html"&gt;http://shebangme.blogspot.com/2010/10/centos-change-hostname-without-reboot.html&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-180352058937853727?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jP30hCscH--W4LWDZJfYTV-cdQQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jP30hCscH--W4LWDZJfYTV-cdQQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jP30hCscH--W4LWDZJfYTV-cdQQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jP30hCscH--W4LWDZJfYTV-cdQQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/SelZhRmtnj0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/180352058937853727/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/11/centos-change-hostname-without-reboot.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/180352058937853727?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/180352058937853727?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/SelZhRmtnj0/centos-change-hostname-without-reboot.html" title="CentOS change hostname without reboot" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/11/centos-change-hostname-without-reboot.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkABQnY-fyp7ImA9WhRSFEQ.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-1024261733747777962</id><published>2011-11-16T18:59:00.000-08:00</published><updated>2011-11-16T18:59:13.857-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-16T18:59:13.857-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Get vocabulary id by term or node" /><title>Drupal: Get vocabulary id by term id</title><content type="html">&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; color: #444444; font-family: 'Lucida Grande', 'DejaVu Sans', 'Bitstream Vera Sans', Verdana, Arial, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline; word-wrap: break-word;"&gt;In Drupal 6, if you know the taxonomy term ID, you can get the vocabulary ID by using the following code:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-left-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-top-width: 0px; color: #444444; font-family: 'Droid Sans Mono', Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 12px; margin-bottom: 10px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left; vertical-align: baseline; width: auto;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Droid Sans Mono', Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$term = taxonomy_get_term($tid);
$vid = $term-&amp;gt;vid;
&lt;/code&gt;&lt;/pre&gt;&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; color: #444444; font-family: 'Lucida Grande', 'DejaVu Sans', 'Bitstream Vera Sans', Verdana, Arial, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline; word-wrap: break-word;"&gt;If you have a node ID, then you can use the following code to get the vocabulary ID of all the taxonomy terms associated with the node using the following code:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-left-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-top-width: 0px; color: #444444; font-family: 'Droid Sans Mono', Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 12px; margin-bottom: 10px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left; vertical-align: baseline; width: auto;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Droid Sans Mono', Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$node = node_load($nid);
$vids = array();

if (!empty($node-&amp;gt;taxonomy) {
  foreach ($node-&amp;gt;taxonomy as $tid =&amp;gt; $term) {
    $vids[] = $term-&amp;gt;vid;
  }
}
&lt;/code&gt;&lt;/pre&gt;&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; color: #444444; font-family: 'Lucida Grande', 'DejaVu Sans', 'Bitstream Vera Sans', Verdana, Arial, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline; word-wrap: break-word;"&gt;In Drupal 7, the code would be the following:&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-left-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-top-width: 0px; color: #444444; font-family: 'Droid Sans Mono', Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 12px; margin-bottom: 10px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; text-align: left; vertical-align: baseline; width: auto;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: none; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Droid Sans Mono', Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$term = taxonomy_term_load($tid);
$vid = $term-&amp;gt;vid;
&lt;/code&gt;&lt;/pre&gt;&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; color: #444444; font-family: 'Lucida Grande', 'DejaVu Sans', 'Bitstream Vera Sans', Verdana, Arial, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline; word-wrap: break-word;"&gt;In Drupal 7, the node property&amp;nbsp;&lt;code style="background-attachment: initial; background-clip: initial; background-color: #f3f3f3; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Droid Sans Mono', Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px; padding-left: 5px; padding-right: 5px; padding-top: 1px; vertical-align: baseline;"&gt;$node-&amp;gt;taxonomy&lt;/code&gt;&amp;nbsp;doesn't exist anymore. Instead, there is&lt;code style="background-attachment: initial; background-clip: initial; background-color: #f3f3f3; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Droid Sans Mono', Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px; padding-left: 5px; padding-right: 5px; padding-top: 1px; vertical-align: baseline;"&gt;$node-&amp;gt;field_&amp;lt;vocabulary_name&amp;gt;&lt;/code&gt;, which is an array with two different structures.&lt;/div&gt;&lt;ul style="background-color: white; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #444444; font-family: 'Lucida Grande', 'DejaVu Sans', 'Bitstream Vera Sans', Verdana, Arial, sans-serif; font-size: 14px; line-height: 18px; list-style-image: initial; list-style-position: initial; margin-bottom: 1em; margin-left: 30px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline;"&gt;&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.3em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;tags&lt;br /&gt;
&lt;img alt="screenshot" src="http://i.stack.imgur.com/X3olA.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 630px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" /&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 1.3em; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;other taxonomy terms&lt;br /&gt;
&lt;img alt="screenshot" src="http://i.stack.imgur.com/OE2sR.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 630px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" /&gt;&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; margin-bottom: 1em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;&lt;a href="http://drupal.stackexchange.com/questions/6456/get-vocabulary-id-by-term-or-node"&gt;http://drupal.stackexchange.com/questions/6456/get-vocabulary-id-by-term-or-node&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-1024261733747777962?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WS1aS8zlTIZGp2RenjjJvORP-64/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WS1aS8zlTIZGp2RenjjJvORP-64/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WS1aS8zlTIZGp2RenjjJvORP-64/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WS1aS8zlTIZGp2RenjjJvORP-64/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/PIRh346LhDg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/1024261733747777962/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/11/drupal-get-vocabulary-id-by-term-id.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/1024261733747777962?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/1024261733747777962?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/PIRh346LhDg/drupal-get-vocabulary-id-by-term-id.html" title="Drupal: Get vocabulary id by term id" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/11/drupal-get-vocabulary-id-by-term-id.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8ARnc6eyp7ImA9WhRSFEg.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-5916276811367412268</id><published>2011-11-16T06:47:00.001-08:00</published><updated>2011-11-16T06:47:27.913-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-16T06:47:27.913-08:00</app:edited><title>Drupal: How to get term name by term id</title><content type="html">&lt;div class="clear-block" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: 'Lucida Grande', 'DejaVu Sans', 'Bitstream Vera Sans', Verdana, Arial, sans-serif; font-size: 13px; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0.692em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;You can use this in your themes to add additional information on your taxonomy/term/x pages ;&lt;/div&gt;&lt;div class="codeblock" style="background-attachment: initial; background-clip: initial; background-color: #f6f6f2; background-image: initial; background-origin: initial; border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: baseline;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace; font-size: 0.923em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;lt;?php&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;function &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;get_tax_from_arg &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$vid&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;arg&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;0&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;) == &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #dd0000; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;'taxonomy' &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;amp;&amp;amp; &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;arg&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;1&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;) == &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #dd0000; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;'term'&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$tid &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;= (int)&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;arg&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;2&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; if(&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;is_numeric&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;arg&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;2&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;))) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$term &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;= &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;taxonomy_get_term&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$tid&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;is_object&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$term&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;)) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$vid &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;== &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$term&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;vid&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$name &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;= &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$term&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;-&amp;gt;&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;name&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$name&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else return;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else return;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #ff8000; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;// use like this -&amp;nbsp; print get_tax_from_arg(1), where 1 is vocabulary id&lt;/span&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Bitstream Vera Sans Mono', Monaco, 'Lucida Console', monospace; font-size: 0.923em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px; padding-left: 1px; padding-right: 1px; padding-top: 1px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://api.drupal.org/api/drupal/modules--taxonomy--taxonomy.module/function/taxonomy_get_term/6"&gt;http://api.drupal.org/api/drupal/modules--taxonomy--taxonomy.module/function/taxonomy_get_term/6&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0.692em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-5916276811367412268?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GgH2FKgRh1y_o9warn1ard5f2g0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GgH2FKgRh1y_o9warn1ard5f2g0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GgH2FKgRh1y_o9warn1ard5f2g0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GgH2FKgRh1y_o9warn1ard5f2g0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/q4f9cgqwmTc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/5916276811367412268/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/11/drupal-how-to-get-term-name-by-term-id.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/5916276811367412268?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/5916276811367412268?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/q4f9cgqwmTc/drupal-how-to-get-term-name-by-term-id.html" title="Drupal: How to get term name by term id" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/11/drupal-how-to-get-term-name-by-term-id.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0YFR305cCp7ImA9WhRSFEw.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-426551153414006803</id><published>2011-11-15T18:37:00.001-08:00</published><updated>2011-11-15T18:38:36.328-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-15T18:38:36.328-08:00</app:edited><title>How to install soap php with version</title><content type="html">By default when you using command "yum install php-soap", this will install the latest version so you have to install latest dependencies, if do not want to do this, so you want install exact version by following command&lt;br /&gt;
#yum install php-soap-5.2.17&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-426551153414006803?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CXZZVfB_XvZKSZ7ZfLK2T_i6r6Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CXZZVfB_XvZKSZ7ZfLK2T_i6r6Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CXZZVfB_XvZKSZ7ZfLK2T_i6r6Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CXZZVfB_XvZKSZ7ZfLK2T_i6r6Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/76KGmgZoxOc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/426551153414006803/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/11/how-to-install-soap-php-with-version.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/426551153414006803?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/426551153414006803?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/76KGmgZoxOc/how-to-install-soap-php-with-version.html" title="How to install soap php with version" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/11/how-to-install-soap-php-with-version.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUNQX0_eSp7ImA9WhRSE0k.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-378454874749497500</id><published>2011-11-15T00:54:00.001-08:00</published><updated>2011-11-15T00:54:50.341-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-15T00:54:50.341-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="html dom" /><category scheme="http://www.blogger.com/atom/ns#" term="simple dom html" /><title>PHP Simple HTML DOM Parser</title><content type="html">&lt;div class="content clear-block"&gt;     If you want to develop advanced Google like apps that crawl and parse the HTML content using PHP one valuable resource is &lt;em&gt;PHP Simple HTML DOM Parser&lt;/em&gt;.&lt;br /&gt;
PHP Simple HTML DOM Parser underlying the E-media built in crawler and I use it in the &lt;em&gt;EC_1&lt;/em&gt; app. Also, I use it on the latest E-media &lt;em&gt;Newsletter&lt;/em&gt; app.&lt;br /&gt;
&lt;h2&gt;What is PHP Simple HTML DOM Parser&lt;/h2&gt;If you take a look into the &lt;em&gt;simple_html_dom.php&lt;/em&gt; file you will find about 1000 lines of PHP code. The base code is formed by the &lt;em&gt;simple_html_dom&lt;/em&gt;  class. So, the PHP Simple HTML DOM Parser is a PHP class that you can  use to parse the HTML content. In other words, you can analyze the HTML  code of a webpage and take the anchors, divs, spans, tables cells or you  can get elements atributs such as id, class, etc.&lt;br /&gt;
&lt;h2&gt;Initiate PHP Simple HTML DOM Parser&lt;/h2&gt;First of all, you must include the PHP Simple HTML DOM Parser into your page. You can do this by using a simple PHP &lt;em&gt;include&lt;/em&gt; construct:&lt;br /&gt;
&lt;pre&gt;include '&amp;lt;path_to_file&amp;gt;/simple_html_dom.php';&lt;/pre&gt;In the above code you must replace the &lt;em&gt;&amp;lt;path_to_file&amp;gt;&lt;/em&gt; with the path to the &lt;em&gt;simple_html_dom.php&lt;/em&gt;  relative to you PHP script. Then you must specify the HTML source code  either by a string or a file path. So, you must choose between:&lt;br /&gt;
&lt;pre&gt;$html = str_get_html('&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;Hello!&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;');&lt;/pre&gt;or&lt;br /&gt;
&lt;pre&gt;$html = file_get_html('html_source.html');&lt;/pre&gt;or&lt;br /&gt;
&lt;pre&gt;$html = file_get_html('http://www.liviubalan.com/html_source.html');&lt;/pre&gt;As you can see you can specify both relative or absolute file paths.&lt;br /&gt;
&lt;h2&gt;Selecting HTML elements and attributes&lt;/h2&gt;After you initiate the PHP Simple HTML DOM Parser it's time to  actually search for specific elements using nothing else than CSS  selectors:&lt;br /&gt;
&lt;pre&gt;// find all &amp;lt;div&amp;gt; elements which attribute id="foo"
$ret = $html-&amp;gt;find('div[id="foo"]');

// find all anchors, returns an array of element objects
$ret = $html-&amp;gt;find('a');

// find (N)th anchor, returns element object or null if not found (zero based)
$ret = $html-&amp;gt;find('a', 0);

// find all &amp;lt;div&amp;gt; elements with the id attribute
$ret = $html-&amp;gt;find('div[id]');

// find all elements that has attribute id
$ret = $html-&amp;gt;find('[id]');
&lt;/pre&gt;&lt;h2&gt;Tips and tricks&lt;/h2&gt;If you take a look into the &lt;a href="http://dev.liviubalan.com/php/simplehtmldom/view-split-simplehtmldom.php" target="_blank"&gt;simplehtmldom.php&lt;/a&gt; file you can see the usage of the PHP Simple HTML DOM.&amp;nbsp; See the &lt;em&gt;print_v&lt;/em&gt; and &lt;em&gt;echo_pre&lt;/em&gt; functions written by me. The PHP &lt;em&gt;find&lt;/em&gt; method usually returns an array. So, the &lt;em&gt;print_v&lt;/em&gt; function is very useful to display this array content. If you will use a PHP &lt;em&gt;var_dump&lt;/em&gt; or &lt;em&gt;print_r&lt;/em&gt; function to display this array content you will see a lot of properties, leading to big loading time. So, use &lt;em&gt;print_v&lt;/em&gt; instead and if you need to you can modify it. Also, use &lt;em&gt;echo_pre&lt;/em&gt; function to see the content of a string, including HTML special chars and spaces.&lt;br /&gt;
If you use this class inside a loop especially on big HTML files be  very careful on the freeing the memory. For this, the PHP Simple HTML  DOM provides the clear method:&lt;br /&gt;
&lt;pre&gt;$html-&amp;gt;clear();&lt;/pre&gt;This is an empirical observation from when I worked to the &lt;em&gt;EC_1&lt;/em&gt; project where even I increase the memory usage on the server or I unset the $html variable the lack of memory appeared.&lt;br /&gt;
Another technique that I use I call it &lt;em&gt;safe mode chaining&lt;/em&gt;: every time you use Simple HTML DOM chaining be very careful if the previous selected element exists:&lt;br /&gt;
&lt;pre&gt;$ret = $html-&amp;gt;find('span',0);
if ( isset($ret) ) {
&amp;nbsp;&amp;nbsp; &amp;nbsp;$ret = $html-&amp;gt;find('b',0);
&amp;nbsp;&amp;nbsp; &amp;nbsp;echo_pre($ret);
}&lt;/pre&gt;More about PHP Simple HTML DOM you can find on &lt;a href="http://simplehtmldom.sourceforge.net/" target="_blank"&gt;http://simplehtmldom.sourceforge.net/&lt;/a&gt;. You can also try the PHP Simple HTML DOM examples at &lt;a href="http://dev.liviubalan.com/_res/php/simplehtmldom/example/" target="_blank"&gt;http://dev.liviubalan.com/_res/php/simplehtmldom/example/&lt;/a&gt;.&lt;br /&gt;
http://www.liviubalan.com/content/php-simple-html-dom-parser&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-378454874749497500?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yWHQ4jg8mLVql3bRwzV11y3Z1pQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yWHQ4jg8mLVql3bRwzV11y3Z1pQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yWHQ4jg8mLVql3bRwzV11y3Z1pQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yWHQ4jg8mLVql3bRwzV11y3Z1pQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/KwzqN8R8EZU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/378454874749497500/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/11/php-simple-html-dom-parser.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/378454874749497500?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/378454874749497500?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/KwzqN8R8EZU/php-simple-html-dom-parser.html" title="PHP Simple HTML DOM Parser" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/11/php-simple-html-dom-parser.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8NQnk7eyp7ImA9WhRTGE0.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-2258083271664904622</id><published>2011-11-08T19:21:00.001-08:00</published><updated>2011-11-08T19:21:33.703-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-08T19:21:33.703-08:00</app:edited><title>PHP: Create comma separated list from array</title><content type="html">&lt;div class="description" style="background-color: #f5f3f3; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 4px; padding-left: 4px; padding-right: 100px; padding-top: 4px;"&gt;Use the implode() command to create a comma separated list from an array.&lt;/div&gt;&lt;br style="background-color: #f5f3f3; color: #888888; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;br style="background-color: #f5f3f3; color: #888888; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;span class="Apple-style-span" style="background-color: #f5f3f3; color: #888888; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;"&gt;code snippet:&lt;/span&gt;&lt;div class="code" style="background-color: #f5f3f3; border-bottom-color: rgb(255, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 170, 170); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 170, 170); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 170, 170); border-top-style: solid; border-top-width: 1px; color: #888888; font-family: 'Courier New', Courier, monospace; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&amp;lt;?php&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff8000; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;//create&amp;nbsp;a&amp;nbsp;comma&amp;nbsp;separated&amp;nbsp;list&amp;nbsp;from&amp;nbsp;an&amp;nbsp;array&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;$array&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;=&amp;nbsp;array(&lt;/span&gt;&lt;span style="color: #dd0000; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;'green'&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt;&lt;span style="color: #dd0000; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;'purple'&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt;&lt;span style="color: #dd0000; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;'blue'&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt;&lt;span style="color: #dd0000; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;'yellow'&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt;&lt;span style="color: #dd0000; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;'amber'&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&lt;/span&gt;&lt;span style="color: #dd0000; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;'red'&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;);&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;$comma_separated&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;implode&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;(&lt;/span&gt;&lt;span style="color: #dd0000; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;","&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;$array&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;);&amp;nbsp;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;echo&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;$comma_separated&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;br style="background-color: #f5f3f3; color: #888888; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;span class="Apple-style-span" style="background-color: #f5f3f3; color: #888888; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;"&gt;sample output:&lt;/span&gt;&lt;div class="output" style="background-color: #f5f3f3; border-bottom-color: rgb(238, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(238, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(238, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(238, 221, 221); border-top-style: solid; border-top-width: 1px; color: #333333; font-family: 'Courier New', Courier, monospace; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;"&gt;green,purple,blue,yellow,amber,red&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-2258083271664904622?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/L96u2SKRyiDyh9DvzqXF9TArXv4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/L96u2SKRyiDyh9DvzqXF9TArXv4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/L96u2SKRyiDyh9DvzqXF9TArXv4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/L96u2SKRyiDyh9DvzqXF9TArXv4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/Pdm-GQmPLAM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/2258083271664904622/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/11/php-create-comma-separated-list-from.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/2258083271664904622?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/2258083271664904622?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/Pdm-GQmPLAM/php-create-comma-separated-list-from.html" title="PHP: Create comma separated list from array" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/11/php-create-comma-separated-list-from.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIESXo9cCp7ImA9WhRTGE0.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-1379759219435961462</id><published>2011-11-08T18:58:00.001-08:00</published><updated>2011-11-08T18:58:28.468-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-08T18:58:28.468-08:00</app:edited><title>PHP: extract filename from a full path string</title><content type="html">&lt;div class="description" style="background-color: #f5f3f3; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 4px; padding-left: 4px; padding-right: 100px; padding-top: 4px;"&gt;Easily return the filename component of a path with the built-in PHP basename() function. Useful for splitting a string path to get the filename.&lt;/div&gt;&lt;br style="background-color: #f5f3f3; color: #888888; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;br style="background-color: #f5f3f3; color: #888888; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;span class="Apple-style-span" style="background-color: #f5f3f3; color: #888888; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;"&gt;code snippet:&lt;/span&gt;&lt;div class="code" style="background-color: #f5f3f3; border-bottom-color: rgb(255, 170, 170); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(255, 170, 170); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(255, 170, 170); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(255, 170, 170); border-top-style: solid; border-top-width: 1px; color: #888888; font-family: 'Courier New', Courier, monospace; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;"&gt;&lt;code style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&amp;lt;?php&amp;nbsp;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;$path&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #dd0000; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;"/home/httpd/html/index.php"&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;$file&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;basename&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;(&lt;/span&gt;&lt;span style="color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;$path&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff8000; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;//&amp;nbsp;$file&amp;nbsp;is&amp;nbsp;set&amp;nbsp;to&amp;nbsp;"index.php"&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;$file&amp;nbsp;&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;basename&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;(&lt;/span&gt;&lt;span style="color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;$path&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="color: #dd0000; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;".php"&lt;/span&gt;&lt;span style="color: #007700; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;);&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff8000; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;//&amp;nbsp;$file&amp;nbsp;is&amp;nbsp;set&amp;nbsp;to&amp;nbsp;"index"&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000bb; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;br style="background-color: #f5f3f3; color: #888888; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;span class="Apple-style-span" style="background-color: #f5f3f3; color: #888888; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px;"&gt;notes:&lt;/span&gt;&lt;div class="notes" style="background-color: #f5f3f3; border-bottom-color: rgb(200, 200, 200); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(200, 200, 200); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(200, 200, 200); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(200, 200, 200); border-top-style: solid; border-top-width: 1px; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 4px; padding-left: 4px; padding-right: 100px; padding-top: 4px;"&gt;this example from the php.net documentation&lt;/div&gt;&lt;div class="notes" style="background-color: #f5f3f3; border-bottom-color: rgb(200, 200, 200); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(200, 200, 200); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(200, 200, 200); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(200, 200, 200); border-top-style: solid; border-top-width: 1px; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 4px; padding-left: 4px; padding-right: 100px; padding-top: 4px;"&gt;&lt;a href="http://snippetdb.com/php/filname-from-path"&gt;http://snippetdb.com/php/filname-from-path&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-1379759219435961462?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BvY7vb0Z8afSOADtLt9wRJ4QrwA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BvY7vb0Z8afSOADtLt9wRJ4QrwA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BvY7vb0Z8afSOADtLt9wRJ4QrwA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BvY7vb0Z8afSOADtLt9wRJ4QrwA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/1l23cS3BiEA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/1379759219435961462/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/11/php-extract-filename-from-full-path.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/1379759219435961462?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/1379759219435961462?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/1l23cS3BiEA/php-extract-filename-from-full-path.html" title="PHP: extract filename from a full path string" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/11/php-extract-filename-from-full-path.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMDRXo9eip7ImA9WhRTGE0.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-6792567704830976966</id><published>2011-11-08T18:57:00.001-08:00</published><updated>2011-11-08T18:57:54.462-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-08T18:57:54.462-08:00</app:edited><title>How to check if string contains substring PHP</title><content type="html">&lt;div style="background-color: #f4e7bd; color: #323232; font-family: Corbel, 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', 'DejaVu Sans', 'Bitstream Vera Sans', 'Liberation Sans', Verdana, sans-serif; font-size: 16px; line-height: 1.3em; margin-bottom: 1em;"&gt;Often, we see two approaches for this. One option is to use the&amp;nbsp;&lt;span class="keyword" style="color: maroon; font-weight: bold;"&gt;&lt;a href="http://www.php.net/strpos" rel="nofollow" style="color: #b22d00; text-decoration: none;" target="_blank" title="PHP strpos()"&gt;strpos&lt;/a&gt;&lt;/span&gt;&amp;nbsp;PHP function. The following example shows how this is used:&lt;/div&gt;&lt;div style="background-color: #f4e7bd; color: #323232; font-family: Corbel, 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', 'DejaVu Sans', 'Bitstream Vera Sans', 'Liberation Sans', Verdana, sans-serif; font-size: 16px; line-height: 1.3em; margin-bottom: 1em; padding-left: 30px;"&gt;&lt;span style="color: grey; font-family: 'courier new', courier;"&gt;&amp;lt;?php&lt;br /&gt;
$pos = strpos($haystack,$needle);&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #f4e7bd; color: #323232; font-family: Corbel, 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', 'DejaVu Sans', 'Bitstream Vera Sans', 'Liberation Sans', Verdana, sans-serif; font-size: 16px; line-height: 1.3em; margin-bottom: 1em; padding-left: 30px;"&gt;&lt;span style="color: grey; font-family: 'courier new', courier;"&gt;if($pos === false) {&lt;br /&gt;
&amp;nbsp;// string needle NOT found in haystack&lt;br /&gt;
}&lt;br /&gt;
else {&lt;br /&gt;
&amp;nbsp;// string needle found in haystack&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #f4e7bd; color: #323232; font-family: Corbel, 'Lucida Grande', 'Lucida Sans Unicode', 'Lucida Sans', 'DejaVu Sans', 'Bitstream Vera Sans', 'Liberation Sans', Verdana, sans-serif; font-size: 16px; line-height: 1.3em; margin-bottom: 1em; padding-left: 30px;"&gt;&lt;a href="http://www.maxi-pedia.com/string+contains+substring+PHP"&gt;http://www.maxi-pedia.com/string+contains+substring+PHP&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-6792567704830976966?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gtSUqQTr9j9KhBPUnRWJ30aKeEk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gtSUqQTr9j9KhBPUnRWJ30aKeEk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gtSUqQTr9j9KhBPUnRWJ30aKeEk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gtSUqQTr9j9KhBPUnRWJ30aKeEk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/gxxPsLkb7PM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/6792567704830976966/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/11/how-to-check-if-string-contains.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/6792567704830976966?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/6792567704830976966?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/gxxPsLkb7PM/how-to-check-if-string-contains.html" title="How to check if string contains substring PHP" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/11/how-to-check-if-string-contains.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEYMQ34ycSp7ImA9WhRTFk4.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-7543676658114489468</id><published>2011-11-06T19:22:00.001-08:00</published><updated>2011-11-06T19:23:02.099-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-06T19:23:02.099-08:00</app:edited><title>Check hard disk space</title><content type="html">df -h |grep /dev/sda3 | awk '{print $5}' |awk -F"%" '{print $1}'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-7543676658114489468?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dYxRv5P7aWpE09u4BzFiZnyjWe0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dYxRv5P7aWpE09u4BzFiZnyjWe0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dYxRv5P7aWpE09u4BzFiZnyjWe0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dYxRv5P7aWpE09u4BzFiZnyjWe0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/CJpVaFm911I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/7543676658114489468/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/11/check-harddisk-space.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/7543676658114489468?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/7543676658114489468?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/CJpVaFm911I/check-harddisk-space.html" title="Check hard disk space" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/11/check-harddisk-space.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ADSXs_eSp7ImA9WhRTEEg.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-1958062954126607030</id><published>2011-10-31T04:16:00.000-07:00</published><updated>2011-10-31T04:16:18.541-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-31T04:16:18.541-07:00</app:edited><title>How do I enable Google Gmail 2-step password verification?</title><content type="html">&lt;div style="color: #000033; font-style: italic;"&gt;   I hear that there's a new security system you can enable on Google  Gmail and the rest of the Google suite that requires you to have your  smart phone along with your password? What's the security system called  [ed note: "&lt;span class="mandelbrot_refrag"&gt;&lt;a href="http://www.askdavetaylor.com/log_in_to_google_voice_application_with_2-step_verification.html?lc=int_mb_1001"&gt;2-step verification&lt;/a&gt;&lt;/span&gt;"] and how can I use it for my own account?&lt;br /&gt;
&lt;/div&gt;&lt;div style="float: left; margin-right: 30px; margin: 15px;"&gt;   &lt;ins style="border: none; display: inline-table; height: 250px; margin: 0; padding: 0; position: relative; visibility: visible; width: 300px;"&gt;&lt;ins id="aswift_1_anchor" style="border: none; display: block; height: 250px; margin: 0; padding: 0; position: relative; visibility: visible; width: 300px;"&gt;&lt;iframe allowtransparency="true" frameborder="0" height="250" hspace="0" id="aswift_1" marginheight="0" marginwidth="0" name="aswift_1" scrolling="no" style="left: 0; position: absolute; top: 0;" vspace="0" width="300"&gt;&lt;/iframe&gt;&lt;/ins&gt;&lt;/ins&gt;  &lt;/div&gt;&lt;div style="margin-bottom: 25px; margin-top: 25px;"&gt; &lt;hr color="#CCCCCC" noshade="noshade" size="6" /&gt; &lt;/div&gt;Dave's Answer:   You're talking about something that I am pretty excited about,  actually. One of the classic problems with password security is that the  security is only as good as the password remains secret. If someone has  your password, not only can they get into your account but they can  then change the password and shut you out.&lt;br /&gt;
There are challenge systems where you have a separate device used for  security: to log in, the system prompts you with a sequence of digits  and you then enter that into the device which transforms it uniquely.  You then use the resultant value to prove that you're you (or, more  accurately, that you have the device in hand).&lt;br /&gt;
A password is known as a "what you know" challenge, while an  authentication device is a "what you have" challenge. Each has its  weaknesses, but combine the two and you have a pretty decent security  system, one where even if someone steals your password they can't get in  without also having your device.&lt;br /&gt;
Problem is who is going to carry a separate device?&lt;br /&gt;
Enter the smart phone...&lt;br /&gt;
As you have heard, Google's enabled a &lt;b&gt;2-step verification system&lt;/b&gt;  that makes every Google property - including Gmail - tons more secure  and ideal for if you're on the road. It combines your existing password  with an app on your smartphone that generates one-time verification  codes: if you enable it you'll need to both to log in each and every  time thereafter.&lt;br /&gt;
I think it's awesome and enabled it the first minute I could. I think you should too.&lt;br /&gt;
The down side? The 2-step verification system is pretty darn  complicated to get set up!  It'll take us at least twenty screen  captures even to illustrate it and Google suggests you allocate 15-20  minutes to complete the setup.&lt;br /&gt;
To get started -- and you should! -- you need to jump to &lt;a href="https://www.google.com/accounts/ManageAccount" style="font-weight: bold;" target="_blank"&gt;Google Account Management&lt;/a&gt; once you've logged in to the system. Now under personal security options you'll see:&lt;br /&gt;
&lt;center&gt;&lt;img alt="google account management 2 step" border="0" height="115" src="http://www.askdavetaylor.com/6-blog-pics/google-account-management-2-step.png" title="google account management 2 step" width="354" /&gt;&lt;/center&gt;  Click on the 2-step verification link. If you're unlucky, you'll see this:&lt;br /&gt;
&lt;center&gt;&lt;img alt="google gmail 2 step verification 1a" border="0" height="83" src="http://www.askdavetaylor.com/6-blog-pics/google-gmail-2-step-verification-1a.png" title="google gmail 2 step verification 1a" width="538" /&gt;&lt;/center&gt;  Hopefully, however, you don't have to wait and it's ready for you, in which case you'll see this instead:&lt;br /&gt;
&lt;center&gt;&lt;img alt="google gmail 2 step verification 2" border="0" height="324" src="http://www.askdavetaylor.com/6-blog-pics/google-gmail-2-step-verification-2.png" title="google gmail 2 step verification 2" width="539" /&gt;&lt;/center&gt;  Ready?  Have the time to do this? You can't stop halfway...&lt;br /&gt;
Click on "Set up 2-step verification"...&lt;br /&gt;
&lt;center&gt;&lt;img alt="google gmail 2 step verification 3" border="0" height="239" src="http://www.askdavetaylor.com/6-blog-pics/google-gmail-2-step-verification-3.png" title="google gmail 2 step verification 3" width="540" /&gt;&lt;/center&gt;  Now you'll find that you can only do this if you have a smartphone. I have an iPhone so that's what I'll choose:&lt;br /&gt;
&lt;center&gt;&lt;img alt="google gmail 2 step verification 4" border="0" height="239" src="http://www.askdavetaylor.com/6-blog-pics/google-gmail-2-step-verification-4.png" title="google gmail 2 step verification 4" width="540" /&gt;&lt;/center&gt;  After selecting my phone, I click on "next" and learn that the next step involves me picking up my phone and installing an app:&lt;br /&gt;
&lt;center&gt;&lt;img alt="google gmail 2 step verification 5" border="0" height="209" src="http://www.askdavetaylor.com/6-blog-pics/google-gmail-2-step-verification-5.png" title="google gmail 2 step verification 5" width="510" /&gt;&lt;/center&gt;  On the iPhone I jump to the App Store and search for "Google Authenticator":&lt;br /&gt;
&lt;center&gt;&lt;img alt="iphone google authenticator 1" border="0" height="384" src="http://www.askdavetaylor.com/6-blog-pics/iphone-google-authenticator-1.png" style="border: 1px solid black; padding: 1px;" title="iphone google authenticator 1" width="256" /&gt;&lt;/center&gt;  Ah, there it is. And it even has decent star ratings. Regardless,  time to download it, which can easily be done by tapping on the green  "FREE" button.&lt;br /&gt;
Once it does you'll need to start the application. The opening screen looks like this:&lt;br /&gt;
&lt;center&gt;&lt;img alt="iphone google authenticator 2" border="0" height="384" src="http://www.askdavetaylor.com/6-blog-pics/iphone-google-authenticator-2.png" style="border: 1px solid black; padding: 1px;" title="iphone google authenticator 2" width="256" /&gt;&lt;/center&gt;  Tap on the "+" and the next screen on your iPhone (or other smart phone) prompts you to enter your account information:&lt;br /&gt;
&lt;center&gt;&lt;img alt="iphone google authenticator 3" border="0" height="384" src="http://www.askdavetaylor.com/6-blog-pics/iphone-google-authenticator-3.png" style="border: 1px solid black; padding: 1px;" title="iphone google authenticator 3" width="256" /&gt;&lt;/center&gt;  But wait, it's cooler than that!  Back on your computer, click on the "next" button and you'll find a QR &lt;span class="mandelbrot_refrag"&gt;&lt;a href="http://www.askdavetaylor.com/howt_to_create_qr_code.html?lc=int_mb_1001"&gt;Code&lt;/a&gt;&lt;/span&gt; shows up on your screen:&lt;br /&gt;
&lt;center&gt;&lt;img alt="google gmail 2 step verification 6" border="0" height="365" src="http://www.askdavetaylor.com/6-blog-pics/google-gmail-2-step-verification-6.png" title="google gmail 2 step verification 6" width="510" /&gt;&lt;/center&gt;  Now, back to the smartphone app. Tap on "Scan Barcode" and it's a QR  Code reader!  All you have to do is point it at the QR Code on your  screen:&lt;br /&gt;
&lt;center&gt;&lt;img alt="iphone google authenticator 4" border="0" height="352" src="http://www.askdavetaylor.com/6-blog-pics/iphone-google-authenticator-4.png" style="border: 1px solid black; padding: 1px;" title="iphone google authenticator 4" width="234" /&gt;&lt;/center&gt;  Seconds later it scans and reads your account information and you get your first verification code:&lt;br /&gt;
&lt;center&gt;&lt;img alt="iphone google authenticator 5" border="0" height="384" src="http://www.askdavetaylor.com/6-blog-pics/iphone-google-authenticator-5.png" style="border: 1px solid black; padding: 1px;" title="iphone google authenticator 5" width="256" /&gt;&lt;/center&gt;  Here's where it gets interesting. Just stare at the app for a minute  or two: the codes are based on both the current time and your account  information, so if you wait long enough, you'll see that it changes. In  fact, the tiny little circle on the top left is a timer: every time it  goes a full revolution the code changes. Neat, eh?&lt;br /&gt;
Okay, focus. Back to the Web and to setting this up!  Click on "next"  and you'll have a chance to test the new verification code:&lt;br /&gt;
&lt;center&gt;&lt;img alt="google gmail 2 step verification 7" border="0" height="173" src="http://www.askdavetaylor.com/6-blog-pics/google-gmail-2-step-verification-7.png" title="google gmail 2 step verification 7" width="510" /&gt;&lt;/center&gt;  I enter my current code and click Verify and...&lt;br /&gt;
&lt;center&gt;&lt;img alt="google gmail 2 step verification 8" border="0" height="201" src="http://www.askdavetaylor.com/6-blog-pics/google-gmail-2-step-verification-8.png" title="google gmail 2 step verification 8" width="510" /&gt;&lt;/center&gt;  Check that out. It's working!&lt;br /&gt;
Click on "next" to proceed...&lt;br /&gt;
&lt;center&gt;&lt;img alt="google gmail 2 step verification 9" border="0" height="142" src="http://www.askdavetaylor.com/6-blog-pics/google-gmail-2-step-verification-9.png" title="google gmail 2 step verification 9" width="510" /&gt;&lt;/center&gt;  Ah, great, they really have thought this through, because it &lt;i&gt;is&lt;/i&gt;  quite possible to end up needing to log in to your Google / Gmail  account but not have your smartphone and therefore not be able to enter  the time-based verification code. What's their solution?  Click on  "next" to find out!&lt;br /&gt;
&lt;center&gt;&lt;img alt="google gmail 2 step verification 9b" border="0" height="320" src="http://www.askdavetaylor.com/6-blog-pics/google-gmail-2-step-verification-9b.png" title="google gmail 2 step verification 9b" width="510" /&gt;&lt;/center&gt;  That makes sense. I printed two copies and have one stashed in my  wallet while the other is in my office. I imagine that there's a way to  get new one-time codes if/when these are used up, but that's the subject  of a different blog post. Let's stay focused here! Jeez, you're so  easily sidetracked. :-)&lt;br /&gt;
Where were we?  Oh yeah, so we printed out the temp passwords. Now there's another emergency backup choice:&lt;br /&gt;
&lt;center&gt;&lt;img alt="google gmail 2 step verification 9c" border="0" height="198" src="http://www.askdavetaylor.com/6-blog-pics/google-gmail-2-step-verification-9c.png" title="google gmail 2 step verification 9c" width="539" /&gt;&lt;/center&gt;  I opted for an automated voice message to a backup phone number of my  own. If you're in a relationship it might be your partner's mobile  device (or your kids phone, or your parents, etc etc).&lt;br /&gt;
Click "next"...&lt;br /&gt;
&lt;center&gt;&lt;img alt="google gmail 2 step verification 9d" border="0" height="243" src="http://www.askdavetaylor.com/6-blog-pics/google-gmail-2-step-verification-9d.png" title="google gmail 2 step verification 9d" width="509" /&gt;&lt;/center&gt;  Interesting, but so far I haven't been able to figure out what that  means. Since I don't actually use Picassa, it might not be a big deal  anyway. For now, I've been alerted that there's going to be something  different about how I log in to those services (and I presume that over  time they'll be fixing that so that all Google apps have support for the  2-step verification process).&lt;br /&gt;
Click "next" yet again and we're almost done!&lt;br /&gt;
&lt;center&gt;&lt;img alt="google gmail 2 step verification 9e" border="0" height="209" src="http://www.askdavetaylor.com/6-blog-pics/google-gmail-2-step-verification-9e.png" title="google gmail 2 step verification 9e" width="543" /&gt;&lt;/center&gt;  Sheesh. I told you it's a complicated process, right? Everything look good?  Click the big blue button!!&lt;br /&gt;
&lt;center&gt;&lt;img alt="google gmail 2 step verification 9f" border="0" height="217" src="http://www.askdavetaylor.com/6-blog-pics/google-gmail-2-step-verification-9f.png" title="google gmail 2 step verification 9f" width="422" /&gt;&lt;/center&gt;  No, really, you &lt;i&gt;do&lt;/i&gt; want to do this, right?&lt;br /&gt;
Done!&lt;br /&gt;
Really, done.&lt;br /&gt;
So what's it look like when you use the Google 2-step verification  system?  Here's what it looked like when I went to log in to Gmail  again:&lt;br /&gt;
&lt;center&gt;&lt;img alt="google gmail 2 step verification 9g" border="0" height="230" src="http://www.askdavetaylor.com/6-blog-pics/google-gmail-2-step-verification-9g.png" title="google gmail 2 step verification 9g" width="248" /&gt;&lt;/center&gt;  So far, pretty normal. But when I click on "Sign In", it now prompts  me for the latest numeric code on my Google Authentication app:&lt;br /&gt;
&lt;center&gt;&lt;img alt="google gmail 2 step verification 9h" border="0" height="109" src="http://www.askdavetaylor.com/6-blog-pics/google-gmail-2-step-verification-9h.png" title="google gmail 2 step verification 9h" width="541" /&gt;&lt;/center&gt;  When I enter that correctly and click on "Verify", I'm in, with a  security system now based on what I know (a password) and what I have  (my smartphone with the Google Authenticate app).&lt;br /&gt;
Incredibly cool. Now, how long until other sites start offering the  same increased security? And, for that matter, how long until you turn  it on for your Google account?&lt;br /&gt;
http://www.askdavetaylor.com/enable_turn_on_google_gmail_2-step_password_verification.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-1958062954126607030?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/R6tM4KhKSuTGfCHu71hfOEeIdSs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R6tM4KhKSuTGfCHu71hfOEeIdSs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/R6tM4KhKSuTGfCHu71hfOEeIdSs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R6tM4KhKSuTGfCHu71hfOEeIdSs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/_26u1G77NUU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/1958062954126607030/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/10/how-do-i-enable-google-gmail-2-step.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/1958062954126607030?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/1958062954126607030?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/_26u1G77NUU/how-do-i-enable-google-gmail-2-step.html" title="How do I enable Google Gmail 2-step password verification?" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/10/how-do-i-enable-google-gmail-2-step.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EFRH8zeCp7ImA9WhdaGE0.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-7608866648964383502</id><published>2011-10-28T05:40:00.001-07:00</published><updated>2011-10-28T05:40:15.180-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-28T05:40:15.180-07:00</app:edited><title>100+ Drupal Views tutorials and resources</title><content type="html">&lt;a href="http://www.drupalove.com/article/100-drupal-views-tutorials-and-resources"&gt;http://www.drupalove.com/article/100-drupal-views-tutorials-and-resources&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-7608866648964383502?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/S70ZkbttmIZ3_DbTKteCES2jDnI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/S70ZkbttmIZ3_DbTKteCES2jDnI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/S70ZkbttmIZ3_DbTKteCES2jDnI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/S70ZkbttmIZ3_DbTKteCES2jDnI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/z08nyvtSPR0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/7608866648964383502/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/10/100-drupal-views-tutorials-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/7608866648964383502?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/7608866648964383502?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/z08nyvtSPR0/100-drupal-views-tutorials-and.html" title="100+ Drupal Views tutorials and resources" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/10/100-drupal-views-tutorials-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkADR349fSp7ImA9WhdaGE0.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-2049960513847640</id><published>2011-10-28T05:16:00.000-07:00</published><updated>2011-10-28T05:26:16.065-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-28T05:26:16.065-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="drupal view" /><title>Drupal: How To Programmatically Add, Embed Or Insert Views In Your Theme tpl</title><content type="html">&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 15px; line-height: 21px;"&gt;&lt;img alt="Druplicon" class="alignleft size-full wp-image-8943" height="108" src="http://files.digitizor.com/wp-content/uploads/2010/11/druplicon.png" style="border-bottom-color: rgb(235, 236, 228); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(235, 236, 228); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(235, 236, 228); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(235, 236, 228); border-top-style: solid; border-top-width: 1px; float: left; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 8px; margin-top: 0px; max-width: 550px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px; text-align: left;" title="Druplicon" width="94" /&gt;The Views module is one of the best things to have happened to Drupal. Views provides an easy way for any Drupal site&amp;nbsp;&lt;span class="IL_AD" id="IL_AD3" style="background-attachment: scroll !important; background-clip: initial !important; background-color: transparent !important; background-image: none !important; background-origin: initial !important; background-position: 0% 50%; background-repeat: repeat repeat !important; border-bottom-color: rgb(41, 112, 166) !important; border-bottom-style: solid !important; border-bottom-width: 1px !important; color: #2970a6; cursor: pointer !important; display: inline !important; float: none !important; font-family: Helvetica, Arial, sans-serif; font-size: 15px !important; font-style: normal !important; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static; text-decoration: underline !important;"&gt;designers&lt;/span&gt;&amp;nbsp;to&lt;span class="IL_AD" id="IL_AD4" style="background-attachment: scroll !important; background-clip: initial !important; background-color: transparent !important; background-image: none !important; background-origin: initial !important; background-position: 0% 50%; background-repeat: repeat repeat !important; border-bottom-color: rgb(41, 112, 166) !important; border-bottom-style: solid !important; border-bottom-width: 1px !important; color: #2970a6; cursor: pointer !important; display: inline !important; float: none !important; font-family: Helvetica, Arial, sans-serif; font-size: 15px !important; font-style: normal !important; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static; text-decoration: underline !important;"&gt;present&lt;/span&gt;&amp;nbsp;how lists and tables of content. Views has a smart query builder that can build the proper query, execute it, and display the results. In this article we will tell you how to programmatically add, embed or insert Views in your theme's tpl.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 15px; line-height: 21px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 15px; line-height: 21px;"&gt;You can easily embed your pre-configured views in your theme's TPL using this command:&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 15px; line-height: 21px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 15px;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="font-size: 15px; line-height: 1.4em; margin-bottom: 25px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;code style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;views_embed_view($name, $display_id = 'default')&lt;/code&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div style="font-size: 15px; line-height: 1.4em; margin-bottom: 25px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;This function is meant to be called from PHP snippets to embed a view in a Drupal node. It has two parameters:&amp;nbsp;&lt;strong style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;$name&lt;/strong&gt;&amp;nbsp;- The name of&amp;nbsp;&lt;span class="IL_AD" id="IL_AD1" style="background-attachment: scroll !important; background-clip: initial !important; background-color: transparent !important; background-image: none !important; background-origin: initial !important; background-position: 0% 50%; background-repeat: repeat repeat !important; border-bottom-color: rgb(41, 112, 166) !important; border-bottom-style: solid !important; border-bottom-width: 1px !important; color: #2970a6; cursor: pointer !important; display: inline !important; float: none !important; font-family: Helvetica, Arial, sans-serif; font-size: 15px !important; font-style: normal !important; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static; text-decoration: underline !important;"&gt;the view&lt;/span&gt;&amp;nbsp;to embed and&amp;nbsp;&lt;strong style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;$display_id&lt;/strong&gt;- The display id to embed. Consider this example below. We are embedding a view for displaying related articles after the&amp;nbsp;&lt;em style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;article content type&lt;/strong&gt;&lt;/em&gt;. For this we embed a view called&amp;nbsp;&lt;em style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Relatedarticles&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;in our theme's&amp;nbsp;&amp;nbsp;&lt;em style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;node-article.tpl.php&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;file.&lt;/div&gt;&lt;div style="font-size: 15px; line-height: 1.4em; margin-bottom: 25px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;The code snippet below shows the scenario as explained above:&lt;/div&gt;&lt;div style="font-size: 15px; line-height: 1.4em; margin-bottom: 25px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: center;"&gt;&lt;/div&gt;&lt;div class="wp-caption aligncenter" id="attachment_8960" style="display: block; line-height: 20px; margin-bottom: 11px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: center; width: 588px;"&gt;&lt;a href="http://files.digitizor.com/wp-content/uploads/2010/12/embed-code-drupal-view.png" style="color: #2970a6; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank"&gt;&lt;img alt="Drupal: Embed Views in your Theme" class="size-full wp-image-8960  " height="216" src="http://files.digitizor.com/wp-content/uploads/2010/12/embed-code-drupal-view.png" style="border-bottom-color: rgb(235, 236, 228); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(235, 236, 228); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(235, 236, 228); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(235, 236, 228); border-top-style: solid; border-top-width: 1px; line-height: 20px; margin-bottom: 0px; margin-left: 5px; margin-right: 5px; margin-top: 0px; max-width: 550px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;" title="Drupal: Embed Views in your Theme" width="578" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="wp-caption-text" style="color: grey; font-size: 15px; line-height: 1.4em; padding-bottom: 0px !important; padding-left: 5px !important; padding-right: 5px !important; padding-top: 0px !important; text-align: center;"&gt;Drupal: Embed Views in your Theme&lt;/div&gt;&lt;/div&gt;&lt;div style="font-size: 15px; line-height: 1.4em; margin-bottom: 25px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: justify;"&gt;The snippet above shows a variable&amp;nbsp;&lt;em style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;$display_id&lt;/strong&gt;&lt;/em&gt;&amp;nbsp;which is set to&amp;nbsp;&lt;em style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;block_2&lt;/strong&gt;&lt;/em&gt;. The&lt;span class="IL_AD" id="IL_AD2" style="background-attachment: scroll !important; background-clip: initial !important; background-color: transparent !important; background-image: none !important; background-origin: initial !important; background-position: 0% 50%; background-repeat: repeat repeat !important; border-bottom-color: rgb(41, 112, 166) !important; border-bottom-style: solid !important; border-bottom-width: 1px !important; color: #2970a6; cursor: pointer !important; display: inline !important; float: none !important; font-family: Helvetica, Arial, sans-serif; font-size: 15px !important; font-style: normal !important; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 1px !important; padding-left: 0px !important; padding-right: 0px !important; padding-top: 0px !important; position: static; text-decoration: underline !important;"&gt;illustration&lt;/span&gt;&amp;nbsp;below shows how to find out the value for $display_id corresponding to the Display of&amp;nbsp;the view&amp;nbsp;that you want to embed in your website, progammatically.&lt;/div&gt;&lt;div style="font-size: 15px; line-height: 1.4em; margin-bottom: 25px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: center;"&gt;&lt;/div&gt;&lt;div class="wp-caption aligncenter" id="attachment_8961" style="display: block; line-height: 20px; margin-bottom: 11px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: center; width: 577px;"&gt;&lt;a href="http://files.digitizor.com/wp-content/uploads/2010/12/view-config-display-id.png" style="color: #2970a6; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank"&gt;&lt;img alt="Configure your views according to the Display IDs" class="size-full wp-image-8961  " height="280" src="http://files.digitizor.com/wp-content/uploads/2010/12/view-config-display-id.png" style="border-bottom-color: rgb(235, 236, 228); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(235, 236, 228); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(235, 236, 228); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(235, 236, 228); border-top-style: solid; border-top-width: 1px; line-height: 20px; margin-bottom: 0px; margin-left: 5px; margin-right: 5px; margin-top: 0px; max-width: 550px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;" title="Configure your views according to the Display IDs" width="567" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="wp-caption-text" style="color: grey; font-size: 15px; line-height: 1.4em; padding-bottom: 0px !important; padding-left: 5px !important; padding-right: 5px !important; padding-top: 0px !important; text-align: center;"&gt;Configure your views according to the Display IDs&lt;/div&gt;&lt;/div&gt;&lt;div style="font-size: 15px; line-height: 1.4em; margin-bottom: 25px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The screenshot below shows the output of&amp;nbsp;the view&amp;nbsp;that has been embedded in the code snippet shown above, taken from&amp;nbsp;&lt;a href="http://www.oyestyle.com/" style="color: #2970a6; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank"&gt;oyestyle.com&lt;/a&gt;&lt;/div&gt;&lt;div style="font-size: 15px; line-height: 1.4em; margin-bottom: 25px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: center;"&gt;&lt;/div&gt;&lt;div class="wp-caption aligncenter" id="attachment_8962" style="display: block; line-height: 20px; margin-bottom: 11px; margin-left: auto; margin-right: auto; margin-top: 0px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px; text-align: center; width: 561px;"&gt;&lt;a href="http://files.digitizor.com/wp-content/uploads/2010/12/output-embedded-view.png" style="color: #2970a6; line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;" target="_blank"&gt;&lt;img alt="Output of the programmatically embedded views" class="size-full wp-image-8962 " height="315" src="http://files.digitizor.com/wp-content/uploads/2010/12/output-embedded-view.png" style="border-bottom-color: rgb(235, 236, 228); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(235, 236, 228); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(235, 236, 228); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(235, 236, 228); border-top-style: solid; border-top-width: 1px; line-height: 20px; margin-bottom: 0px; margin-left: 5px; margin-right: 5px; margin-top: 0px; max-width: 550px; padding-bottom: 2px; padding-left: 2px; padding-right: 2px; padding-top: 2px;" title="Output of the programmatically embedded views" width="551" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class="wp-caption-text" style="color: grey; font-size: 15px; line-height: 1.4em; padding-bottom: 0px !important; padding-left: 5px !important; padding-right: 5px !important; padding-top: 0px !important; text-align: center;"&gt;Output of the programmatically embedded views&lt;/div&gt;&lt;/div&gt;&lt;div style="font-size: 15px; line-height: 1.4em; margin-bottom: 25px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The function&amp;nbsp;&lt;strong style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;views_embed_view&lt;/strong&gt;&amp;nbsp;won't display the title of&amp;nbsp;the view. In order to get the title of&amp;nbsp;the view, you can use the following code snippet:&lt;/div&gt;&lt;pre style="line-height: 20px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;code style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;$view = &lt;/code&gt;views_get_view&lt;/strong&gt;&lt;code style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;($view_name);
print $view-&amp;gt;get_title();&lt;/strong&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;div style="font-size: 15px; line-height: 1.4em; margin-bottom: 25px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Should you require further help with the above "Programmatic View Embedding" or any other Drupal related problems then you can send us a mail with your query to:&lt;em style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong style="line-height: 20px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;mailman@digitizor.com&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 15px; line-height: 20px;"&gt;&lt;b&gt;&lt;i&gt;&lt;a href="http://digitizor.com/2010/12/02/drupal-programmatically-add-embed-views-theme-tpl/"&gt;http://digitizor.com/2010/12/02/drupal-programmatically-add-embed-views-theme-tpl/&lt;/a&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 15px;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 15px; line-height: 20px;"&gt;&lt;b&gt;&lt;a href="http://joshnotes.com/note/how-programmatically-insert-view-drupal-node-33.html"&gt;http://joshnotes.com/note/how-programmatically-insert-view-drupal-node-33.html&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="font-size: 15px; margin-bottom: 25px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 15px;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="line-height: 20px;"&gt;&lt;b&gt;&lt;i&gt;&lt;a href="http://snipplr.com/view/51638/"&gt;http://snipplr.com/view/51638/&lt;/a&gt; &lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 15px;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="line-height: 20px;"&gt;&lt;b&gt;&lt;a href="http://www.unleashed-technologies.com/blog/2010/04/29/programmatically-output-views-block-drupal-6"&gt;http://www.unleashed-technologies.com/blog/2010/04/29/programmatically-output-views-block-drupal-6&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-2049960513847640?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/O-SvHYeJiTh1hryrii_xWe25SUI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O-SvHYeJiTh1hryrii_xWe25SUI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/O-SvHYeJiTh1hryrii_xWe25SUI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/O-SvHYeJiTh1hryrii_xWe25SUI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/0hysXSHbI5M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/2049960513847640/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/10/drupal-how-to-programmatically-add.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/2049960513847640?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/2049960513847640?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/0hysXSHbI5M/drupal-how-to-programmatically-add.html" title="Drupal: How To Programmatically Add, Embed Or Insert Views In Your Theme tpl" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/10/drupal-how-to-programmatically-add.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AGQ3s6eSp7ImA9WhdaF0Q.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-4033277605834570691</id><published>2011-10-28T01:48:00.001-07:00</published><updated>2011-10-28T01:48:42.511-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-28T01:48:42.511-07:00</app:edited><title>How to insert a block programmatically with Drupal</title><content type="html">&lt;h2&gt;Block is generated by a view&lt;/h2&gt;&lt;pre&gt;$block = module_invoke('views', 'block', 'view', &amp;lt;view_name not quoted: this is The unique identifier of the view&amp;gt;);
&lt;/pre&gt;example:&lt;br /&gt;
&lt;pre&gt;$block = module_invoke('views', 'block', 'view', list_all_providers_cat_map);
&lt;span class="kw3"&gt;print&lt;/span&gt; $block['content'];&lt;/pre&gt;The above does work for Drupal 5 but it doesn;t look like is working for Drupal 6 so you can just embed the view.&lt;br /&gt;
&lt;pre&gt;print views_embed_view('most_read_today', 'block_1');
&lt;/pre&gt;If you need the title then use&lt;br /&gt;
&lt;pre&gt;$view = views_get_view('most_read_today');
$view-&amp;gt;set_display('block_1');
$output = $view-&amp;gt;preview();
$title = $view-&amp;gt;get_title();
print '&amp;lt;div class="title"&amp;gt;' . $title . '&amp;lt;/div&amp;gt;';
print $output;
&lt;/pre&gt;&lt;h2&gt;User created block&lt;/h2&gt;&lt;pre&gt;&lt;span class="re0"&gt;$block&lt;/span&gt; = &lt;span class="kw5"&gt;module_invoke&lt;/span&gt;&lt;span class="br0"&gt;(&lt;/span&gt;&lt;span class="st0"&gt;'block'&lt;/span&gt;, &lt;span class="st0"&gt;'block'&lt;/span&gt;, &lt;span class="st0"&gt;'view'&lt;/span&gt;, &lt;span class="nu0"&gt;&amp;lt;block id&amp;gt;&lt;/span&gt;&lt;span class="br0"&gt;)&lt;/span&gt;;
&lt;/pre&gt;example:&lt;br /&gt;
&lt;pre&gt;$&lt;span class="re0"&gt;block&lt;/span&gt; = module_invoke('block', 'block', 'view', 20);
&lt;span class="kw3"&gt;print&lt;/span&gt; &lt;span class="re0"&gt;$block&lt;/span&gt;&lt;span class="br0"&gt;[&lt;/span&gt;&lt;span class="st0"&gt;'content'];&lt;/span&gt;&lt;/pre&gt;&lt;h2&gt;Block is generated by a module&lt;/h2&gt;&lt;pre&gt;&lt;span class="re0"&gt;$block&lt;/span&gt; = &lt;span class="kw5"&gt;module_invoke&lt;/span&gt;&lt;span class="br0"&gt;(&lt;/span&gt;&lt;span class="st0"&gt;&amp;lt;module name&amp;gt;&lt;/span&gt;, &lt;span class="st0"&gt;'block'&lt;/span&gt;, &lt;span class="st0"&gt;'view'&lt;/span&gt;, &lt;span class="nu0"&gt;&amp;lt;block id&amp;gt;&lt;/span&gt;&lt;span class="br0"&gt;)&lt;/span&gt;;&lt;/pre&gt;example&lt;br /&gt;
&lt;pre&gt;$block = module_invoke('google_admanager', 'block', 'view', 0);
print $block['content'];
&lt;/pre&gt;&lt;strong&gt;NOTE: How to find the block ID.&lt;/strong&gt; &lt;br /&gt;
Go to the list of blocks ( /admin/build/block ) and hover the mouse over  the configure link.&amp;nbsp; For a user created block you'll see  /admin/build/bloc/configure/block/&amp;lt;id&amp;gt; and for a module created  block you'll see&amp;nbsp; /admin/build/bloc/configure/&amp;lt;module  name&amp;gt;/&amp;lt;id&amp;gt;&lt;br /&gt;
Please notice that it is the same syntax so to speak because in the  case of the user created block the module name is block since it is the  block module that creates it.&lt;br /&gt;
&lt;br /&gt;
http://valerio.della-porta.com/node/20&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-4033277605834570691?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oVvvXYrZvyc-t5mHaSPdo4jhYQY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oVvvXYrZvyc-t5mHaSPdo4jhYQY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oVvvXYrZvyc-t5mHaSPdo4jhYQY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oVvvXYrZvyc-t5mHaSPdo4jhYQY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/n0cmVCjTv8w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/4033277605834570691/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/10/how-to-insert-block-programmatically.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/4033277605834570691?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/4033277605834570691?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/n0cmVCjTv8w/how-to-insert-block-programmatically.html" title="How to insert a block programmatically with Drupal" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/10/how-to-insert-block-programmatically.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAGSHw6fCp7ImA9WhdaEEw.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-3596047755622755793</id><published>2011-10-19T01:58:00.000-07:00</published><updated>2011-10-19T01:58:49.214-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-19T01:58:49.214-07:00</app:edited><title>20 Drupal Modules to Boost Your Website’s Functionality</title><content type="html">&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://sixrevisions.com/tools/20-drupal-modules-to-boost-your-websites-functionality/" style="color: #006699; text-decoration: none;"&gt;&lt;img alt="20 Drupal Modules to Boost Your Website's Functionality" height="200" src="http://images.sixrevisions.com/2010/12/20-01_drupal_modules_ld_img.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Drupal is a robust&amp;nbsp;&lt;a href="http://sixrevisions.com/web-development/how-to-evaluate-what-cms-to-use/" style="color: #006699; text-decoration: none;" title="How to Evaluate What CMS to Use - sixrevisions.com"&gt;content management system&lt;/a&gt;&amp;nbsp;that can do nearly anything you throw at it. Hundreds of&amp;nbsp;&lt;a href="http://drupal.org/project/modules" style="color: #006699; text-decoration: none;" title="Modules - drupal.org"&gt;Drupal modules&lt;/a&gt;–add-ons that extend the functionality of Drupal core–exist to help you create a powerful website.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span id="more-4642"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;This is a roundup of some excellent Drupal modules covering the following areas:&lt;/div&gt;&lt;ol style="margin-bottom: 15px; margin-left: 50px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 5px; margin-left: 40px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Managing and displaying content&lt;/li&gt;
&lt;li style="margin-bottom: 5px; margin-left: 40px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;User engagement and game mechanics&lt;/li&gt;
&lt;li style="margin-bottom: 5px; margin-left: 40px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;User registration&lt;/li&gt;
&lt;/ol&gt;&lt;h3 style="color: black; font-size: 17px; font-weight: bold; font: normal normal bold 17px/normal Arial, Helvetica, sans-serif; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 24px;"&gt;Managing and Displaying Content&lt;/h3&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;1.&amp;nbsp;&lt;a href="http://drupal.org/project/menu_block" style="color: #006699; text-decoration: none;"&gt;Menu Block&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;In many pre-built Drupal themes, the primary navigation bar (typically displayed across the top of the page) shows only top-level links. Drop-down, multi-level navigation is not automatically enabled in many themes. You can use&amp;nbsp;&lt;a href="http://www.drupal.org/project/nice_menus" style="color: #006699; text-decoration: none;"&gt;Nice Menus&lt;/a&gt;&amp;nbsp;to turn on fly-out and drop-down navigation, but you’ll still have to edit your theme files.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;However, with the Menu Block Drupal module, you can easily add a new block that pulls all relevant navigation links together, and then you can place that new block anywhere on the page–in the content section, for example, or perhaps in the left or right sidebar.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Here’s a menu block set-up page that pulls links from the equivalent navigation menu and displays it as specified:&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img height="618" src="http://images.sixrevisions.com/2010/12/20-03_menu_block_config.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="524" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Here is the menu block in action, displaying the children of a particular page in the sidebar:&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="User Registration" height="449" src="http://images.sixrevisions.com/2010/12/20-04_menu_block_display.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="194" /&gt;&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;2.&amp;nbsp;&lt;a href="http://drupal.org/project/nodereference_url" style="color: #006699; text-decoration: none;"&gt;Node Reference URL Widget&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Node Reference URL Widget (requires the nodereference and content module in&amp;nbsp;&lt;a href="http://drupal.org/project/cck" style="color: #006699; text-decoration: none;"&gt;CCK&lt;/a&gt;) is a useful Drupal module that lets you refer to one piece of content from another.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Let’s say, for example, that your website has a lot of nodes in a content type called "People";&amp;nbsp;&lt;em&gt;Jane Doe&lt;/em&gt;,&amp;nbsp;&lt;em&gt;John Smith&lt;/em&gt;&amp;nbsp;and&amp;nbsp;&lt;em&gt;Maria Miller&lt;/em&gt;&amp;nbsp;are nodes in this content type. You realize that you need to assign each person to a category to better organize the page, such as:&lt;/div&gt;&lt;ul style="list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 15px; margin-left: 50px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://sixrevisions.com/wp-content/themes/SixRevisions/images/li_bullets_small.jpg); background-origin: initial; background-position: 0% 50%; background-repeat: no-repeat no-repeat; margin-bottom: 5px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;"&gt;Staff: Jane Doe&lt;/li&gt;
&lt;li style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://sixrevisions.com/wp-content/themes/SixRevisions/images/li_bullets_small.jpg); background-origin: initial; background-position: 0% 50%; background-repeat: no-repeat no-repeat; margin-bottom: 5px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;"&gt;Board: John Smith, Maria Miller&lt;/li&gt;
&lt;li style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://sixrevisions.com/wp-content/themes/SixRevisions/images/li_bullets_small.jpg); background-origin: initial; background-position: 0% 50%; background-repeat: no-repeat no-repeat; margin-bottom: 5px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;"&gt;Volunteers: John Smith, Maria Miller&lt;/li&gt;
&lt;/ul&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Using nodereference, you can assign each person to a parent category by creating a new CCK field. For example, you could assign a new person directly from the "People" category listing. In this scenario, on the details page for "Staff," you would click on "Add a new person" and they would automatically be categorized as a staff member.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Here’s an example of a node reference link to "Add an update about this event" at the bottom of an "Event details" page:&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="Node Reference URL Widget" height="307" src="http://images.sixrevisions.com/2010/12/20-05_add_an_update_node_ref.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;And here’s what the new data entry field looks like for that particular update:&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="Node Reference URL Widget" height="306" src="http://images.sixrevisions.com/2010/12/20-06_node_reference_update.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;3.&amp;nbsp;&lt;a href="http://drupal.org/project/views_attach" style="color: #006699; text-decoration: none;"&gt;Views Attach&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;In the example above, creating the "Staff" category also created the "Staff" page. You can use the Views Attach Drupal module (it requires the&amp;nbsp;&lt;a href="http://drupal.org/project/views" style="color: #006699; text-decoration: none;"&gt;Views module&lt;/a&gt;) to create a content view related to that category. Here is a&amp;nbsp;&lt;a href="http://mustardseedmedia.com/podcast/episode37" style="color: #006699; text-decoration: none;"&gt;video&lt;/a&gt;&amp;nbsp;showing you the power of CCK, Views, Node Reference URL Widget (above), and Views Attach used together.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Some ideas:&lt;/div&gt;&lt;ol style="margin-bottom: 15px; margin-left: 50px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 5px; margin-left: 40px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;You could create a view of all people who are categorized as "Staff" and a grid of staff headshot photos to display on that page.&lt;/li&gt;
&lt;li style="margin-bottom: 5px; margin-left: 40px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;You could create a view of all documents that have been assigned to the Staff category, and then display the view of all documents (such as human resources documents, PDFs, etc.) directly on the Staff page.&lt;/li&gt;
&lt;li style="margin-bottom: 5px; margin-left: 40px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;You could create a "Restaurant Details" page, then use the Node Reference URL widget to add a link to "Add a review to this restaurant," then use Views Attach to create a list of all member-submitted reviews directly under the restaurant’s details.&lt;/li&gt;
&lt;/ol&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The following example shows the Views Attach module in action:&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="Views Attach" height="356" src="http://images.sixrevisions.com/2010/12/20-07_views_attach.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;In the example above, we have a content type called "Series." Every series page has a built-in view that pulls in all of the content types marked as belonging to that series. This view can be themed or edited as desired; it can be displayed as a grid, list, table or slideshow.&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;4.&amp;nbsp;&lt;a href="http://drupal.org/project/auto_nodetitle" style="color: #006699; text-decoration: none;"&gt;Automatic Nodetitles&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Sometimes you want to generate content automatically. Automatic Nodetitles generates titles for your content based on various criteria, including the date of creation, the user name responsible for the content, or the "parent" of a particular node.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;For example, I personally have a "Product" content type. I want every new product image that falls under the "Product" content type to be automatically named with the parent product title. You can specify a token to generate the desired title of your node.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="Automatic Nodetitles" height="180" src="http://images.sixrevisions.com/2010/12/20-08_auto_node_title_prod_detail.png" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;In such a case, whenever content is created, a node title will also be automatically created.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="Automatic Nodetitles" height="249" src="http://images.sixrevisions.com/2010/12/20-09_node_title_display.png" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Here are the four new nodes and their automatically generated titles:&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="Automatic Nodetitles" height="170" src="http://images.sixrevisions.com/2010/12/20-10_node_title_in_action.png" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="477" /&gt;&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;5.&amp;nbsp;&lt;a href="http://drupal.org/project/nodewords" style="color: #006699; text-decoration: none;"&gt;Nodewords&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;For&amp;nbsp;&lt;a href="http://sixrevisions.com/web-development/10-seo-tips-to-remember-when-building-your-site/" style="color: #006699; text-decoration: none;" title="10 SEO Tips to Remember When Building Your Site - sixrevisions.com"&gt;search engine optimization&lt;/a&gt;&amp;nbsp;(SEO) purposes, you might need to add certain keywords to certain nodes (e.g. "pages", "announcements", "posts", etc.) on your website. The Nodewords module lets you specify keywords or key phrases on a node-by-node basis (instead of a website-wide, cascading basis). You can then track results with&amp;nbsp;&lt;a href="http://sixrevisions.com/usabilityaccessibility/unleashing-the-power-of-website-analytics/" style="color: #006699; text-decoration: none;" title="Unleashing the Power of Website Analytics - sixrevisions.com"&gt;Google Analytics&lt;/a&gt;&amp;nbsp;or Drupal core’s statistics-tracking feature.&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;6.&amp;nbsp;&lt;a href="http://drupal.org/project/imagecache" style="color: #006699; text-decoration: none;"&gt;ImageCache&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The&amp;nbsp;&lt;a href="http://drupal.org/project/image" style="color: #006699; text-decoration: none;"&gt;Image&lt;/a&gt;&amp;nbsp;Drupal module defines sizes that you can adjust for any image uploaded by a user. The ImageCache module extends this functionality and lets you set up "presets" for image processing that include cropping, desaturating color, resizing images to exact sizes, rotating, resizing by aspect ratio, scaling and sharpening.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="Automatic Nodetitles" height="318" src="http://images.sixrevisions.com/2010/12/20-11_sample_preset_actions.png" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;Note:&lt;/strong&gt;&amp;nbsp;This module has been moved into Drupal 7 core, but is still useful to Drupal 6 (and below) users.&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;7.&amp;nbsp;&lt;a href="http://drupal.org/project/views_slideshow" style="color: #006699; text-decoration: none;"&gt;Views Slideshow&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Most websites need some way to fit multiple pieces of information into a fixed space. This can be done by creating a "View" of particular data on your website. The Views Slideshow Drupal module can help make this view more interesting.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;For example, you could create a view of the most recent articles, and then use the module to cycle through that view. You could set up a "Recent highlights" section showing the articles’ titles, images and teasers. You could set up a "Top-rated products" list that shows images, "Add to cart" links, titles and descriptions.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;In the example below, we’ve created a slideshow of articles with a fade-in effect on the large photo and thumbnails across the bottom. The user clicks on a thumbnail to get to each article.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="Automatic Nodetitles" height="389" src="http://images.sixrevisions.com/2010/12/20-12_views_slideshow_sample.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;In this next example, we’ve created a slideshow that fades in a variety of image details of certain products.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="Automatic Nodetitles" height="380" src="http://images.sixrevisions.com/2010/12/20-13_views_slideshow_sample_2.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;8.&amp;nbsp;&lt;a href="http://drupal.org/project/nodequeue" style="color: #006699; text-decoration: none;"&gt;Nodequeue&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;If you want to highlight certain items in a section, like an "Editor’s pick" section, and you want the website administrator to control what appears in that section, then the Nodequeue module will prove useful to you. The node queue can be set up to display according to your specifications.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="Automatic Nodetitles" height="524" src="http://images.sixrevisions.com/2010/12/20-14_node_queue.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;In this case, I’m allowing 15 articles in the queue at any given time:&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="Automatic Nodetitles" height="586" src="http://images.sixrevisions.com/2010/12/20-15_add_to_highlighted.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;To add an item to the queue, a user with adequate permissions simply clicks "Add to highlighted" at the bottom of the node.&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;9.&amp;nbsp;&lt;a href="http://drupal.org/project/stringoverrides" style="color: #006699; text-decoration: none;"&gt;String Overrides&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;If you need to change the default language of parts of your website, you could hack the Drupal core code–strongly not recommended, just&amp;nbsp;&lt;em&gt;don’t do it&lt;/em&gt;–or you could use the handy String Overrides Drupal module to find a string and then override the matched text. This module lets you control a specific phrase anywhere on your website.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;For example, on one of my websites, I needed to change the default check-out message because it didn’t suit the organization. I used String Overrides to make this task simpler.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="String Overrides" height="375" src="http://images.sixrevisions.com/2010/12/20-16_string_override.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;h3 style="color: black; font-size: 17px; font-weight: bold; font: normal normal bold 17px/normal Arial, Helvetica, sans-serif; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 24px;"&gt;User Engagement and Game Mechanics&lt;/h3&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;10.&amp;nbsp;&lt;a href="http://drupal.org/project/better_formats" style="color: #006699; text-decoration: none;"&gt;Better Formats&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Drupal comes with basic support for input filters, which allow administrators to specify what kind of HTML can be added by users. For example, an administrator might want to strip all formatting for novice users but allow links, bold text, italicized text and tables for advanced users. When a user creates content for a Drupal website, they have to specify which "input filter" they want to run their content through prior to publication–this can be an inconvenience, and can open the CMS to content-rendering issues because of an incorrectly chosen input filter.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;However, with the Better Formats Drupal module, you can extend support for the default input filter that is assigned to a logged-in user.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="String Overrides" height="399" src="http://images.sixrevisions.com/2010/12/20-17_better_formats.png" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;For example, perhaps only the content provided by an administrator would be set to the "Full HTML" filter. This would save users from having to specify which filter to use, especially if they are eligible for many different ones.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="String Overrides" height="249" src="http://images.sixrevisions.com/2010/12/20-18_main_input_filter.png" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;11.&amp;nbsp;&lt;a href="http://drupal.org/project/flag" style="color: #006699; text-decoration: none;"&gt;Flag&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;A website with user-submitted content must be monitored for spam and for submissions that are against submission guidelines. Use the Flag Drupal module to allow users to flag (or bookmark) content that they want to return to.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;You can use this module for features such as "Add to bookmarks," "Mark as inappropriate," "Flag as helpful" or "Add to wishlist."&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="Flag" height="303" src="http://images.sixrevisions.com/2010/12/20-19_flag_examples.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;You could probably think of other reasons to flag content.&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;12.&amp;nbsp;&lt;a href="http://drupal.org/project/og" style="color: #006699; text-decoration: none;"&gt;Organic Groups&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Organic Groups (OG) is an amazing resource for building mini-communities centered on specific causes or issues. OG lets your users self-organize by maintaining public and private groups and posting messages directly to their groups.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;It’s an excellent way to encourage users to own their presence on your website. Each group can have subscribers and a landing page where the subscribers communicate between themselves.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="Organic Groups" height="465" src="http://images.sixrevisions.com/2010/12/20-20_groups.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;13.&amp;nbsp;&lt;a href="http://drupal.org/project/privatemsg" style="color: #006699; text-decoration: none;"&gt;Private Messages&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The Private Messages Drupal module gives users their own inboxes on your website and the ability to communicate with one another.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img height="426" src="http://images.sixrevisions.com/2010/12/20-21_pm.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;It’s used in conjunction with many other modules, such as the&amp;nbsp;&lt;a href="http://drupal.org/project/advanced_profile" style="color: #006699; text-decoration: none;"&gt;Advanced Profile Kit&lt;/a&gt;module, with which users get their own dashboards, and users with appropriate permissions can send private messages.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img height="362" src="http://images.sixrevisions.com/2010/12/20-22_pm_adv_profile.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Private Messages can also be used in conjunction with the&amp;nbsp;&lt;a href="http://drupal.org/project/advanced_forum" style="color: #006699; text-decoration: none;"&gt;Advanced Forum&lt;/a&gt;&amp;nbsp;module, in which users with appropriate permissions can send private messages to those who post in forums.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img height="348" src="http://images.sixrevisions.com/2010/12/20-23_pm_forum.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;14.&amp;nbsp;&lt;a href="http://drupal.org/project/userpoints" style="color: #006699; text-decoration: none;"&gt;User Points&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Social news and user-generated content sites such as&amp;nbsp;&lt;a href="http://www.reddit.com/help/faq#WhatisthatnumbernexttousernamesAndwhatiskarma" style="color: #006699; text-decoration: none;" title="What is karma? FAQ - reddit.com"&gt;Reddit&lt;/a&gt;,&amp;nbsp;&lt;a href="http://ycombinator.com/newsfaq.html" style="color: #006699; text-decoration: none;" title="Hacker News FAQ - ycombinator.com"&gt;Hacker News&lt;/a&gt;, and&lt;a href="http://stackoverflow.com/faq#reputation" style="color: #006699; text-decoration: none;" title="http://stackoverflow.com/faq#reputation"&gt;Stack Overflow&lt;/a&gt;&amp;nbsp;use a&amp;nbsp;&lt;a href="http://sixrevisions.com/content-strategy/increase-your-user-activity-with-points-badges-and-status/" style="color: #006699; text-decoration: none;" title="Increase Your User Activity with Points, Badges and Status - sixrevisions.com"&gt;gaming mechanic&lt;/a&gt;&amp;nbsp;often referred to as "karma" to encourage users to participate by being able to earn points for certain tasks (such as submitting good content or leaving a thoughtful comment that gets upvoted by other members).&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;You can set up a similar feature in your Drupal-powered website that assigns points to user-generated content. You could award points to users who complete their profiles, upload images, post comments or add events to the calendar.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img height="627" src="http://images.sixrevisions.com/2010/12/20-24_user_points.png" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Another novel way to integrate points into your website is to let users trade points for store merchandise and other perks. I’ve also seen users treat points as a kind of in-site currency; points are exchanged on the website, and real money is exchanged for points (for example, a user could purchase a product worth 250 points to quickly increase their total).&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;15.&amp;nbsp;&lt;a href="http://drupal.org/project/user_badges" style="color: #006699; text-decoration: none;"&gt;User Badges&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Consider using User Points in tandem with User Badges–a Drupal module that allows users to unlock badges based on how many points they redeem. Alternatively, user badges could be awarded based on their participation or for doing certain tasks, which can then be measured with titles like "Sheriff," "Mayor," "Diamond user" and "Moderator," similar to social sites such as Foursquare.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img height="495" src="http://images.sixrevisions.com/2010/12/20-25_samples_of_user_badges.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;16.&amp;nbsp;&lt;a href="http://drupal.org/project/invite" style="color: #006699; text-decoration: none;"&gt;Invite&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Invite is a standard invite-by-email module that allows users with appropriate permissions to send invitations to their friends via email messages generated by your website, similar to invite-only community sites such as Dribbble and&amp;nbsp;&lt;a href="http://forrst.com/" style="color: #006699; text-decoration: none;" title="Forrst: community for developers and designers - forrst.com"&gt;Forrst&lt;/a&gt;.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Invitations can be tracked and constrained (i.e. limiting the number of invitations available to each user). You can grow your website organically by challenging users to send invitations to their real-life contacts.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img height="310" src="http://images.sixrevisions.com/2010/12/20-26_invite.png" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Invitation settings can be done by the administrator, as shown below:&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img height="357" src="http://images.sixrevisions.com/2010/12/20-27_invitation_settings.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;17.&amp;nbsp;&lt;a href="http://drupal.org/project/gmap" style="color: #006699; text-decoration: none;"&gt;GMap&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Google Maps can integrate well with website content. Perhaps you’d like to add a "location" to a certain node (say an event, product or blog post). Use the GMap module to assign and display a map for certain content or users on your website. To use this module, you must&amp;nbsp;&lt;a href="http://code.google.com/apis/maps/signup.html" style="color: #006699; text-decoration: none;" title="Sign Up for the Google Maps API - code.google.com"&gt;sign up for a Google Maps API Key&lt;/a&gt;&amp;nbsp;for your website.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img height="364" src="http://images.sixrevisions.com/2010/12/20-29_gmap.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;18.&amp;nbsp;&lt;a href="http://drupal.org/project/ubercart" style="color: #006699; text-decoration: none;"&gt;Ubercart&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Ubercart–a free open source e-commerce solution –is the most widely used e-commerce module for Drupal. Out-of-the-box users with adequate permissions, for example, can add products and allow authenticated users to purchase those products with check-out functionality. Enable a payment gateway such as Authorize, Google Checkout or PayPal to accept payments, and you’re ready to start selling your goods on the Web.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img height="245" src="http://images.sixrevisions.com/2010/12/20-30_ubercart.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Ubercart features include shipping-quote integration with UPS/USPS, discount coupons by percentage or fixed amount, stock inventory control and many pre-built reports to track orders and customers.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;There are plenty of configuration options and documentation in the official&amp;nbsp;&lt;a href="http://www.ubercart.org/" style="color: #006699; text-decoration: none;"&gt;Ubercart&lt;/a&gt;site, if you would like to learn more.&lt;/div&gt;&lt;h3 style="color: black; font-size: 17px; font-weight: bold; font: normal normal bold 17px/normal Arial, Helvetica, sans-serif; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 24px;"&gt;User Registration&lt;/h3&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;19.&amp;nbsp;&lt;a href="http://drupal.org/project/logintoboggan" style="color: #006699; text-decoration: none;"&gt;Login Toboggan&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;In Drupal, a website can have both public users (anonymous) and authenticated users (registered and signed into the system). During the authentication process, you can assign statuses to users; for example, you could offer memberships for a fee, or make day passes available with which users can get bumped up to a status that has more access permissions.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The Login Toboggan Drupal module helps you exclude pre-authenticated users–those who have registered but not yet confirmed their email addresses–from common functions and tasks that authenticated users are permitted to do.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img alt="User Registration" height="508" src="http://images.sixrevisions.com/2010/12/20-02_login_toboggan.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;For example, I use Login Toboggan to assign a "pre-authenticated" status to a new user. At this stage, the user can review website data but cannot post reviews, give star ratings or add comments until they verify their email address. Once the user confirms their email address, Login Toboggan assigns an "authenticated" status, and the user is granted all of the abilities of authenticated users.&lt;/div&gt;&lt;h4 style="color: black; font-size: 14px; font-weight: bold; line-height: 14px; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 3px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;20.&amp;nbsp;&lt;a href="http://drupal.org/project/fbconnect" style="color: #006699; text-decoration: none;"&gt;Facebook Connect&lt;/a&gt;&lt;/h4&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Facebook Connect is a nifty Drupal module that allows you to streamline the user registration process by letting users register and sign in with their Facebook accounts using&amp;nbsp;&lt;a href="http://developers.facebook.com/docs/authentication/" style="color: #006699; text-decoration: none;"&gt;Facebook’s authentication API&lt;/a&gt;.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;If your website’s users are already on Facebook, consider opening up access to your website by allowing them to log in with their Facebook username and password, making it more convenient for them, as well as for you, so that you don’t have to store any user account data (such as passwords and email). This module requires you to&amp;nbsp;&lt;a href="http://www.facebook.com/developers" style="color: #006699; text-decoration: none;"&gt;sign up your site&lt;/a&gt;&amp;nbsp;on Facebook.&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;img height="383" src="http://images.sixrevisions.com/2010/12/20-28_facebook.jpg" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(204, 204, 204); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(204, 204, 204); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(204, 204, 204); border-top-style: solid; border-top-width: 1px; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px;" width="550" /&gt;&lt;/div&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;To extend your Drupal-Facebook integration, try the&amp;nbsp;&lt;a href="http://drupal.org/project/fb" style="color: #006699; text-decoration: none;"&gt;DrupalforFacebook&lt;/a&gt;&amp;nbsp;module. It integrates Facebook Connect, "Like" buttons, stream publishing and extended permissions for sharing information between a user’s Facebook and Drupal website profiles.&lt;/div&gt;&lt;h3 style="color: black; font-size: 17px; font-weight: bold; font: normal normal bold 17px/normal Arial, Helvetica, sans-serif; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 24px;"&gt;Conclusion&lt;/h3&gt;&lt;div style="line-height: 20px; margin-bottom: 15px; margin-left: 50px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;As you probably know, this is but a small sampling of the available modules in Drupal. As always, before working with new modules, back up your database, and save a copy of your website prior to making changes. To evaluate a module, go to its project page (which are all linked above) and review the bug list, the documentation, live versions of the module and the number of downloads (to see how popular it is).&lt;/div&gt;&lt;h3 style="color: black; font-size: 17px; font-weight: bold; font: normal normal bold 17px/normal Arial, Helvetica, sans-serif; margin-bottom: 0px; margin-left: 50px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 24px;"&gt;Related Content&lt;/h3&gt;&lt;ul style="list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 15px; margin-left: 50px; margin-right: 0px; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://sixrevisions.com/wp-content/themes/SixRevisions/images/li_bullets_small.jpg); background-origin: initial; background-position: 0% 50%; background-repeat: no-repeat no-repeat; margin-bottom: 5px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://sixrevisions.com/web-development/getting-started-with-drupal-a-comprehensive-hands-on-guide/" style="color: #006699; text-decoration: none;"&gt;Getting Started with Drupal: A Comprehensive Hands-On Guide&lt;/a&gt;&lt;/li&gt;
&lt;li style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://sixrevisions.com/wp-content/themes/SixRevisions/images/li_bullets_small.jpg); background-origin: initial; background-position: 0% 50%; background-repeat: no-repeat no-repeat; margin-bottom: 5px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://sixrevisions.com/web-development/22-excellent-tips-for-new-drupal-developers/" style="color: #006699; text-decoration: none;"&gt;22 Excellent Tips for New Drupal Developers&lt;/a&gt;&lt;/li&gt;
&lt;li style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://sixrevisions.com/wp-content/themes/SixRevisions/images/li_bullets_small.jpg); background-origin: initial; background-position: 0% 50%; background-repeat: no-repeat no-repeat; margin-bottom: 5px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://sixrevisions.com/web_design/31-drupal-content-management-system-cms/" style="color: #006699; text-decoration: none;"&gt;31 Remarkable Drupal Powered Websites&lt;/a&gt;&lt;/li&gt;
&lt;li style="background-attachment: initial; background-clip: initial; background-color: initial; background-image: url(http://sixrevisions.com/wp-content/themes/SixRevisions/images/li_bullets_small.jpg); background-origin: initial; background-position: 0% 50%; background-repeat: no-repeat no-repeat; margin-bottom: 5px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;"&gt;&lt;em&gt;Related categories&lt;/em&gt;:&amp;nbsp;&lt;a href="http://sixrevisions.com/category/tools/" style="color: #006699; text-decoration: none;"&gt;Tools&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="http://sixrevisions.com/category/resources/" style="color: #006699; text-decoration: none;"&gt;Resources&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;a href="http://sixrevisions.com/tools/20-drupal-modules-to-boost-your-websites-functionality/"&gt;http://sixrevisions.com/tools/20-drupal-modules-to-boost-your-websites-functionality/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-3596047755622755793?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/z5t5aopRDv4udrffMJxekxVVEkA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/z5t5aopRDv4udrffMJxekxVVEkA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/z5t5aopRDv4udrffMJxekxVVEkA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/z5t5aopRDv4udrffMJxekxVVEkA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/Xduz-QU6VT4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/3596047755622755793/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/10/20-drupal-modules-to-boost-your.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/3596047755622755793?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/3596047755622755793?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/Xduz-QU6VT4/20-drupal-modules-to-boost-your.html" title="20 Drupal Modules to Boost Your Website’s Functionality" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/10/20-drupal-modules-to-boost-your.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEASHc4eip7ImA9WhdaEEw.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-8529168264509611609</id><published>2011-10-19T01:57:00.001-07:00</published><updated>2011-10-19T01:57:29.932-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-19T01:57:29.932-07:00</app:edited><title>Single Sign-on across Sub-Domains in Drupal with No Extra Modules</title><content type="html">&lt;span class="Apple-style-span" style="background-color: white; color: #404040; font-family: 'Helvetica Neue', Helvetica, Geneva, sans-serif; font-size: 14px; line-height: 21px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;With the multitude of single sign-on modules out there for Drupal, it's easy to miss the fact that Drupal has a&amp;nbsp;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;built-in&lt;/em&gt;&amp;nbsp;single sign on mechanism already. No modules, no configuration, just 20 easy lines of PHP in your site's settings.php file. This solution works for a lot of clients, but the set of requirements is pretty specific as to when you can use this approach. This includes:&lt;/div&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 18px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; list-style-type: disc; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;The sites sharing a single log-in must be on the&amp;nbsp;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;same domain&lt;/strong&gt;. For example:&lt;/li&gt;
&lt;ul style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 18px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; list-style-type: disc; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: menlo, monaco, monospace, courier, mono; font-size: 0.858em; line-height: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;www.example.com&lt;/code&gt;&lt;/li&gt;
&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; list-style-type: disc; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: menlo, monaco, monospace, courier, mono; font-size: 0.858em; line-height: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;forums.example.com&lt;/code&gt;&lt;/li&gt;
&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; list-style-type: disc; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: menlo, monaco, monospace, courier, mono; font-size: 0.858em; line-height: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;subsite.example.com&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; list-style-type: disc; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;You must be using&amp;nbsp;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;MySQL&lt;/strong&gt;.&lt;/li&gt;
&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; list-style-type: disc; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Your sites must be on the&amp;nbsp;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;same hardware cluster&lt;/strong&gt;&amp;nbsp;to be able to query each other's databases.&lt;/li&gt;
&lt;/ul&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;If your site fits within those requirements, you're on your way to simple, efficient, and easy Single Sign-on!&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;The concept for this single sign-on approach is based around Drupal's ability to prefix database tables. As you may know, you can run multiple Drupal sites on the same MySQL database. However, most sites are not configured this way, each site is given it's own dedicated database. Drupal's table prefixing can be combined with MySQL's ability to query across databases to make a simple "shared table" across multiple sites. Then you just need to set a cookie domain so that the two sites share session information and you're done!&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;If that sounds a little heady, let's just look at the code. Open the settings.php file (usually located in&amp;nbsp;&lt;code style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: menlo, monaco, monospace, courier, mono; font-size: 0.858em; line-height: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;sites/default/settings.php&lt;/code&gt;) for your two sites. These sites can be in entirely different Drupal installs, or they can be under the same Drupal installation if you're using multisite capabilities.&lt;/div&gt;&lt;h2 style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-color: rgb(190, 190, 190); border-top-style: dotted; border-top-width: 1px; font-family: 'Helvetica Rounded', 'Arial Rounded', 'Helvetica Neue', Helvetica, Geneva, sans-serif; font-size: 1.286em; letter-spacing: -1px; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 14px; vertical-align: baseline;"&gt;Master Site Configuration&lt;/h2&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;In your "Master" site (the one that the user information will be stored in), you don't need to make hardly any changes. There should be a line similar to this in your settings.php file:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;div class="codeblock" style="background-attachment: initial; background-clip: initial; background-color: #f0f0f0; background-image: url(http://www.lullabot.com/sites/all/themes/lullabot/lullamain/images/bg-codeblock.jpg); background-origin: initial; background-position: initial initial; background-repeat: no-repeat repeat; border-bottom-color: rgb(221, 221, 221); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-left-radius: 4px 4px; border-top-right-radius: 4px 4px; border-top-style: solid; border-top-width: 1px; font-size: 14px; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 12px; outline-color: initial; outline-style: initial; outline-width: 0px; overflow-x: hidden; padding-bottom: 12px; padding-left: 20px; padding-right: 20px; padding-top: 12px; position: relative; vertical-align: baseline; white-space: nowrap; z-index: 1;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: menlo, monaco, monospace, courier, mono; font-size: 0.858em; line-height: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$db_url = 'mysql://user:&lt;a href="http://www.lullabot.com/%2526#109;ailto:pass@localhost" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2874a2; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;pass@localhost&lt;/a&gt;/master_database';&lt;br /&gt;
$db_prefix = '';&lt;/code&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;You don't need to change this at all. The master site stores all the user names, passwords, and sessions. However there is another line further down in settings.php that let's you specify a cookie domain. This needs to be un-commented (remove the leading # sign) and set to the name of your domain.&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Make sure you include the leading period before the domain&lt;/strong&gt;.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;div class="codeblock" style="background-attachment: initial; background-clip: initial; background-color: #f0f0f0; background-image: url(http://www.lullabot.com/sites/all/themes/lullabot/lullamain/images/bg-codeblock.jpg); background-origin: initial; background-position: initial initial; background-repeat: no-repeat repeat; border-bottom-color: rgb(221, 221, 221); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-left-radius: 4px 4px; border-top-right-radius: 4px 4px; border-top-style: solid; border-top-width: 1px; font-size: 14px; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 12px; outline-color: initial; outline-style: initial; outline-width: 0px; overflow-x: hidden; padding-bottom: 12px; padding-left: 20px; padding-right: 20px; padding-top: 12px; position: relative; vertical-align: baseline; white-space: nowrap; z-index: 1;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: menlo, monaco, monospace, courier, mono; font-size: 0.858em; line-height: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$cookie_domain = '.example.com';&lt;/code&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;h2 style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-color: rgb(190, 190, 190); border-top-style: dotted; border-top-width: 1px; font-family: 'Helvetica Rounded', 'Arial Rounded', 'Helvetica Neue', Helvetica, Geneva, sans-serif; font-size: 1.286em; letter-spacing: -1px; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 14px; vertical-align: baseline;"&gt;Slave Site Configuration&lt;/h2&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;The slave site will connect to the Master site's database for certain tables, specifically the ones that include user information. This makes it so that user's simply "log in" using the information from the master site's database.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Here's where we use MySQL's database name prefixing, where all queries to the "slave" database are simply prefixed with the name of the slave database. Same goes for the master.&lt;/div&gt;&lt;div class="codeblock" style="background-attachment: initial; background-clip: initial; background-color: #f0f0f0; background-image: url(http://www.lullabot.com/sites/all/themes/lullabot/lullamain/images/bg-codeblock.jpg); background-origin: initial; background-position: initial initial; background-repeat: no-repeat repeat; border-bottom-color: rgb(221, 221, 221); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-left-radius: 4px 4px; border-top-right-radius: 4px 4px; border-top-style: solid; border-top-width: 1px; font-size: 14px; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 12px; outline-color: initial; outline-style: initial; outline-width: 0px; overflow-x: hidden; padding-bottom: 12px; padding-left: 20px; padding-right: 20px; padding-top: 12px; position: relative; vertical-align: baseline; white-space: nowrap; z-index: 1;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: menlo, monaco, monospace, courier, mono; font-size: 0.858em; line-height: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$db_url = 'mysql://user:&lt;a href="http://www.lullabot.com/%2526#109;ailto:pass@localhost" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2874a2; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;pass@localhost&lt;/a&gt;/slave_database';&lt;br /&gt;
$db_prefix = array(&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 'default'&amp;nbsp;&amp;nbsp; =&amp;gt; 'name_of_slave_database.',&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 'users'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; 'name_of_master_database.',&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 'sessions'&amp;nbsp; =&amp;gt; 'name_of_master_database.',&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 'role'&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; 'name_of_master_database.',&lt;br /&gt;
&amp;nbsp;&amp;nbsp; 'authmap'&amp;nbsp;&amp;nbsp; =&amp;gt; 'name_of_master_database.',&lt;br /&gt;
);&lt;/code&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Then we configure the site to use the same "shared" cookie domain as the master.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;div class="codeblock" style="background-attachment: initial; background-clip: initial; background-color: #f0f0f0; background-image: url(http://www.lullabot.com/sites/all/themes/lullabot/lullamain/images/bg-codeblock.jpg); background-origin: initial; background-position: initial initial; background-repeat: no-repeat repeat; border-bottom-color: rgb(221, 221, 221); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-left-radius: 4px 4px; border-top-right-radius: 4px 4px; border-top-style: solid; border-top-width: 1px; font-size: 14px; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 12px; outline-color: initial; outline-style: initial; outline-width: 0px; overflow-x: hidden; padding-bottom: 12px; padding-left: 20px; padding-right: 20px; padding-top: 12px; position: relative; vertical-align: baseline; white-space: nowrap; z-index: 1;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: menlo, monaco, monospace, courier, mono; font-size: 0.858em; line-height: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;$cookie_domain = '.example.com';&lt;/code&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;The method for a user logging in does not change, the user can just use the exact same user name and password on both sites, logging into one will immediately log you into all of them. Users can even change their passwords and have it work across sites, and you can still use Views to build listings of users without any changes at all. Hurray for shared cookies.&lt;/div&gt;&lt;h2 style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-color: rgb(190, 190, 190); border-top-style: dotted; border-top-width: 1px; font-family: 'Helvetica Rounded', 'Arial Rounded', 'Helvetica Neue', Helvetica, Geneva, sans-serif; font-size: 1.286em; letter-spacing: -1px; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 14px; vertical-align: baseline;"&gt;Taking it further&lt;/h2&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Just by adding a few lines of code to your settings.php file on your different sites can make shared login a piece of cake. Note that this makes it so that other user-related information may need to also be shared. Specifically if you're using Profile module, you may also want to share the "profile_fields" and the "profile_values" tables.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;One caveat you might encounter is that your user picture URLs are all relative to the Master site's files directory. To solve this problem, you can create a symlink from "files/pictures" on your slave sites to point to the master site's "files/pictures" directory.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;div class="codeblock" style="background-attachment: initial; background-clip: initial; background-color: #f0f0f0; background-image: url(http://www.lullabot.com/sites/all/themes/lullabot/lullamain/images/bg-codeblock.jpg); background-origin: initial; background-position: initial initial; background-repeat: no-repeat repeat; border-bottom-color: rgb(221, 221, 221); border-bottom-left-radius: 4px 4px; border-bottom-right-radius: 4px 4px; border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-left-radius: 4px 4px; border-top-right-radius: 4px 4px; border-top-style: solid; border-top-width: 1px; font-size: 14px; margin-bottom: 12px; margin-left: 0px; margin-right: 0px; margin-top: 12px; outline-color: initial; outline-style: initial; outline-width: 0px; overflow-x: hidden; padding-bottom: 12px; padding-left: 20px; padding-right: 20px; padding-top: 12px; position: relative; vertical-align: baseline; white-space: nowrap; z-index: 1;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: menlo, monaco, monospace, courier, mono; font-size: 0.858em; line-height: 1em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;ln -s /usr/home/example.com/sites/default/files/pictures /usr/home/subsite.example.com/sites/default/files/pictures&lt;/code&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Again, this approach will only work across subdomains of the same domain and if the sites are hosted on the same set of servers. The security built into browsers prevents domains from reading the cookies of completely different domains, which is when you'll need to look into other solutions such as&amp;nbsp;&lt;a href="http://drupal.org/project/openid_provider" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2874a2; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;OpenID Provider&lt;/a&gt;,&amp;nbsp;&lt;a href="http://drupal.org/project/sso" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2874a2; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Single Sign-on&lt;/a&gt;, or&amp;nbsp;&lt;a href="http://drupal.org/project/bakery" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2874a2; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Bakery&lt;/a&gt;.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0.5em; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;This article was sponsored by our friends at&amp;nbsp;&lt;a href="http://dooce.com/" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2874a2; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;"&gt;Dooce&lt;/a&gt;! You can see this in action between their shared sites:&lt;/div&gt;&lt;ul style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; list-style-image: initial; list-style-position: initial; list-style-type: none; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 18px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; list-style-type: disc; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://www.dooce.com/" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2874a2; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" title="http://www.dooce.com"&gt;http://www.dooce.com&lt;/a&gt;&lt;/li&gt;
&lt;li style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; list-style-type: disc; margin-bottom: 0.5em; margin-left: 0px; margin-right: 0px; margin-top: 0.5em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://community.dooce.com/" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2874a2; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" title="http://community.dooce.com"&gt;http://community.dooce.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;&lt;a href="http://www.lullabot.com/articles/drupal-single-sign-across-sub-domains"&gt;http://www.lullabot.com/articles/drupal-single-sign-across-sub-domains&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-8529168264509611609?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VyuoM8xgZ7A-AXBOWWtnU9FijYA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VyuoM8xgZ7A-AXBOWWtnU9FijYA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VyuoM8xgZ7A-AXBOWWtnU9FijYA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VyuoM8xgZ7A-AXBOWWtnU9FijYA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/1ggybg9V8Qo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/8529168264509611609/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/10/single-sign-on-across-sub-domains-in.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/8529168264509611609?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/8529168264509611609?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/1ggybg9V8Qo/single-sign-on-across-sub-domains-in.html" title="Single Sign-on across Sub-Domains in Drupal with No Extra Modules" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/10/single-sign-on-across-sub-domains-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEHR30-eCp7ImA9WhdUGEU.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-7745453990073788535</id><published>2011-10-06T00:52:00.000-07:00</published><updated>2011-10-06T00:53:56.350-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-06T00:53:56.350-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="torrentflux" /><category scheme="http://www.blogger.com/atom/ns#" term="torrent" /><title>How to install torrentflux on centos 5.5</title><content type="html">&lt;span style="font-family: Georgia;"&gt;&lt;u&gt;&lt;i&gt;What is TorrentFlux ?&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;TorrentFlux&lt;/b&gt; is a web-based system for managing bit  torrent file  transfers.  It is an open source package (GPL) and  developed for Linux,  Unix &amp;amp; BSD platforms on the ubiquitous LAMP  stack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
How to Install it :&lt;br /&gt;
&lt;br /&gt;
Step 1 : Update Centos. &lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 34px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;yum update&lt;/pre&gt;&lt;/div&gt;Step 2 : Install Modules &lt;br /&gt;
&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 34px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;yum install httpd python php mysql-server php-mysql php-common php-gd php-curl&lt;/pre&gt;&lt;/div&gt;Step 3 : Restart Apache &lt;br /&gt;
&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 34px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;/etc/init.d/httpd restart&lt;/pre&gt;&lt;/div&gt;Step 4 : Make MYSQL&lt;br /&gt;
&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 34px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;mysql_install_db&lt;/pre&gt;&lt;/div&gt;Step 5 : Fix some permissons :&lt;br /&gt;
&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 34px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;chkconfig --levels 235 httpd on&lt;/pre&gt;&lt;/div&gt;&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 34px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;chkconfig --levels 235 mysqld on&lt;/pre&gt;&lt;/div&gt;Step 6 : Restart Mysql&lt;br /&gt;
&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 34px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;/etc/init.d/mysqld restart&lt;/pre&gt;&lt;/div&gt;Step 7 : Make a MYSQL DataBase :&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 34px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;mysqladmin -u root password &lt;span style="color: red;"&gt;&lt;b&gt;YOUR ROOT PASSWORD&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;Step 8 : Setup Some Folders for TorrentFlux &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 130px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;mkdir /var/www/html/torrentflux

  

cd /var/www/html/torrentflux/

wget &lt;u&gt;&lt;a href="http://downloads.sourceforge.net/torrentflux/torrentflux_2.4.tar.gz?modtime=1213797423&amp;amp;big_mirror=0" rel="nofollow" target="_blank"&gt;http://downloads.sourceforge.net/tor...3&amp;amp;big_mirror=0&lt;/a&gt;&lt;/u&gt;&lt;/pre&gt;&lt;/div&gt;Step 9 : Un-Tar Torrent Flux&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 66px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;tar -xzf torrentflux_2.4.tar.gz

mv torrentflux_2.4/html/* /var/www/html/torrentflux/&lt;/pre&gt;&lt;/div&gt;Step 10 : Make a database Again &lt;img alt="" border="0" class="inlineimg" src="http://www.wjunction.com/images/smilies/getlost.gif" title="Get Lost" /&gt;&lt;br /&gt;
&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 290px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;cd /var/www/html/torrentflux/torrentflux_2.4/sql/

mysql -u root -p 

&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 66px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;mysql&amp;gt;create database &lt;b&gt;Your DATABASE NAME&lt;/b&gt;;

mysql&amp;gt;\q&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;.... Follow On Screen Steps&lt;br /&gt;
&lt;br /&gt;
Step 11 : Enter This Code&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 34px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;mysql torrentflux &amp;lt; mysql_torrentflux.sql -u root -p&lt;/pre&gt;&lt;/div&gt;Step 12 : Make Downloads Folder&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 66px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;mkdir /mydownloads (can put anything u need) 
chmod 777 /mydownloads
chown apache.apache /mydownloads&lt;/pre&gt;&lt;/div&gt;Step 13 : Edit Your Config&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 66px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;nano /var/www/html/torrentflux/config.php

$cfg["db_pass"] = "YOUR PASS";    // password for database&lt;/pre&gt;&lt;/div&gt;Step 14 : Restart MYSQL and Apache &lt;br /&gt;
&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 50px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;/etc/init.d/httpd restart 
/etc/init.d/mysqld restart&lt;/pre&gt;&lt;/div&gt;Now You can Login. &lt;a href="http://youripadresss/torrentflux" rel="nofollow" target="_blank"&gt;http://youripadresss/torrentflux&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin-top: 5px; margin: 20px;"&gt;&lt;div class="smallfont" style="margin-bottom: 2px;"&gt;Code:&lt;/div&gt;&lt;pre class="alt2" dir="ltr" style="border: 1px inset; height: 34px; margin: 0px; overflow: auto; padding: 6px; text-align: left; width: 640px;"&gt;user:&lt;span style="color: red;"&gt;&lt;b&gt;goombah&lt;/b&gt;&lt;/span&gt; pass:&lt;span style="color: red;"&gt;&lt;b&gt;iamah&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-7745453990073788535?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/y406FinTYkJ9J5QhHJl6l6m-nJk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/y406FinTYkJ9J5QhHJl6l6m-nJk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/y406FinTYkJ9J5QhHJl6l6m-nJk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/y406FinTYkJ9J5QhHJl6l6m-nJk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/zJsFftbYlDU" height="1" width="1"/&gt;</content><link rel="related" href="http://www.ruchirablog.com/how-to-install-torrentflux-on-centos-5-5/" title="How to install torrentflux on centos 5.5" /><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/7745453990073788535/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/10/how-to-install-torrentflux-on-centos-55.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/7745453990073788535?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/7745453990073788535?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/zJsFftbYlDU/how-to-install-torrentflux-on-centos-55.html" title="How to install torrentflux on centos 5.5" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>1</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/10/how-to-install-torrentflux-on-centos-55.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEGQHs-fyp7ImA9WhdUF08.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-7973355068050723806</id><published>2011-10-04T04:27:00.000-07:00</published><updated>2011-10-04T04:27:01.557-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-04T04:27:01.557-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="IPMIView" /><category scheme="http://www.blogger.com/atom/ns#" term="super micro" /><category scheme="http://www.blogger.com/atom/ns#" term="ipmi 2.0" /><category scheme="http://www.blogger.com/atom/ns#" term="Supermicro" /><category scheme="http://www.blogger.com/atom/ns#" term="ipmi" /><title>Supermicro IPMIview Review – Remote Server Monitoring and Management and KVM-over-IP</title><content type="html">The ability to remotely monitor servers utilizing IPMI 2.0 is a key  differentiator between server grade hardware and consumer hardware.  Supermicro’s IPMIview software is an often overlooked piece of software  that makes managing multiple servers remotely a simple task. While there  is a simple web interface that Supermicro uses on many of its boards,  the IPMI 2.0 features, including KVM-over-IP can also be accessed  through a utility that Supermicro provides. For those users with  multiple systems, IPMIview allows for up to twenty machines to be  managed and monitored at a time from a remote PC. Best of all, with the  KVM-over-IP features, remote temperature and fan speed monitoring, and  the ability to remotely power cycle machines, a user can put a system  into service never attaching an optical drive, keyboard, mouse or  monitor to the machine. Frankly, for larger small business and home  servers (8+ drives) this should be considered a must have, especially  given the fact that oftentimes at least two storage servers are  maintained for redundancy purposes. IPMIview makes this multi-server  management very easy because one can easily VPN into the network and  manage multiple servers from one desktop application.&lt;span id="more-1504"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;Getting IPMIview&lt;/h3&gt;Browsing Supermicro’s site for the latest IPMIview is a bit tricky. One can browse to &lt;a href="http://www.supermicro.com/products/nfo/IPMI.cfm" target="_blank"&gt;Supermicro’s IPMI Resources&lt;/a&gt;  and on the right hand column under resources there are links to where  one can download IPMIview and the related manual. Here is the &lt;a href="ftp://ftp.supermicro.com/utility/IPMIView/" target="_blank"&gt;IMPIview ftp link&lt;/a&gt;  for anyone that wants it. On the FTP site one can find Windows, Linux,  and java versions. I have thus far only used the Windows client because I  am attached to a Windows PC 24×7. There may be differences between the  versions that will not be covered in this article. Since I will be  covering the Windows version, the installation procedure simply involves  downloading and then running the installer.&lt;br /&gt;
&lt;h3&gt;Detecting Supermicro Server Boards to Manage with IPMIview&lt;/h3&gt;One task that some users find annoying is finding the web GUI for  management of each system. The baseboard management controller’s NIC is  oftentimes a dedicated management NIC and with DHCP enabled, can make it  difficult to find newly connected servers. IPMIview makes this a fairly  simple process.&lt;br /&gt;
Just as a note, the two systems shown below are &lt;a href="http://www.servethehome.com/supermicro-x8silf-motherboard-v102-review-whs-v2-diy-server/" target="_blank"&gt;Supermicro X8SIL-F&lt;/a&gt; and &lt;a href="http://www.servethehome.com/supermicro-x8st3f-motherboard-review/" target="_blank"&gt;X8ST3-F&lt;/a&gt;  boards previously reviewed on this site. Currently I am testing  NexentaCore and ZFS on one with iSCSI volumes being used by the Hyper-V  virtual machines on the other box. I am still tweaking this setup (and  trying to add Infiniband to the NexentaCore system) and will do a  writeup when or if I get the performance I want.&lt;br /&gt;
One has two options, either manually enter the IP range information,  or let the utility detect network settings. I was able to use the detect  feature, then click “Start” and have IPMIview find the two IPMI 2.0  Supermicro servers on this network.&lt;br /&gt;
&lt;div class="wp-caption aligncenter" id="attachment_1506" style="width: 383px;"&gt;&lt;a href="http://media2.servethehome.com/wp-content/uploads/2010/10/IPMI-Auto-Detect.png"&gt;&lt;img alt="Auto Detect Supermicro Servers with IPMIview" class="size-full wp-image-1506" height="466" src="http://media2.servethehome.com/wp-content/uploads/2010/10/IPMI-Auto-Detect.png" title="Auto Detect Supermicro Servers with IPMIview" width="373" /&gt;&lt;/a&gt;&lt;div class="wp-caption-text"&gt;Auto Detect Supermicro Servers with IPMIview&lt;/div&gt;&lt;/div&gt;With DHCP enabled networks where I do not log in regularly (and thus  cannot even remember host names) this auto detection utility comes in  handy.&lt;br /&gt;
&lt;h3&gt;Login Screen&lt;/h3&gt;After detection, one needs to login to the server. One item of note  here is that the credentialing is the same as the web GUI. For those  looking for Supermicro IPMI default logins, Supermicro’s default ID and  password is ADMIN.&lt;br /&gt;
&lt;div class="wp-caption aligncenter" id="attachment_1509" style="width: 548px;"&gt;&lt;a href="http://media3.servethehome.com/wp-content/uploads/2010/10/IPMI-Connected.png"&gt;&lt;img alt="IPMI Successful Login from IPMIview" class="size-full wp-image-1509  " height="379" src="http://media3.servethehome.com/wp-content/uploads/2010/10/IPMI-Connected.png" title="IPMI Successful Login from IPMIview" width="538" /&gt;&lt;/a&gt;&lt;div class="wp-caption-text"&gt;IPMI Successful Login from IPMIview&lt;/div&gt;&lt;/div&gt;As a note, that IPMI 2.0 RMCP+ basically means that your password is being encrypted for transmission (MD5).&lt;br /&gt;
&lt;h3&gt;System Event Log&lt;/h3&gt;The BMC on server boards tends to record system events at  motherboard/ chassis level. These events include things such as chassis  intrusions, CPU temperatures rising beyond thresholds, fan failures and  etc. One can see from the below picture that I was playing around with  fans in November 2009 on the below system.&lt;br /&gt;
&lt;div class="wp-caption aligncenter" id="attachment_1515" style="width: 596px;"&gt;&lt;a href="http://media1.servethehome.com/wp-content/uploads/2010/10/IPMI-System-Event-Log.png"&gt;&lt;img alt="IPMI 2.0 System Event Log from IPMIview" class="size-full wp-image-1515 " height="451" src="http://media1.servethehome.com/wp-content/uploads/2010/10/IPMI-System-Event-Log.png" title="IPMI 2.0 System Event Log from IPMIview" width="586" /&gt;&lt;/a&gt;&lt;div class="wp-caption-text"&gt;IPMI 2.0 System Event Log from IPMIview&lt;/div&gt;&lt;/div&gt;Being able to export the log is something that I do not personally  use, but I could see how someone managing many nodes would like to bring  system events into Microsoft Excel or Access for tracking purposes. On  an interesting aside, one can see from the timestamps above that there  is almost a year worth of history (7 November 2009 to 12 October 2010)  in the log. Then again, that box is mostly used to burn-in hard drives  so it does not see the most use.&lt;br /&gt;
&lt;h3&gt;Sensor Readings&lt;/h3&gt;When troubleshooting a machine that is experiencing random lockups, I  commonly look to cooling and CPU temperatures as potential culprits.  IPMIview has a tab with monitoring information where one can see fan  speeds, voltages, CPU temperatures, and things like chassis intrusion  alarms.&lt;br /&gt;
&lt;div class="wp-caption aligncenter" id="attachment_1514" style="width: 526px;"&gt;&lt;a href="http://media2.servethehome.com/wp-content/uploads/2010/10/IPMI-Sensors.png"&gt;&lt;img alt="IPMI 2.0 Sensor Readings from IPMIview" class="size-full wp-image-1514 " height="396" src="http://media2.servethehome.com/wp-content/uploads/2010/10/IPMI-Sensors.png" title="IPMI 2.0 Sensor Readings from IPMIview" width="516" /&gt;&lt;/a&gt;&lt;div class="wp-caption-text"&gt;IPMI 2.0 Sensor Readings from IPMIview&lt;/div&gt;&lt;/div&gt;From the above picture (in this case a LGA1366 Xeon), one can see the  CPU temperature is fine under 40% CPU load and that the fan that I have  blowing air over the CPU cooler is working fine.&amp;nbsp; This screen is  somewhat customizable as you can do things like move/ hide the different  sub-windows to provide a layout that better represents what you want to  see. Since this is OS independent running off of the baseboard  management controller, one can see temperatures of a system that is  otherwise locked up. I have used this feature on one occasion to  identify that a server 45 miles away had a heatsink that was not  properly seated (two plastic clips on the stock Xeon fan popped out).  The show history option allows a user to see graphs with the displayed  values over time.&lt;br /&gt;
&lt;h3&gt;IPM Device&lt;/h3&gt;The IPM device tab is perhaps one of the more useful tabs and features within IPMIview.&lt;br /&gt;
Options for graceful reboots, shutdowns, and power cycles inform the  OS that the system is being shut down, prior to the power being cycled.  Although I have used this feature a few times, typically I just use an  OS/ Hypervisor command and ensure that everything shuts down properly.  Some systems, especially &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2Fs%3Fie%3DUTF8%26x%3D0%26ref_%3Dnb_sb_noss%26y%3D0%26field-keywords%3Dwindows%2520server%25202008%2520r2%26url%3Dsearch-alias%253Delectronics&amp;amp;tag=servecom-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=390957" target="_blank"&gt;Windows Server 2008 R2&lt;/a&gt; machines running Hyper-V can take a long time to shutdown or reboot.&lt;br /&gt;
&lt;div class="wp-caption aligncenter" id="attachment_1507" style="width: 594px;"&gt;&lt;a href="http://media3.servethehome.com/wp-content/uploads/2010/10/IPMI-BMC-Controller.png"&gt;&lt;img alt="IPM Device tab in IPMIview" class="size-full wp-image-1507 " height="454" src="http://media3.servethehome.com/wp-content/uploads/2010/10/IPMI-BMC-Controller.png" title="IPM Device tab in IPMIview" width="584" /&gt;&lt;/a&gt;&lt;div class="wp-caption-text"&gt;IPM Device tab in IPMIview&lt;/div&gt;&lt;/div&gt;For those times when a kernel panics or hardware malfunctions and a  hard reboot is required, there is the chassis power control. One can  reset, turn off (hard/ immediate), turn on, or power cycle as if in  front of the server pressing chassis buttons. This is one of those  features that comes in handy when working on a system remotely. Many  Windows users are all too familiar with hard reboots, and this is the  mechanism that lets you conduct a hard reboot from anywhere you have  network access. Again, this is a Supermicro feature that one cannot  easily emulate with a consumer level motherboard. On the other hand, one  could utilize a power source that has the ability to cycle due to a  network command. With Supermicro’s IPMIview however, one can look at the  monitor output of the system (through KVM-over-IP) and see system  health stats prior to cycling power, regardless of OS state.&lt;br /&gt;
There is also a BMC cold reset option. I have yet to use this  function in a real-world situation, but this is used when one wants to  reset the BMC.&lt;br /&gt;
&lt;h3&gt;BMC Setting&lt;/h3&gt;The BMC Setting tab gives a user the ability to setup the BMC MAC  addresses so that the BMC functions (like the power cycling) are only  available to a private network even if the other LAN connections have  publicly accessible IP addresses. Combined with (in many or most cases)  separate management NICs, this helps secure the BMC from unauthorized  users.&lt;br /&gt;
&lt;div class="wp-caption aligncenter" id="attachment_1508" style="width: 598px;"&gt;&lt;a href="http://media1.servethehome.com/wp-content/uploads/2010/10/IPMI-BMC-LAN-Settings.png"&gt;&lt;img alt="IPMI BMC LAN Settings in IPMIview" class="size-full wp-image-1508 " height="450" src="http://media1.servethehome.com/wp-content/uploads/2010/10/IPMI-BMC-LAN-Settings.png" title="IPMI BMC LAN Settings in IPMIview" width="588" /&gt;&lt;/a&gt;&lt;div class="wp-caption-text"&gt;IPMI BMC LAN Settings in IPMIview&lt;/div&gt;&lt;/div&gt;Furthermore, the BMC Setting tab has configurable SNMP trap receivers  so that the BMC can send critical errors to a SNMP server (see Event  Log for errors logging).&amp;nbsp; With IPMIview one can quickly change SNMP  settings for multiple servers when required.&lt;br /&gt;
&lt;h3&gt;Users Tab&lt;/h3&gt;The Users Tab lets one add users and set privileges accordingly.&amp;nbsp;  This is an especially important tab when you want to give some  administrators access to BMC functions.&lt;br /&gt;
&lt;div class="wp-caption aligncenter" id="attachment_1517" style="width: 601px;"&gt;&lt;a href="http://media2.servethehome.com/wp-content/uploads/2010/10/IPMI-User-Administration.png"&gt;&lt;img alt="IPMI User Administration with IPMIview" class="size-full wp-image-1517 " height="457" src="http://media2.servethehome.com/wp-content/uploads/2010/10/IPMI-User-Administration.png" title="IPMI User Administration with IPMIview" width="591" /&gt;&lt;/a&gt;&lt;div class="wp-caption-text"&gt;IPMI User Administration with IPMIview&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;The three privilege levels are User (things  like power cycling are not allowed), Operator (things like changing out  of band management parameters not allowed), and Administrator (full  access). The FRU information is very useful for being able to find  serial numbers and documenting exact version numbers of what is used in a  configuration remotely both for asset tracking and replacement  purposes. If one ever needs to see the serial number, I would offer that  using IPMIview in this case is much easier than looking for the serial  number in a running rack mount server.&lt;/div&gt;&lt;h3&gt;Text Console&lt;/h3&gt;Serial-over-LAN (SoL) is a feature that many Linux and Unix  administrators still place a high value on. Personally, I tend not to  use this feature as much as many others in day-to-day tasks, but it is  nice to see that Supermicro caters to those users through the IPMIview  interface.&lt;br /&gt;
&lt;div class="wp-caption aligncenter" id="attachment_1516" style="width: 524px;"&gt;&lt;a href="http://media3.servethehome.com/wp-content/uploads/2010/10/IPMI-Text-Console.png"&gt;&lt;img alt="IPMI Text Console through IPMIview" class="size-full wp-image-1516 " height="395" src="http://media3.servethehome.com/wp-content/uploads/2010/10/IPMI-Text-Console.png" title="IPMI Text Console through IPMIview" width="514" /&gt;&lt;/a&gt;&lt;div class="wp-caption-text"&gt;IPMI Text Console through IPMIview&lt;/div&gt;&lt;/div&gt;&lt;h3&gt;KVM Console&lt;/h3&gt;Frankly, this is probably the best part of IPMIview, and one of the  main selling points for purchasing server boards rather than consumer  boards for storage builds. The KVM-over-IP functions that Supermicro and  other vendors offer allow an administrator to not just troubleshoot OS  issues, but also motherboard BIOS and add-in card BIOS issues. When  doing things like PXE booting, changing boot devices, or working with  RAID card BIOS, KVM-over-IP is many times going to be the difference&amp;nbsp;  between physically attending to a server and being able to remotely  troubleshoot and configure. In essence, you can VPN into the management  network, fire up IPMIview, find the server having issues, and fix a  problem from wherever you are.&lt;br /&gt;
&lt;div class="wp-caption aligncenter" id="attachment_1511" style="width: 592px;"&gt;&lt;a href="http://media1.servethehome.com/wp-content/uploads/2010/10/IPMI-KVM-Console.png"&gt;&lt;img alt="IPMI KVM Console in IPMIview" class="size-full wp-image-1511 " height="449" src="http://media2.servethehome.com/wp-content/uploads/2010/10/IPMI-KVM-Console.png" title="IPMI KVM Console in IPMIview" width="582" /&gt;&lt;/a&gt;&lt;div class="wp-caption-text"&gt;IPMI KVM Console in IPMIview&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Here one can see that the tab shows the familiar &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2Fs%3Fie%3DUTF8%26x%3D0%26ref_%3Dnb_sb_noss%26y%3D0%26field-keywords%3Dwindows%2520server%25202008%2520r2%26url%3Dsearch-alias%253Delectronics&amp;amp;tag=servecom-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=390957" target="_blank"&gt;Windows 2008 Server R2&lt;/a&gt;  logon prompt for a given machine in each tab. This lets a user tab  between different servers much like one tabs through different browser  windows. While RDP is great for Windows machines, VNC and SSH dominate  Linux, FreeBSD, and OpenSolaris. IPMIview makes this all an academic  distinction by enabling direct console input, as if one was sitting at  each server with a keyboard, video screen, and mouse (KVM) even if they  are a thousand miles away.&lt;/div&gt;&lt;div class="wp-caption aligncenter" id="attachment_1510" style="width: 595px;"&gt;&lt;a href="http://media3.servethehome.com/wp-content/uploads/2010/10/IPMI-KVM-Console-Keyboard-and-Disk.png"&gt;&lt;img alt="IPMI KVM Console Keyboard and Disk in IPMIview" class="size-full wp-image-1510 " height="540" src="http://media1.servethehome.com/wp-content/uploads/2010/10/IPMI-KVM-Console-Keyboard-and-Disk.png" title="IPMI KVM Console Keyboard and Disk in IPMIview" width="585" /&gt;&lt;/a&gt;&lt;div class="wp-caption-text"&gt;IPMI KVM Console Keyboard and Disk in IPMIview&lt;/div&gt;&lt;/div&gt;Beyond simple KVM redirection, IPMIview also has a built in on screen  keyboard that allows one to hit troublesome keystrokes (often F keys  while using a Windows client and viewing a ESXi hypervisor screen for  example) through a mouse click.&lt;br /&gt;
Also one can see that a user has the option to attach a virtual CD or  floppy. For tasks like flashing BIOS of controller cards, doing OS  installs and the like, being able to mount drive images at the baseboard  level is awesome. Supermicro’s virtual disk mounting allows for both  mounting local images as well as images sitting in network shares.&lt;br /&gt;
&lt;h3&gt;Group Administration&lt;/h3&gt;Thus far although two systems have been shown in the pictures of this  article, IPMIview has been used to manage only one system. Supermicro’s  IPMIview does have the ability to manage multiple systems (up to  twenty.) This article is getting fairly picture heavy, but one of the  best IPMIview features is the ability to monitor and manage groups of  servers.&lt;br /&gt;
&lt;div class="wp-caption aligncenter" id="attachment_1513" style="width: 626px;"&gt;&lt;a href="http://media2.servethehome.com/wp-content/uploads/2010/10/IPMI-Manage-Groups-Administration.png"&gt;&lt;img alt="Manage Groups Administration with IPMIview" class="size-full wp-image-1513  " height="484" src="http://media3.servethehome.com/wp-content/uploads/2010/10/IPMI-Manage-Groups-Administration.png" title="Manage Groups Administration with IPMIview" width="616" /&gt;&lt;/a&gt;&lt;div class="wp-caption-text"&gt;Manage Groups Administration with IPMIview&lt;/div&gt;&lt;/div&gt;As can be seen above one can monitor several servers on one screen  which is a more user friendly approach than having to log into each  server individually. Again, for example purposes I am just using ADMIN/  ADMIN as a login to keep things simple. Once a group has been defined,  there are quite a few monitoring dimensions which one can see from the  various tabs on the Group Management screen. Going through each would  make this article even longer, which I am inclined not to do for the  sake of load times.&lt;br /&gt;
&lt;div class="wp-caption aligncenter" id="attachment_1512" style="width: 652px;"&gt;&lt;a href="http://media1.servethehome.com/wp-content/uploads/2010/10/IPMI-Manage-Group-Information.png"&gt;&lt;img alt="Manage Group Information with IPMIview" class="size-full wp-image-1512 " height="450" src="http://media2.servethehome.com/wp-content/uploads/2010/10/IPMI-Manage-Group-Information.png" title="Manage Group Information with IPMIview" width="642" /&gt;&lt;/a&gt;&lt;div class="wp-caption-text"&gt;Manage Group Information with IPMIview&lt;/div&gt;&lt;/div&gt;In the above screen shot, one can see one of the most useful IPMIview  Group Administration features, which is one that lets you pick  attributes and generate a report across the entire group. One can then  download the report output into Excel which makes taking inventory a  relatively simple task.&lt;br /&gt;
Overall, being able to monitor and manage several machines at a time  makes the administrator’s job far easier, which is why this type of  feature is a mainstay on server grade hardware.&lt;br /&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;Although one may have surmised at this point that the IPMIview  interface is not the flashiest, most modern looking UI out there, the  application serves its purpose well of being able to remotely monitor  and manage servers. In 2006 when IPMI 2.0 was oftentimes available only  as an add-in module sometimes of questionable stability, the technology  is a lot more mature now, to the point where many users will opt for  built-in IPMI versus &lt;a href="http://www.amazon.com/gp/product/B0000AAAYH?ie=UTF8&amp;amp;tag=servecom-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B0000AAAYH" target="_blank"&gt;network accessible PDUs&lt;/a&gt; and &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2Fs%3Fie%3DUTF8%26x%3D0%26ref_%3Dnb_sb_noss%26y%3D0%26field-keywords%3Dkvm%2520over%2520ip%26url%3Dsearch-alias%253Delectronics&amp;amp;tag=servecom-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=390957" target="_blank"&gt;external KVM-over-IP solutions&lt;/a&gt;.  If one is deploying Supermicro based servers with IPMI 2.0 built-in,  IPMIview is a great tool to help manage multiple servers from one  interface. I do not think that IPMI 2.0 and IPMIview will ever  completely remove the need for someone to physically work on a box,  since one cannot install a new RAID card/ HBA, memory or hard drives  from afar. With that being said, IPMIview is a utility that I use at  least four times a week because it is a useful way to manage multiple  servers remotely.&lt;br /&gt;
http://www.servethehome.com/supermicro-ipmiview-review-remote-server-monitoring-management-ipmi-20-kvm-over-ip/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-7973355068050723806?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hRP_HGYl-SZxAYbOrihuuPbGX78/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hRP_HGYl-SZxAYbOrihuuPbGX78/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hRP_HGYl-SZxAYbOrihuuPbGX78/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hRP_HGYl-SZxAYbOrihuuPbGX78/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/xqOoo6TQR4I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/7973355068050723806/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/10/supermicro-ipmiview-review-remote.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/7973355068050723806?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/7973355068050723806?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/xqOoo6TQR4I/supermicro-ipmiview-review-remote.html" title="Supermicro IPMIview Review – Remote Server Monitoring and Management and KVM-over-IP" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/10/supermicro-ipmiview-review-remote.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQGQnw6eCp7ImA9WhdUE0w.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-1217054432808865527</id><published>2011-09-29T08:32:00.000-07:00</published><updated>2011-09-29T08:32:03.210-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-29T08:32:03.210-07:00</app:edited><title>Apache Killer vs TheXploit.com</title><content type="html">&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: 'Segoe UI', Calibri, 'Myriad Pro', Myriad, 'Trebuchet MS', Helvetica, Arial, sans-serif; font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="line-height: 19px; margin-bottom: 0.75em; margin-top: 0.25em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;For those of you that haven’t heard (you must live under a rock), there is currently an&amp;nbsp;&lt;a href="http://mail-archives.apache.org/mod_mbox/httpd-announce/201108.mbox/browser" style="color: #206ba4; outline-color: initial; outline-style: none; outline-width: initial; text-decoration: underline;" target="_blank" title="CVE-2011-3192"&gt;unpatched DoS attack against all Apache Web servers&lt;/a&gt;&amp;nbsp;that can easily be executed from a single computer. A Perl script was&lt;a href="http://seclists.org/fulldisclosure/2011/Aug/175" style="color: #206ba4; outline-color: initial; outline-style: none; outline-width: initial; text-decoration: underline;" target="_blank" title="Apache Killer"&gt;posted&lt;/a&gt;&amp;nbsp;to the Full Disclosure mailing list last weekend.&lt;/div&gt;&lt;div style="line-height: 19px; margin-bottom: 0.75em; margin-top: 0.25em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;I run Apache 2.2 on TheXploit.com so I thought it’d be an interesting experiment to see what happens. So, here we go:&amp;nbsp;&lt;strong&gt;Apache Killer vs. TheXploit&lt;/strong&gt;&lt;/div&gt;&lt;h4 style="font-size: 18px; font-weight: bold; letter-spacing: -0.02em; margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0.75em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Executing The Attack: Impressive&lt;/h4&gt;&lt;div style="line-height: 19px; margin-bottom: 0.75em; margin-top: 0.25em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;I fired up a Linux box and ran&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font: normal normal normal 12px/normal 'Courier New', Courier, 'Lucida Console', Monaco, 'DejaVu Sans Mono', 'Nimbus Mono L', 'Bitstream Vera Sans Mono', monospace; margin-bottom: 0.75em; margin-top: 0.25em; overflow-x: auto; overflow-y: auto; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 10px; white-space: pre-wrap;"&gt;perl apachekiller.pl thexploit.com 50
host seems vuln
ATTACKING thexploit.com [using 50 forks]
&lt;/pre&gt;&lt;div style="line-height: 19px; margin-bottom: 0.75em; margin-top: 0.25em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Less than a minute had gone by and TheXploit.com was&amp;nbsp;&lt;strong&gt;completely unreachable&lt;/strong&gt;. Requests to the site simply said Connecting… but the page never loaded.&lt;/div&gt;&lt;h4 style="font-size: 18px; font-weight: bold; letter-spacing: -0.02em; margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0.75em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Apache Killer Wins: What happened?&lt;/h4&gt;&lt;div style="line-height: 19px; margin-bottom: 0.75em; margin-top: 0.25em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The Apache Killer script requests several overlapping ranges of bytes of (the same) data in a single request (approximately 1300). Each one of range of bytes is turned into a fetch of data which is kept in memory.&lt;/div&gt;&lt;div style="line-height: 19px; margin-bottom: 0.75em; margin-top: 0.25em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The second parameter to Apache Killer is the number of Range requests to make – in our case 50. This means that we effectively made 50 * 1300 =&amp;nbsp;&lt;strong&gt;65000 requests&lt;/strong&gt;&amp;nbsp;– all of which consumed a piece of memory.&lt;/div&gt;&lt;div style="line-height: 19px; margin-bottom: 0.75em; margin-top: 0.25em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;That means memory on the server started filling up&amp;nbsp;&lt;em&gt;very&lt;/em&gt;&amp;nbsp;quickly. So quickly, that OS page swapping started kicking in. Check out the massive spike in disk io&lt;/div&gt;&lt;div class="wp-caption aligncenter" id="attachment_1273" style="background-color: #f3f3f3; border-bottom-color: rgb(221, 221, 221); border-bottom-left-radius: 3px 3px; border-bottom-right-radius: 3px 3px; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-left-radius: 3px 3px; border-top-right-radius: 3px 3px; border-top-style: solid; border-top-width: 1px; display: block; margin-bottom: 10px; margin-left: auto; margin-right: auto; margin-top: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 4px; text-align: center; width: 310px;"&gt;&lt;a href="http://thexploit.com/wp-content/uploads/2011/08/diskio.png" rel="group-43" style="color: #206ba4; outline-color: initial; outline-style: none; outline-width: initial; text-decoration: underline;"&gt;&lt;img alt="Apache Killer Disk IO" class="size-medium wp-image-1273" height="133" src="http://thexploit.com/wp-content/uploads/2011/08/diskio-300x133.png" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px;" title="Apache Killer Disk IO" width="300" /&gt;&lt;/a&gt;&lt;div class="wp-caption-text" style="color: #999999; font-size: xx-small; line-height: 13px; margin-bottom: 0.75em; margin-top: 0.25em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: top;"&gt;Apache Killer Disk IO&lt;/div&gt;&lt;/div&gt;&lt;div style="line-height: 19px; margin-bottom: 0.75em; margin-top: 0.25em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Next came the email alert&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font: normal normal normal 12px/normal 'Courier New', Courier, 'Lucida Console', Monaco, 'DejaVu Sans Mono', 'Nimbus Mono L', 'Bitstream Vera Sans Mono', monospace; margin-bottom: 0.75em; margin-top: 0.25em; overflow-x: auto; overflow-y: auto; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 10px; white-space: pre-wrap;"&gt;Your Linode has exceeded the notification threshold (1000) for disk io rate by averaging 1631.06 for the last 2 hours.
&lt;/pre&gt;&lt;div style="line-height: 19px; margin-bottom: 0.75em; margin-top: 0.25em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;At this point, the only thing I could do to return to normal operations was restart the server.&lt;/div&gt;&lt;h4 style="font-size: 18px; font-weight: bold; letter-spacing: -0.02em; margin-bottom: 0.25em; margin-left: 0px; margin-right: 0px; margin-top: 0.75em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Protection&lt;/h4&gt;&lt;div style="line-height: 19px; margin-bottom: 0.75em; margin-top: 0.25em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;strong&gt;Update Aug 30 – Apache 2.2.20 released to fix this&lt;/strong&gt;&lt;br /&gt;
Until Apache releases an update, the attack is pretty easily avoidable with a simple workaround.&lt;/div&gt;&lt;div style="line-height: 19px; margin-bottom: 0.75em; margin-top: 0.25em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;In /etc/apache2/httpd.conf&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; font: normal normal normal 12px/normal 'Courier New', Courier, 'Lucida Console', Monaco, 'DejaVu Sans Mono', 'Nimbus Mono L', 'Bitstream Vera Sans Mono', monospace; margin-bottom: 0.75em; margin-top: 0.25em; overflow-x: auto; overflow-y: auto; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; padding-top: 10px; white-space: pre-wrap;"&gt;# drop Range header when more than 5 ranges.
# CVE-2011-3192
SetEnvIf Range (,.*?){5,} bad-range=1
RequestHeader unset Range env=bad-range
&lt;/pre&gt;&lt;div style="line-height: 19px; margin-bottom: 0.75em; margin-top: 0.25em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Alternatively, if you’re using CloudFlare on your blog –&amp;nbsp;&lt;a href="http://blog.cloudflare.com/apache-killer-killed-zero-day-exploit-zero-da" style="color: #206ba4; outline-color: initial; outline-style: none; outline-width: initial; text-decoration: underline;" target="_blank" title="CloudFlare Kills Apache Killer"&gt;you’re already protected&lt;/a&gt;.&lt;/div&gt;&lt;div style="line-height: 19px; margin-bottom: 0.75em; margin-top: 0.25em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;So how did your server fair? Did it last longer than a minute?&lt;/div&gt;&lt;div style="line-height: 19px; margin-bottom: 0.75em; margin-top: 0.25em; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;a href="http://thexploit.com/sec/apache-killer-vs-thexploit-com/"&gt;http://thexploit.com/sec/apache-killer-vs-thexploit-com/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-1217054432808865527?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5FCMX5s3HWD6s4e5d1hMM78PFv8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5FCMX5s3HWD6s4e5d1hMM78PFv8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5FCMX5s3HWD6s4e5d1hMM78PFv8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5FCMX5s3HWD6s4e5d1hMM78PFv8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/CO8S94qI6fg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/1217054432808865527/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/09/apache-killer-vs-thexploitcom.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/1217054432808865527?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/1217054432808865527?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/CO8S94qI6fg/apache-killer-vs-thexploitcom.html" title="Apache Killer vs TheXploit.com" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/09/apache-killer-vs-thexploitcom.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUEERHo7eCp7ImA9WhdVFUo.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-6041313121625738616</id><published>2011-09-20T19:53:00.000-07:00</published><updated>2011-09-20T19:53:25.400-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-20T19:53:25.400-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="upgrade php" /><category scheme="http://www.blogger.com/atom/ns#" term="upgrade php 5.2.x" /><category scheme="http://www.blogger.com/atom/ns#" term="install php" /><category scheme="http://www.blogger.com/atom/ns#" term="php 5.3.x" /><title>Installing PHP 5.2.x on RedHat ES5, CentOS 5, etc</title><content type="html">To install PHP 5.2.5 (Highest in repository at this time) you can make use of a &lt;a href="http://blog.famillecollet.com/post/2005/10/02/8-telechargement-installation-et-yum" target="_blank"&gt;RPM repository maintained by Remi&lt;/a&gt;.  He has a repository for each distro, but to save you translating for  the ES5 one I’ll give you the commands here. Run the following to get up  and running:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-2.noarch.rpm
wget http://rpms.famillecollet.com/el5.i386/remi-release-5-4.el5.remi.noarch.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm&lt;/code&gt;&lt;/pre&gt;You now have the Remi repository on your system, however it is  disabled by default. Obviously you don’t want all of your packages been  effected by this repository, however to enable it for a specific  package, run the following:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;yum --enablerepo=remi update php&lt;/code&gt;&lt;/pre&gt;You should now have the latest PHP5 installed:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;# php -v

PHP 5.2.5 (cli) (built: Nov 10 2007 10:52:30)

Copyright (c) 1997-2007 The PHP Group

Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;Download more packages here &lt;a href="http://pkgs.org/centos-5-rhel-5/atomic-x86_64/php-mysql-5.2.17-1.el5.art.x86_64.rpm.html"&gt;http://pkgs.org/centos-5-rhel-5/atomic-x86_64/php-mysql-5.2.17-1.el5.art.x86_64.rpm.html&lt;/a&gt; &lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-6041313121625738616?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RkQxU_6K-NEHyQ32IaELHJM9Lhk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RkQxU_6K-NEHyQ32IaELHJM9Lhk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RkQxU_6K-NEHyQ32IaELHJM9Lhk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RkQxU_6K-NEHyQ32IaELHJM9Lhk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/mtubYgED0rI" height="1" width="1"/&gt;</content><link rel="related" href="http://drenganathan.wordpress.com/2009/01/22/installing-php-52x-on-redhat-es5-centos-5-etc/" title="Installing PHP 5.2.x on RedHat ES5, CentOS 5, etc" /><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/6041313121625738616/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/09/installing-php-52x-on-redhat-es5-centos.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/6041313121625738616?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/6041313121625738616?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/mtubYgED0rI/installing-php-52x-on-redhat-es5-centos.html" title="Installing PHP 5.2.x on RedHat ES5, CentOS 5, etc" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/09/installing-php-52x-on-redhat-es5-centos.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYNQ34_fyp7ImA9WhdVFUo.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-4908455512536218558</id><published>2011-09-20T19:29:00.000-07:00</published><updated>2011-09-20T19:29:52.047-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-20T19:29:52.047-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mysql 5.1.50" /><category scheme="http://www.blogger.com/atom/ns#" term="mysql upgrade" /><category scheme="http://www.blogger.com/atom/ns#" term="mysql install" /><title>Install or Upgrade mysql 5.1.50</title><content type="html">Go to downloads: &lt;a href="http://files.directadmin.com/services/all/mysql/64-bit/5.1.50/"&gt;http://files.directadmin.com/services/all/mysql/64-bit/5.1.50/ &lt;/a&gt;&lt;br /&gt;
mkdir mysql&lt;br /&gt;
cd mysql&lt;br /&gt;
wget http://files.directadmin.com/services/all/mysql/MySQL-client-5.0.37-0.i386.rpm&lt;br /&gt;
wget http://files.directadmin.com/services/all/mysql/MySQL-devel-5.0.37-0.i386.rpm&lt;br /&gt;
wget http://files.directadmin.com/services/all/mysql/MySQL-server-5.0.37-0.i386.rpm&lt;br /&gt;
wget http://files.directadmin.com/services/all/mysql/MySQL-shared-5.0.37-0.i386.rpm&lt;br /&gt;
rpm -Uvh MySQL-*-5.0.37-0.i386.rpm&lt;br /&gt;
/etc/init.d/mysqld restart&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-4908455512536218558?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zMU18J3FjjtwdCohs3ikbbu1cqY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zMU18J3FjjtwdCohs3ikbbu1cqY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zMU18J3FjjtwdCohs3ikbbu1cqY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zMU18J3FjjtwdCohs3ikbbu1cqY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/iuhn1fEPUoc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/4908455512536218558/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/09/install-or-upgrade-mysql-5150.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/4908455512536218558?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/4908455512536218558?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/iuhn1fEPUoc/install-or-upgrade-mysql-5150.html" title="Install or Upgrade mysql 5.1.50" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/09/install-or-upgrade-mysql-5150.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMHQnwzeCp7ImA9WhdVEEg.&quot;"><id>tag:blogger.com,1999:blog-1143748799514747460.post-6191646206550430427</id><published>2011-09-14T19:15:00.001-07:00</published><updated>2011-09-14T19:23:53.280-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-14T19:23:53.280-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vlc player" /><title>How to watch IPTV with VLC</title><content type="html">&lt;div id="body_layer" style="margin-left: 0px; position: relative; width: 500px; z-index: 5;"&gt;&lt;div class="style_SkipStroke_4" id="id2" style="height: 2130px; left: 0px; position: absolute; top: 16px; width: 500px; z-index: 1;"&gt;&lt;div class="text-content graphic_textbox_layout_style_default_External_800_2130" style="padding: 0px;"&gt;&lt;div class="graphic_textbox_layout_style_default"&gt;&lt;div class="paragraph_style_1" style="padding-top: 0pt;"&gt;TPG default settings make you install VLC and the VLC plugin, you must then watch IPTV using&lt;br /&gt;
their web page.&amp;nbsp;Personally I don’t like it.&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;I prefer to use &lt;a href="http://www.videolan.org/" title="http://www.videolan.org"&gt;VLC&lt;/a&gt; instead.&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;Open VLC, go into the File menu and select “Open Network” or “Open Network Stream”.&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;Check HTTP and enter the URL&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;http://avenard.org/iptv/playlist-tpg-vlc.m3u&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;Windows&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="paragraph paragraph_style_1"&gt;&lt;div class="tinyText style_SkipStroke_1 inline-block stroke_0" style="height: 384px; height: 384px; position: relative; width: 537px; width: 537px;"&gt;&lt;div style="overflow: visible; position: relative;"&gt;&lt;img alt="" src="http://avenard.com/iptv/VLC_files/droppedImage.jpg" style="border: none; height: 384px; width: 537px;" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;Mac&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="paragraph paragraph_style_1"&gt;&lt;div class="tinyText style_SkipStroke_1 inline-block stroke_0" style="height: 418px; height: 418px; position: relative; width: 569px; width: 569px;"&gt;&lt;div style="overflow: visible; position: relative;"&gt;&lt;img alt="" src="http://avenard.com/iptv/VLC_files/droppedImage_1.jpg" style="border: none; height: 418px; width: 569px;" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;On Linux you can directly type:&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;&lt;span class="style_1"&gt;# vlc http://avenard.org/iptv/playlist-tpg-vlc.m3u&lt;/span&gt;&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;Enjoy VLC and IPTV (over wireless)&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="paragraph paragraph_style_1"&gt;&lt;div class="tinyText style_SkipStroke_2 inline-block stroke_0 reflection_0" style="height: 426px; height: 426px; position: relative; width: 790px; width: 790px;"&gt;&lt;div style="overflow: visible; position: relative;"&gt;&lt;img alt="" height="107" src="http://avenard.com/iptv/VLC_files/droppedImage_2.jpg" style="border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; height: 426px; width: 700px;" width="200" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="paragraph_style_1"&gt;IPTV over a ssh shell in text mode (just for fun)&lt;/div&gt;&lt;div class="paragraph paragraph_style_1"&gt;&lt;div class="tinyText style_SkipStroke_3 inline-block stroke_0" style="clear: left; float: left; height: 369px; height: 369px; margin: 6px 6px 6px 0px; position: relative; width: 506px; width: 506px;"&gt;&lt;div style="overflow: visible; position: relative;"&gt;&lt;img alt="" src="http://avenard.com/iptv/VLC_files/droppedImage_3.jpg" style="border: none; height: 369px; width: 506px;" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="tinyText" style="clear: both; height: 0px; line-height: 0px;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="spacer" style="height: 2146px; line-height: 2146px;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="footer_layer" style="height: 150px; margin-left: 0px; position: relative; width: 800px; z-index: 15;"&gt;&lt;div class="bumper" style="height: 0px; line-height: 0px;"&gt;&lt;/div&gt;&lt;div class="bumper" style="height: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 0px;"&gt;http://avenard.com/iptv/VLC.html&lt;/span&gt;&lt;/div&gt;&lt;div class="bumper" style="height: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 0px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="bumper" style="height: 0px;"&gt;&lt;span class="Apple-style-span" style="line-height: 0px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1143748799514747460-6191646206550430427?l=thuannvn.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LZiSCuzxwcjGloFgaYL5Uubc2VY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LZiSCuzxwcjGloFgaYL5Uubc2VY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LZiSCuzxwcjGloFgaYL5Uubc2VY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LZiSCuzxwcjGloFgaYL5Uubc2VY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/blogspot/zAsx/~4/bS__M92n9WY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://thuannvn.blogspot.com/feeds/6191646206550430427/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://thuannvn.blogspot.com/2011/09/how-to-watch-iptv-with-vlc.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/6191646206550430427?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1143748799514747460/posts/default/6191646206550430427?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/blogspot/zAsx/~3/bS__M92n9WY/how-to-watch-iptv-with-vlc.html" title="How to watch IPTV with VLC" /><author><name>thuannvn</name><uri>http://www.blogger.com/profile/04949252074345631616</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total><feedburner:origLink>http://thuannvn.blogspot.com/2011/09/how-to-watch-iptv-with-vlc.html</feedburner:origLink></entry></feed>

