Archive for the ‘php’ Category

iBCScorp begins project for Landmark Real Estate

Posted on: May 18th, 2011 by James Cluff No Comments
Internet Business Consulting Services(ibcscorp) contracted to complete a project for Landmark Real Estate(landmarkinsiders.com).  Landmark specializes in the sale of rented income properties.  Headquartered in SLC Utah this project will allow Landmark Insiders to promote and sale income generating properties through distribution channels in major metropolitan areas. The Landmark website enables buyers to purchase property that is already owned or managed(income property). The site will allow buyers, brokers and property owners to facilitate the sale of rental property under contract. The property is already earning income and is managed, so it’s an excellent investment opportunity. iBCScorp will be building the site using CodeIgniter, a PHP based framework. Initially Landmark had another web development company working on the project, but needed a web development company that had a little more expertise to complete the project. They turned to iBCScorp to finish the project. iBCScorp is a web development company based out of Saint George Utah.  Ibcscorp does web development projects using most open source web technologies.

Steve Havertz Testimonial

Posted on: February 23rd, 2011 by James Cluff No Comments
“We got a good site for a great price. We were very pleased that we got orders within weeks after the site went live. The site is easy to administer and use.” AussieEssentials.com

MissionCards.com planning a website overhaul

Posted on: February 1st, 2011 by James Cluff No Comments
MissionCards.com, headquartered in Salt Lake City, Utah specializes in easy to order custom cards for LDS Missionaries.  If you’re not LDS, or a member of The Church of Jesus Christ of Latter Day Saints, but are still a missionary, this is still a great place to buy Missionary cards with themes focused on the Gospel of Jesus Christ. Missionary Business Cards feature the work of many famous artists including Chad Hawkins, Harry Anderson, Ted Henninger, Robert T. Barret, John Scott, Tom Lovell, and more. Missionaries purchase business cards because they want to re-locate people who they have become friends with and served with and be able to reach them. As anyone knows, the purpose of a Missionary’s Work is sharing the things that bring the most joy in their lives with other people. The result of that often is long lasting, loving relationships. If you want to learn more about Latter Day Saint Missionaries, or about the Church of Jesus Christ of Latter Day Saints, you can do that here mormon.org.  You could probably even have some Mormon Missionaries to come to your door, to share the message of Jesus Christ at no charge. There are over 50,000 full time missionaries from The Church of Jesus Christ of Latter Day Saints (The Mormons) serving people around the world. There are missionaries from many different denominations also serving missions to help other people. Because of this there is a large need for MissionCards.com to allow quick and easy printing of Business Cards for Missionaries. Missionarycards.com is putting forth this effort to redo their website and improve the business card ordering process on their website because as time passes sites seem to loose their impact as new better web based software and techniques become available. In order to make these changes happen, Missionary Cards has contracted with Saint George Utah Based Internet Business Consulting Services Corporation (ibcscorp.com). Internet Business Consulting Services looks forward to working with MissionCards.com to help improve their product offering, and to help them market their product with web marketing and SEO (Search Engine Optimization) Techniques.  The current site is done in PHP, and will likely stay PHP, or be migrated to Cake PHP, or to a CMS Content Management application in the future for easier maintenance and development. Look for new products and an easier to use interface coming soon at Missioncards.com

CakePHP Samples

Posted on: December 2nd, 2010 by Keerthi Bandara 1 Comment
This post provides some sample source code segment, extracted from our previously developed systems. The intention here is to depict the coding practices we apply within iBCScorp. Samples given below are based on CakePHP MVC framework. iBCScorp has involved in CakePHP development since the version 1.1. After that we have continued with 1.2.x releases and then absorbed 1.3.x releases into our developments later on. iBCScorp started using CakePHP 1.3 in projects since its pre-stable releases. Adopting the new version early helped iBCScorp to keep its source code clean and tight with new syntactical improvements, while avoiding version upgrades in near future. FreedomTravel4You.com is one of the sites built on CakePHP 1.3. Following code segment is extracted from its codebase. (agent_tree_controller.php). [php] <?php /** * Short description for file * This file handles the Agent Tree View functionality * * PHP versions > 5.0, CakePHP versions > 1.3 * * @package FreedomTravel4You.com * @author iBCScorp. * @copyright iBCScorp. * @license As described below * @version 1.0.0 * @since File available since Release 1.1.0 dt. Friday, 04 December, 2009 */ /********************************************************* * Licence: * This file is sole property of the installer. * Any type of copy or reproduction without the consent * of owner is prohibited. * If in any case used leave this part intact without * any modification. * All Rights Reserved * Copyright 2009 Owner *******************************************************/ class AgentTreeController extends AppController { var $name = ‘AgentTree’; var $uses = array(‘User’, ‘UserTree’); var $components = array(‘Auth’); var $helpers = array(‘Html’, ‘Javascript’, ‘TreeView’); function beforeFilter() { if($this->Session->read(‘user_info.admin’)){ $this->set(‘menu_type’, ‘admin’); } else { $this->set(‘menu_type’, ‘agent’); } $this->set(‘show_side_bar’, 0); } function index($element_id = null) { $this->common_tree_info($element_id); $this->set(‘page_title’, ‘Agent’); } // Action to display unassigned users for logged in agent function assign_agent() { $curr_user_id = $this->Session->read(‘Auth.User.id’); $unassigned_childrens = $this->User->get_unassigned_children($curr_user_id); $this->set(‘unassigned_childrens’, $unassigned_childrens); $this->set(‘page_title’, ‘Agent’); } // Display tree view to assign new agents to tree function add_to_tree($element_id = null) { $new_child_id; if(isset($this->params['form']['child_id'])){ $new_child_id = $this->params['form']['child_id']; // Store selected child-id to be assigned to tree $this->Session->write(‘child_to_be_assigned’, $new_child_id); } elseif($this->Session->check(‘child_to_be_assigned’)) { $new_child_id = $this->Session->read(‘child_to_be_assigned’); } else { $this->redirect(‘/agent_tree/assign_agent’); exit(0); } // get the child name for particular id $new_child_info = $this->User->find(‘first’, array( ‘conditions’ => array(‘id’ => $new_child_id), ‘fields’ => array(‘first_name’) )); // Call the common function to initialize tree $this->common_tree_info($element_id); $this->set(‘new_agent_name’, $new_child_info['User']['first_name']); $this->set(‘page_title’, ‘Agent’); } // Funtion to apend child to tree (last step) function append_child() { $child = explode("_", trim($this->params['form']['child_id'])); $tree_data = array(); $tree_data['UserTree']['parent_id'] = $child[0]; $tree_data['UserTree']['child_position'] = $child[1]; $tree_data['UserTree']['child_id'] = $child[2]; // Tree ID of the new Agent $this->UserTree->create(); $this->UserTree->save($tree_data); $new_user_id = $this->Session->read(‘child_to_be_assigned’); $this->User->id = $new_user_id; $this->User->saveField(‘tree_id’, $child[2]); $this->redirect(‘/agent_tree/index’); exit(0); } // Common function to initialize tree view. private function common_tree_info($element_id = null) { // Get user tree ID $curr_user_id = $this->Session->read(‘Auth.User.id’); $curr_user_info = $this->User->find(‘first’, array( ‘conditions’ => array(‘id’=> $curr_user_id), ‘fields’ => array(‘first_name’, ‘tree_id’, ‘parent_available’) )); // If this user is not yet appended to the tree disable this functionality if($curr_user_info['User']['parent_available'] == 0) { $this->redirect(‘/agent_tree/user_not_assigned’); exit(0); } $tree_id = ”; // tree id of the current root node // Get the user info for root element i.e. logged in or requested if(isset($element_id)){ $tree_id = $element_id; } else { $tree_id = $curr_user_info['User']['tree_id']; } $root_info = $this->User->get_root_node_info($tree_id); //reference_id of the current user or requested root element $this->set(‘root_reference_id’, $root_info['u']['reference_id']); // first name of the current root element $root_name = $root_info['u']['first_name'] . ‘ ‘ . $root_info['u']['last_name']; $this->set(‘root_name’, $root_name); //id of the current root node $this->set(‘root_id’, $root_info['u']['id']); //logged in user’s id $this->set(‘user_id’, $curr_user_id); //tree_id of the current user or requested root element $this->set(‘root_node’, $root_info['u']['tree_id']); // Used to display move up link $this->set(‘up_level_id’, $root_info['t']['parent_id']); } // Action to display on tree view, when logged in user is not assigned to the tree function user_not_assigned() { $this->set(‘page_title’, ‘Agent’); } function search_agent() { $this->layout = ‘ajax’; Configure::write(‘debug’, 0); $search_value = trim($this->params['named']['q']); // Check the type of search criteria $search_type = ”; // Check whether it is an email if(stripos($search_value, ‘@’) !== FALSE) { $search_type = ‘TYPE_EMAIL’; } elseif (!is_numeric(substr($search_value, 0 , 2)) && is_numeric(substr($search_value, 2 , 6))){ // Check for reference number $search_type = ‘TYPE_REF’; } else { // Value is a name $search_type = ‘TYPE_NAME’; } $conditions = array(); // Check whether email or reference # to be searched if($search_type == ‘TYPE_REF’) { // ref # $conditions['and'] = array( ‘reference_id’ => $search_value, ‘tree_id not’ => ‘NULL’ ); } elseif($search_type == ‘TYPE_EMAIL’) { // email $conditions['and'] = array( ‘email’ => $search_value, ‘tree_id not’ => ‘NULL’ ); } elseif($search_type == ‘TYPE_NAME’) { $conditions['and'] = array( ‘or’ => array(‘first_name like’ => ‘%’ . $search_value . ‘%’, ‘last_name like’ => ‘%’ . $search_value . ‘%’ ), ‘tree_id not’ => ‘NULL’ ); } $result = $this->User->find(‘all’, array( ‘fields’ => array(‘reference_id’, ‘first_name’, ‘last_name’, ‘email’, ‘tree_id’), ‘conditions’ => $conditions )); $output = ""; if(sizeof($result)) { foreach($result as $r) { $output .= $r['User']['tree_id'] . "|" . $r['User']['first_name'] . " " . $r['User']['last_name'] . "|" . $r['User']['email'] . "|" . $r['User']['reference_id']; $output .= ‘^’; } $output = rtrim($output, ‘^’); // Removing the trailing ^ character at the end of output text } else { $output = "NO"; } $this->set(‘search_result’, $output); } } ?> [/php]

FreedomTravel4You.com uses iBCScorp to build an agent management system

Posted on: October 14th, 2010 by James Cluff No Comments
FreedomTravel4You.com is in the business of selling travel through outside agents. One of the problems they have had in the past is that they have not had a back office to support those agents. iBCScorp.com developed for them a back office management system which manages those agents. At the time they where a multilevel marketing company. So custom PHP programming was done to record agent profiles into a MySQL database. The agents then where able to add their own recruits as well as see their down-line for everyone they had recruited into the company. Later the company changed to not be a multilevel company and some additional features where added. This was done using the popular Cake PHP framework. Some of the additional modules include:

Vendor Management

Administrators are able to add, edit and modify the vendors that their agents use to sell travel. This is beneficial for those agents, for the internal staff because they can put all the information the agents need into the vendor system rather than taking calls from those vendors. It also is beneficial for SEO purposes for people who are looking for an agency who deals with the particular products carried by those vendors. Additional functionality we would like to add which was not in the budget included better search features, browsing and even being able to purchase from those vendors directly online.

E-Commerce

Agents are able to sign up and sign up other agents directly including recurring billing.

Online selling of travel

Somewhat unique to this site as apposed to other non-travel sites is the ability for agents to directly purchase/or sell travel online through an online booking engine. When the travel is sold, the agent has the opportunity to include a markup on that travel for as much as they would like.

CMS Features

Wordpress was used to provide the content management system. This is an extremely nice benefit for an agency trying to promote itself in the online world. It allows them to add and manage content at will including posting new travel deals, hot travel sites, travel tips, or whatever other creative ideas they can think of.