Site Like Etsy

Site Like Etsy
This ecommerce site (with multiple shops should integrate with wordpress and mail chimp) – allowing rich interaction between the blogging and newsletter features and the products in the market.

An online market where merchants each have their own “store” which they can log into and manage themselves.

Customers interested in buying could come to the site and look by individual “store” or could search by general category (such as “fashion” “art” “gifts” or by subcategories (ie: “wine glasses” “hats”).

Categories and sub categories would be managed (added, deleted, edited) by site admin.

Each store would be approved by us, but managed by the store owner.
Each store would display their own logo. (look and feel)

Each store would use the merchants’ own payment processes, we will not have any of the dollars coming through our business.

It would be clear to the buyer that they are buying from the individual merchants, not from us.

The cost to the merchant would work much like etsy. No cost to register, a small cost to list each item (and a higher cost if the item is “featured”). There would be a charge that is a percentage of any sale. Not sure yet how this would work, perhaps we would need to bill them.

Each item being sold would have a photo or graphic and a description. Each item would have bulk pricing available. Shipping costs would be added at purchase according to the store owners set up preferences. The costs, bulk pricing, shipping costs, photos, descriptions, etc would all be managed by the store owner.

We would have a “buy” and “sell” link and accompanying pages such as etsy. Buy would be the landing page.

We would have a “featured store” and “recently listed items” are such as etsy.

Instead of “hand picked items” (as on etsy) we would display “featured items” which would be chosen by the merchant selecting that option (at a cost) or by an admin selecting the item(s).

Data Entry – Simple

Data Entry – Simple
I have a simple data entry project:
You will need to visit 2 websites, and enter information about doctors. For the first website, you will only need to enter the doctor name, specialty, select which clinic and hospital they work at, upload a photo, and some small education info.

You will be creating a wordpress page for each doctor. The page template is already set up, you just enter the info into the boxes and publish. There are about 200 doctors for the first site.

For the second site, you will need to enter the doctors and their clinics. There are a total of about 500 doctors for the second site.

This is a very simple project, I have been working on it for a few weeks but I don’t have the time to complete it now. Each doctor page took me about 20-30 seconds each, including load time. I will give you full details when I select your bid.

Simple Fix For Jw Player 5

Simple Fix For Jw Player 5
as you can see my player is not appearing to work correctly..

http://i46.tinypic.com/2nu5fgn.png

It should look like this: http://i50.tinypic.com/9vi493.jpg

Im using JW version 4.

After I have paid you and I like your results we can then move onto inserting the logo for more money: http://i45.tinypic.com/2agksgx.png

—-

*must be able to finish project in 1 day
*should have aol/msn/skype/yahoo to ask questions

Paid Signups- Adult Gay Dating

Paid Signups- Adult Gay Dating
I need help with getting 600 paid signups for my Gay Personals and Gay Dating website.
I am working on getting a new logo/header to draw people in when they come to the page, but I need someone who is able to draw in paid signups by grabbing the gay market and drawing momentum through a focus on gay niches such as gay jocks, gay military, gay bears, twinks, older for younger, latinos, etc. My site is allgaymen.net

I am willing to pay $1.50 per verifiable paid signup. That’s $900. I want to know the plan you use, and I want NO black hat methods or methods that would get me banned or blacklisted.
Including no: link farms, sites that are or will be blacklisted, use of automated software or bots; redirects; cloaking; css redirects; 301 redirects; dynamic links; hidden links; web rinks such as backlinks.com, gotlinks, etc.; no scrapped content, mirror sites, link schemes, or sites overrun with popup ads, contextual ads, sponsored links, etc.
You get the point,
I want it all legal. If I feel other wise it will end our deal.
Social Networking pages names AllGayMen.net at myspace and facebook may help. If you do social networking I will want the username and passwords.

I won’t pay until two weeks after deal and then every other friday.
Don’t bid if you don’t think you can do it.
If you get 600 in 1.5 months then I will give you a bonus of $500.

Thanks! The one who can achieve this may find an even better deal to make an addition 600!!

Simple Header

Simple Header
You are bidding on 1 header size 960×189 in the Anxiety niche. Header should have nice features like a couple of pictures blended into the background and some large, strong text with a drop shadow or some gloss effects (See Attached Sample).

This is a paid test project to establish a long-term relationship. I am launching a product in March that will require many more headers. I need someone who can do a large volume inexpensively and in less than 24 hours.

Site With Cart Build/rebuild

Site With Cart Build/rebuild
The website is www.morans.ca

Need the website rebuilt using zen or another free shopping cart. (currently it’s using a 3rd party off site cart)

Would like a new look (existing template like monster templates etc is fine) and to have all the current products and descriptions (aprox 20) set up in the shopping cart.

Would like work to start on this right away.

Website For Women Truefemale

Website For Women Truefemale
Website portal for women and female community, http://www.truefemale.com need drupal developers to complete the project. truefemale.com has free membership, press release, blog, forum, articles on cooking, home making, health and fitness, female life style, fashion and trends, movie, tv shows, gardening, pets, question answer etc.

A referral system based on Gmail, MSN and Yahoo API is there. A point system is there. When a member login and create content he/she will get points and that can be redeemed for cash.

Top referrer will get 20 USD every week. Best 5 articles will get 10 USD every week. Monthly lot will be there for daily visiting members and the price is 10 USD.

Paid advertisement management system, adsense revenue sharing etc.

truefemale.com must develop in Drupal in order to reduce development time and ensure security and quality.

Lower bid will have more chances, but a monthly maintenance contract is anticipated.

Bid with out detailed proposal will not be considered.

Specific and simple questions related to project in PMB will be answered.

Working with RESTful Services in CodeIgniter

Working with RESTful Services in CodeIgniter

CodeIgniter is becoming well known for its power as a PHP based web application framework, but it’s not often that we see examples of it being used for anything else. Today we’ll learn how we can use CodeIgniter to create a RESTful API for your existing web applications, and demonstrate how to interact with your own API or other RESTful web-services, such as Facebook and Twitter.

Tutorial Details

Introduction

If you have been following the CodeIgniter From Scratch series you will know by now that it is relatively quick and easy to put together simple web applications, such as blogs, CMS systems, brochure sites, etc. One thing you may not have thought about is using CodeIgniter to create an interactive API. After trying several existing REST implementations, I found they not only lacked simplicity but were missing most of the features you would expect from a RESTful implementation; so I built my own. This tutorial will show you how to use this code to set up your REST API, and gives example of how to interact with it from your web application.

Assumptions

  1. You have a web server set up, locally or online and known how to manage files on it.
  2. You have read a few of the CodeIgniter from Scratch tutorials.
  3. You know how to set up CodeIgniter.
  4. You know a little about RESTful services.

This tutorial is broken down into two parts. We will start by learning how to create a RESTful service, then further down, we will learn how to interact with it in a few different ways.

Part 1 – Creating a RESTful API

Step 1: Setting up the Demo

Firstly you need to download the codeigniter-restserver code from GitHub and extract it and move the code to your server.

When you open the folder, you will see an entire CodeIgniter install, which is there to power the demo. This allows people to have a play with the REST demo before integrating with your existing application.

Open up “application/config/config.php” and set the base_url to get links working. This base_url will be different for everyone and depends entirely on where you uploaded your files.

Step 2: The URLs

With the files extracted and the base_url set, we are ready to load up our RESTful CodeIgniter installation, and have a look at the demo supplied with it. Browse the base URL, which by default is:

http://localhost/restserver

Here you will find a few example links to the example_api controller, which can be found at “application/controllers/example_api.php”. Let’s dissect the URL’s of these examples to see what is going on. The first URL is a very simple one.

This URL looks very much like any other CodeIgniter URL with a controller and a method, but you will notice in this diagram that the method is named a “Resource”. REST is all about Resources and they are essentially a noun within your application, which are interacted with (i.e added, deleted, edited, queried) based on HTTP headers and URL query strings or HTTP arguments.

The default format for output is XML which is what we see in this basic example. The other links are slightly larger and demonstrate how to pass parameters and show how the output format can be modified in the URL:

Normally in CodeIgniter, you just pass in parameter values, but a REST controller accepts any number of parameters in any order. For this to work, we need to pass in the name of the parameter followed by the value in pairs.

At the end of the URL is the “format” parameter. This is a reserved parameter that will modify the output format of the requested data like so:

By giving both the API developer and the client application the choice of data formats to use, the API is opened up to a much wider audience and can be used with more programming languages and systems. These three are not the only formats supported, out of the box your REST API can use:

  • xml – almost any programming language can read XML
  • json – useful for JavaScript and increasingly PHP apps.
  • csv – open with spreadsheet programs
  • html – a simple HTML table
  • php – Representation of PHP code that can be eval()’ed
  • serialize – Serialized data that can be unserialized in PHP

While adding the format to the URL is not technically the most RESTful way to change formats, it allows for easy browser testing and lets developers without cURL perform simple GET requests on the API. The more RESTful way is to send a Content-type HTTP header to the REST controller using cURL, but that will be explained later.

Step 3: The Code

Now if you open up application/controllers/example_api.php you will immediatley spot a few differences from normal CodeIgniter controllers.

REST_Controller

In the MVC pattern, a controller is the central point of the logic. It is called when a user makes a request and then based on the logic in the controller it fetches data and outputs views. CodeIgniter contains its own logic for how a Controller should work, but as we are doing something different we need our own REST_Controller library to contain its own REST related logic. So instead of simply using:

<?php
class Example_api extends Controller {

}

…you will need to use:

<?php
require(APPPATH'.libraries/REST_Controller.php');

class Example_api extends REST_Controller {

}

Working with Resources

Now your empty controller is set up, next are the methods or “resources”. This is prossibly the most confusing part of the tutorial if you are used to how CodeIgniter works. Basically, you take the Resource and the HTTP verb and combine them to make a method name. So the two examples we looked at before had a Resource of user and users. Because both of these were loaded in the browser, we know it was using a GET request and so the two methods below are used:

<?php
require(APPPATH'.libraries/REST_Controller.php');

class Example_api extends REST_Controller {

    function user_get()
    {
		// respond with information about a user
    }

    function users_get()
    {
		// respond with information about several users
    }
}

This may seem a little strange, but it gives you the ability to use the same URL and respond to the request depending on the HTTP verb that has been used. If somebody tries to access your API in a way that is not allowed (in this example PUT or DELETE) it will simply respond with a 404. If you aren’t sure about HTTP verbs, let me explain.

GET

Used to fetch information about an existing resource. This is used by browsers when you enter a URL and hit go, or when you click on a link, so it perfect for fetching information on one of your REST resources (like user).

POST

Used to update an existing resource with information. Browsers use this to submit most types of forms on the internet, although some use GET as well by submitting the form action with a query string containing the field data.

PUT

Less commonly used and not supported by most browsers, PUT is used to create a new resource.

DELETE

Also not used by many browsers, this HTTP verb rather obviously is used to delete a resource.

If we put that into code and allow each verb on the resource user it would look like this:

<?php
require(APPPATH'.libraries/REST_Controller.php');

class Example_api extends REST_Controller {

    function user_get()
    {
		// respond with information about a user
    }

    function user_put()
    {
		// create a new user and respond with a status/errors
    }

    function user_post()
    {
		// update an existing user and respond with a status/errors
    }

    function user_delete()
    {
		// delete a user and respond with a status/errors
    }
}

Accessing parameters and returning data

So now the API has been given its structure by setting up the resources and defining a method for each HTTP verb we wish to support; we need parameters so we can use our CodeIgniter models and libraries. This is one of the major benefits of using CodeIgniter for our API, as we can use our existing models and libraries and not have to re-code them.

<?php
require(APPPATH'.libraries/REST_Controller.php');

class Example_api extends REST_Controller {

    function user_get()
    {
		$data = array('returned: '. $this->get('id'));
		$this->response($data);
    }

    function user_post()
    {
		$data = array('returned: '. $this->post('id'));
		$this->response($data);
    }

    function user_put()
    {
		$data = array('returned: '. $this->put('id'));
		$this->response($data;
    }

    function user_delete()
    {
		$data = array('returned: '. $this->delete('id'));
		$this->response($data);
    }
}

This example contains five new pieces of code:

$this->get()

Is used to return GET variables from either a query string like this index.php/example_api/user?id=1 or can be set in the more CodeIgniter’esque way with index.php/example_api/user/id/1.

$this->post()

Is an alias for $this->input->post() which is CodeIgniter’s method to access $_POST variables with XSS protection.

$this->put()

Reads in PUT arguments set in the HTTP headers or via cURL.

$this->delete()

You guessed it, this reads in DELETE arguments, also set in HTTP headers or via cURL.

$this->response()

Sends data to the browser in whichever data format has been requested, or defaults to XML. You can optionally pass a HTTP status code to show it has worked or failed. E.g if the ID provided was not in the database, you could use $this->response(array(‘error’ => ‘User not found.’), 404);

Step 4: Working with your Models

Until now, we have been working with an example API in a clean install. So the next step is to get a REST API running from your existing codebase.

Although the download comes with a full CodeIgniter installation for the demo and to allow API’s to be built from scratch, the only two files of importance are:

  1. application/config/rest.php
  2. application/libraries/REST_Controller.php

Drop those two files into your CodeIgniter application and create a new API controller.

<?php
require(APPPATH.'/libraries/REST_Controller.php');

class Api extends REST_Controller
{
	function user_get()
    {
        if(!$this->get('id'))
        {
        	$this->response(NULL, 400);
        }

        $user = $this->user_model->get( $this->get('id') );

        if($user)
        {
            $this->response($user, 200); // 200 being the HTTP response code
        }

        else
        {
            $this->response(NULL, 404);
        }
    }

    function user_post()
    {
        $result = $this->user_model->update( $this->post('id'), array(
        	'name' => $this->post('name'),
        	'email' => $this->post('email')
        ));

        if($result === FALSE)
        {
        	$this->response(array('status' => 'failed'));
        }

        else
        {
        	$this->response(array('status' => 'success'));
        }

    }

    function users_get()
    {
        $users = $this->user_model->get_all();

        if($users)
        {
            $this->response($users, 200);
        }

        else
        {
            $this->response(NULL, 404);
        }
    }
}
?>

This shows an example API with some generic model names. In the first method, we are picking up a ?id=XX and passing it to the model. If data is found we send it to the $this->response() function with a status 200. If nothing is found, return no body and a 404 to say nothing was found. You can imagine how this could be expanded to run all sorts of API activities for your web application.

Step 5: Securing the API

Now your API is built it needs securing so only users given access can interact with the API. To set the login type, usernames and passwords open up “application/config/rest.php” inside your codebase.

/*
|--------------------------------------------------------------------------
| REST Login
|--------------------------------------------------------------------------
|
| Is login required and if so, which type of login?
|
|	'' = no login required, 'basic' = relatively secure login, 'digest' = secure login
|
*/
$config['rest_auth'] = 'basic';

None

Anyone can interact with any one of of your API controllers.

Basic

A relatively insecure login method which should only be used on internal/secure networks.

Digest

A much more secure login method which encrypts usernames and password. If you wish to have a protected API which anyone could get at, use digest.

/*
|--------------------------------------------------------------------------
| REST Login usernames
|--------------------------------------------------------------------------
|
| Array of usernames and passwords for login
|
|	array('admin' => '1234')
|
*/
$config['rest_valid_logins'] = array('admin' => '1234');

Setting up the users is simple. Each login is an array item, with a key and a value. The key is the username and the value is the password. Add as many as you like to this array and dish them out to anyone who will be using the API.

Part 2 – Interacting with RESTful Services

Whether it is the API you have just built or a public service such as Twitter, you will want to be able to interact with it somehow. Seeing as RESTful services work with basic HTTP requests it is very easy to do this in a number of different ways.

Different Methods to Interact with REST

Each of these different interaction methods will be shown with the code placed directly in the Controller methods. This is purely so the demos are easier to read and would normally would be placed inside a model or a library for correct MVC separation.

file_get_contents()

Using the very simple PHP function file_get_contents(), you can perform a basic GET request. This is the most basic of all the methods but is worth mentioning for those “quick and dirty” moments.

$user = json_decode(
	file_get_contents('http://example.com/index.php/api/user/id/1/format/json')
);

echo $user->name;

It’s worth noting that, while this method will not work using HTTP Digest authentication, if you are using HTTP Basic authentication you can use the following syntax to get data from your password protected RESTful API:

$user = json_decode(
	file_get_contents('http://admin:[email protected]/index.php/api/user/id/1/format/json')
);

echo $user->name;

There are a few problems with using this method: the only way to set extra HTTP headers is to set them manually using the PHP function stream_context_create(), which can be very complicated for developers who are new to the internal workings of HTTP requests. Another disadvantage is that you only receive the body of the HTTP response in its raw format, which means you need to handle conversion from very single request.

cURL

cURL is the most flexible way to interact with a REST API as it was designed for exactly this sort of thing. You can set HTTP headers, HTTP parameters and plenty more. Here is an example of how to update a user with our example_api and cURL to make a POST request:

    function native_curl($new_name, $new_email)
    {
	    $username = 'admin';
		$password = '1234';

		// Alternative JSON version
		// $url = 'http://twitter.com/statuses/update.json';
		// Set up and execute the curl process
		$curl_handle = curl_init();
		curl_setopt($curl_handle, CURLOPT_URL, 'http://localhost/restserver/index.php/example_api/user/id/1/format/json');
		curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($curl_handle, CURLOPT_POST, 1);
		curl_setopt($curl_handle, CURLOPT_POSTFIELDS, array(
			'name' => $new_name,
			'email' => $new_email
		));

		// Optional, delete this line if your API is open
		curl_setopt($curl_handle, CURLOPT_USERPWD, $username . ':' . $password);

		$buffer = curl_exec($curl_handle);
		curl_close($curl_handle);

		$result = json_decode($buffer);

		if(isset($result->status) && $result->status == 'success')
		{
			echo 'User has been updated.';
		}

		else
		{
			echo 'Something has gone wrong';
		}
    }

Interacting with your API this way works fine, but there are two problems with this method:

  1. It uses an ugly confusing syntax – imagine creating several an application based on that.
  2. cURL is not installed on all servers by default.

To solve this ugly syntax, a cURL library has been developed for CodeIgniter which simplifies things immensely.

The exact same request made with the cURL library would look like this:

    function ci_curl($new_name, $new_email)
    {
	    $username = 'admin';
		$password = '1234';

		$this->load->library('curl');

		$this->curl->create('http://localhost/restserver/index.php/example_api/user/id/1/format/json');

		// Optional, delete this line if your API is open
		$this->curl->http_login($username, $password);

		$this->curl->post(array(
			'name' => $new_name,
			'email' => $new_email
		));

		$result = json_decode($this->curl->execute());

		if(isset($result->status) && $result->status == 'success')
		{
			echo 'User has been updated.';
		}

		else
		{
			echo 'Something has gone wrong';
		}
    }

Much nicer to look at right? Well there is an even easier method to work with REST in your CodeIgniter applications that this.

REST client library

A REST client library has been developed that sits on top of this cURL library which handles format conversion, HTTP logins and several other aspects of your REST API.

    function rest_client_example($id)
    {
		$this->load->library('rest', array(
			'server' => 'http://localhost/restserver/index.php/example_api/',
			'http_user' => 'admin',
			'http_pass' => '1234',
			'http_auth' => 'basic' // or 'digest'
		));

        $user = $this->rest->get('user', array('id' => $id), 'json');

        echo $user->name;
    }

Here you can see we are making a GET request, sending id as a parameter and telling the library we want ‘json’ as the content format. This handles the setting of Content-type for you, and converts the data into a PHP object for you. You can change this value to ‘xml’, ‘json’, ’serialize’, ‘php’, ‘csv’ or any custom MIME-type you like, for example:

	$user = $this->rest->get('user', array('id' => $id), 'application/json');

As you have probably guessed as well as $this->rest->get(), the library also supports $this->rest->post(), $this->rest->put(), $this->rest->delete() to match all of your REST_Controller methods.

You will need to var_dump() results coming from the REST client library to make sure you are getting the right data format back. The conversion will somtimes be array and sometimes be an object, depending on how it is converted by PHP. If the returned MIME-type is not supported then it will simply return the format as plain-text.

Talking to Twitter

Using this REST library you can talk other RESTful services such as Twitter and Facebook. Here is a simple example of how you can get details for a specfic user based on their ID, using Twitter’s default format XML.

        $this->load->library('rest', array('server' => 'http://twitter.com/'));

        $user = $this->rest->get('users/show', array('screen_name' => 'philsturgeon'));
        $this->load->library('rest', array(
        	'server' => 'http://twitter.com/',
			'http_user' => 'username',
			'http_pass' => 'password',
			'http_auth' => 'basic'
        ));

        $user = $this->rest->post('statuses/update.json', array('status' => 'Using the REST client to do stuff'));

Looking at this, you will notice that interacting with the Twitter API is a bit different in a few ways.

  1. They support URL based format switching in the form of .json instead of /format/json. Some require an extension, some do not; so it’s best to always add them.
  2. They mostly only support GET/POST, but are starting to add more DELETE methods
  3. They don’t always have just a resource in their URL, for example: users/search is one REST method, but lists is another.

Keep an eye out for these differences as they can catch you out. If you get stuck, simply echo $this->rest->debug() for a whole range of information on your REST request.

Summary

Combining what you now know about RESTful services, the CodeIgniter REST client library and the Twitter API documentation – or any other RESTful API documentation for that matter – you can create some very powerful applications that integrate with any custom or public web service using REST. You can extend your API by creating more REST_Controller’s and even make a modular API by using Matchbox or Modular Separation to create an api.php controller for each module to help keep your API as neatly organized as your application.

Write a Plus Tutorial

Did you know that you can earn up to $600 for writing a PLUS tutorial and/or screencast for us? We’re looking for in depth and well-written tutorials on HTML, CSS, PHP, and JavaScript. If you’re of the ability, please contact Jeffrey at [email protected]

Please note that actual compensation will be dependent upon the quality of the final tutorial and screencast.

Write a PLUS tutorial



Classified Ads Php.ajax

Classified Ads Php.ajax
Befor read description please download and see atachment..
Complete info is in atachment..
You may use any open source script or edit from any other script for my requirments…please put your bid and let me know if you have demo already
This script is simple Classified Ads and have 5 important section
1.Ad view page ..that show and ad when people click on title(check ad view.jpg)
2.Ad list.that show all ads in a category with pagination(check ad list.jpp)
3.post ad page that visitor can write name and ads info with price to post thire ads.(post ad.jpg)
4.Review ads befor post page that uset check thiere info befor sending the ad.
5.send mail page..that buyer can contact with ad poster to shop thiere good..

Another function are normal functions like other Classified site,like send notifaction email to seller about thiere ads info…number of ads view,date of post and like these.

Also all things are categorise by country and city..people will choose a country from index page and just see ads in country thay choosed..

header and footer shoulde be make like atachment.check images please.

Payment option in post ad page can be choose by user.paypal and some other option are ok..

Also allthing shoulde be edit from admin panel.like:add category,sub category.subsub category..add country ,,add city ..price …admin may choose free mode ,that allthing be free for user for limited time…

Design need to be like atachment…

use ajaz for male and image of ads,for fast loading page..

During job i will tell if some thing may be add or change..but most of them are this you see now..

Also make posible language files.so i can translate it and add other languages later

Rush Penny Auction Editor Fix

Rush Penny Auction Editor Fix
Ok I have a Penny Auction www.BiteAWin.com and I had someone from ebay install the script to my webhost and my domain, The problem Im having is that I get an error message when someone try’s to sign up and also when someone send me a message or when someone clicks on the forgot password button and it will not send it to there email,on my contact page I never recieve the email and it could be because the default email is not right or something. But anyways the guy that installed my script said that the config.php file needs to be updated with your webhosting smtp settings for your particular account or re write the script.
So the 3 things I need fixed are the Sign up page gives me an error, Contact page I never recieve the message in my email and When someone clicks on the forgot password they never get an email for there password.
I will contact the person that I choose and I will give them my phone # to clearify on what I want done and the work I want done is done. So you must be able to contact me on the phone and must speak clear english.
If I am very satisfied with your work I may ask you at a later time to do some work on my other website projects, as I would like a proffesinal job done.

Any bids that are over my budget will not be accepted as I am low on funds so thats my final budget price.
When you PMB me please include the the items that I need fixed so that I know that you read my whole post.
I need this done as soon as possible, Because I will like to get the site running soon.

Site To Use Amazon S3

Site To Use Amazon S3
I have a stock photo website. It has about 1200 images currently, and they are taking up about 5GB of space on my server. The server is on shared hosting, and I cannot afford a dedicated server until the site has grown much larger.

I signed up for an Amazon S3 account, and I want to use that to store all the images. Right now, when someone uploads an image, the script makes a folder with a number in the /content directory. I would like to make it so that when someone uploads an image, the image is transferred to my S3 account, and when the site is viewed, it pulls the images from there. This will cut down on space and bandwidth usage for my server.

You will need to help integrate the S3 service into the current site. I can transfer the current images there, but I need you to make it so that whenever a new image is uploaded, it will be put on the S3 server.

The site URL is in the PMB.

You will need to show me what you have changed so that in the future I can change it back if necessary.