Wordprss Development Maintenance Services
February 20, 2015 admin

Greetings from SP Technolab Pvt Ltd

SP Technolab has come up with amazing support for WordPress. WP Online support offers the best maintenance services for all the types of WordPress websites. WordPress experts at the organization go an extra mile to cater to all the needs of the clients worldwide.

We are offering one month free services of our new WordPress intelligence system. For any queries related to WordPress, feel free to contact us.

For More Details Visit : http://wponlinesupport.com

wponlinesupport offer
Greetings From S P Technolab,

WordPress Services from S.P.Technolab Pvt ltd and to lot many other businesses is great way of managing their websites.We have been using wordpress and have constructed web-sites, themes, plug-ins for large corporate to small business.

Pro Theme download & support

Download pro theme with monthly subscription. You will get support on customization of our pro theme.

Ticket Support and small jobs

Sign up free account for one month and manage your ticket from your account.You can assign us small jobs in your package

Worpress maintenance & Security

We will maintain your website so that you can sit back and relax.A regular security monitoring on your site.

We have gone one step Further!

We have created www.wponlinesupport.com to give the wordpress website owners with all the support of upgrades, security, SEO, right selections of Plugins-themes and upgrade compatiblity, back-up and other day to day tasks that constitutes under wordpress site maintenance.

We have created necessary infrastructure, team, skills and experience to help website-owners continue to maintain the wordpress websites in very-effective way.So kindly create the Trial account without any cost to you for one month and give us an opportunity to forge the relationship and chance to further serve you.

Sign up link: http://wponlinesupport.com/my-account/

If you have website requirement from scratch:
Kindly click below
Select Your Package
Read More
Hire Developer Custom WordPress Theme Development
February 5, 2015 admin

Custom WordPress Theme Development by Specialists:

WordPress is considered to be a popular open source platform for building dynamic and feature-rich websites as per the clients’ requirements. Building custom themes for WordPress is gaining popularity in the last few years. It is simple and easier to create wonderful and amazing custom WordPress themes.

A good WordPress theme with good planning and preparation helps to create attention-grabbing website. Hire WordPress Developers can surely offer cost effective solutions for Custom WordPress Theme Development.

Custom WordPress Theme Development

Here are some benefits of custom WordPress theme development:

Nobody wants to start a new website that looks tacky and ugly. Creating your own theme may sound daunting, but there are several benefits of WordPress theme development services. You can seek professional help and have a unique design for your website design.

Benifits of custom WordPress theme development:

  • It offers a unique look and feel to your website.

  • Developers can get the advantage of templates and template tags to get various results for website.

  • You can change the look and feel of the website as and when needed.

  • Customizations to a WordPress website are easy to be made.

  • It allows quick changes and customization to the functionality of the website.

  • The visual design and layout of the website can be changed according to the requirements.

Along with custom WordPress theme development, you can also opt for plugin customization services. WordPress has a lot of plugins that can be customized as per the clients’ specific requirement and the desired functionality can be added to the website.

Get custom WordPress theme development:

We follow a smooth and transparent approach to develop easy to maintain WordPress websites. The custom themes drive a website and determine what they contain. Whether you want to build a theme from the scratch or want to edit an existing theme, make sure that you hire expert and reliable professionals for the job.

Choose the right company for custom WordPress theme development:

Sptechnolab.com offering custom WordPress theme development services. You can do some research in the market and start searching for the right developer for custom WordPress development. Make sure that the agency you hire has several years of experience in the industry. The developers should have the required technical knowledge and expertise to deliver the best. Discuss all the requirements and ensure that you hire the right one to convert your dreams into a reality. Do your homework and find the details about a few reputed and reliable service providers. Whether you hire a service provider for a small project or a large one, one needs to make sure that they get the best value for the money they spend. We aim at helping the clients get the maximum returns for every penny they spend for WordPress theme development services.

Read More
Hire Dedicated WordPress Developers Team
January 20, 2015 admin

SP TECHNOLAB is a one stop destination for all your WordPress development requirements. Hire Dedicated WordPress Developers Team from the company is an effective option to get your project completed the way you want it. The trained and skilled WordPress developers can be hired on part or full time basis.Hire Dedicated wordpress developers provide robust and scalable solutions.

Hiring Dedicated WordPress Developers Team

At SP TECHNOLA, we have qualified and proficient resources having vast knowledge and expertise in delivering world-class WordPress web development solutions to the clients across the globe. They have worked with several small, medium and large enterprises over the years and have gained much confidence to cater to all the types of solutions related to WordPress development.

The zealous hire dedicated WordPress developers stay updated with the latest updates and advancements to make sure that our clients get the best. Our main aim is to help the clients get the maximum value for the money they spend for hire dedicated WordPress developers.

Hire Dedicated WordPress Developers Team For :

WordPress CMS Customization:

Are you looking for a custom CMS? WordPress is easy to maintain and user friendly too. Our expert developers integrate your WordPress based CMS with third party plugins and provide the best solutions for payment gateway integration and shopping carts.

WordPress Plugin Development:

If you want to enhance the functionality to your website, we can develop custom WordPress plugins to add value to your site. Whether you want to customize an existing plugin or create a new one, we can help if you hire dedicated WordPress developers.

WordPress Theme Development:

Our experienced developers build WordPress themes matching your specific requirements. They make sure that they create the best themes for your WordPress website. We provide eye-catchy and appealing themes that relates to your website.

PSD to WordPress Theme Conversion:

Our resources provide high quality PSD to WordPress conversion services. The themes would be compatible with all the major browsers.

WordPress Template Development:

We can develop the best WordPress templates that can be integrated into your web and application development projects. You can hire dedicated WordPress developers for template development.

WordPress Blog Customization:

Being known as a popular publishing platform, WordPress blogs can be a great option to attract more visitors to your business site. We create and customize the blogs matching your requirements.

WordPress Migration Services:

Hire dedicated WordPress developers to migrate your website to WordPress. We would take care of database migration and server migration. All your images, videos, posts, contents, etc. would be the same when we offer WordPress migration services.

Hire dedicated WordPress developers to get complete solutions at affordable prices. We strive to make our clients happy and satisfied. Hiring dedicated resources is an ideal solution for all the sizes of businesses.

Read More
WordPress Web Design Development Tendency 2015
January 5, 2015 admin

WordPress Web Design Development Tendency to Look Out For In 2015

Year after year, the technical improvements have never failed to amaze us. Hence this year we will eagerly wait and witness of how the web blog WordPress design change their respective styles and theme to catch up with the latest trends. There are a few WordPress web design development tendency in 2015 themes which we sure have to look out for.

WordPress Web Design Development Tendency 2015

  • The responsive design

The best feature that makes this design stand out from the others is that, it can adapt to any screen size. Hence it means that, this responsive design can be used from monitors to mobile screens. They can just fit into any size and resolution. One may not call it as a whole new trend, instead a new standard for any upcoming website.

  • The flat design: the utilitarian design style web

One must give full credit to Microsoft for bringing this particular design in all the windows phones featuring the 8 version. It is very impressive that the latest iOS version and even Gmail and other Google apps have started to use this particular design style.

The Utilitarian style probably makes this flat design the best suited for all the WordPress themes and is one of the simple classics that we need to look forward to next year.

  • Scrolling over clicking

The new WordPress web design tendency in 2015 style seem to be very much mobile oriented, but to the massive increase in the usage of mobile websites and apps. Not many mobile users like the clicking; instead they prefer the scrolling method. The scrolling method seems to be working wonders due to the fact that, single screen websites those are used in mobiles seem to work much more efficiently via scrolling.

RI charity, RI Leo are a few of the latest trend setting WordPress themes that support the one page sites.

  • HTML5 & CSS3 & cross browser support

You find your upload speed really bad and needs to buck up a bit? Then the solution to your problem is to go for the HTML5+CSS3 feature to all your desktops and mobiles. They are the most preferred design styles by web developers for the brilliant uploading speed.

  • Focus on typography

With the amount of type kits in abundance in the present days, the web developers are in no doubts but to include their typographic skills into their design styles. This way even financially broke developers end up being much more efficient than the wealthy ones.

  • Full width background images

The latest trends in all the websites is to upload high definition, eye catching pictures in order to pull all the audience. This has been very much made use of in the latest Premium Word press themes, in order to fetch the right attention to the website

  • Ultra minimalist design

Going minimalist seems to be the new way of doing things for developers. Hence a simple image, with a little bit of text and of lot of empty white background seems to be the new trend of going “ultra minimalist” for all the designers out there.

  • Full-screen video background

If pictures in your background seem to have attracted a lot of audience, then moving pictures in your background will give you more attention. This seems to be the best of the lot of all design trends, and seems to be the one thing to look forward the most next year.

These are the WordPress web design development tendency in 2015 that one must watch and opt for!

Read More
WordPress- Popular Platform For Building web portal
December 23, 2014 admin

Advantages of choosing Word press for interactive web portal

Gone are the days when Word press was just used as a blogging tool. Nowadays, feature-rich dynamic web portal are built using this popular CMS. Being a user-friendly content management system, WordPress is widely used for creating ecommerce web portal. Millions of web-pages have been built using this platform as it is considered to be a cost effective option.

Researches show that one out of every six web portal is built using Word press. There is no need to spend thousands of dollars for getting an ecommerce site. If you are a small smart-up or a mid-sized company, Word-press can be the best option. This CMS is a boon for the people who are new to the Internet.

Wordpress- Popular Platform For web portal Development

Word press for building feature-rich and interactive business web portal

Let’s have a look at some basic reasons that make WordPress a trusted choice of many:

  • Free open source platform

  • It brings developers and bloggers together.

  • Easy to use interface

  • Cost effective and affordable solution

  • User-friendly CMS

  • Helps to get good SEO rankings

You would never have a problem finding the best theme for your WordPress web development. There are plenty of themes and templates available. You can look for free or premium themes to suit your exact requirements.

Advantages of choosing WordPress:

Easy to use and manage:

Managing WordPress is very simple. Even a layman can edit and upload the content on this platform. There is no need of technical knowledge and expertise for managing the content of the site. New pages, images and blogs can be added to a WordPress easily without using HTML coding.

Plugins, plugins everywhere:

Thousands of plugins are available to improve the functionality of your sites. Without having the need of custom coding, you would be able to add the functionality to your sites.

Completely customizable:

Word press site are 100% customizable. All the elements can be customized as per your requirements and expectations. You can have full control over your websites when you choose this popular and easy to use CMS.

Search engines love Word press:

It is a fact that Word press site are loved by the search engines. As it offers greater flexibility, it is a trusted choice of many developers and users.

Large community:

WordPress has a large active community to help the developers if they are stuck somewhere in the middle of developing a web portal. No matter what issue you have, you can get help from the expert and experienced developers.

Easy to upgrade:

Even if you want to upgrade from previous versions to a newer one, it is simpler with Word-press. Just a one click and you can upgrade your site.

The web admin can set-up multiple users for your websites and assign access levels to each user. So, don’t wait to build beautiful and attractive web portal using Word-press. Having a dynamic and interactive site for your business would surely help you maximize the profits. Get in touch with us now if you are looking for development services.Hire expert wordpress developers team who have several years of experience in the industry. They make use of the latest tools and technologies to offer the best solutions at affordable prices.

Read More
Important Tips to Hire PHP Developers for Your Next Project
December 13, 2014 admin

Top 5 points to remember while hiring PHP developers

PHP is a popular programming language that is used for creating dynamic web Portal and applications.If you’re looking for experienced PHP developers, you should make sure that you interview the candidates and pick the best one for your next project.Here are a few tips that will help you make the right choice to Hire PHP Developers

Hire PHP developers

  1. Consider offshore PHP developers:

Hiring onshore PHP programmers would be a costly affair as you would need to pay them high salaries and there would be other overhead costs also. You may consider hiring experienced PHP developers from Offshore Web Development Companies. There are many offshore agencies that provide PHP programmers. Hiring freelancers is not a reliable option and hence, you should look for a team of expert professionals. You can hire dedicated PHP resource who would be working for your project exclusively and you can have full control over your project. The clients can communicate with the hired resources directly. This is an added advantage of hiring dedicated resources for your project.

  1. Have a look at their portfolio:

While hiring PHP developers, you should have a look at their past work samples. Most of the service providers have an online portfolio where they showcase their works. You can also ask them to show you some recent work.

  1. Client reviews and feedback:

It is important to make sure that your project is in safe hands. So, you should check the client reviews and testimonials online. You can also get the contact details of the past clients and contact them directly to find out what type of services was provided to them. You should ask them whether they are completely satisfied with the services provided by the company. One should also find out whether the communication was smooth or not.

  1. Communicate directly before hiring:

You should talk to the developers directly before hiring PHP developers. It is important that the service providers understand your requirements completely so that they can deliver the best solutions. Most of the agencies allow the clients to talk to the developers via Skype or phone. You can also discuss the project details via email communication or IMs. Make sure that they have understood the project requirements and expert ideas from them.

  1. Get the contract signed:

When you’ve made up your mind to hire a particular resources, you should mention all the details in the contract and get it signed. Make sure that the milestones and the breakup of the cost is mentioned in the contract to avoid confusion later on. All the terms and conditions should be clear in the contract.

Ask as many questions as you may have and clarify the doubts before hiring dedicated PHP resources. All the best!

Read More
The Two Most Talked-About WordPress Plugins
March 10, 2014 admin

The popularity of WordPress is largely driven by the plugins that boost its performance. Plugins significantly enhance the functionality of WordPress; thus, making it more flexible and scalable. The use of plugins allows website and blog owners to manage, restrict and manipulate content effectively.

Recently, as a big fan of wordpress, I came across two clever or rather inventive plugins: SP News and Scrolling Widgets and SP Responsive Header Image Slider. These two plugins have been downloaded for more than 9500 times, and the downloading spree continues. There are numerous creative elements of these plugins that make them stand apart from the rest. As I used them for my website, I observed key features that radically changed the functionality of my website. I will talk-about both plugins in detail.

SP News and Scrolling Widgets (Downloads –> 9,573+)

Generally, almost all CMSs have a news section. However, there is less or no way to individually manage, add, edit and display the news the way you desire. To comprehensively overcome this concern, SP News and Scrolling Widgets plugin has been developed.

banner-772x250

This plugin gives you the luxury to operate the news section in your theme vertically or horizontally as you like (view screenshots). On installing this plugin, a new tab is added to the menu. Through this tab, you can add, edit, delete and manage single news or all news just like other post on the website. You can set the title of the list, and also control the number of news items that you want to display. It was recently updated with several improved features based on the reviews from global community. The most modern update is 2.1, and the plugin is compatible with 3.1 and higher versions of WordPress.

Smart features of this plugin

  • Option to scroll main page news
  • Enable and disable news
  • Settings for vertical and horizontal scroll
  • Yearly, monthly and weekly archives
  • Seamless integration with any theme
  • Easy to configure
  • CSS and JS file for customization

SP Responsive Header Image Slider (Downloads –> 9,181+)

A lot goes into making an attractive responsive website, and to precisely enhance the beauty of responsiveness SP Responsive Header Image Slider plugin has been developed. This plugin is easy to manage, works swiftly and is useful. This plugin enables you to add a responsive header image slider and mobile touch slider to your wordpress website. On installation a separate tab is added to the admin menu. From there you can add image title and other elements that normally you do for other posts.

The best part is that you can change the width and height. You also have buttons for auto play and auto speed. The latest version of this plugin is 1.1, and it is compatible with 3.1 and higher versions of wordpress.

Smart features of this plugin are:

  • Responsive
  • Allows adding custom links
  • Options to enable and disable custom links
  • Allows adding mobile touch slider
  • Easy to configure
  • Swiftly integrates with any theme
  • CSS and JS file for customization

banner-772x250(1)

To use this plugin you can simply copy paste the following code into your header.php file or template file: <div class=”headerslider”> <?php echo do_shortcode(‘[sp_responsiveslider limit=”-1″]’); ?></div>

You can also use the image slider inside your page with the following shortcode: [sp_responsiveslider limit=”-1″]

Plugins like SP News and Responsive sliders enable you to effectively manage your websites. These plugins are smart, easy and seamless. If you are looking to enhance the efficiency of your wordpress website, download these plugins and assure high-performance of your websites.

Read More
Hire Dedicated Resources
February 8, 2014 admin

Off shoring a dedicated developer is highly beneficial for both companies and Individuals who want to extend their in-house working capacity without the overheads of additional direct manpower and infrastructure resources.To achieve these objectives, it is very important to find out the correct organization that has excellent working systems, motivational working environment and strong support system.

Read More
WordPress Web Design and Development
February 7, 2014 admin

Initially, WordPress used to be an open source blogging tool, but gradually it has placed itself as Content Management System. User-friendly interface to work on and the simple architecture with advanced template systems are the main attractions making it increasingly popular.

Read More
Php Open Source
February 6, 2014 admin

PHP with its rich programming features and open source background offers end users, multitude of benefits. At SP Technolab, we help you tap in the PHP web development benefits in optimal manner so that you reduce the total cost of ownership of your online business and empower it to new heights.

Read More
Saturday Meetups- Knowldege Sharing Sessions
January 28, 2014 admin

We want our budding young talent to bloom with unlimited possibilities in the e-world..As today’s generation upgrades to latest trends and technologies, we want the youth to move in right direction and progress in Web/IT industry.

Confused how to initiate..? How to convert an idea into reality ..? Our experienced professional developers will guide you to the proper path. Any problems in programming ,come and clear your doubts at S.P.Technolab, Ahmedabad.

A great concept intiated by S.P.Technolab for exchange of ideas. Students who are pursuing engineering or any I.T/computer realted course having any queries ,bright ideas , questions in their minds are welcomed to our premises. Explicit Knowledge sharing sessions will be arranged for students wherein we can help you out in Android , iOS, PHP, SEO, Web Designing , Testing, Corona 2D technologies.

images

We have planned out to conduct a 2hour session for each technology on the 2nd and 4th Saturday of every month.You just need to call us and enroll with your name and contact details.As someone has rightly said :
“knowing is not enough,we must apply….. willing is not enough,we must do..”

So, dont wait get enrolled now to solve your queries , exchange ideas with us and help us to guide you to the right path. We are just a call away from you….call us on +91-9825588607 for getting enrolled just with your name and number absolutely at free of cost.

Read More
Taking a Step Further!!!
November 21, 2013 admin

With the population of India growing rapidly the need for proper education systems that empower the youth of India to create a bright future. Talent and manpower is something which India contributes to the world in the growth of the world economy. The higher education system in our country has witnessed a remarkable growth in the past few years making India ahead of many other countries in the field of education and training. IT and Web industry has been growing leaps and bounds in the last few years outsourcing talent to western countries and creating more employment opportunities. This has resulted in increased general awareness about IT education in India and its importance.

IMAG0602

With this in mind, S.P. Technolab Pvt Ltd has established its IT Training Centre which purely focuses on further development of I.T skills of the students. With the IT and web industry progressing leaps and bounds, we at S.P. Technolab aspire to spread an awareness in today’s youth about the new trends in the software development industry. As the 21st century life revolves around the internet and the virtual world taking place of the real world slowly, there is a brilliant opportunity for trained developers/ IT professionals to carve a niche career in web-development industry.

At S.P. Technolab –  , we not only upgrade our students’ I.T skills but focus on their overall career development as we groom their professional skills. Students at S.P. Technolab – I.T Training Centre are also given training on enhancing their own personalities, writing their GOALS, grooming their professional etiquettes, resume writing and many more which help develop them overall as an individual. This combined with I.T. training by industry experts create a complete package for a student’s looking for a kick-start in theirIMAG0600 I.T. career.

Our I.T Training Centre is our approach to contribute towards the development of society as we spread awareness and impart quality I.T. education to the students. Students enrolled at our training centre get an opportunity to interact with industry experts from various fields and also get successfully placed in good I.T. companies.

service-phase-icon-inquiry

Read More
Looking Into The Future With Magento 2
November 21, 2013 admin

thumb_19__auto_b49bc84cb4d881874eace49b095353e2Much-anticipated upgrade from Magento development service providers is Magento 2. While plans for its release might be best left for distant future, here’s what you can expect from the new iteration.

In September this year, Magento released upgrades – community edition 1.8.0.0, professional edition 1.12.0.2 and enterprise edition 1.13. This means Magento 2.0 might be on the horizon. Let’s peek into the future as to what moving away from Magento 1.x and entering into Magento 2.x would mean for Magento developers and online merchants.

The eCommerce framework currently supports some of the leading brands on the planet. To learn that a drastic upgrade is around the corner is quite encouraging for online business enterprises.

The yet-to-be-launched upgrade will focus on the specific needs of users depending upon the edition they choose to use. Some improvements are spread across all editions, and certain enhancements such as caching and indexing improvements are restricted for the Enterprise Edition.

Magento Community has been working on the 2.x for quite some time to fix most bugs and incorporate functionalities that make going online easy and keep the eStore profitable. You can expect a major core update with new key functionalities. Moreover, the new upgrade is expected to significantly reduce development time and optimize revision cycles. Even the admin panel might be worked out to make it even more intuitive to use.

Some of the eminent companies providing hire Magento developer services India have already begun to have their developers study the Magento 2 code base and learn about the changes that have been made by the community. This way when Magento 2 is launched officially, their developers will have an edge over others in creating customized storefront that leverages on its enhanced functionalities.

Still there remains a scope to tweak some codes and incorporate changes that would make Magneto development faster, customizable and scalable.

Over to you. Put up your wish-list as to what you would like to see in Magento 2 in the comments below. We’d love to hear from you.

Read More
Google Malaysia Hacked. Reason to be Optimistic About Using Google
October 12, 2013 admin

Google Malaysia was hacked on October 11th. The credit was claimed by a group of Pakistani hackers. Read on to find out why this incident didn’t deter people from using Google after it recovered.

Google Malaysia, google.com.my, was hacked and upholded by a group of hackers. This hack on Google Malaysia was claimed by a group of hackers, “Team Madleets”. At the stance of this event, the Google Malaysia home screen with white background was swapped with a black backdrop and stamped by Pakistani Leets.

How did the hack occur?

The Google Malaysia hack appears to be a case of a redirect attack. The Madleets group claims to have hacked and gained access to Malaysia Network Information Center, and redirected Google records thereon to the Madleets-controlled servers.

Google Malaysia then issued a statement: “For a short period, some users visiting google.com.my were redirected to a different website; Google services for the google.com.my domain were not hacked. We’ve been in contact with the organization responsible for managing this domain name and the issue should be resolved.”

screen-shot-2013-10-10-at-3-43-54-pm

Why your information on Google servers can still be considered safe?

There is apparently no evidence yet that the information on Google servers were tapped into by hackers. Such an instance brought to surface the scope of improvement for cyber security because of which the swapping of servers was possible.

Goolge Malaysia has recovered and there is no report of data loss due to this hack. The world’s leading search engine was affected with cyber disturbance but now it is available. Users of Google Malaysia and the search engine marketing companies have resumed to work as usual.

Investigation on this matter started as soon as the problem was resolved. It was identified that updating the new DNS servers would prevent from re-occurance of such attacks. However, for a world-wide updatation of DNS servers, it will take consederable time.

Read More
One Thing That Can Turn Any Game Concept into a Wow Game Experience
July 11, 2013 admin

hardcore-gamersThe right game engine has the potential to turnaround a regular idea into a phenomenally popular game. Hire Cocos2D game developer service, to build stunning games that engage gamers.

Any game is as good as the underlying technology it is developed on and that’s why the choice of the right game engine is one of the most important decisions. There are numerous game development tools however the best is the one that keeps evolving to create immersive game experience.

Cocos2D game engine is what most developers rely on for crafting game concepts into games that gains gamers’ curiosity to play and wins user-involvement. One of the reasons why Cocos2D game development is preferred by those aspiring to develop cross-platform games is that the cross-platform game engine supports particles even in weak hardware. No matter which mobile device it is played on, if you have engaged professional hire Cocos2D game developer services, your game will play just as you intended it to across all devices.

Effects like waves, twirl and swirl can be executed with precision to bring about a realistic gaming experience. It also facilitates for stylized transition from scene to scene and creating mesmerizing graphic design using OpenGL. You can expect zero botherations of complex debugging when you hire Cocos2D game developer india with expertise in Python.

DICE-say-consoles-holding-PC-games-back-1068212

The utility of this game engine goes beyond developing entertaining games. It allows for crafting awesome digital content such as step-by-step tutorials, product demos, and imaginary representations for creating engaging advertisements. With Action support, developers can even design interesting text rendering which effectively communicates say, the game instructions or its story board.

Now that you know what it takes to build a wonderful game, wait no more! Have your next game developed by an expert Cocos2D developer.

Read More
WordPress Offers
July 10, 2013 admin

wordpress-banner

WordPress Services

We specialize in custom WordPress solutions and services. WordPress is our favorite tool to use for any website, whether as a blog engine or as a CMS (Content Management System). We can work with you on any level of your project that you may need support with.

Affordable WordPress Web Design and Development PackagesSelect Your Package

WordPress Web Design and Development Packages– Only $699

This service is for anyone who wants a professional installation and configuration of WordPress with a theme from one of the many professional WordPress theme providers. The service includes:

Install the latest version of WordPress to use as a Blog or CMS

  • Front page custom design
  • Inner page custom design (Left column,Right column, Three column)
  • Category custom design
  • Search page custom design
  • Left side navigation bar
  • Custom HTML block on left or right navigation for promotion
  • Custom theme page
  • Responsive website
  • 15 pages

WordPress Web Design and Development Packages– Only $1499

This service is for anyone who wants a professional installation and configuration of WordPress with a theme from one of the many professional WordPress theme providers. The service includes:

Install the latest version of WordPress to use as a Blog or CMS

  • Front page custom design
  • Inner page custom design (Left column,Right column, Three column)
  • Category custom design
  • Search page custom design
  • Left side navigation bar
  • Custom HTML block on left or right navigation for promotion
  • Custom theme page
  • Responsive website
  • Custom bootstrap theme and UI
  • News
  • Blog
  • FAQ
  • Header image slider
  • Video gallery
  • Portfolio
  • 30 pages

WordPress Web Design and Development Packages– Only $2199

This service is for anyone who wants a custom designed website or blog built to meet their layout and style requirements. The service includes:

  • Front page custom design
  • Inner page custom design (Left column,Right column, Three column)
  • Category custom design
  • Search page custom design
  • Left side navigation bar
  • Custom HTML block on left or right navigation for promotion
  • Custom theme page
  • Responsive website
  • Custom bootstrap theme and UI
  • News
  • Blog
  • FAQ
  • Header image slider
  • Video gallery
  • Portfolio
  • Custom product page design
  • Custom product description page design
  • Best selling product by category filter
  • Best feature product by category filter
  • Header cart dropdown box
  • Auto complete search box
  • 100 pages

Read More
Launching a Mobile Game Application
March 20, 2013 admin

Creating a mobile game application is working half done; the other major part is selling it. For that a developer should have a good idea where to deploy the game so that effective sale results are achieved. The Apple App store is the right place for iPhone apps. Though developers need to follow standard regulations to follow and hosting fees are costly, the potential rewards are also measurably larger.

For Android, Google Play is the best place to host the apps, followed by Amazon’s App Store. Though Google Play continues to dominate the Android Apps market, Amazon with its Kindle is also a popular Android apps host, at a second place. There are millions of mobile gaming apps in the market and the biggest challenge is to achieve visibility on the Internet; get noticed by the crowds and be easily available. The traditional marketing strategy includes banner advertisements and offer-wall services. The latter one is, download-at-fixed-price type, while the other is of variable cost type.

The other marketing method is to build a partnership with leading players in the mobile game market. It is a costly effort, but it gives the game a shot at stardom; though it makes no guarantee the apps success. However if there is something ‘oomph” in the app it will be certainly noted by the audience and that could be the key driver of its success in the market. It is good practice to distribute apps to the app stores that have a wider audience and provide a rating system. If the mobile game title is appealing and earns good ratings; it will translate into good download numbers. So a mobile game with millions of download counts is more successful than the game with a few thousand downloads. So the download statistics are the indicator or success or failure of any game.

If the game is appealing and launched in a proper manner then there is no stopping it from becoming a big hit with the mobile gaming crowd.

Read More
Mobile Game Development Industry- No Looking Back
March 7, 2013 admin

mobile-game

Mobile game development is a huge industry and it has changed the way people entertain themselves. The Apple App store and Google Market, togather control the world mobile game development market, which keeps growing every year. The insatiable appetite of global iPhone and Android users for more numbers of sensational games is fuelling the growth of the game application development industry.

The industry is now better placed that before; it has well trained mobile game developers and a number of cross platform game development platforms like Corona, Titanium and PhoneGap that speed up the development process, cut costs to make the games more cost-effective. As a result it is now possible to build more interactive, engaging mobile games at much lower cost than what it used to be a couple of years ago.

The integration of the latest technology like interactive server in mobile gaming has made it easy to launch multiplayer mobile games that allow mobile users, across the globe to play mobile games with each other through their Android or iPhone devices. The availability of various platforms like Unity3D, Blender, MY Cry Engine and Source SDK for rendering 3D effects in the game environment has made it easy for the developers to create real life effects in the game applications and keep the players immersed in their mobile devices.

Mobile game development is a lucrative business, keeping in mind millions of iPad, Android and iPhone devices being sold every year and billions being spent across the globe by the consumers in gaming applications to entertain themselves. This has created a bright opportunity for offshore mobile game development companies, especially in India. Indian mobile game app development companies have at their disposal rich pool of talented game developers, who contribute their expert knowledge and technical skills at a very low salary compared to their western counterparts. This reduces the total labor cost, without compromising the quality standards and makes the final product- Android or iPhone game much cheaper than in the Western World.

As the mobile users increase, the demand for iPhone or Android games will continue to rise, and it won’t be wrong to say that – “There is no looking back for the Mobile Game Development Industry”

Read More
Today and Tomorrow of Android Games Development Industry
February 21, 2013 admin

android_games

The mobile industry has flourished in the last couple of decades. With the usage of Smartphone being to rise, the entertainment industry is also flourishing, especially gaming industry. Earlier, when games were mainly played on gaming consoles, today mobile version of many popular games is available in the market. With the high processing power and high resolution screens, various high definition games are being developed especially for mobile devices.

Android being a leader in the mobile platform, more and more games are being developed for Android devices. Android game development has flourished as many new devices are being developed for this platform. With the increasing popularity of mobile devices, the appeal for conventional gaming consoles is declining. As the gaming consoles are bigger in size and cost almost same as a Smartphones.

The demand for android game development services provided an opportunity for many web developing companies and individuals to cap on its potential. Companies providing android game development services are mushrooming around the world. Games are the only thing that finds its appeal among all the segment of mobile users.

With the increasing use of mobile devices, it is apparent that the android game development will have lots of opportunities. Companies providing android game development services have started developing games that are compatible with various devices. And the challenge of offering something new is always keeping android game development companies on their toes.

This has enabled an individual with a creative game idea to make it big in android game development industry. As the new doors of opportunities are discovered with more and more new devices using Android, the future of the companies providing android game development services seems bright. Still the android game development is in its early stage and there are tons of opportunities.

Read More
Craze of Android Mobile Apps Development
February 21, 2013 admin

and_apps_blog

Android changed the world of Smartphones and the way people use the mobile phones. Since its launch, it has never looked back and is consistently gaining ahead of its competitors. Today, android enjoys the highest share in the mobile market. With growing popularity and increasing use of android in new devices, the android application development is also on the rise.

Being an open source and tons of tutorials available online, android application development attracted many developers. This created a whole new set of opportunities for many existing web development companies and many new companies who started with android mobile application development. With a surge in the demand for android app development, web developing companies around the world took their first step into the world of android application development.

Programmers with knowledge JAVA programming language started providing android mobile application development services and also building their own apps. It was eminent that in developing economies like India, where the talent was abundant, companies started providing android application development services. It was beneficial for the companies who were already providing web development services, and provided stiff competition to new comers.

With companies mushrooming around the world, the competition in android mobile application development is increasing day-by-day. Businesses and people want their creative idea to be converted into mobile app and have their share of the pie. As more-and-more devices adapt android platform, it is clear that android is going to rule the mobile apps market for years to come.

With the passage of time, much new advancement had been done in android app development. Many tools are available that made android mobile application development task much easier. Some of the online tools had made android application development so easy, that a person without any programming language can also design and develop an app.

Read More
Why Android Apps development Industry is catching up with Apple’s App Store?
February 7, 2013 admin

android_appleThe android app development industry is on a new high thanks to increase in numbers of Android apps in the Google Play store, which is fast catching up with the Apple app store. The tremendous success of Samsung Galaxy SIII and Google Nexus because of their open source Android operating system has created many new Android users.

The mobile apps developer community around the world now gives equal importance to Android as it does to iPhone. There is a gradual shift towards Android platform and it would be not wrong to say that Android has caught up with the iPhone and will soon get past it, if the trend continues.

The open source boon of the Android OS and increasing numbers of players like Samsung, Intel, etc. are investing their time and money in Google Android; the competition is getting fierce. The low costing Android phones are spurring the sales of handsets, especially in the countries like India that has huge numbers of mobile application users.

Further Google has ploughed deeper into the Android platform and sown better development tools to help developers build better, more customized and cost-effective apps to improve their performance and make them irresistible to the users.

The Android apps development companies have something to cheer about as they know now they have the opportunity to bite bigger and deeper in the mobile-apps–pie, which was earlier reserved for Apple.

Read More
Adopting the Right iPhone Development Practices
February 5, 2013 admin

iphone_appsIPhone apps development is a big industry with record number of apps hitting the iPhone apps store every year. The ever expanding realm of the mobile technology and increase in, on-demand requirements of clients is pushing the iPhone application development companies to deliver performance driven apps that perfectly serve the purpose for what they are created.
To ensure high performance of applications it is necessary for the companies to stick to the iPhone apps development practices that are mentioned below:

  • Integrate latest technological advancements in applications for example embed NFC ( Near field communication) for greater user experience
  • Design compelling user interface to encourage users try the apps
  • Integrate social media sites in apps, where necessary
  • Keep ads to minimal and avoid full screen advertisements
  • Design and develop keeping mind the requirements of the targeted audience
  • Develop apps that consume less battery power
  • Create apps that cross-platform compliant; they perform well on the major mobile operating systems
  • Add precise animation and graphics; do not overdo
  • Build apps that are robust , reliable and do not show deviation in the behavior over the time to ensure continual satisfactory performance

The growing competition from other mobile platforms like Android is biting deeper into the phone apps market. Hence it important for the iPhone apps development companies to quickly absorb the latest technological features in their apps and retain the customers’ interest in their apps.

Read More
Taking Care while Outsourcing your iPhone Game Development Project
February 2, 2013 admin

iphonegame_developmentiPhone game development is quite a rage in the mobile application development world thanks to excellent features of iPhone that compliment well engaging apps to give scintillating gaming experience to end users.

There is explosive growth in demand for iPhone games and there are many companies, which make tall claims of delivering world class apps at competitive prices. However before outsourcing the iPhone game development project to any company it is important to check their credentials. Doing so can be a time consuming process but at the end it saves you time, money and botheration of dealing with an unprofessional company that you had hired out of greed for the lowest development price it quoted for your project. Please remember quality comes at price.

Besides price there are few other important points to take care of while looking for the right iPhone game apps development company.

  • Check for the client testimonials; what they say about the company, it’s services, workmanship, etc
  • If possible pay a personal visit to company’s development center to ascertain about their infrastructure and technical competence to deliver desired results
  • Study carefully their proposals for your apps development project and clarify any technical and commercial ambiguity
  • Ensure compliance to international development methods
  • Get a NDA signed to make sure that your data is protected
  • Ensure that they agree to stick to all your technical specifications so that outcome is as per your expectations
  • If you have very large iPhone game development project to outsource, it is advisable create a small project milestones and pay accordingly to avoid any hassles later on.

iPhone game development is a lucrative business provided high quality performance is guaranteed. If you seek to establish a good name amongst you iphone game users, you have to ensure that your apps are robust, reliable engaging and successful in delivering brilliant performance on their iPhone. To make that a reality, you need to take care of above mentioned points, while to enter into business negotiations with any iPhone game development company.

Read More
India is the iPhone Application Development Hub of World
January 31, 2013 admin

iphone_developmentiPhone app development is a huge industry in itself thanks to sparkling success of successive launch of different iPhone versions, leading to iPhone 5. With Indian iPhone development companies leading the way in development of inventive iPhone applications of different genre, it would not be wrong to call India has iPhone application development hub of the world.

Mobile commerce is growing at a rapid pace and many iPhone development companies in India have come up with dynamic iPhone applications for online shopping and banking. The parallel growth of e-commerce and iPhone industry has created a mobile commerce boom, which major players in the industry contributing their best to bite deeper into the mobile commerce pie that global market offers to them.

India‘s rich pool of talented iPhone developers, low development costs and vast consumer market has made it iPhone application development hub of the world. Many International players in this arena have established sophisticated development centers to cater the global demand, including that of India. With comparatively younger population compared to other emerging economies like China, Brazil and Russia, the Indian market offer lucrative opportunities for iPhone development companies. It is like killing two birds with one stone- hire skilled iPhone developers at low cost and sell applications to a young and vast local customer base. Thus India fires growth of iPhone apps development industry around the world.

Read More
We have shifted to new infrastructure
July 18, 2012 admin

We are excited to announce that our team has moved to a new location in Satellite. We spent the previous five years in a building – our old office served us well, and we made great memories there, but we could be more excited about our new space.

Read More
iPad Application HSBC Commercial Banking Country Guides
May 15, 2012 admin

HSBC Country Guides provide useful and relevant information on how to do business in a number of core developed and emerging markets around the world. So if you are looking to expand your operations in new markets, our application can put the information in your hands wherever you are. HSBC aims to make doing business internationally as easy as doing business at home.

App Name: HSBC Commercial Banking Country Guides

Technology: iPad

Industry: Business

 

URL: http://itunes.apple.com/us/app/hsbc-commercial-banking-country/id514525970?mt=8

Read More
ARKENfamilie : Android app for an audio guide for children and adults
May 15, 2012 admin

ARKENs family app is an audio guide for children and adults.
ARKENs family app is an audio guide, which mediates works from ARKENs collection for children and their adults. The app is for visitors between 6 and 99 years. Each work of art is described through an introduction, a more thorough description, and part is prohibited for adults. The app is intended as a conversation between children and adults. ARKENs family app is not just for children. Adults are welcome to listen in – at most.

App Name: Arkenfamilie

Technology: Android

Industry: Entertainment

URL: https://play.google.com/store/apps/details?id=com.mobileidentity.arkenfamilie

Read More
CeBIT Hannover 2012, 06 to 10 March
January 10, 2012 admin

We would be glad in meeting you at World largest computer expo CeBIT in Hannover, Germany from 6th – 10th March 2012.

The clients and visitors at CeBIT, will have one on one experience with SP Technolab team who will be there to share their innovative and creative ideas and the company’s diversified risk management approaches in terms of Geographic distribution, Technology distribution, Currency risk management, sharing experience across various industry verticals and business practices.

Read More
INDIASOFT 2011, PUNE
December 21, 2011 admin

MAKING GLOBAL BUSINESS COMPETITIVE AND SYNERGISING PARTNERSHIPS has been the driving force of ESC enterprise level efforts.  To assist Indian IT companies build a strong global foothold. in 2011, ESC organized an INDIA SHOW for the first time, the 11th edition of INDIASOFT series at Pune  during  25th  on 26th  March 2011.

SP Technolab India Soft Showcase

Client Interaction


SP Technolab Team

Read More
Dating Site With Modern And Innovating Concept In Joomla 1.5
December 19, 2011 admin

Web-based Software

Groupular.com  is  modern and innovating concept for dating site. We have worked on latter parts of projects, helping the company to finish the project.

Web-Based System Developed for USA based Client

Technologies used in developing it:

Industry:

  • Social Network

Screen Shot

Groupular.com Beta_1324279061136

Groupular.com Beta_1324279061136

Groupular - Members_1324279208462

Groupular - Members_1324279208462

Groupular - Events_1324279275770

Groupular - Events_1324279275770

Groupular - Blog_1324279292026

Groupular - Blog_1324279292026

Groupular.com Beta_1324279061136

 

Read More
ARKEN family app, is an audio guide for Children and Adults.
November 23, 2011 admin

Android Application

Arken is a family app, an audio guide for children and adults. Which disseminates works from ARKEN collection for children and adults.  Each artwork is described through an introduction, a more thorough description, and some part for adults.  App is intended as a contribution to the conversation between children and adults. ARKEN family app is not just for children.

Android – Based Application Developed for our Denmark based Client

Technologies used in developing it:

Read More
Dreamweaversuk – Content Managamant System For Ceramics Tiles
November 23, 2011 admin

Web-based Software

Dreamweaversuk.com is a Web-based Content Management System For Ceramics Tiles.

Web-Based System Develop For Our UK based Client

Technologies used in developing it:

Industry:

  • Content Management System

Dreamweavers

Read More
Fellowtree.com Family Tree Based Social Networking site also connected with Facebook
November 23, 2011 admin

Web-based Software

Fellowtree.com is a family Tree based Social Networking sites social networking site makes it easy for you and your family members to build a family tree together, complete with profiles and photos.

Technologies used in developing it:

Industry:

  • Social Network Site

Screen Shot:

 

 


Fellotree

Read More
Gocruso – Socail Networking tool for Restaurant lovers connecting Restaurant Owners
November 23, 2011 admin

Web-based Software

Gocruso.com Huge web based Socail Networking tool for Restaurant lovers connecting Restaurant Owners, Vendors in the Restaurant Industry and Restaurant Lovers. The project is been developed since last 1 year and will be launched soon.

1)  Customized Joomla Componants Build
2)  Solr Based Advance Search
3)  Ip Based Programming for Location Search
4)  All Social Networking feature used.

Web-Based System Develop ForUSA based Client

Technologies used in developing it:

Industry:

  • Restaurant

Screen Shot

 

Read More
TripXs.com an online Travel Portal for India Consumer
November 22, 2011 admin

Web-based Software

TripXs.com and online Travel portal which offers cheapest flights, hotels, travel packages, weekend trips, holiday destinations in India.

Technologies used in developing it:

Industry:

  • Travel

 


Read More
Data Read from Excel File in PHP
September 30, 2011 admin
1) First of all make one folder Excel and put the reader.php library in to that.
Code for reader.php File….
<?php
//require_once ‘PEAR.php’;
require_once ‘oleread.inc’;
//define(‘Spreadsheet_Excel_Reader_HAVE_ICONV’, function_exists(‘iconv’));
//define(‘Spreadsheet_Excel_Reader_HAVE_MB’, function_exists(‘mb_convert_encoding’));
define(‘Spreadsheet_Excel_Reader_BIFF8’, 0x600);
define(‘Spreadsheet_Excel_Reader_BIFF7’, 0x500);
define(‘Spreadsheet_Excel_Reader_WorkbookGlobals’, 0x5);
define(‘Spreadsheet_Excel_Reader_Worksheet’, 0x10);
define(‘Spreadsheet_Excel_Reader_Type_BOF’, 0x809);
define(‘Spreadsheet_Excel_Reader_Type_EOF’, 0x0a);
define(‘Spreadsheet_Excel_Reader_Type_BOUNDSHEET’, 0x85);
define(‘Spreadsheet_Excel_Reader_Type_DIMENSION’, 0x200);
define(‘Spreadsheet_Excel_Reader_Type_ROW’, 0x208);
define(‘Spreadsheet_Excel_Reader_Type_DBCELL’, 0xd7);
define(‘Spreadsheet_Excel_Reader_Type_FILEPASS’, 0x2f);
define(‘Spreadsheet_Excel_Reader_Type_NOTE’, 0x1c);
define(‘Spreadsheet_Excel_Reader_Type_TXO’, 0x1b6);
define(‘Spreadsheet_Excel_Reader_Type_RK’, 0x7e);
define(‘Spreadsheet_Excel_Reader_Type_RK2’, 0x27e);
define(‘Spreadsheet_Excel_Reader_Type_MULRK’, 0xbd);
define(‘Spreadsheet_Excel_Reader_Type_MULBLANK’, 0xbe);
define(‘Spreadsheet_Excel_Reader_Type_INDEX’, 0x20b);
define(‘Spreadsheet_Excel_Reader_Type_SST’, 0xfc);
define(‘Spreadsheet_Excel_Reader_Type_EXTSST’, 0xff);
define(‘Spreadsheet_Excel_Reader_Type_CONTINUE’, 0x3c);
define(‘Spreadsheet_Excel_Reader_Type_LABEL’, 0x204);
define(‘Spreadsheet_Excel_Reader_Type_LABELSST’, 0xfd);
define(‘Spreadsheet_Excel_Reader_Type_NUMBER’, 0x203);
define(‘Spreadsheet_Excel_Reader_Type_NAME’, 0x18);
define(‘Spreadsheet_Excel_Reader_Type_ARRAY’, 0x221);
define(‘Spreadsheet_Excel_Reader_Type_STRING’, 0x207);
define(‘Spreadsheet_Excel_Reader_Type_FORMULA’, 0x406);
define(‘Spreadsheet_Excel_Reader_Type_FORMULA2’, 0x6);
define(‘Spreadsheet_Excel_Reader_Type_FORMAT’, 0x41e);
define(‘Spreadsheet_Excel_Reader_Type_XF’, 0xe0);
define(‘Spreadsheet_Excel_Reader_Type_BOOLERR’, 0x205);
define(‘Spreadsheet_Excel_Reader_Type_UNKNOWN’, 0xffff);
define(‘Spreadsheet_Excel_Reader_Type_NINETEENFOUR’, 0x22);
define(‘Spreadsheet_Excel_Reader_Type_MERGEDCELLS’, 0xE5);
define(‘Spreadsheet_Excel_Reader_utcOffsetDays’ , 25569);
define(‘Spreadsheet_Excel_Reader_utcOffsetDays1904’, 24107);
define(‘Spreadsheet_Excel_Reader_msInADay’, 24 * 60 * 60);
//define(‘Spreadsheet_Excel_Reader_DEF_NUM_FORMAT’, “%.2f”);
define(‘Spreadsheet_Excel_Reader_DEF_NUM_FORMAT’, “%s”);
// function file_get_contents for PHP < 4.3.0
// Thanks Marian Steinbach for this function
if (!function_exists(‘file_get_contents’)) {
function file_get_contents($filename, $use_include_path = 0) {
$data = ”;
$file = @fopen($filename, “rb”, $use_include_path);
if ($file) {
while (!feof($file)) $data .= fread($file, 1024);
fclose($file);
} else {
// There was a problem opening the file
$data = FALSE;
}
return $data;
}
}
//class Spreadsheet_Excel_Reader extends PEAR {
class Spreadsheet_Excel_Reader {
var $boundsheets = array();
var $formatRecords = array();
var $sst = array();
var $sheets = array();
var $data;
var $pos;
var $_ole;
var $_defaultEncoding;
var $_defaultFormat = Spreadsheet_Excel_Reader_DEF_NUM_FORMAT;
var $_columnsFormat = array();
var $_rowoffset = 1;
var $_coloffset = 1;
var $dateFormats = array (
0xe => “d/m/Y”,
0xf => “d-M-Y”,
0x10 => “d-M”,
0x11 => “M-Y”,
0x12 => “h:i a”,
0x13 => “h:i:s a”,
0x14 => “H:i”,
0x15 => “H:i:s”,
0x16 => “d/m/Y H:i”,
0x2d => “i:s”,
0x2e => “H:i:s”,
0x2f => “i:s.S”);
var $numberFormats = array(
0x1 => “%1.0f”, // “0”
0x2 => “%1.2f”, // “0.00”,
0x3 => “%1.0f”, //”#,##0″,
0x4 => “%1.2f”, //”#,##0.00″,
0x5 => “%1.0f”, /*”$#,##0;($#,##0)”,*/
0x6 => ‘$%1.0f’, /*”$#,##0;($#,##0)”,*/
0x7 => ‘$%1.2f’, //”$#,##0.00;($#,##0.00)”,
0x8 => ‘$%1.2f’, //”$#,##0.00;($#,##0.00)”,
0x9 => ‘%1.0f%%’, // “0%”
0xa => ‘%1.2f%%’, // “0.00%”
0xb => ‘%1.2f’, // 0.00E00″,
0x25 => ‘%1.0f’, // “#,##0;(#,##0)”,
0x26 => ‘%1.0f’, //”#,##0;(#,##0)”,
0x27 => ‘%1.2f’, //”#,##0.00;(#,##0.00)”,
0x28 => ‘%1.2f’, //”#,##0.00;(#,##0.00)”,
0x29 => ‘%1.0f’, //”#,##0;(#,##0)”,
0x2a => ‘$%1.0f’, //”$#,##0;($#,##0)”,
0x2b => ‘%1.2f’, //”#,##0.00;(#,##0.00)”,
0x2c => ‘$%1.2f’, //”$#,##0.00;($#,##0.00)”,
0x30 => ‘%1.0f’); //”##0.0E0″;
function Spreadsheet_Excel_Reader(){
$this->_ole =& new OLERead();
$this->setUTFEncoder(‘iconv’);
}
function setOutputEncoding($Encoding){
$this->_defaultEncoding = $Encoding;
}
/**
*  $encoder = ‘iconv’ or ‘mb’
*  set iconv if you would like use ‘iconv’ for encode UTF-16LE to your encoding
*  set mb if you would like use ‘mb_convert_encoding’ for encode UTF-16LE to your encoding
*/
function setUTFEncoder($encoder = ‘iconv’){
$this->_encoderFunction = ”;
if ($encoder == ‘iconv’){
$this->_encoderFunction = function_exists(‘iconv’) ? ‘iconv’ : ”;
}elseif ($encoder == ‘mb’) {
$this->_encoderFunction = function_exists(‘mb_convert_encoding’) ? ‘mb_convert_encoding’ : ”;
}
}
function setRowColOffset($iOffset){
$this->_rowoffset = $iOffset;
$this->_coloffset = $iOffset;
}
function setDefaultFormat($sFormat){
$this->_defaultFormat = $sFormat;
}
function setColumnFormat($column, $sFormat){
$this->_columnsFormat[$column] = $sFormat;
}
function read($sFileName) {
$errlevel = error_reporting();
error_reporting($errlevel ^ E_NOTICE);
$res = $this->_ole->read($sFileName);
// oops, something goes wrong (Darko Miljanovic)
if($res === false) {
// check error code
if($this->_ole->error == 1) {
// bad file
die(‘The filename ‘ . $sFileName . ‘ is not readable’);
}
// check other error codes here (eg bad fileformat, etc…)
}
$this->data = $this->_ole->getWorkBook();
/*
$res = $this->_ole->read($sFileName);
if ($this->isError($res)) {
// var_dump($res);
return $this->raiseError($res);
}
$total = $this->_ole->ppsTotal();
for ($i = 0; $i < $total; $i++) {
if ($this->_ole->isFile($i)) {
$type = unpack(“v”, $this->_ole->getData($i, 0, 2));
if ($type[”] == 0x0809)  { // check if it’s a BIFF stream
$this->_index = $i;
$this->data = $this->_ole->getData($i, 0, $this->_ole->getDataLength($i));
break;
}
}
}
if ($this->_index === null) {
return $this->raiseError(“$file doesn’t seem to be an Excel file”);
}
*/
//var_dump($this->data);
//echo “data =”.$this->data;
$this->pos = 0;
//$this->readRecords();
$this->_parse();
error_reporting($errlevel);
}
function _parse(){
$pos = 0;
$code = ord($this->data[$pos]) | ord($this->data[$pos+1])<<8;
$length = ord($this->data[$pos+2]) | ord($this->data[$pos+3])<<8;
$version = ord($this->data[$pos + 4]) | ord($this->data[$pos + 5])<<8;
$substreamType = ord($this->data[$pos + 6]) | ord($this->data[$pos + 7])<<8;
//echo “Start parse code=”.base_convert($code,10,16).” version=”.base_convert($version,10,16).” substreamType=”.base_convert($substreamType,10,16).””.”\n”;
if (($version != Spreadsheet_Excel_Reader_BIFF8) && ($version != Spreadsheet_Excel_Reader_BIFF7)) {
return false;
}
if ($substreamType != Spreadsheet_Excel_Reader_WorkbookGlobals){
return false;
}
//print_r($rec);
$pos += $length + 4;
$code = ord($this->data[$pos]) | ord($this->data[$pos+1])<<8;
$length = ord($this->data[$pos+2]) | ord($this->data[$pos+3])<<8;
while ($code != Spreadsheet_Excel_Reader_Type_EOF){
switch ($code) {
case Spreadsheet_Excel_Reader_Type_SST:
//echo “Type_SST\n”;
$spos = $pos + 4;
$limitpos = $spos + $length;
$uniqueStrings = $this->_GetInt4d($this->data, $spos+4);
$spos += 8;
for ($i = 0; $i < $uniqueStrings; $i++) {
// Read in the number of characters
if ($spos == $limitpos) {
$opcode = ord($this->data[$spos]) | ord($this->data[$spos+1])<<8;
$conlength = ord($this->data[$spos+2]) | ord($this->data[$spos+3])<<8;
if ($opcode != 0x3c) {
return -1;
}
$spos += 4;
$limitpos = $spos + $conlength;
}
$numChars = ord($this->data[$spos]) | (ord($this->data[$spos+1]) << 8);
//echo “i = $i pos = $pos numChars = $numChars “;
$spos += 2;
$optionFlags = ord($this->data[$spos]);
$spos++;
$asciiEncoding = (($optionFlags & 0x01) == 0) ;
$extendedString = ( ($optionFlags & 0x04) != 0);
// See if string contains formatting information
$richString = ( ($optionFlags & 0x08) != 0);
if ($richString) {
// Read in the crun
$formattingRuns = ord($this->data[$spos]) | (ord($this->data[$spos+1]) << 8);
$spos += 2;
}
if ($extendedString) {
// Read in cchExtRst
$extendedRunLength = $this->_GetInt4d($this->data, $spos);
$spos += 4;
}
$len = ($asciiEncoding)? $numChars : $numChars*2;
if ($spos + $len < $limitpos) {
$retstr = substr($this->data, $spos, $len);
$spos += $len;
}else{
// found countinue
$retstr = substr($this->data, $spos, $limitpos – $spos);
$bytesRead = $limitpos – $spos;
$charsLeft = $numChars – (($asciiEncoding) ? $bytesRead : ($bytesRead / 2));
$spos = $limitpos;
while ($charsLeft > 0){
$opcode = ord($this->data[$spos]) | ord($this->data[$spos+1])<<8;
$conlength = ord($this->data[$spos+2]) | ord($this->data[$spos+3])<<8;
if ($opcode != 0x3c) {
return -1;
}
$spos += 4;
$limitpos = $spos + $conlength;
$option = ord($this->data[$spos]);
$spos += 1;
if ($asciiEncoding && ($option == 0)) {
$len = min($charsLeft, $limitpos – $spos); // min($charsLeft, $conlength);
$retstr .= substr($this->data, $spos, $len);
$charsLeft -= $len;
$asciiEncoding = true;
}elseif (!$asciiEncoding && ($option != 0)){
$len = min($charsLeft * 2, $limitpos – $spos); // min($charsLeft, $conlength);
$retstr .= substr($this->data, $spos, $len);
$charsLeft -= $len/2;
$asciiEncoding = false;
}elseif (!$asciiEncoding && ($option == 0)) {
// Bummer – the string starts off as Unicode, but after the
// continuation it is in straightforward ASCII encoding
$len = min($charsLeft, $limitpos – $spos); // min($charsLeft, $conlength);
for ($j = 0; $j < $len; $j++) {
$retstr .= $this->data[$spos + $j].chr(0);
}
$charsLeft -= $len;
$asciiEncoding = false;
}else{
$newstr = ”;
for ($j = 0; $j < strlen($retstr); $j++) {
$newstr = $retstr[$j].chr(0);
}
$retstr = $newstr;
$len = min($charsLeft * 2, $limitpos – $spos); // min($charsLeft, $conlength);
$retstr .= substr($this->data, $spos, $len);
$charsLeft -= $len/2;
$asciiEncoding = false;
//echo “Izavrat\n”;
}
$spos += $len;
}
}
$retstr = ($asciiEncoding) ? $retstr : $this->_encodeUTF16($retstr);
//                                              echo “Str $i = $retstr\n”;
if ($richString){
$spos += 4 * $formattingRuns;
}
// For extended strings, skip over the extended string data
if ($extendedString) {
$spos += $extendedRunLength;
}
//if ($retstr == ‘Derby’){
//      echo “bb\n”;
//}
$this->sst[]=$retstr;
}
/*$continueRecords = array();
while ($this->getNextCode() == Type_CONTINUE) {
$continueRecords[] = &$this->nextRecord();
}
//echo ” 1 Type_SST\n”;
$this->shareStrings = new SSTRecord($r, $continueRecords);
//print_r($this->shareStrings->strings);
*/
// echo ‘SST read: ‘.($time_end-$time_start).”\n”;
break;
case Spreadsheet_Excel_Reader_Type_FILEPASS:
return false;
break;
case Spreadsheet_Excel_Reader_Type_NAME:
//echo “Type_NAME\n”;
break;
case Spreadsheet_Excel_Reader_Type_FORMAT:
$indexCode = ord($this->data[$pos+4]) | ord($this->data[$pos+5]) << 8;
if ($version == Spreadsheet_Excel_Reader_BIFF8) {
$numchars = ord($this->data[$pos+6]) | ord($this->data[$pos+7]) << 8;
if (ord($this->data[$pos+8]) == 0){
$formatString = substr($this->data, $pos+9, $numchars);
} else {
$formatString = substr($this->data, $pos+9, $numchars*2);
}
} else {
$numchars = ord($this->data[$pos+6]);
$formatString = substr($this->data, $pos+7, $numchars*2);
}
$this->formatRecords[$indexCode] = $formatString;
// echo “Type.FORMAT\n”;
break;
case Spreadsheet_Excel_Reader_Type_XF:
//global $dateFormats, $numberFormats;
$indexCode = ord($this->data[$pos+6]) | ord($this->data[$pos+7]) << 8;
//echo “\nType.XF “.count($this->formatRecords[‘xfrecords’]).” $indexCode “;
if (array_key_exists($indexCode, $this->dateFormats)) {
//echo “isdate “.$dateFormats[$indexCode];
$this->formatRecords[‘xfrecords’][] = array(
‘type’ => ‘date’,
‘format’ => $this->dateFormats[$indexCode]
);
}elseif (array_key_exists($indexCode, $this->numberFormats)) {
//echo “isnumber “.$this->numberFormats[$indexCode];
$this->formatRecords[‘xfrecords’][] = array(
‘type’ => ‘number’,
‘format’ => $this->numberFormats[$indexCode]
);
}else{
$isdate = FALSE;
if ($indexCode > 0){
if (isset($this->formatRecords[$indexCode]))
$formatstr = $this->formatRecords[$indexCode];
//echo ‘.other.’;
//echo “\ndate-time=$formatstr=\n”;
if ($formatstr)
if (preg_match(“/[^hmsday\/\-:\s]/i”, $formatstr) == 0) { // found day and time format
$isdate = TRUE;
$formatstr = str_replace(‘mm’, ‘i’, $formatstr);
$formatstr = str_replace(‘h’, ‘H’, $formatstr);
//echo “\ndate-time $formatstr \n”;
}
}
if ($isdate){
$this->formatRecords[‘xfrecords’][] = array(
‘type’ => ‘date’,
‘format’ => $formatstr,
);
}else{
$this->formatRecords[‘xfrecords’][] = array(
‘type’ => ‘other’,
‘format’ => ”,
‘code’ => $indexCode
);
}
}
//echo “\n”;
break;
case Spreadsheet_Excel_Reader_Type_NINETEENFOUR:
//echo “Type.NINETEENFOUR\n”;
$this->nineteenFour = (ord($this->data[$pos+4]) == 1);
break;
case Spreadsheet_Excel_Reader_Type_BOUNDSHEET:
//echo “Type.BOUNDSHEET\n”;
$rec_offset = $this->_GetInt4d($this->data, $pos+4);
$rec_typeFlag = ord($this->data[$pos+8]);
$rec_visibilityFlag = ord($this->data[$pos+9]);
$rec_length = ord($this->data[$pos+10]);
if ($version == Spreadsheet_Excel_Reader_BIFF8){
$chartype =  ord($this->data[$pos+11]);
if ($chartype == 0){
$rec_name    = substr($this->data, $pos+12, $rec_length);
} else {
$rec_name    = $this->_encodeUTF16(substr($this->data, $pos+12, $rec_length*2));
}
}elseif ($version == Spreadsheet_Excel_Reader_BIFF7){
$rec_name    = substr($this->data, $pos+11, $rec_length);
}
$this->boundsheets[] = array(‘name’=>$rec_name,
‘offset’=>$rec_offset);
break;
}
//echo “Code = “.base_convert($r[‘code’],10,16).”\n”;
$pos += $length + 4;
$code = ord($this->data[$pos]) | ord($this->data[$pos+1])<<8;
$length = ord($this->data[$pos+2]) | ord($this->data[$pos+3])<<8;
//$r = &$this->nextRecord();
//echo “1 Code = “.base_convert($r[‘code’],10,16).”\n”;
}
foreach ($this->boundsheets as $key=>$val){
$this->sn = $key;
$this->_parsesheet($val[‘offset’]);
}
return true;
}
function _parsesheet($spos){
$cont = true;
// read BOF
$code = ord($this->data[$spos]) | ord($this->data[$spos+1])<<8;
$length = ord($this->data[$spos+2]) | ord($this->data[$spos+3])<<8;
$version = ord($this->data[$spos + 4]) | ord($this->data[$spos + 5])<<8;
$substreamType = ord($this->data[$spos + 6]) | ord($this->data[$spos + 7])<<8;
if (($version != Spreadsheet_Excel_Reader_BIFF8) && ($version != Spreadsheet_Excel_Reader_BIFF7)) {
return -1;
}
if ($substreamType != Spreadsheet_Excel_Reader_Worksheet){
return -2;
}
//echo “Start parse code=”.base_convert($code,10,16).” version=”.base_convert($version,10,16).” substreamType=”.base_convert($substreamType,10,16).””.”\n”;
$spos += $length + 4;
//var_dump($this->formatRecords);
//echo “code $code $length”;
while($cont) {
//echo “mem= “.memory_get_usage().”\n”;
//            $r = &$this->file->nextRecord();
$lowcode = ord($this->data[$spos]);
if ($lowcode == Spreadsheet_Excel_Reader_Type_EOF) break;
$code = $lowcode | ord($this->data[$spos+1])<<8;
$length = ord($this->data[$spos+2]) | ord($this->data[$spos+3])<<8;
$spos += 4;
$this->sheets[$this->sn][‘maxrow’] = $this->_rowoffset – 1;
$this->sheets[$this->sn][‘maxcol’] = $this->_coloffset – 1;
//echo “Code=”.base_convert($code,10,16).” $code\n”;
unset($this->rectype);
$this->multiplier = 1; // need for format with %
switch ($code) {
case Spreadsheet_Excel_Reader_Type_DIMENSION:
//echo ‘Type_DIMENSION ‘;
if (!isset($this->numRows)) {
if (($length == 10) ||  ($version == Spreadsheet_Excel_Reader_BIFF7)){
$this->sheets[$this->sn][‘numRows’] = ord($this->data[$spos+2]) | ord($this->data[$spos+3]) << 8;
$this->sheets[$this->sn][‘numCols’] = ord($this->data[$spos+6]) | ord($this->data[$spos+7]) << 8;
} else {
$this->sheets[$this->sn][‘numRows’] = ord($this->data[$spos+4]) | ord($this->data[$spos+5]) << 8;
$this->sheets[$this->sn][‘numCols’] = ord($this->data[$spos+10]) | ord($this->data[$spos+11]) << 8;
}
}
//echo ‘numRows ‘.$this->numRows.’ ‘.$this->numCols.”\n”;
break;
case Spreadsheet_Excel_Reader_Type_MERGEDCELLS:
$cellRanges = ord($this->data[$spos]) | ord($this->data[$spos+1])<<8;
for ($i = 0; $i < $cellRanges; $i++) {
$fr =  ord($this->data[$spos + 8*$i + 2]) | ord($this->data[$spos + 8*$i + 3])<<8;
$lr =  ord($this->data[$spos + 8*$i + 4]) | ord($this->data[$spos + 8*$i + 5])<<8;
$fc =  ord($this->data[$spos + 8*$i + 6]) | ord($this->data[$spos + 8*$i + 7])<<8;
$lc =  ord($this->data[$spos + 8*$i + 8]) | ord($this->data[$spos + 8*$i + 9])<<8;
//$this->sheets[$this->sn][‘mergedCells’][] = array($fr + 1, $fc + 1, $lr + 1, $lc + 1);
if ($lr – $fr > 0) {
$this->sheets[$this->sn][‘cellsInfo’][$fr+1][$fc+1][‘rowspan’] = $lr – $fr + 1;
}
if ($lc – $fc > 0) {
$this->sheets[$this->sn][‘cellsInfo’][$fr+1][$fc+1][‘colspan’] = $lc – $fc + 1;
}
}
//echo “Merged Cells $cellRanges $lr $fr $lc $fc\n”;
break;
case Spreadsheet_Excel_Reader_Type_RK:
case Spreadsheet_Excel_Reader_Type_RK2:
//echo ‘Spreadsheet_Excel_Reader_Type_RK’.”\n”;
$row = ord($this->data[$spos]) | ord($this->data[$spos+1])<<8;
$column = ord($this->data[$spos+2]) | ord($this->data[$spos+3])<<8;
$rknum = $this->_GetInt4d($this->data, $spos + 6);
$numValue = $this->_GetIEEE754($rknum);
//echo $numValue.” “;
if ($this->isDate($spos)) {
list($string, $raw) = $this->createDate($numValue);
}else{
$raw = $numValue;
if (isset($this->_columnsFormat[$column + 1])){
$this->curformat = $this->_columnsFormat[$column + 1];
}
$string = sprintf($this->curformat, $numValue * $this->multiplier);
//$this->addcell(RKRecord($r));
}
$this->addcell($row, $column, $string, $raw);
//echo “Type_RK $row $column $string $raw {$this->curformat}\n”;
break;
case Spreadsheet_Excel_Reader_Type_LABELSST:
$row        = ord($this->data[$spos]) | ord($this->data[$spos+1])<<8;
$column     = ord($this->data[$spos+2]) | ord($this->data[$spos+3])<<8;
$xfindex    = ord($this->data[$spos+4]) | ord($this->data[$spos+5])<<8;
$index  = $this->_GetInt4d($this->data, $spos + 6);
//var_dump($this->sst);
$this->addcell($row, $column, $this->sst[$index]);
//echo “LabelSST $row $column $string\n”;
break;
case Spreadsheet_Excel_Reader_Type_MULRK:
$row        = ord($this->data[$spos]) | ord($this->data[$spos+1])<<8;
$colFirst   = ord($this->data[$spos+2]) | ord($this->data[$spos+3])<<8;
$colLast    = ord($this->data[$spos + $length – 2]) | ord($this->data[$spos + $length – 1])<<8;
$columns    = $colLast – $colFirst + 1;
$tmppos = $spos+4;
for ($i = 0; $i < $columns; $i++) {
$numValue = $this->_GetIEEE754($this->_GetInt4d($this->data, $tmppos + 2));
if ($this->isDate($tmppos-4)) {
list($string, $raw) = $this->createDate($numValue);
}else{
$raw = $numValue;
if (isset($this->_columnsFormat[$colFirst + $i + 1])){
$this->curformat = $this->_columnsFormat[$colFirst + $i + 1];
}
$string = sprintf($this->curformat, $numValue * $this->multiplier);
}
//$rec[‘rknumbers’][$i][‘xfindex’] = ord($rec[‘data’][$pos]) | ord($rec[‘data’][$pos+1]) << 8;
$tmppos += 6;
$this->addcell($row, $colFirst + $i, $string, $raw);
//echo “MULRK $row “.($colFirst + $i).” $string\n”;
}
//MulRKRecord($r);
// Get the individual cell records from the multiple record
//$num = ;
break;
case Spreadsheet_Excel_Reader_Type_NUMBER:
$row    = ord($this->data[$spos]) | ord($this->data[$spos+1])<<8;
$column = ord($this->data[$spos+2]) | ord($this->data[$spos+3])<<8;
$tmp = unpack(“ddouble”, substr($this->data, $spos + 6, 8)); // It machine machine dependent
if ($this->isDate($spos)) {
list($string, $raw) = $this->createDate($tmp[‘double’]);
//   $this->addcell(DateRecord($r, 1));
}else{
//$raw = $tmp[”];
if (isset($this->_columnsFormat[$column + 1])){
$this->curformat = $this->_columnsFormat[$column + 1];
}
$raw = $this->createNumber($spos);
$string = sprintf($this->curformat, $raw * $this->multiplier);
//   $this->addcell(NumberRecord($r));
}
$this->addcell($row, $column, $string, $raw);
//echo “Number $row $column $string\n”;
break;
case Spreadsheet_Excel_Reader_Type_FORMULA:
case Spreadsheet_Excel_Reader_Type_FORMULA2:
$row    = ord($this->data[$spos]) | ord($this->data[$spos+1])<<8;
$column = ord($this->data[$spos+2]) | ord($this->data[$spos+3])<<8;
if ((ord($this->data[$spos+6])==0) && (ord($this->data[$spos+12])==255) && (ord($this->data[$spos+13])==255)) {
//String formula. Result follows in a STRING record
//echo “FORMULA $row $column Formula with a string<br>\n”;
} elseif ((ord($this->data[$spos+6])==1) && (ord($this->data[$spos+12])==255) && (ord($this->data[$spos+13])==255)) {
//Boolean formula. Result is in +2; 0=false,1=true
} elseif ((ord($this->data[$spos+6])==2) && (ord($this->data[$spos+12])==255) && (ord($this->data[$spos+13])==255)) {
//Error formula. Error code is in +2;
} elseif ((ord($this->data[$spos+6])==3) && (ord($this->data[$spos+12])==255) && (ord($this->data[$spos+13])==255)) {
//Formula result is a null string.
} else {
// result is a number, so first 14 bytes are just like a _NUMBER record
$tmp = unpack(“ddouble”, substr($this->data, $spos + 6, 8)); // It machine machine dependent
if ($this->isDate($spos)) {
list($string, $raw) = $this->createDate($tmp[‘double’]);
//   $this->addcell(DateRecord($r, 1));
}else{
//$raw = $tmp[”];
if (isset($this->_columnsFormat[$column + 1])){
$this->curformat = $this->_columnsFormat[$column + 1];
}
$raw = $this->createNumber($spos);
$string = sprintf($this->curformat, $raw * $this->multiplier);
//   $this->addcell(NumberRecord($r));
}
$this->addcell($row, $column, $string, $raw);
//echo “Number $row $column $string\n”;
}
break;
case Spreadsheet_Excel_Reader_Type_BOOLERR:
$row    = ord($this->data[$spos]) | ord($this->data[$spos+1])<<8;
$column = ord($this->data[$spos+2]) | ord($this->data[$spos+3])<<8;
$string = ord($this->data[$spos+6]);
$this->addcell($row, $column, $string);
//echo ‘Type_BOOLERR ‘.”\n”;
break;
case Spreadsheet_Excel_Reader_Type_ROW:
case Spreadsheet_Excel_Reader_Type_DBCELL:
case Spreadsheet_Excel_Reader_Type_MULBLANK:
break;
case Spreadsheet_Excel_Reader_Type_LABEL:
$row    = ord($this->data[$spos]) | ord($this->data[$spos+1])<<8;
$column = ord($this->data[$spos+2]) | ord($this->data[$spos+3])<<8;
$this->addcell($row, $column, substr($this->data, $spos + 8, ord($this->data[$spos + 6]) | ord($this->data[$spos + 7])<<8));
// $this->addcell(LabelRecord($r));
break;
case Spreadsheet_Excel_Reader_Type_EOF:
$cont = false;
break;
default:
//echo ‘ unknown :’.base_convert($r[‘code’],10,16).”\n”;
break;
}
$spos += $length;
}
if (!isset($this->sheets[$this->sn][‘numRows’]))
$this->sheets[$this->sn][‘numRows’] = $this->sheets[$this->sn][‘maxrow’];
if (!isset($this->sheets[$this->sn][‘numCols’]))
$this->sheets[$this->sn][‘numCols’] = $this->sheets[$this->sn][‘maxcol’];
}
function isDate($spos){
//$xfindex = GetInt2d(, 4);
$xfindex = ord($this->data[$spos+4]) | ord($this->data[$spos+5]) << 8;
//echo ‘check is date ‘.$xfindex.’ ‘.$this->formatRecords[‘xfrecords’][$xfindex][‘type’].”\n”;
//var_dump($this->formatRecords[‘xfrecords’][$xfindex]);
if ($this->formatRecords[‘xfrecords’][$xfindex][‘type’] == ‘date’) {
$this->curformat = $this->formatRecords[‘xfrecords’][$xfindex][‘format’];
$this->rectype = ‘date’;
return true;
} else {
if ($this->formatRecords[‘xfrecords’][$xfindex][‘type’] == ‘number’) {
$this->curformat = $this->formatRecords[‘xfrecords’][$xfindex][‘format’];
$this->rectype = ‘number’;
if (($xfindex == 0x9) || ($xfindex == 0xa)){
$this->multiplier = 100;
}
}else{
$this->curformat = $this->_defaultFormat;
$this->rectype = ‘unknown’;
}
return false;
}
}
function createDate($numValue){
if ($numValue > 1){
$utcDays = $numValue – ($this->nineteenFour ? Spreadsheet_Excel_Reader_utcOffsetDays1904 : Spreadsheet_Excel_Reader_utcOffsetDays);
$utcValue = round($utcDays * Spreadsheet_Excel_Reader_msInADay);
$string = date ($this->curformat, $utcValue);
$raw = $utcValue;
}else{
$raw = $numValue;
$hours = floor($numValue * 24);
$mins = floor($numValue * 24 * 60) – $hours * 60;
$secs = floor($numValue * Spreadsheet_Excel_Reader_msInADay) – $hours * 60 * 60 – $mins * 60;
$string = date ($this->curformat, mktime($hours, $mins, $secs));
}
return array($string, $raw);
}
function createNumber($spos){
$rknumhigh = $this->_GetInt4d($this->data, $spos + 10);
$rknumlow = $this->_GetInt4d($this->data, $spos + 6);
//for ($i=0; $i<8; $i++) { echo ord($this->data[$i+$spos+6]) . ” “; } echo “<br>”;
$sign = ($rknumhigh & 0x80000000) >> 31;
$exp =  ($rknumhigh & 0x7ff00000) >> 20;
$mantissa = (0x100000 | ($rknumhigh & 0x000fffff));
$mantissalow1 = ($rknumlow & 0x80000000) >> 31;
$mantissalow2 = ($rknumlow & 0x7fffffff);
$value = $mantissa / pow( 2 , (20- ($exp – 1023)));
if ($mantissalow1 != 0) $value += 1 / pow (2 , (21 – ($exp – 1023)));
$value += $mantissalow2 / pow (2 , (52 – ($exp – 1023)));
//echo “Sign = $sign, Exp = $exp, mantissahighx = $mantissa, mantissalow1 = $mantissalow1, mantissalow2 = $mantissalow2<br>\n”;
if ($sign) {$value = -1 * $value;}
return  $value;
}
function addcell($row, $col, $string, $raw = ”){
//echo “ADD cel $row-$col $string\n”;
$this->sheets[$this->sn][‘maxrow’] = max($this->sheets[$this->sn][‘maxrow’], $row + $this->_rowoffset);
$this->sheets[$this->sn][‘maxcol’] = max($this->sheets[$this->sn][‘maxcol’], $col + $this->_coloffset);
$this->sheets[$this->sn][‘cells’][$row + $this->_rowoffset][$col + $this->_coloffset] = $string;
if ($raw)
$this->sheets[$this->sn][‘cellsInfo’][$row + $this->_rowoffset][$col + $this->_coloffset][‘raw’] = $raw;
if (isset($this->rectype))
$this->sheets[$this->sn][‘cellsInfo’][$row + $this->_rowoffset][$col + $this->_coloffset][‘type’] = $this->rectype;
}
function _GetIEEE754($rknum){
if (($rknum & 0x02) != 0) {
$value = $rknum >> 2;
} else {
//mmp
// first comment out the previously existing 7 lines of code here
//                $tmp = unpack(“d”, pack(“VV”, 0, ($rknum & 0xfffffffc)));
//                //$value = $tmp[”];
//                if (array_key_exists(1, $tmp)) {
//                    $value = $tmp[1];
//                } else {
//                    $value = $tmp[”];
//                }
// I got my info on IEEE754 encoding from
// http://research.microsoft.com/~hollasch/cgindex/coding/ieeefloat.html
// The RK format calls for using only the most significant 30 bits of the
// 64 bit floating point value. The other 34 bits are assumed to be 0
// So, we use the upper 30 bits of $rknum as follows…
$sign = ($rknum & 0x80000000) >> 31;
$exp = ($rknum & 0x7ff00000) >> 20;
$mantissa = (0x100000 | ($rknum & 0x000ffffc));
$value = $mantissa / pow( 2 , (20- ($exp – 1023)));
if ($sign) {$value = -1 * $value;}
//end of changes by mmp
}
if (($rknum & 0x01) != 0) {
$value /= 100;
}
return $value;
}
function _encodeUTF16($string){
$result = $string;
if ($this->_defaultEncoding){
switch ($this->_encoderFunction){
case ‘iconv’ : $result = iconv(‘UTF-16LE’, $this->_defaultEncoding, $string);
break;
case ‘mb_convert_encoding’ : $result = mb_convert_encoding($string, $this->_defaultEncoding, ‘UTF-16LE’ );
break;
}
}
return $result;
}
function _GetInt4d($data, $pos) {
return ord($data[$pos]) | (ord($data[$pos+1]) << 8) | (ord($data[$pos+2]) << 16) | (ord($data[$pos+3]) << 24);
}
}
?>
2) Then make another file and include that library and write following code
<?php
require_once ‘Excel/reader.php’;
$data = new Spreadsheet_Excel_Reader();
$data->read(‘Senator.xls’);
error_reporting(E_ALL ^ E_NOTICE);
echo “<table border=’1′>”;
echo “<tr><th>First Name</th><th>Middle Name</th><th>Last Name</th><th>Email ID</th></tr>”;
for ($j = 1; $j <= $data->sheets[0][‘numCols’]; $j++)
{
echo “<tr>”;
echo “<td>”;
echo $data->sheets[0][‘cells’][$j+1][1];
echo “</td>”;
echo “<td>”;
echo $data->sheets[0][‘cells’][$j+1][2];
echo “</td>”;
echo “<td>”;
echo $data->sheets[0][‘cells’][$j+1][3];
echo “</td>”;
echo “<td>”;
echo $data->sheets[0][‘cells’][$j+1][4];
echo “</td>”;
//echo “<br>”;
echo “</tr>”;
}
echo “</table>”;
?>

<?php
require_once ‘Excel/reader.php’;
$data = new Spreadsheet_Excel_Reader();
$data->read(‘Senator.xls’);
error_reporting(E_ALL ^ E_NOTICE);echo “<table border=’1′>”;echo “<tr><th>First Name</th><th>Middle Name</th><th>Last Name</th><th>Email ID</th></tr>”;
for ($j = 1; $j <= $data->sheets[0][‘numCols’]; $j++) {echo “<tr>”; echo “<td>”; echo $data->sheets[0][‘cells’][$j+1][1];echo “</td>”; echo “<td>”; echo $data->sheets[0][‘cells’][$j+1][2];echo “</td>”;
echo “<td>”; echo $data->sheets[0][‘cells’][$j+1][3];echo “</td>”;
echo “<td>”;
echo $data->sheets[0][‘cells’][$j+1][4];echo “</td>”; //echo “<br>”;
echo “</tr>”; }
echo “</table>”; ?>

Excel Data Read

Manage & Developed by Sptechnolab.com

Read More
what is appDelegate?
September 5, 2011 admin

AppDelgage image

A delegate object is an object that gets notified when the object to which it is connected reaches certain events or states.
That is a delegate (a helper object that takes responsibility for, or aids in, some of the tasks an object is responsible for) to the UIApplication object. It is normally used to perform tasks on application startup and shutdown, handling URL open requests and similar application-wide tasks
AppDelegate is handling special UIApplication states.This lets you do initialization/cleanup of your app at the right time.So basically the delegate is responsible for monitoring when it is safe to open/close things, terminate the app etc, and it talks to the application, and gives it accurate & critical information, with regards to how & when to do these tasks?.
The only way I can imagine it, is a security guard who is called by the staff inside a building, and asked if it is safe to open the security door; he can answer YES or NO.
The only way I can imagine it, is a security guard who is called by the staff inside a building, and asked if it is safe to open the security door; he can answer YES or NO.
Like ….
applicationDidFinishLaunching: – for handling on-startup configuration and construction. which will be called when the app has finished launching
applicationWillTerminate: – for cleaning up at the end
You should avoid putting other functionality in the AppDelegate since they don’t really belong there.Many people lump these things into their AppDelegate because they are lazy or they think the AppDelegate controls the whole program. You should avoid centralizing in your AppDelegate since it muddies the areas of concern in the app and doesn’t scale.
a delegate is an object that another object defers to on behavior and informs about changes in its state.
The AppDelegate just sits there doing nothing, waiting to be told that something potentially important will happen. The application/iPhone OS is the one doing the work and calling the AppDelegate and it might want to respond to in your code.
Here is a complete scenario:

(Starting at the iPhone’s home screen)
1. A user taps on your app’s icon.
2. The iPhone OS loads your app into memory and whatever else it needs to run your app. At this point, the OS has control.
3. The iPhone OS finishes its launch procedure with your app, and is ready to hand over control to it.
4. The OS calls your AppDelegate’s applicationDidFinishLaunching method.
5. Your code is now in control, starting with whatever is in the applicationDidFinishLaunching method of your AppDelegate.
.
. (User uses the app for a while)
.
6. User taps on the Home button to quit your app.
7. Since your app has no direct way of knowing when the Home button is tapped, the iPhone OS sends an applicationWillTerminate message to your AppDelegate, so you can clean up any open files, etc. before the app quits.

There are also other notifications that your AppDelegate can receive between launching and quitting, such as if your app is about to run out of memory.

managed and developed by sptechnolab

Read More
Mac Application
September 1, 2011 admin

Where application stay and what layer of os our apps communicate?

ios has basic four layer and our apps stay above these layers. And communicate with directly or indirectly

these layers made from severals Framework are made which is basically libraries(made from APIs) to develope apps. .

  1. Core OSosx mach 3.0 (kernal)BSD(derrived from unix os) keychain (password management system)bonjour (service discovery protocol. It locate devices like printer, other computer and services of those devices using local network)

    sockets, security, certificates,file system

    kernal power management

  2. Core Servicescollections,address book,networking,file access,sq lite, core location, threading, preferences, URL utilities
  3. Mediacore audio,open AL, audio mixing, audio recoring, video playback, .jpg .png .tiff .pdf ,quartz (2d) ,core animaiton, open GL(ES)

4.Cocoa Touch

multi touch, core motion, view, localization, controlls, alert, web view, camara , image picker, hierarchy map kit

Cocoa touch is important layer which consist of UIKit framework responsible for UI handing in ios

tools :- xcode (IDE), interface builder (design GUIs) and instruments (detect memory leak on device)

language:- [display setTextColor:[UIColor blackColor]];

framework :- foundation(core data), UI Kit (map kit, core motion)

design strategies :- MVC(standard design pattern)

mvc keeps data,logic and way to represent. That make application very flexible

mvc devide an application into three group. Each letter represent group name

model :- stand for data. Data means whatever you want to show to user

conroller :- stands for how the data is going to show the user. It means data is not directly dispaly to user

view:- help the controller to get the display data

Read More
AJAX Asynchronous JavaScript and XML
August 6, 2011 admin
| Ajax
AJAX
Asynchronous JavaScript and XML
Speed and Dexterity for futuristic web enabled applications…
A conventional web application essentially submits forms, filled by users to a web server, web page back. As re slowly.

Ajax on the other hand enables web applications to respond more quickly to numerous types of user interface and to avoid continually transferring unchanged information across the network. Ajax technologies are open and therefore are compatible with all JavaScriptenabled browsers regardless of the operating systems.

What is Ajax?

Ajax is a blend of several technologies. Ajax stands for-Asynchronous JavaScript and XML. It is a technique used to develop web based applications. It incorporates:

Features:

XHTML and CSS for marking up and styling information.
The Document Object Model, which is manipulated through JavaScript to dynamically demonstrate and interrelate with the information presented
Retrieval of asynchronous data using XMLHttpRequest
XML is generally used, though any format works; counting preformatted HTML, plain text, JSON and even EBML.Web applications developed on Ajax technology can perform most of the functions that the native application of the user’s system can. This is because while interacting with the server on which they reside, a very small amount of data is exchanged back and forth at a time. This leads to pages being updated in the user’s browser only, rather than being refreshed completely. It’s a model modified from the web’s unique use as a hypertext medium.

Functional aspects:
In applications developed through this technology every user’s action that would generally generate an HTTP request gets transformed into JavaScript and summons the Ajax engine.

To enhance the functional timing, any reaction to user’s action that does not need a trip back to the server – such as simple data confirmation, data edition in memory, and a few navigations – are handled by the engine on its own.

If the engine requires some information from the server so as to present a response, such as: submission of data for processing, loading added interface code, or recovering new data — the engine places these requests synchronously, generally using XML, without delaying a user’s interaction with the application.

Ajax development India

Accessibility:
Using Ajax technology in web applications proves to be a major challenge for developers involved in adhering to WAI convenience guidelines. Developers need to offer fallback options for users on other platforms or browsers, as most methods of Ajax execution rely on characteristics, present only on desktop graphical browsers.

Web developers employ Ajax in some cases to offer content only to particular portions of a web page, allowing data management without incurring the cost of re-rendering the complete page on the web browser.

Numerous famous applications have been developed by deploying the Ajax such as: Google Maps and Gmail, Yahoo’s Flicker, America Online’s AIM Mail, 24SevenOffice and Microsoft’s Virtual Earth. These prestigious examples of Ajax usage demonstrate flexibility and effectiveness of the web programming model.

How is Ajax Different?
An Ajax application reduces the interaction time on the web by introducing a mediator – an Ajax engine – connecting the user and the server. Rather than loading a webpage, at the start of the session, the browser loads an Ajax engine which is written in JavaScript and generally stored in a hidden frame. This engine is responsible for both depicting the interface the user sees as well as communicating with the server on the user’s behalf.

The Ajax engine allows the user’s communication with the application to happen asynchronously without affecting communication with the server. This leads to users never staring at a blank browser window.

All user actions that would generally create an HTTP request take the form of a JavaScript call to the Ajax engine. Any reply to a user action that doesn’t necessitate a trip back to the server is handled by the engine on its own. Such actions include: simple data validation, editing data in memory, and even some navigation. If the engine needs something from the server in order to respond – if it’s submitting data for processing, loading additional interface code, or retrieving new data – the engine makes those requests asynchronously, usually using XML, without stalling a user’s interaction with the application.

Develop & Manage By : sptechnolab

Read More
Artificial Intelligence
August 6, 2011 admin

def:-The branch of computer science concerned with making computers behave like humans as think people better ,at machine think.

Artificial intelligence includes:-

  • games playing: programming computers to play games such as chess and checkers
  • expert system : programming computers to make decisions in real-life situations (for example, some expert systems help doctors diagnose diseases based on symptoms)
  • natural languages : programming computers to understand natural human languages
  • neural networks : systems that simulate intelligence by attempting to reproduce the types of physical connections that occur in animal brains
  • robotics : programming computers to see and hear and react to other sensory stimuli
  • Develop & Manage By : sptechnolab

    Read More
    About Share point
    August 6, 2011 admin

    Q:-what is Share point ?

    A:-Sharepoint is a browser-based platform from Microsoft that allows for easier, timely and effective documents management.

    share point furthermore enhance communication within an organization if appropriately used. There is no need for a person to walk around the company offices passing messages to specific individuals since that is centrally managed using sharepoint. Information is equally available to the intended person at the right time and there are no cases of delay or distortion. The recipient receives his message in its original form and on time which enables him to send a reply if any. Every employee is accorded specific privileges as per their needs thus everybody gains access to information that is helpful to him only. Employees will only handle what is theirs, supervisors deal with what concerns them and any other person in an organization will follow the cue.

    Develop & Manage By : sptechnolab

    Read More
    Rich Internet Application & Benefits
    August 6, 2011 admin
    • A Rich Internet Application (RIA) is a web application that has many of the characteristics of desktop applications, typically delivered either by way of a site-specific browser, via a browser plug-in, independent sandboxes, or virtual machines. …
    • (RIA) — a web application which functionality and interface capabilities are identical or close to its desktop analogs. The other important specific of RIA is that it can work in offline mode.

    About RIA

    Rich Internet Application is a web application resembling the features of a desktop application. These web applications differ from the conventional web applications in numerous ways. RIA enable effective communication between you and your clients. RIA applications include several features which counter the disadvantages of traditional websites. RIA enhances the data performance as the server communication is minimized to a great extent. This helps in saving a lot of time when browsing the website. That coupled with stunning visuals, rich graphics and state-of-the-art backend integration, provides a much better user experience across the verticals.

    

    Benefits of  RIA’s

    RIAs offer organizations a proven, cost-effective way to deliver modern applications with real business benefits:

    • Offer users a richer, more engaging experience.
    • Keep pace with users’ rising expectations.
    • Increase customer loyalty and generate higher profits.
    • Leverage existing personnel, processes, and infrastructure

    Develop & Manage By : sptechnolab

    Read More
    Develop an e-marketing Plan
    August 6, 2011 admin
    E-marketing means using digital technologies such as websites, mobile devices and social networking to help reach your customer base, create awareness of your brand and sell your goods or services. These technologies can be used cheaply and effectively, whatever the size of your company or your business model.
    The basics of marketing remain the same – creating a strategy to deliver the right messages to the right people. Though businesses will continue to make use of traditional marketing methods, such as advertising, direct mail and PR, e-marketing adds a whole new element to the marketing mix. Its flexible and cost-effective nature makes it particularly suitable for small businesses.
    This guide describes the benefits of e-marketing, what the stages are for developing an e-marketing plan and also outlines some of legal issues that you will need to consider. The guide also provides a basic e-marketing plan template that you can download and use for your own business.

    E-marketing means using digital technologies such as websites, mobile devices and social networking to help reach your customer base, create awareness of your brand and sell your goods or services. These technologies can be used cheaply and effectively, whatever the size of your company or your business model.
    The basics of marketing remain the same – creating a strategy to deliver the right messages to the right people. Though businesses will continue to make use of traditional marketing methods, such as advertising, direct mail and PR, e-marketing adds a whole new element to the marketing mix. Its flexible and cost-effective nature makes it particularly suitable for small businesses.
    This guide describes the benefits of e-marketing, what the stages are for developing an e-marketing plan and also outlines some of legal issues that you will need to consider. The guide also provides a basic e-marketing plan template that you can download and use for your own business.

    Benefits with e-marketing

    Trackable, measurable results,Global reach,Lower cost ,Personalisation,Openness,Social currency,Improved conversion rates

    Develop & Manage By : sptechnolab

    Read More
    How Silverlight Development Benefits you?
    August 3, 2011 admin

    Microsoft Silverlight development is recognized as the best development platforms for Rich Internet Applications, due to below facilities:

    • High quality video clips embedded in websites for scintillating web experience.
    • High degree of cross browser and cross platform compatibility enables high performance RIA development.
    • Exceptionally clear images because of better Pixel shade effects.
    • The latest Silverlight version comes with new animation easing features that bring in more fluidity in 3D animation to create richer visual effects.
    • Silverlight developer can easily animate the text within RIA for better end-user experience.
    • Silverlight application development is SEO friendly because such applications are delivered to browser in XAML. This makes it convenient for engines to index application for better SEO results.
    • It has a rich class library and UI library for greater user experience.
    • Silverlight has capability to stream video files on web with best quality and cost effectively.

    Develop & Manage By : sptechnolab

    Read More
    what is system.out.println in java
    August 3, 2011 admin

    system is class of java.lang package which is default package in java

    class System

    {

    public static printStream out=new printStream(object of output stream class);

    }

    out is member varible of system class

    here output stream object means where to print, whether on console or else.

    printStream class is Java.io package class

    class printStream

    {

    public void println();

    }

    println is member function of printStream class

    Develop & Manage By : sptechnolab

    Read More
    Difference : Cloud Computing vs Grid Computing
    August 3, 2011 admin

      

    Cloud Computing v/s Grid Computing

    1:-Cloud computing  is the use of a 3rd party service(Web Services) to perform computing needs. Here cloud depicts Internet . With cloud computing, companies can scale up to massive capacities in an instant without having to invest in new infrastructure. Cloud computing is benefit to small and medium-sized businesses. Basically consumers use what they need on the Internet and pay only for what they use.

    2:-Cloud computing incorporates infrastructure as a service (IaaS), platform as a service (PaaS) and software as a service (SaaS) as well as Web 2.0

    3:-Cloud computing eliminates the costs and complexity of buying, configuring, and managing the hardware and software needed to build and deploy applications, these applications are delivered as a service over the Internet (the cloud).

    1:-Grid computing is a form of distributed computing whereby resources of many computers in a network is used at the same time, to solve a single problem. Grid systems are designed for collaborative sharing of resources. It can also be thought of as distributed and large-scale cluster computing

    2:-Grid computing  is making big contributions to scientific research, helping scientists around the world to analyze and store massive amounts of data by sharing computing resources. Here are some real world examples of Grid Computing.

    3:-Grids tend to be more loosely coupled, heterogeneous, and geographically dispersed compared to conventional cluster computing systems.

    Develop & Manage By : sptechnolab

    Read More
    Flex 3 and PHP
    July 23, 2011 admin

    PHP applications usually use HTML and JavaScript client-side technologies to render their user-interfaces. Since Flex is rendered in the browser and can integrate easily with PHP on the server-side, it is a perfect choice for more dynamic UI interfaces for PHP.

    b

    What is PHP?
    • PHP is an interpreted scripting language that allows a web server to create dynamic web pages or web services. It is a back-end server technology.
    • You use PHP to generate HTML programmatically before it is sent by the web server to a requesting client browser.
    • PHP is also used to process form data sent from a client browser.
    • The web server invokes the PHP interpreter only when a URL is requested. All program state is lost between requests without special programming.
    • A dynamic web application written in PHP consists of a number of .php files on the host server, which are created by a developer with a text editor or IDE.
    • PHP can talk directly to a database server such as MySQL.
    • Because PHP creates HTML, intimate knowledge of HTML coding is also required for professional results.
    • Implementing event-driven user-interfaces and animation effects requires use of JavaScript and HTML.

    How does it compare to Flex?

    • With PHP, both application logic and layout execute on the server, which returns HTML to the browser. With Flex, a SWF file embedded in the web page executes on the client machine.
    • The GUI of a PHP application is generated HTML and optionally supporting JavaScript.
    • All the advantages and limitations of HTML-based design apply to a PHP-based application. Flex is generally not limited by HTML layout constraints.
    • PHP can talk directly with a database server, and therefore can be used to write web services. Flex does not communicate with the database directly; however, it can consume data from a web service and display it.

    Develop & Manage By :sptechnolab

    Read More
    How add YouTube Video in Flash ?
    April 29, 2011 admin

    This is simple code which you have to put in action file of flash frame.
    And also you just add two button on flash design frame named:
    [1]play_btn, [2]pause_btn.
    And that’s it.  It  will works just check it out…

    Actionscript 3.0 Code:

    Security.allowDomain("www.youtube.com");
    
    var my_player:Object;
    
    var my_loader:Loader = new Loader();
    my_loader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3"));
    my_loader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit);
    
    function onLoaderInit(e:Event):void{
    addChild(my_loader);
    my_player = my_loader.content;
    my_player.addEventListener("onReady", onPlayerReady); 
    }
    
    function onPlayerReady(e:Event):void{
    my_player.setSize(640,360);
    my_player.cueVideoById("5R2wE8Sduhs",0); // Here you can set only  id of YouTube video…
    }
    
    play_btn.addEventListener(MouseEvent.CLICK, playVid); 
    function playVid(e:MouseEvent):void { 
    my_player.playVideo(); 
    } 
    pause_btn.addEventListener(MouseEvent.CLICK, pauseVid); 
    function pauseVid(e:MouseEvent):void { 
    my_player.pauseVideo();
    }
    
     


    I hope that you learnt something new about using the YouTube API in Flash.


    Demo Of YouTube Video


    Thanks…

    Develop & Manage By :sptechnolab

    Read More
    Import Data With Excel to MySql
    February 1, 2011 admin

    Excel To MySQL

    To import data from Excel 2 MySQL is very simple using the LOAD DATA command from the MySQL Command prompt.

    1. Save your Excel data as a csv file (In Excel 2007 using Save As)

    2. Check the saved file using a text editor such as Notepad to see what it actually looks like, i.e. what delimiter was used etc.

    3. Start the MySQL Command Prompt (enter username and password etc.)

    4. Enter this command:

    LOAD DATA LOCAL INFILE ‘C:\\excel.csv’ INTO TABLE DATABASE_NAME.TABLE_NAME  FIELDS TERMINATED BY ‘,’ LINES TERMINATED BY ‘\n’ (Patel ,Brijesh ,R. ,brij_shivam1987@yahoo.com);

    [Edit: Make sure to check your single quotes (‘) and double quotes (“) if you copy and paste this code – it seems Word Press is changing them into some similar but different characters]

    5. Done!

    Read More
    client/server Architecture in FLEX with PHP
    January 29, 2011 admin

    Client/server architecture [FLEX with PHP]:-

    If you want to categorize Flex applications, you can say that Flex applications follow SOA architecture model, where Flex is used to create the client and you connect the client to data using services.

    Let’s go for test out “How web applications are delivered?” When the browser makes a request, the server uses a combination of static content (HTML/CSS/JS code) and scripts (these scripts may query a database or call other scripts, but in the end they output HTML/CSS/JS) to prepare a page. This page gets loaded and rendered by the browser. A key element here is that, usually this page (or response) has the presentation markup and the data baked into the same message.

    When a new state of the application is to be presented, the browser makes a new request and the server prepares the page. The client “just” renders the data.

    Flex applications works differently. The server sends the compiled Flex application (the SWF file) that runs inside the browser using the Flash Player plug-in. Usually, this SWF file holds only the client-side business logic. If data are need (from a database for example) the Flex application makes a request for those data. The server sends only the data (this can be in XML, JSON, AMF3 format), and the client knows how to represent this data visually. What we have here is service oriented architecture: The Flex application is the client―a client that can consume data services from the server. The application can change state without refreshing the page or reloading the SWF file in the browser. The application is a client that can do more than “just” render data. Thus using Flex and Flash Player it is possible to create almost anything that makes sense to deploy on the web, from games to applications, to widgets that are integrated within “classic” web applications.

    manage & developed by : sptechnolab.com

    Read More
    What is AMF ?
    January 24, 2011 admin

    What is AMF ?

    “Action Message Format (AMF) is a compact binary format that is used to serialize ActionScript object graphs. Once serialized an AMF encoded object graph may be used to continue and recover the public state of an application across sessions or allow two endpoints to communicate through the exchange of strongly typed data.”

    The easiest way to think of AMF is that it is the fastest way to send and receive data between your Flash movie and a web server. The reason that it is so fast is that the data is compressed and is in binary format. Most Flashers are very familiar with the methods of exchanging data with a server using XML. This is still a good approach for a lot of situations, but when large amounts of data are involved, AMF is far superior.

    AMF is actually used internally by the Flash Player is many situations. One example is that Flash uses AMF to represent the binary data stored using the “ByteArray” class. But the main thing that Flash developers need to be concerned with is how to use AMF to send and receive data with their web server. As with most things in Flash, there are many different methods of accomplishing this. Which method you use is primarily determined by which server-side platform you are using. Let’s quickly take a look at some of the most popular options:

    ColdFusion:
    One the most robust solutions for working with AMF is ColdFusion. This is not surprising as ColdFusion is an Adobe product and has built-in support for AMF throughout the technology. The main roadblock to using ColdFusion is that you need to have a web hosting provider that supports it. If you are about to choose a web host and you plan on doing a lot of Flash work, ColdFusion is definitely something that you should be looking in to.

    BlazeDS:
    Adobe recently open-sourced the AMF specification along with BlazeDS, which is a free Java server-side technology for using AMF. Again, since this is an official Adobe technology, you can be sure that the AMF implementation is rock solid. Using BlazeDS requires a Java server, so if you have a typical LAMP setup, you will not be able to play with it.

    LiveCycle Data Services:
    this is the most robust, scalable way of using AMF for Flash and Flex applications. This is the option to choose if you are building large enterprise applications. LiveCycle is very pricey however, and also needs to run on a Java server. These reasons put it out of reach for most non-enterprise applications.

    AMFPHP:
    AMFPHP is a free open-source PHP implementation of AMF. The major benefit of AMFPHP is that it can run on the vast majority of web servers as the only requirement is that PHP is supported. There are actually other PHP implementations of AMF, but AMFPHP is by far the most popular.

    Other Technologies:

    There are many other technologies out there that have implemented AMF. AMF.NET is an open source .NET AMF solution for Flash. Rubyamf is a Ruby implementation of AMF. Similar projects have sprouted up for Python and other languages.

    AMF is far too large a topic for a single blog post. But the main thing to know is that it is a fast, binary protocol for exchanging data between your Flash movies and a server.

    Manage & Developed by : sptechnolab.com

    Read More
    Loading XML Data from External Sources in Action Script
    January 19, 2011 admin
    The subject of loading data from servers is much more involved than can be covered on XML. in case you’re
    really itching to try loading some data from a server, these are the basics of how it’s done.
    In the AS2 implementation of XML, the data was loaded through a method called by the XML
    class. However, in AS3, that functionality has been moved outside of the class to the flash.net
    package. In this example we use a URLLoader to load the XML file and then create an XML object
    from the data we’ve loaded.
    {code}
    import flash.net.*;
    var myXML:XML;
    var url:URLRequest = new URLRequest(“http://www.sptechnolab.com/test.xml”);
    var loader:URLLoader = new URLLoader(url);
    loader.addEventListener(Event.COMPLETE, onLoadComplete);
    function onLoadComplete(event:Event):void {
    if (loader.data) {
    myXML = XML(loader.data);
    }
    }
    {/code}
    You can replace the URL in this example with the location of your data. When the loader is done
    loading, the onLoadComplete() function is called, which converts the data loaded by the loader
    into XML form. From this point, you can use myXML the same way we’ve used the other XML data.
    Manage & Developed By Sptechnolab.com
    Read More
    Difference between toString and toXMLString
    January 19, 2011 admin

    In action  script 3.0 toString and toXMLString are methods of XML and XMLList class.

    you can use the traditional toString() method
    with XML objects to display their contents as strings. However, the XML class also contains the
    toXMLString() method, which behaves slightly differently.
    The toString() method for XML objects will usually display the contents of an XML element
    including any tags. However, if the XML object in question contains only a single node—for
    example, <foo>bar</foo>—only the text value of the node will be returned, in this case,
    “bar”. The toXMLString() method, on the other hand, will always return the full XML tag
    and all values contained within an element. In this case, toXMLString() would return
    “<foo>bar</foo>”.
    Please check Example Below:
    {code}
    package{
    import flash.display.Sprite;

    public class Main extends Sprite{
    public function Main(){
    var p:XML = &>sptechnolab.com;
    trace(p.toString( )); // Displays: &> sptechnolab.com
    trace(p.toXMLString( )); // Displays: &> sptechnolab.com
    }
    }
    }{/code}

    Manage & Developed by Sptechnolab.com

    Read More
    Visitor Maps
    January 17, 2011 admin

    [visitor-maps]

    Read More
    How to get Grid parameter In JQGrid
    January 11, 2011 admin

    Custom Button With Get ID Selected Row

    {code}
    jQuery(“#gridname”).navButtonAdd(‘#pagername”?>’,
    { caption:”New Button”,
    buttonicon:”ui-icon-newwin”,
    onClickButton: function(){
    var id = $(“gridname”).getGridParam(‘selrow’);
    if(id==null)
    alert(“Please select row ….”);
    else
    alert(id);

    } ,
    position: “last”,
    title:””,
    cursor: “pointer”
    } {/code}

    Manage & Developed By Sptechnolab.com

    Read More
    custom buttons in Jqgrid
    January 11, 2011 admin

    Custom Buttons are a way to define your own button and action in the pager.


    [cce_bash]
    jQuery(“#grid_name”).navGrid(‘#pagername’,edit:false,add:false,del:false,search:false})
    .navButtonAdd(‘#pagername”‘,{ caption:”button name”,
    buttonicon:”Button Icon Name”,
    onClickButton: alert(“click”);
    ,
    position: “last or first”,
    title:”own in string”,
    cursor: “pointer”
    }
    ); [/cce_bash]

    Manage & Developed By Sptechnolab.com

    Read More
    Integrated Technology in Flex.
    January 11, 2011 admin

    Building FLEX Applications:

    Flex SDK or Flex Builder can be used to develop web applications.

    Flex is supported by two languages:

    –        MXML is an XML-based markup language that is primarily used to layout application display elements.

    –        ActionScript is an ECMAScript-compliant object-oriented programming language that is primarily used for application logic.

    During compilation the MXML code is translated into ActionScript code and then all this ActionScript code is compiled into binary SWF File. The SWF file is uploaded to the web server, where it is then served up based on user request.

    Process Cycle of FLEX:

    Technology Integration:

    • Flex is a client-side technology that is rendered by Flash Player 9 or Adobe AIR(Adobe Integrated Run-time).
    • Flex can work JavaScript on the client.
    • Flex requires a server-side technology (like Live-cycle Data Services, Java, ASP.NET or PHP) to provide it with real-time data.

    Integrating Flex with:

    –                PHP

    –                ASP.NET

    –                JAVA

    –                Cold Fusion

    FLEX and ASP.NET:

    • Both application logic and layout is deployed and executed on the server, instead of in a SWF file that executes on the client machine. ASP.NET essentially centralizes execution of the application on the server.
    • The GUI of an ASP.NET application is HTML generated by ASP.NET web form controls.
    • The generated HTML is styled through themes using a programmatic markup language, or through CSS.
    • ASP.NET can talk directly with a database server, and therefore can be used to write web services. Flex cannot be used to write web services, but can consume data from a web service and display it.


    FLEX and PHP:

    • With PHP, both application logic and layout execute on the server, which returns HTML to the browser. With Flex, a SWF file embedded in the web page executes on the client machine.
    • The GUI of a PHP application is generated HTML and optionally supporting JavaScript.
    • All the advantages and limitations of HTML-based design apply to a PHP-based application. Flex is generally not limited by HTML layout constraints.
    • PHP can talk directly with a database server, and therefore can be used to write web services. Flex does not communicate with the database directly; however, it can consume data from a web service and display it.

    FLEX and JAVA:

    • Java Applets, with their ability to run inside a browser window, are similar to Flex applications. Flex apps, however, are much easier to deploy through the lightweight easy-to-install Flash Player.
    • Server-side Java can be used to create web services for consumption by a Flex application.


    FLEX and Cold Fusion:

    • With ColdFusion, both application logic and layout execute on the server, which returns HTML to the browser. With Flex, a SWF file embedded in the web page executes on the client machine.
    • The GUI of a ColdFusion application is generated HTML and optionally supporting JavaScript.
    • All the advantages and limitations of HTML-based design apply to a ColdFusion-based application. Flex is generally not limited by HTML layout constraints.
    • ColdFusion can talk directly with a database server, and therefore can be used to write web services. Flex does not communicate with the database directly; however, it can consume data from a web service and display it.

    Manage & Developed By Sptechnolab.com

    Read More
    Users Access Rights and Management in Joomla!
    January 11, 2011 admin

    Joomla User Access rights & Management !

    Adding New User

    Here are the steps in adding new user:
    1. Click the New button in the toolbar menu that is located in the upper right. You will get the register form (as you can see in the picture 3.6).

    2. In the form, there are items that you should to fill as the following:

    • Name. The complete name from the new user.
    • Username is the name that is getting used for login.
    • Email. The address email of user.
    • New Password. New password for user.
    • Verify Password. Repeat in typing the new password.
    • Group. Choose the group according to the role of user.


    new user

    There are two kinds of group that are public front-end and public back-end. You will get the explanation about the access right detail after the steps of this register.

    The Access Right

    In the time of fulfilling the registration form of new user, you are asked to choose the group for user. The choosing of this group will affect the user access right. Next are the detail explanations about this access right.

    Group Access Right
    Registered A registered user can login and can see some parts which cannot be seen by usual visitor.
    Author Author can do anything as the registered user does. An author can also write information and modify information that the author’s made. There is a link in user menu that you can use to do this progress.
    Editor Editor can do anything as the author does. The editor can also write and change the information about anything that appears in the front end.
    Publisher Publisher can do anything as the editor does. A publisher can write and change anything that appears in the front end. As the addition, he can also decide which information that can appear and which one is not.

    Briefly, it can be described as the following:

    Picture 3.8 The access right summary of group front end

    Beneath are the accesses right for back end:

    Group Access Right
    Manager A manager can make content and can see various kind information of system, but he is not allowed to:
    • Manage user
    • Install component and module
    • Upgrade use into super administrator or modify super administrator
    • Work on the site menu > configuration
    • Change template and language
    Administrator An administrator is not allowed to:
    • Upgrade user into super administrator or modify super administrator
    • Work on the site option menu > configuration
    • Sent mass mail to user
    • Change or install template and language
    Super Administrator Can do anything in Joomla! Even super administrator can make another super administrator

    Picture 3.8 The access right summary of group front end

    Beneath are the accesses right for back end:

    Group Access Right
    Manager A manager can make content and can see various kind information of system, but he is not allowed to:
    • Manage user
    • Install component and module
    • Upgrade use into super administrator or modify super administrator
    • Work on the site menu > configuration
    • Change template and language
    Administrator An administrator is not allowed to:
    • Upgrade user into super administrator or modify super administrator
    • Work on the site option menu > configuration
    • Sent mass mail to user
    • Change or install template and language
    Super Administrator Can do anything in Joomla! Even super administrator can make another super administrator

    Here are the summary mind map of the access right for group back end:

    Picture 3.9 The access right summary of group front end

    Update User

    Beneath are the steps in updating user:
    1. Open the user management page.
    2. Click the username that you want. You will get form to edit user.
    3. Change information in the form.
    4. Click the Save button in the upper right.

    Delete User

    Beneath are the steps in deleting user:
    1. Open the user management page.
    2. Check the checkbox that is located in front of the username that you want to delete. You can choose more than one user.
    3. Click the Delete button in the upper right.

    Here are the summary mind map of the access right for group back end:

    Read More
    OOPs in ActionScript 3.0
    January 11, 2011 admin

    In object-oriented programming, developers often use the term “architecting an application.” This analogy is not far off the mark. You can approach any project as if you are its architect, and use object-oriented principles as building blocks to structure your code. As you develop your application, you can think of your code modules as the blueprints that form the foundation of your applications. Just as you can use one blueprint repeatedly to build similar structures, you can repurpose your code as needed to achieve your desired functionality.

    ” The concept of classes is at the heart of all object-oriented code development. If you’re not already familiar with object-oriented programming (OOP), this article will get you started writing ActionScript 3.0 classes. Writing classes has never been easier than with ActionScript 3.0. Whether you are new to ActionScript altogether or are new to working with ActionScript 3.0, you’ll find that writing classes allows you to create projects that are easier to manage and maintain. “

    The concepts covered in this article will help you begin writing more portable, reusable code and move beyond the world of procedural code.

    What are classes?

    Classes are nothing more than a collection of functions (called methods in this context) that provide a blueprint for any number of instances that are created from it. By changing some variables (or in OOP terminology, properties) of a class instance, or by passing different values as arguments to its methods, the same underlying class can have widely different outcomes.

    Another way of understanding a class is to compare the tasks performed in the Flash authoring environment. While ActionScript classes are created programmatically, they are basically analogous to the concept of importing assets and then working with symbols in the Library panel and the symbol copies (instances) on the Stage. The symbol instances on the Stage are similar to class instances. The different instances on the Stage—despite coming from the same symbol—can each individually have different properties settings that affect how they appear (such as color, alpha transparency, rotation, and so on).

    The ability to generate multiple instances (that can appear and behave differently) from the same object is one of the reasons why classes are so powerful. An ActionScript class is even more powerful than a symbol in the Library because, as a developer, you have complete control over how an object looks and behaves. There are many properties and methods accessible using ActionScript 3.0 that you cannot access through the Flash authoring interface. Additionally, ActionScript classes make it possible to dynamically animate objects during runtime that are outside the scope of timeline-based animations. Finally, writing your own ActionScript classes promotes reusability because the functionality you create can be repurposed.

    Let’s see how this looks in code:

    Block.as

    package test {

    public class block

    {

    public var color:String = “red”;

    public function Block() {

    trace(“new “+ color +” block created”);

    }

    }

    }

    The Block.as code above illustrates one of the most basic implementations of an ActionScript 3.0 class. The class holds just a single method and property. As you walk through each line of code, the following facts come to light:

    • First, a package is defined:

    Packages allow you to structure your code in folders on your hard drive and prevent class name conflicts. In this example, the class is saved as Block.as (the exact case-sensitive class name), inside a folder named “test”.

    By convention, package names are usually the domain name of the project in reverse order, followed by the project name. Doing this ensures that the package name is unique and there is no risk of any other project’s classes conflicting with your own.

    • Then the class is defined and set as public:

    In our example the class is named “Block”.

    • The next line of code declares a public property “color” of a type String:

    That we will be using in the class. The value of color is set to red. There are better ways of working with class properties—as you’ll learn about when we discuss encapsulation.

    • Finally, the Block method is defined:

    Note that this is not just any method. Every class has a constructor, which is a method that is automatically called when a new instance of the class is created.

    You can easily recognize constructor methods because they always use the same name as the class within which it is defined. Knowing this, you can easily see that, for the Block class, this Block method is its constructor.

    Inside the method we are tracing out a message to the Output panel that reads: “new red block created”. The trace statement incorporates the value of the variable color, which we defined with a default value of “red.”

    To quickly test this class, launch Flash CS3 Professional, create a new blank ActionScript 3.0 FLA, and write the following lines of code on the first keyframe on the main Timeline:

    import test.Block;

    var firstBlock:Block = new Block();

    If you run Test Movie (select Control > Test Movie), you’ll see that the Output panel now displays “new red block created” (see Figure 1).

    Fig.1 Output panel of Block class getting instantiated

    The traced message in the Output panel means that your ActionScript 3.0 class is functioning correctly. Now it is time to start doing some more advanced things with classes.

    Basic OOP concepts: Inheritance vs. composition:

    There are just a handful of concepts at the core of OOP. This article covers the most important ones: inheritance, encapsulation, and polymorphism

    Without a doubt, inheritance is the most well-known principle of OOP. Inheritance can be defined as the ability to inherit properties and methods and extend the functionality of an existing class in a new one.

    If you’re thinking ahead, you might imagine creating a new “Wall” class that extends the “Block” class you created earlier. However, that is not how inheritance works.

    Looking at the relationship between a block and a wall, the best way to code this is not through inheritance but rather by a concept called composition.

    A simple rule of thumb determines whether the relationship between classes is one that warrants inheritance or composition. If you can say class A “is a” class B, you’re dealing with inheritance. If you can say class A “has a” class B, the relationship is one of composition.

    Here are some examples of inheritance:

    • Cat “is an” animal
    • Programmer “is an” employee
    • Football “is a” sport

    Here are examples of composition:

    • Wall “has a” block
    • Computer “has a” keyboard
    • School “has a” teacher

    So what is the difference in how inheritance and composition are implemented? Let’s compare how this works, starting with inheritance:

    Animal.as

    package test {

    public class Animal {

    public var furry:Boolean;

    public var domestic:Boolean;

    public function Animal() {

    trace(“new animal created”);

    }

    }

    }

    The Animal.as code is the base Animal class, which you will now extend using inheritance with a Cat class:

    Cat.as

    package test {

    public class Cat extends Animal {

    public var family:String;

    public function Cat() {

    furry = true;

    domestic = true;

    family = “feline”;

    }

    }

    }

    If you look at the Cat class, the constructor assigns values to three different properties. On close inspection, only one of these properties (family) is defined in the Cat class. The other properties (furry and domestic) come from the Animal base class.

    While this not exactly the most practical example, you can see how class inheritance allows you to build upon existing functionality to create a new blueprint for you to start using as you develop your project.

    Now if you wanted to create half a dozen cats, you could simply do this by instantiating the Cat class, which has all the properties already set up, rather than using the generic Animal class and having to define the properties again and again for each instance.

    New in ActionScript 3.0 is an override keyword that is used when you want to override a method defined in the class that you extended. This useful feature prevents you from accidentally running into naming conflicts with methods between classes that extend each other.

    On the other hand, composition doesn’t have any formal syntax like the extends keyword. Composition simply instantiates its own instance of any class it wants to use.

    Let’s take the Block class created earlier. In this next example you’ll create a Wall class that uses composition to instantiate instances of the Block class:

    Wall.as

    package test {

    import test.Block;

    public class Wall {

    public var wallWidth:uint;

    public var wallHeight:uint;

    public function Wall(w:uint, h:uint) {

    wallWidth = w;

    wallHeight = h;

    build();

    }

    public function build():void {

    for(var i:uint=0; i<wallHeight; i++) {

    for(var j:uint=0; j<wallWidth; j++) {

    var block:Block = new Block();

    }

    }

    }

    }

    }

    In the code above, the Wall class accepts two arguments passed to its constructor, defining the width and height in blocks of the wall you want to create.

    Let’s do a quick test of this class by instantiating it on the main Timeline of a blank FLA file:

    import test.Wall;

    var myWall:Wall = new Wall(4,4);

    If you run Test Movie (Control > Test Movie), you’ll see that 16 Block instances are created with corresponding trace statements displayed in the Output panel to create a 4 x 4 wall (see Fig.2).

    Fig.2 Output panel of Wall class getting executed

    Apart from the difference in class relationship between inheritance and composition, composition has the advantage of being able to add functionality to another class at runtime. It allows you to have control over the creation and destruction of class instances, whereas with inheritance the relationship between the classes is fixed and defined at the time the code is compiled.

    Encapsulation:

    Now let’s move on to another important principle of OOP called encapsulation. The underlying concept of encapsulation deals with what methods and properties your class exposes to the outside world.

    Up until this point you’ve always set methods and properties as public, but are that really what you’d want to do?

    If you want your code to be stable, and if you want to develop projects that are least prone to bug and errors, you’ll want to restrict the ways in which other classes can interact with your code.

    The key here is to only have those methods and properties available that are required as settings for the class, and restrict access to the rest. Using this approach, you’ll have a limited number of places in your code to debug when something goes wrong in the interaction with your class.

    ActionScript 3.0 includes the following keywords as access modifiers to methods and properties:

    • public: allows access from anywhere
    • private: can only be accessed within its own class
    • protected: can only be accessed within own class and subclasses
    • internal: can be accessed by all classes in same package

    Let’s put this concept into practice. Take a look at the following example:

    Person.as

    package test {

    public class Person {

    private var _age:Number;

    public function get age():Number {

    return _age;

    }

    public function set age(val:Number):Boolean {

    if(_age < 0) return false;

    _age = val;

    return true;

    }

    }

    }

    The code example above shows a Person class with a private property _age of a Number type. Even though you want to allow the age of the person to be set, you still opted not to use a public property here. Instead you are routing the age value through the use of a getter/setter method.

    Getter/setter methods (as implemented in the previous example) appear as if they are properties, but they behave like methods.

    When you set the age property, it calls the age setter method that assigns the value to the private_age property after validating it. In this case, you know that a person’s age can’t be a negative value. If the given value is valid, the setter method returns true, or else returns false.

    The major advantage of this approach is that every time the age property is set, validation occurs because the age value is always routed through the setter function. If the age property were set as public, every method in your class that wants to use the age property would first need to check if its current value is valid.

    Polymorphism:

    The final concept I cover in this article is polymorphism. The concept behind polymorphism is based on the idea of different classes implementing the same method names.

    Even though this is a very simple concept, polymorphism has some interesting implications. The first major advantage is that it allows classes to be interchangeable at runtime. There are no hard-coded references to specific method names for specific classes.

    For example, imagine you have a Teacher class and a Student class. You could implement a teach method for the teacher and a study method for the student, but polymorphism allows you to write the code so that the two classes both implement a work method. Although a Teacher and Student class will clearly have a different implementation of a work method (one teaches, the other studies), you can use a shared generic method name, creating a single interface through which they can be accessed:

    Teacher.as

    package test {

    public class Teacher {

    public function work():void {

    trace(“I am teaching”);

    }

    }

    }

    Student.as

    package test {

    public class Student {

    public function work():void {

    trace(“I am studying”);

    }

    }

    }

    Any class that gets passed an instance of either the Teacher or Student class does not need to do any type checking to determine whether it is dealing with a teacher or a student instance (or any other class implementing the same methods for that matter) but it can directly call the work method.

    You can enforce polymorphism between classes through the use of something called interfaces. These are similar to classes in that they define a set of methods, but interfaces are different than classes because they do not have an implementation. Interfaces simply define a “contract” of the methods a class needs to implement in order to be valid.

    Here’s an example of an interface called IWork:

    IWork.as

    package test {

    public interface IWork {

    function work():void;

    }

    }

    As you can see from the code above, an interface looks suspiciously like any other class. But there are a few differences. Most developers choose to name an interface name so that it begins with a capital I (a common naming convention for interfaces, although it is optional). Also, instead of a class keyword, interfaces use the interface keyword. Additionally, as you analyze the code, you’ll see that in the section where you would expect to see some code for the work method, only its method signature is defined.

    The interface above requires that any class that implements it must have a method called work that has a return type of void.

    Let’s see how the Teacher and Student class implement this interface:

    Teacher.as

    package test {

    public class Teacher implements IWork {

    public function work():void {

    trace(“I am teaching”);

    }

    }

    }

    Student.as

    package test {

    public class Student implements IWork {

    public function work():void {

    trace(“I am studying”);

    }

    }

    }

    That was easy. By simply adding the implements keyword, you now have set up both the Teacher and Student classes so that they are required to implement the work method. If you try removing or renaming the work method from either of the two classes, you’ll receive a compile-time error message.

    By having classes all implement a common interface, the interface can actually be used as a data type. Let’s look at the following example:

    Supervisor.as

    package test {

    public class Supervisor {

    public function Supervisor(worker:IWork) {

    worker.work();

    }

    }

    }

    In the example above, you have a Supervisor class that can be passed an instance of a class implementing the IWork interface. In this way, the interface is being used as a data type.

    The ActionScript compiler knows that any class instance implementing this IWork interface will have the work method defined. Therefore, it doesn’t complain about a possibly undefined method when the code is compiled.

    You can quickly test the Supervisor class by pasting the following code on the first Frame in the main Timeline of a blank FLA in Flash CS3 Professional:

    import test.*;

    var supervisor1:Supervisor = new Supervisor(new Teacher());

    var supervisor2:Supervisor = new Supervisor(new Student());

    If you run Test Movie (Control > Test Movie), you’ll see two lines appear in the Output panel. The first line displays “I’m teaching” and the second displays “I’m studying” (see Fig.3). These trace statements are, of course, exactly what you’d expect by passing a new teacher and student instance to the Supervisor constructor.

    Fig.3. Output panel of the Supervisor class using polymorphism

    Type casting:

    That brings up the next question: What happens when you try to access class-specific methods or properties of Teacher or Student (other than the work method) that weren’t defined in the interface?

    The Supervisor class uses the IWork data type for any instance that is passed to its constructor – so if you were to call any other method, the compiler has no way of knowing whether that is implemented. The compiler will report an error.

    You can work around this is by using something called type casting by converting the instance from this generic IWork data type back to the Teacher or Student instance.

    The way this is accomplished is by using the is and as keywords, as follows:

    package test {

    public class Supervisor {

    public function Supervisor(inst:IWork) {

    if(inst is Teacher) {

    var teacher:Teacher = inst as Teacher;

    trace(teacher.tenure);

    }

    if(inst is Student) {

    var student:Student = inst as Student;

    trace(student.averageGrade);

    }

    }

    }

    }

    In the code above, the is keyword checks whether the worker instance passed to the constructor is of the specific type Teacher or of the type Student.

    If it is a teacher instance using the as keyword, you are able to type cast the instance to that specific class, so you can access its specific methods and properties. In this case you could, for example, have a Boolean tenure property set in the Teacher class.

    The same holds true if we’re dealing with a student instance. If the is keyword confirms that you are working with a student, you can type cast the generic IWork instance to a student instance and access the averageGrade property.

    This is a very useful behavior. You can see how using polymorphism in this way benefits your projects when you have a collection of classes that need to accept any number of data types, as long as they implement a common interface. When you need to get into the specific method implementations of the class implementing the interface, type casting makes this possible.

    

    Developed & manage by: sptechnolab

    Read More
    Stream Publish with video on facebook
    January 11, 2011 admin

    FACEBOOK DEVELOPMENT
    First of  all you have to download facebook library from http://developers.facebook.com.
    Then you have to registered your application on facebook for getting api key,application id and secret key for example ..


    Now Create one .php file for write stream publish code ….
    here it is…….
    {code}
    require(‘facebook.php’);
    //Code for declare the facebook library object ………
    $facebook = new Facebook(array(
    appId’  => ‘121115684611644’, // application id
    ‘secret’ => ‘d16cd920f3628f01f64250390d8aaca8’, //secret key
    ‘cookie’ => true,));

    //Code for getting the session……….
    $session = $facebook->getSession();
    //Code for getting the facebook user id of user….
    $uid = $facebook->getUser();
    // This condition is checked user is logged in or not….
    if ($session) {
    try {
    //Code for stream publish with video
    //This action variable is for build a link on wall
    $actions  = json_encode(array(array(‘text’=>’Click Here’, ‘href’=>’http://sptechnolab.com/vishal/Sunset.jpg’)));
    //This  is a Old rest  api function for publish a stream.
    //In that we get attachment in JSON Format for publish video.
    $param  =   array(
    ‘method’        =>  ‘stream.publish’,
    ‘callback’      =>  ”,
    ‘message’       =>  ‘Post To Friends wall’,
    ‘attachment’    =>  ‘{“media”: [{
    “type”: “mp3”,
    “src”:   “http://www.looptvandfilm.com/blog/Radiohead%20-%20In%20Rainbows/01%20-%20Radiohead%20-%2015%20Step.MP3”,
    “title”: “15 Step”,
    “artist”: “Radiohead”,
    “album”: “In Rainbows”
    }]}
    ‘,
    ‘action_links’  =>  $actions,
    ‘target_id’     =>  ‘1325740472
    ‘,
    ‘uid’           =>  ”,
    ‘privacy’       =>  ”
    );
    $result   =   $facebook->api($param);
    echo “Stream Published”;
    }
    catch(Exception $o)
    {
    echo “Not Published” . $o;
    }
    }
    {/code}
    //Target Id means on which user’s wall you have to post the stream.

    Developed & Manage By Sptechnolab.com

    Read More
    How To Set Best Common Searching “Tag” in SEO
    January 11, 2011 admin

    Proper Title Tags :-

    Well-constructed title tags contain the main keyword for the page, followed by a brief description of the page content. It will be less than 65 characters and avoid using stop words such as: a, if, the, then, and, an, to, etc. Your title tag should also be limited to the use of alphanumeric characters, hyphens, and commas.

    Proper Description Tags : –

    Good description tags contain information about the page’s content and persuade search engine users to visit your web site. They should be between 25 and 35 words in length.

    Proper Keywords Tags :-

    Your keywords meta tag should contain between 5-10 keywords or keyword phrases that are also found in page content.

    Proper Heading Tags :-

    Each page of your site should use at least the H1 heading tag for the search engines that examine it when crawling your site.

    Page Content :-

    Pages should have between 300 and 700 words of descriptive content that contains the keywords specified in the keywords meta tag for the page. A page’s meta tag keywords should also be those that occur most frequently on the page.

    Proper Navigation :-

    Each page of your site should contain links to every other page so search engine spiders can find every page. This is a critical step for the proper indexing and page rank distribution of your site.
    Proper Sitemap
    It’s important to use two site maps for your website–an XML version and a static version. The XML version can be created with Search Engine Visibility’s site map tool. The static version should sit on a static HTML page and contain links to every other page.

    Controlled Crawling :-

    It’s important that search engine spiders find your robots.txt file that guides spiders to pages and directories you want crawled and denies entry to protected areas of your site.

    Duplicate Content/Tags :-

    Because search engines treat web sites as a grouping of pages and not a single entity, each page on your site should be unique so that the tags and content differ between each page. Doing so increases the number of pages that will rank.

    Word Density :-

    Pages should contain 300 to 700 words of unique and descriptive content.

    Develop & Manage By Sptechnolab.com

    Read More
    Why we use ActionScript ?
    January 8, 2011 admin

    Why we use ActionScript ?

    However, there is also a large group of interactive designers who have not made the switch to the new language. There are many myths floating around that ActionScript 3.0 is a lot more complicated and that it requires much more code to accomplish the same tasks. In this article, I hope to dispel some of those myths and discuss why you should use ActionScript 3.0 exclusively in your Flash projects.

    We found that there are two different types of people who write ActionScript code:

    1. There are the hardcore developers. They typically have a background in programming and have prior experience building projects in languages like Java and C#. For these folks, learning ActionScript 3.0 will be a pleasure—because it is similar to the languages they are already know.
    2. There are the interactive designers. “Interactive designers” is a term I use to describe anyone from a design or animation background that learned Flash programming to help them achieve their vision. Interactive designers will often add their code to the Timeline, but they may also have some basic knowledge of object-oriented programming. I consider myself to be part of this latter group and I’m gearing this article towards this set of Flash users, as we fall into the category of users who have been more hesitant to switch to ActionScript 3.0.

    A brief history of ActionScript:

    The precursor to ActionScript was introduced in Flash Player 4. It enabled a wide variety of interactivity in Flash, but it was not a very sophisticated or familiar language. Its syntax and semantics were very different from ECMAScript, although in later versions it was possible to apply ECMAScript-like syntax to it.

    ActionScript 1.0 was introduced in Flash Player 5. It had ECMAScript-based syntax and semantics. With the release of Flash Player 6 and Flash Player 7, the language received some semantic tweaks but remained essentially the same.

    ActionScript 2.0 was introduced in Flash MX 2004 and Flex 1.0. This new version of the language also worked in both Flash Player 6 and Flash Player 7 because ActionScript 2.0 is actually a layer on top of the ActionScript 1.0 runtime. As a result, ActionScript 2.0 isn’t as high-performance as it could be, because under the hood it’s still using the same object model as ActionScript 1.0.

    During the planning stages for Flash Player 9, it became clear that we could not continue building upon the current ActionScript engine that was powering both ActionScript 1.0 and ActionScript 2.0. Adobe began working to completely rewrite the ActionScript Virtual Machine (AVM). The result was a highly optimized virtual machine known as AVM2, along with a new version of the ActionScript language to target it. Although AVM2 will be the primary virtual machine for ActionScript code execution going forward, Flash Player will continue to support the older AVM1 to ensure backwards compatibility with existing and legacy Flash content.

    Reasons to use ActionScript 3.0:

    The following are what I consider to be the primary benefits of learning to use ActionScript. I’ve listed them in no particular order.

    1. Your skills will be in high demand:

    This, in my opinion, is the main reason anyone who currently works or is planning to work as a Flash developer should switch to the new language.

    All major Flash work is now exclusively being built in ActionScript 3.0. You just don’t see many jobs looking for ActionScript 2.0 skills.

    So if you plan on working with Flash in your job, learning ActionScript 3.0 is essential.

    2. Everything you build will be faster:

    Developers who have been working with Flash for a while have often been frustrated that our new, super-cool idea just couldn’t run smoothly because of the limitations of Flash Player.

    ActionScript 3.0 offers up to a 10-fold increase in performance over previous versions of the language. In some cases, the performance has increased even more. This means you can control more objects on the Stage at the same time.

    If you want your project to look and perform at its best, moving to ActionScript 3.0 is the ultimate way to achieve this goal.

    3. There’s a loads of new APIs:

    As Flash developers, we love nothing more than getting new toys to integrate into our projects.

    ActionScript 3.0 includes hundreds of new APIs for working with things like XML, regular expressions, and binary sockets.

    Even better, the whole language has been reorganized into packages and namespaces that make it much easier to find specific language features.

    When you use ActionScript 3.0, your Flash toolbox is not only much fuller, it is also better organized.

    4. The display list rocks:

    One of the biggest changes in ActionScript 3.0 is the way Flash handles visual objects in a movie. In previous versions of the language, it was practically a black art to manipulate the display order (depth) of the items in a Flash movie.

    A large number of hacks and workarounds existed that didn’t make any sense to beginners starting to use the language. For instance, it was common practice to place visual assets at an extremely high depth in order to keep them on top of everything else in a movie. This led to a lot of problems in larger projects and required a lot of manual depth management work.

    The new display list in ActionScript 3.0 is a straightforward mechanism that handles how visual assets are rendered in your movie. Once you start using it, you’ll wonder how you ever developed a project without it.

    5. The object-oriented structure is better:

    Developers particularly love the improved object-oriented structure of ActionScript 3.0. It includes things like runtime typing, sealed classes, packages, namespaces, and an overhauled event model.

    Programming in ActionScript 3.0 is on the same level as writing in other high-level languages like Java and C#. The new features in ActionScript 3.0 also make your code more modular, readable and extendable.

    Some of these features may not be used much, if at all, by interactive designers—but it is good to know that if you want to get into more advanced programming someday, the language structure is there to support you.

    6. it’s more enjoyable to work with ActionScript 3.0:

    This may sound subjective, Ask anyone who knows ActionScript 3.0 to go back and program a project in ActionScript 2.0 and they will surely cringe at the idea.

    Previous versions of the language were filled with so many bugs, hacks, and workarounds that working in ActionScript 3.0 appear almost too easy in comparison. ActionScript 3.0 does take a bit of getting used to, but the rewards are well worth the effort.

    ü  Backwards compatibility and future technologies

    If, after reading all of these benefits, you still don’t want to learn ActionScript 3.0, then you can continue writing ActionScript 2.0 code to develop your projects. But as the Flash platform evolves, many of the cool new technologies will only be available in ActionScript 3.0. For example, technologies like Adobe Flex 3 and Adobe AIR require ActionScript 3.0, so if you want to work with those technologies, then working in an older version of ActionScript isn’t much of an option.

    Read More
    What is MVC Architecture?
    January 7, 2011 admin

    MVC Architecture has implemented by Trygve Reenskaug at 1979 for the first time. It was implemented on Smalltalk at Xerox labs. Then benefits and advantages of this architecture has been accepted by most of the coders and software engineers.

    It was an information about MVC’s history above. Now lets talk about what really MVC is. What do you understand from MVC. The word M stands for Model, V stands for View and C stands for Controller. I am going to mention about each item.

    The figure above may help you while thinking what structure it might have. Let’s start with Model.

    Model:

    It handles data processing and database works part. Model processes events sent by controller. After processing these events then it sends processed data to controller (thus, controller may reprocess it) or directly to view side.

    View:

    View prepares an interface to show to the user. Controller or model tells view what to show to the user. Also view handles requests from user and informs controller.

    Controller:

    Let’s say controller is like brain of the system. That is right. Because it processes every request, prepares other parts of the system like model and view. Then the system determines what to do by controller’s commands.

    Even if you are junior developer you probably faced with a problem called “Complexity of Project”. There MVC comes. MVC helps you to decrease complexity of project. For instance, there is a team with 5 people. If they are working on same project after sometime project reaches a point which no one cannot understand what is project going to be. What i mean is MVC splits project to (by default) three different parts. Like Model, View, Controller.You can say;

    As you see above if you split your project three part like Application Development, Database and Data processing and Interface development then of course you project will be more understandable and developers can work more efficiently.

    What are the advantages of MVC?

    MVC is perfect for team work. As i mention before this architecture splits your project into some parts so, team members can work and their parts without any dependency. Then you will realize that MVC makes your project more systematic.

    It is really easy to edit or change some part of your project that makes less development cost and maintenance cost.
    MVC doesn’t repeats itself. If you wrote some script for your project. Because of non-dependancy property of MVC then you may use this script for another project of yours. And of course it helps you to finish your project by spending less time then others.And developers doesn’t fight after 5pm

    Why MVC is non-standard?

    Still waits for developers to discover itself.  I know some developers who think that they have to write even every semicolon, letter. you don’t have to do that. However, MVC tries to help you to don’t repeat yourself.

    Why MVC is too important for Companies?

    Well it is not!. Yes that is true. A company only looks for if a project is done on time or not. Most of the companies doesn’t interested what structure you are using while developing.
    Probably you know this formula : P=W/T  (P:Power – W:Work – T:Time) As you see here if you descrease the time so you may done with more Work. That means money! So, you see how MVC helps you.

    Example:

    As an example you can think like eyes of a human stands for view, brain stands for controller and neutral system of a body stands for model. You can imagine like when a person sees his friend eyes (view) tells this to the brain (controller). Brain wants to show smile to his friend. To make it possible brain tells your face’s neutral network that make the face smile. Then his face smiles  Hope it helped.

    Read More
    What’s new in ActionScript 3.0?
    January 7, 2011 admin

    Run-time exceptions:

    • ActionScript 3.0 reports more error conditions than previous versions of ActionScript.
    • Run-time exceptions are used for common error conditions, improving the debugging experience and enabling you to develop applications that handle errors robustly.
    • Run-time errors can provide stack traces annotated with source file and line number information, helping you quickly pinpoint errors.

    Run-time types:

    • In ActionScript 2.0, type annotations were primarily a developer aid; at run time, all values were dynamically typed.
    • In ActionScript 3.0, type information is preserved at run time, and used for a number of purposes.
    • Flash Player 9 and the Adobe AIR runtime perform run-time type checking, improving the system’s type safety.
    • Type information is also used to represent variables in native machine representations, improving performance and reducing memory usage.

    Sealed classes:

    • ActionScript 3.0 introduces the concept of sealed classes.
    • A sealed class possesses only the fixed set of properties and methods that were defined at compile time; additional properties and methods cannot be added.
    • This enables stricter compile-time checking, resulting in more robust programs.
    • It also improves memory usage by not requiring an internal hash table for each object instance.
    • Dynamic classes are also possible using the dynamic keyword.
    • All classes in ActionScript 3.0 are sealed by default, but can be declared to be dynamic with the dynamic keyword.

    Method closures:

    • ActionScript 3.0 enables a method closure to automatically remember its original object instance.
    • This feature is useful for event handling.
    • In ActionScript 2.0, method closures would not remember what object instance they were extracted from, leading to unexpected behavior when the method closure was invoked.
    • The mx.utils.Delegate class was a popular workaround, but it is no longer needed.

    ECMAScript for XML (E4X):

    • ActionScript 3.0 implements ECMAScript for XML (E4X), recently standardized as ECMA-357.
    • E4X offers a natural, fluent set of language constructs for manipulating XML.
    • In contrast to traditional XML-parsing APIs, XML with E4X performs like a native data type of the language.
    • E4X streamlines the development of applications that manipulate XML by drastically reducing the amount of code needed.

    Regular expression:

    • ActionScript 3.0 includes native support for regular expressions so that you can quickly search for and manipulate strings.
    • ActionScript 3.0 implements support for regular expressions as they are defined in the ECMAScript (ECMA-262) edition 3 language specifications.

    Namespaces:

    • Namespaces are similar to the traditional access specifiers used to control visibility of declarations (public, private, protected).
    • They work as custom access specifiers, which can have names of your choice.
    • Namespaces are outfitted with a Universal Resource Identifier (URI) to avoid collisions, and are also used to represent XML namespaces when you work with E4X.

    New primitive types:

    • ActionScript 2.0 has a single numeric type, Number, a double-precision, floating-point number.
    • ActionScript 3.0 contains the int and uint types. The int type is a 32-bit signed integer that lets ActionScript code take advantage of the fast integer math capabilities of the CPU.
    • The int type is useful for loop counters and variables where integers are used. The uint type is an unsigned, 32-bit integer type that is useful for RGB color values, byte counts, and more.
    Read More
    Data Access Using the HTTPService Component in Flex
    January 5, 2011 admin

    Data Access Using the HTTPService Component in Flex :-

      1. Using the HTTPService component in the Flex framework, you can retrieve data using GET or Post requests.
        1. You can either use the HTTP or HTTPS protocol.
        To request data over HTTP, First create an HTTPService object by defining an instance name and assigning a URL for the data retrieval.
        Note: That a request is not made for the data when the object is created.
        2. You make a request for the data as a separate step in the process.
        3. Once the remote data is retrieved, you can use it in your application.
        1. I have added a new project in Flex Builder named “test” which will be an application to display information about employees in the fictional temp company.
        2. In the application file, I am adding an HTTPService component with an instance name of “empService”.
        • The HTTPService component’s URL property can be set as a relative file reference.
        o Like “test.xml” or “employees.xml”
        • You can also create a value with an absolute file reference.
        o Like “http://www.adobe.com/employees.xml”
        • Also, the data can be provided as static or dynamically generated content.

        o Can be static data
         Like “ http://www.adobe.com/employees.xml”

        o Can be a dynamically generated XML file:
         Like “http://www.adobe.com/employees.jsp”

        3. In this Example, I have created a static XML file in a subdirectory named data.
        When I open this file, you can see that it contains employee data.
        4. I will reference the static XML data file in the HTTPService component by adding the URL property to point to the file.
        • The HTTPService object has a send() method to send the request for data.
        In our example, the HTTPService instance is named empService so, therefore, the send command is empService.send().
        • You can send the HTTPService request based on a user event.
        In this example, we will use a Button control’s click event to dispatch the request for data.
        • You can also send the HTTPService request based on a system event.
        Since I do not need to any information about the layout to retrieve the data, I can use the initialize event of the Application tag for the request.
        5. I am adding the initialize event for the Application tag to request the XML data.
        The empService.send() method will send the request as the application is initializing, before the layout is finalized.
        6. Use the HTTPService result event to specify the function to be called when data is successfully returned.
        In this case, I have named the event handler “resultHandler” and passed the event object.
        In the Script block, I have created the “resultHandler()” function and have created the event argument with a data type of ResultEvent.
        Notice that I have also imported the ResultEvent class.
        As an experienced developer, you are probably familiar with arrays.
        • You will find that Flex applications will use the ArrayCollection class almost exclusively, rather than the Array class.
        • An ArrayCollection is similar to an Array, and actually uses an Array as its Source.
        • It provides additional functionality, including the ability to sort and filter the data.
        • ArrayCollection objects are commonly used to store data returned from the data access components, which are HTTPService, WebService and RemoteObject.
        • That’s widely used because they can be directly bound to Flex components, like the DataGrid or List controls.
        • When data is changed in the ArrayCollection object. It is immediately reflected in all bound components.
        7. In this code, I am creating a private variable named “employeeData” that is data typed to the ArrayCollection class. Notice that the ArrayCollection class was imported by Flex builder.
        8. I will make the variable bindable by adding the [Bindable] metadata directive.
        9. Inside the resultHandler() function, I am assigning the “event.result.employees.employee” object the employeeData ArrayCollection.
        10. I can now create a DataGrid MXML control and bind the employeeData ArrayCollection as the dataProvider.
        11. This image shows the compiled application in a browser.
    • Creating an HTTPService Object :-

      Setting the Data Retrieval URL :-

      Detail about the data and URL:

      Sending the Request :-
      Send the HTTPService request:

      Understanding the ArrayCollection Class :-

      Thanks….
      Developed & Manage By: sptechnolab

    Read More
    Flex Architecture
    January 4, 2011 admin

    FLEX ARCHITECTURE :-

    Flex data access components:

      1. Flex data access components are based on a service-oriented architecture.
        These components use remote procedure calls to interact with server environments, such as PHP, Adobe CouldFusion, Microsoft ASP.NET and Java.
        All Flex data access components can retrieve and send data to back-end data sources through the server environments.
        The Flex framework allows you to create these data access components in MXML or ActionScript.
        Retrieve and send data via HTTP using the HTTPService component.
        Retrieve and send data via Simple Object Access Protocol, or SOAP, web services by using the webService component.
        Retrieve and send data via the Adobe Action Message Format, or AMF, remoting services by using the RemoteObject component.
    • Three types of Flex data access components:

      Develop and manage by : Sptechnolab

    Read More
    Connect google map api in PHP
    January 3, 2011 admin

    Loading the Google Maps API

    Google Map API Version 3.0

    Chapter – 1

    The Google Maps API has evolved to version 3. This version is a complete rewrite and focuses primarily on speed. The new API also features new ways of using it. This article is the first in a series exploring version 3 of the Google Maps API. This first article will take a look on how to create a simple map and explain some differences from the previous version.

    Background information

    First of all, this is an early release of the new API and it’s still in Labs. It doesn’t contain all the features of the old API and will probably never do so since the old API is bloated with lots of helper methods for doing all sorts of things like making AJAX calls and showing log windows. Nowadays we have libraries like jQuery and Prototype and tools such as Firebug to take care of these things. Therefore these features will not be included in the new API, since it’s main focus is to be streamlined in order to be as fast as possible. Other missing features such as polygons and polylines will however probably eventually be included.

    Secondly, since it’s an early release it’s still undergoing major changes. Features will be added as we go along and some changes of how to do certain things might be introduced.

    That said, I think that the new API is mature enough to use and certainly to experiment with. It also contains the most common features seen in implementations on Google Maps on the Web.

    Enough with the background info already! Let’s take a look of what the new API looks like.

    Inserting a reference to the API

    The first thing you will notice is that the API key is no longer necessary. In the previous versions the API key was inserted as a querystring into the script reference but not so anymore. This means that you don’t have to apply for a new API key for every domain you want to have a map at. It also means that the URI to the API is a lot shorter.

    So the only thing you have to tell, while referencing the API, is whether your device has a sensor or not. sensor=false if you don’t have a sensor and sensor=true if you do. With a sensor is meant some way to determine your present location, like if you have a GPS in your device. This information is attached as querystring at the end of the URI.

    1. <script type=”text/javascript” src=”http://maps.google.com/maps/api/js?sensor=false”></script>
    <script src="http://maps.google.com/maps/api/js?sensor=false"></script>

    Creating a map

    A new namespace

    In previous versions of the API there were lots of global variables, distinguishing themselves by having a capital G in the beginning, like GMap and GLatLng. In the new API the namespace google.maps is used. So what was formerly called GLatLng is now called google.maps.LatLng. Using namespaces is good coding praxis. One should avoid cluttering the global namespace as much as possible in order to avoid collisions with other code.

    So in practical terms, here’s how to create a new coordinate object the old way and how to do it the new way. The LatLng() method takes two arguments, an x and an y coordinate.

    // The old way

    var latlng = new GLatLng(57.8, 14.0);

    // The new way

    var latlng = new google.maps.LatLng(57.8, 14.0);

    // The old way
    var latlng = new GLatLng(57.8, 14.0);
    // The new way
    var latlng = new google.maps.LatLng(57.8, 14.0);

    Object literals

    The new API makes heavy use of object literals to pass arguments to it’s methods. The old API used object literals as well, but in this version they’ve taken it a step further which I think is positive. I think this is a really beautiful way of coding. It’s easy to use, easy to maintain and easy to expand. For you who doesn’t know what an object literal is, it looks like this:

    var myObj = {

    id: ‘1’,

    name: ‘Whatever’

    };

    alert(myObj.name); // Will alert Whatever

    var myObj = {
      id: '1',
      name: 'Whatever'
    };
    alert(myObj.name); // Will alert Whatever

    It’s basically a fast and easy way to create a Javscript object. Some of you might also recognize it as JSON, and that’s exactly what it is. JSON stands for Javascript Object Notation and is in fact a Javascript Object.

    Initializing the map

    To initialize the map we need to call the constructor of the Map class. It takes two arguments the first one being a reference to a HTML elemtn where you want the map to be inserted (often <div>) and the second one being an object literal (options) containing a set of properties.

    This is much like how it works in the old API. The big difference is that in the old API you had to call the method setCenter() immediately after calling the constructor in order for the map to display. setCenter() told the map what location would be the center of the map and what the initial zoom level would be. In the new API this is not neccesary since both these properties are passed in the option parameter. So instead of making two calls, you now have to do only one. An approach that I think makes a lot more sense.

    Before we get into the details of what properties option contains, lets have a look at what the code to create a map looks like.

    // Creating a LatLng object containing the coordinate for the center of the map

    var latlng = new google.maps.LatLng(57.8, 14.0);

    // Creating an object literal containing the properties we want to pass to the map

    var options = {

    zoom: 6,

    center: latlng,

    mapTypeId: google.maps.MapTypeId.ROADMAP

    };

    // Calling the constructor, thereby initializing the map

    var map = new google.maps.Map(document.getElementById(‘map’), options);

    // Creating a LatLng object containing the coordinate for the center of the map
    var latlng = new google.maps.LatLng(57.8, 14.0);
    // Creating an object literal containing the properties we want to pass to the map
    var options = {
      zoom: 6,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    // Calling the constructor, thereby initializing the map
    var map = new google.maps.Map(document.getElementById('map'), options);

    Options

    The option parameter is, as mentioned before, an object literal containing the properties we want to pass to the map object. There are three required properties that must be passed to the map on initialization. These are:

    • center
      This property sets the center of the map and takes a coordinate of the type google.maps.LatLng
    • zoom
      This is a number that sets the initial zoom-level of the map
    • mapTypeId
      This property sets what kind of map type that would initially be used. The most common type is google.maps.MapTypeId.ROADMAP

    <html><head><style type=”text/css”>
    html { height: 100% }
    body { height: 100%; margin: 0px; padding: 0px }
    #map_canvas { height: 100% }
    </style>
    <script type=”text/javascript”
    src=”http://maps.google.com/maps/api/js?sensor=false”>
    </script>
    <script type=”text/javascript”>
    function initialize() {
    var myLatlng = new google.maps.LatLng(23.044511,72.571501);
    var myOptions = {
    zoom: 4,
    center: myLatlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById(“map_canvas”),
    myOptions);

    google.maps.event.addListener(map, ‘zoom_changed’, function() {
    setTimeout(moveToDarwin, 3000);
    });
    var infowindow = new google.maps.InfoWindow({
    content: ‘Hello world’
    });

    var marker = new google.maps.Marker({
    position: myLatlng,
    map: map,
    title:”sptechnolab”,
    clickable: true,
    icon: ‘http://google-maps-icons.googlecode.com/files/computer.png’
    });

    google.maps.event.addListener(marker, ‘click’, function() {
    map.setZoom(15);
    });

    }
    function moveToDarwin() {
    var darwin = new google.maps.LatLng(23.044511,72.571501);
    map.setCenter(darwin);
    }

    </script>
    </head>
    <body onLoad=”initialize()”>
    <div id=”map_canvas” style=”width:50%; height:50%”></div>
    </body>
    </html>

    click event :

    From Sptechnolab.com

    Read More
    Google Search Box
    January 1, 2011 admin

    This is a question that’s going to result in some HTML listings. You know that, so there’s no reason to panic!

    First off, the good news. Google itself actually has a nice page offering you HTML code you can just cut and paste onto your own Web pages to produce the search box you seek, and some variants beside. Just check out Google Free.

    Instead of relying on the bright sparks at Google, though, let’s go through the steps of building our own search box instead, so you’ll be able to see how it works.

    Also, not to pick on Google because I think the world of those folk, but their HTML samples could be cleaned up a bit, usually, so I’ve also recast it as proper XHTML rather than somewhat sloppy HTML. Just don’t tell Larry and Sergey, okay?

    The basic technique involved here is to be able to manipulate one of the variables handed to the Google search engine, a variable called sitesearch. Set it to a null value and you’re searching the entire World Wide Web, but set it to a specific domain and it’s constrained exactly as if you had typed in the Google special notation site:domain.

    In addition to that, you need an input field and a submit button. Put them all together and here’s the minimalist Google search form that lets the user alternate between just your site (well, in this case just my site) or the entire Web.

    Code :

    {code}
    <form method=”get” action=”http://www.google.com/search” target=”_blank”>

    <div style=”border:1px solid black;padding:4px;width:20em;”>
    <table border=”0″ cellpadding=”0″>
    <tr><td>
    <input type=”text”   name=”q” size=”25″
    maxlength=”255″ value=”” />
    <input type=”submit” value=”Google Search” /></td></tr>
    <tr><td align=”center” style=”font-size:75%”>
    <input type=”checkbox”  name=”sitesearch”
    value=”blog.sptechnolab.com” checked />only search sptechnolab blog<br />

    </td></tr></table>

    </div>

    </form>

    {/code}

    Read More
    Ask Question and answer now easy
    December 31, 2010 admin

    Ask is a programming Q & A site that’s free. Free to ask questions, free to answer questions, free to read, free to index, built with plain old HTML, no fake. You can register if you want to collection of Query and post of your comment, it’s just free. And fast. Very, very fast. What’s so special about this? Well, nothing, really. It’s a programming Q&A website.


    ask.sptechnolab


    Our Product to interact easy with Query. be Enjoy it Share with your Social networking.


    http://ask.sptechnolab.com/

    Read More
    Image Crop In Php
    December 29, 2010 admin

    First of all You have 3 files of JQuery Library

    They Are

    1) jquery-1.3.2.min.js

    2)jquery.Jcrop.min.js

    3)jquery.Jcrop.css

    And You have to create one php service file for implement the image cropping logic.

    4)Crop.php

    Now Detail Description of Image Croping is as follow:

    You have to download Jcrop Library from the Internet Then You can implement this image cropping code………..

    Crop.php [Code………]

    <?php
    ini_set('display_errors',1);
    error_reporting(E_ALL);
    if ($_SERVER['REQUEST_METHOD'] == 'POST')
    {
    $targ_w = $targ_h = 150;
    $jpeg_quality = 90;
    $src = 'Sunset.jpg';
    $img_r = imagecreatefromjpeg($src);
    $dst_r = imagecreatetruecolor( $targ_w, $targ_h );
    imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'],
    $targ_w,$targ_h,$_POST['w'],$_POST['h']);
    header('Content-type: image/jpeg');
    imagejpeg($dst_r,'cropimgname.jpg',$jpeg_quality);
    }

    <?php
    ini_set('display_errors',1); error_reporting(E_ALL);

    if ($_SERVER['REQUEST_METHOD'] == 'POST'){ $targ_w = $targ_h = 150; $jpeg_quality = 90;
    $src = 'Sunset.jpg'; $img_r = imagecreatefromjpeg($src); $dst_r = imagecreatetruecolor( $targ_w, $targ_h );
    imagecopyresampled($dst_r,$img_r,0,0,$_POST['x'],$_POST['y'], $targ_w,$targ_h,$_POST['w'],$_POST['h']);      header('Content-type: image/jpeg'); imagejpeg($dst_r,'cropimgname.jpg',$jpeg_quality);        }

    ?>

    <html>

    <head>

    <link rel="stylesheet" href="jquery.Jcrop.css" type="text/css" />

    <script src="jquery-1.3.2.min.js"></script>

    <script src="jquery.js"></script>

    <script src="jquery.Jcrop.min.js"></script>

    <link rel="stylesheet" href="colorbox.css" type="text/css"/>

    < <script language="Javascript">

    // Remember to invoke within jQuery(window).load(...)

    // If you don't, Jcrop may not initialize properly

    jQuery(window).load(function(){

    jQuery('#cropbox').Jcrop({

    onChange: showPreview,

    onSelect: showPreview,

    aspectRatio: 1,

    onSelect:updateCoords

    });

    });

    // Remember to invoke within jQuery(window).load(...)

    // If you don't, Jcrop may not initialize properly

    // Our simple event handler, called from onChange and onSelect

    // event handlers, as per the Jcrop invocation above

    // Our simple event handler, called from onChange and onSelect

    // event handlers, as per the Jcrop invocation above

    function showPreview(coords)

    {

    if (parseInt(coords.w) > 0)

    {

    var rx = 100 / coords.w;

    var ry = 100 / coords.h;

    jQuery('#preview').css({

    width: Math.round(rx * 1200) + 'px',

    height: Math.round(ry * 1582) + 'px',

    marginLeft: '-' + Math.round(rx * coords.x) + 'px',

    marginTop: '-' + Math.round(ry * coords.y) + 'px'

    });

    }

    }

    $(document).ready(function(){

    $('#cropbox').Jcrop({

    aspectRatio: 1,

    onSelect:updateCoords

    });

    });

    function updateCoords(c)

    {

    $('#x').val(c.x);

    $('#y').val(c.y);

    $('#w').val(c.w);

    $('#h').val(c.h);

    };

    function checkCoords()

    {

    if (parseInt($('#w').val())) return true;

    alert('Please select a crop region then press submit.');

    return false;

    };

    </script>

    </head>

    <body>

    <div id="outer">

    <div class="jcExample">

    <div class="article">

    <?php

    ?>

    <!-- This is the image we're attaching Jcrop to -->

    <img src="Sunset.jpg" id="cropbox"/>

    <!-- This is the form that our event handler fills -->

    <form action="crop.php" method="post" onSubmit="return checkCoords();" >

    <input type="hidden" id="x" name="x" />

    <input type="hidden" id="y" name="y" />

    <input type="hidden" id="w" name="w" />

    <input type="hidden" id="h" name="h" />

    <input type="submit" value="Crop Image" />

    </form>

    </div>

    </div>

    </div>

    </body>

    </html>
    Now You can run this code in browser

    You have a Sunset.jpg image for croping like….

    Image Crop In Php

    After selecting particular Portion of the image

    You have to click on the crop button……….

    then your image will be cropped like….

    Image After Cropping in Php

    If you Understand properly then try it………..

    From Sptechnolab.com

    Read More