How Do I Add Images to My Portfolio?

So you’ve created a Gallery on your portfolio. What next? Upload some goodness!….

Select the Gallery you want to upload images to by clicking on Galleries:

Next, click in to the Gallery of your choice (we’ll assume it’s empty for the purposes of this article)

The Gallery welcome screen will appear if your Gallery is empty, if not you’ll see the existing images in your Gallery.

You’re ready to start adding content to your Gallery, click the Upload icon in the upper right:

Then select the images you wish to upload from the window and click Open.

Tip: You can select and upload multiple files at once by clicking on the files whilst holding down the CTRL key on your keyboard (for Mac users you need to use the CMD key instead)

Once the upload completes the image(s) will be visible in your Gallery from both Crevado Admin as well as in your public portfolio.

NOTE: When creating a new Gallery, the first image you upload will be assigned as the ‘cover image’ for the Gallery. You can change the cover image (as well as crop it etc.) from the Galleries page.

You’re now ready to enter information about this image, to tell viewers more about your work. Of course, you don’t need to enter additional information and you can change it or add to it at any time. To learn how to attach additional information to your images see this article

Return to the Galleries page at any time, simply by clicking on Galleries at the upper left on the taskbar.

Using a Custom Domain With Your Crevado Portfolio

What is Custom Domain Name Binding?

Custom Domain name binding allows you to host your Crevado Portfolio on your own domain name so instead of hosting your portfolio at yourname.crevado.com you’d be hosting it at www.yourname.com.

When Custom Domain name binding is activated, visitors (including search engine spiders) to your crevado.com address will be automatically redirected to your Custom Domain.

Remember: Custom Domain name binding requires a Premium account for details see the plan comparison page.

Do Premium Plans include a Domain Name?

No. Crevado does not provide domain registration - you will need to register your domain yourself and then follow our configuration instructions.

What are the benefits of a Custom Domain?

Better branding (your domain name, your portfolio), better SEO benefits (securing yourfullname.com pretty much guarantee you the top spot in google for searches for your full name). It also raises your street cred and makes you one of the cool kids!

Who should I use to register my domain name?

Crevado recommends Namecheap.com for domain registrations. Other popular major registrars include GoDaddy and Network Solutions.

How much does it Cost to Register a Domain?

It depends on the extension (.com, .co.uk, .com.au etc.) of the domain and of course varies from registrar to registrar. Roughly, a .com will cost you around 12 USD per year.

How Do I Configure Custom Domain Name binding?

Configuration depends largely on who you used to register your domain. We have detailed configuration instructions for all major domain registrars:

Custom Domain Setup : Network Solutions

The following article describes how to link your Network Solutions registered domain name with your Crevado Portfolio.

remember: custom domain name binding requires a Premium account for details see the plan comparison page

  • Log in to your Network Solutions control panel
  • Goto Domains / Manage Domains
  • Select your domain by checking the box next to it and click ”Edit DNS
  • Under ”Advanced DNS Manager” click ”Manage DNS Records

NOTE - You are unable to add your CNAME records with Network Solutions Default A Records in place so you must first scrap your A Records. If something goes horribly wrong, you can reset to default afterwords.

  • Edit your A records and Delete the @none, * and WWW records
  • Now return to the ”Advanced DNS Manager
  • Under ”Host Aliases” click ”add/edit
  • Important! Under Alias, in an empty box put www | Leave the first drop down blank | Select the second radio button | In the Other Host box enter proxy.crevado.com (Note there is no . at the end like regular CNAMES)
  • Now click go
  • Now you need to login to the admin of your portfolio. Click on the “Settings” tab:

Domain Setup * Scroll down to “Domain Name Binding” under “Domain Hosting Settings”

Domain Setup * Click on “use a custom domain” and add the WWW version of your domain name in the field provided and click the “update domain” button.

Domain Setup

That’s it! Now all you need to do is wait for the DNS changes to take effect

  • NOTE!: The DNS changes you made at your registrar can take some time to propagate to DNS servers around the internet (anywhere from one hour to one day).

If you run into any trouble, you will find it more helpful to first contact Network Solutions for support as they have access to those settings (while Crevado doesn’t). Here is a direct link to their Support Page.

Custom Domain Setup : NameCheap

The following article describes how to link your Namecheap.com registered Domain name with your Crevado Portfolio.

remember: custom domain name binding requires a Premium account for details see the plan comparison page

  • Log in to your account at Namecheap.com

  • Once logged in, select Domain List on the left hand menu as pictured below:

  • Locate the domain from the list of domains displayed and click associated manage button :

  • From here, click on the Advanced DNS section:

  • At this point you should be able to configure the records under the Host Records section.

If you are not given the option of configuring host records you'll need to ensure you switch back to using the NameCheap DNS servers by clicking the 'change DNS type' link under Host Records

  • When configuring the host records section you need to ensure you have an '@' and 'www' host record which is configured as follows:

    1. A CNAME Record with host www and value proxy.crevado.com.
    2. A URL Redirect Record with host @ and value in the format: http://www.your-domain-name.com/ don't forget to set the redirect type to Permanent (301) has indicated in the image below

The following image illustrates how this should look like once configured like above:

note: if you have additional host records defined for '@' or 'www' then you should remove these records so you only have a single record for '@' and 'www' defined as above. Below is a screenshot of how this should look:

  • Once you have made the necessary changes click the Save All Changes button

  • Now you need to login to the admin of your portfolio. Click on the “Settings” tab. Domain Setup
  • Scroll down to “Domain Name Binding” under “Domain Hosting Settings” Domain Setup
  • Click on “use a custom domain” and add the WWW version of your domain name in the field provided and click the “update domain” button. Domain Setup
  • That’s it! Now all you need to do is wait for the DNS changes to take effect

Note:

  • If “All Host Records” does not appear on your Namecheap domain details page, your DNS has already been changed from Namecheap’s default servers to custom servers.
  • If this is the case, you must first transfer the DNS back to Namecheap with the following steps:
  • Click the “Transfer DNS Back to Us” button in the left toolbar
  • Check the “Transfer the DNS back to us” checkbox
  • Select the “Use NameCheap DNS Servers” radio button (NOT the NameCheap Hosting DNS Servers)
  • Click ‘Save Changes’
  • And now follow the above instructions for setting up the CNAME DNS Settings

If you run into any trouble, you will find it more helpful to first contact NameCheap for support as they have access to those settings (while Crevado doesn’t). Here is a direct link to their Support Page.**

Custom Domain Setup : Melbourne IT

The following article describes how to link your Melbourne IT registered domain name with your Crevado Portfolio.

remember: custom domain name binding requires a Premium account for details see the plan comparison page

Melbourne IT log in

Log in to your account at melbourneit.com.auMelbourne IT log in

From the main account menu, click manage domain names Melbourne IT log in

From the domain listing, click on the domain which you wish to point at your Crevado portfolio: Melbourne IT log in

From the domain management screen, click Manage DNS Melbourne IT log in

Now configure the DNS as highlighted in the screenshot below: Melbourne IT log in

  • As highlighted above: - For the root host name (i.e. yourdomain.com) point it to 72.14.188.72
  • For “WWW” Host Name, put in proxy.crevado.com into the “hostname” field and select CNAME (alias) as a record type.
  • Once the changes have been made you’re done with configuring Melbourne IT !

NOTE: It may take anywhere between an hour to 1 day for these settings to propagate throughout the internet.

Now you need to login to Crevado admin and click “Settings” tab. Domain Setup

Scroll down to “Domain Name Binding” under “Domain Hosting Settings” Domain Setup

Click on “use a custom domain” and add the WWW version of your domain name in the field provided and click the “update domain” button. Domain Setup

That’s it! Now all you need to do is wait for the DNS changes to take effect

If you run into any trouble, you will find it more helpful to first contact Melbourne IT for support as they have access to those settings (while Crevado doesn’t). Here is a direct link to their Support Page.

Custom Domain Setup : GoDaddy/Domain Manager

The following article describes how to link your GoDaddy/Domain Manager backed registered domain name with your Crevado Portfolio.

Remember: Custom Domain name binding requires a Premium account for details see the plan comparison page

Go Daddy and hundreds of other DNS service providers use Domain Manager.

If you run into any trouble, you will find it more helpful to first contact your domain provider for support as they have access to those settings (while Crevado doesn’t). Here are direct links to the support pages of GoDaddy, Domains Made Easy, Domain In Seconds.

Set Up Your DNS

Log into your domain manager powered account and go to your My Domains page. From the My Domains page, find the domain you are looking to use and click on the name of the domain:

My Domains

This will take you to the Domain Settings page and here you need to scroll down to the Additional Settings area and click on the Manage DNS option there:

Manage DNS

Now you are on the DNS Management page. First we need to setup forwarding so requests to the root of your domain (e.g. your-domain-name.com) get forwarded to the www subdomain (i.e. www.your-domain-name). To configure this, scroll down to the Forwarding area and click on the Add Forwarding link next to the Domain Forwarding option as highlighted in the screenshot below:

Setup GoDaddy WebForwarding

When you click on Add Forwarding more options will appear. First enter the full www version of your Custom Domain Name, i.e enter your Custom Domain Name in the forwarding and **NOT YOUR .CREVADO.COM DOMAIN!**. For example, if your custom domain name is **your-portfolio-name.com** then you would enter **www.your-portfolio-name.com**. Ensure the redirect **Forward Type** is left at **Permanent/301**. Lastly, click on the **Save** button to save your changes.

Setup GoDaddy WebForwarding

A pop-up will appear stating that the forwarding configuration has been saved and will become active shortly:

Setup Forwarding

Woohoo! We're almost there... now we just need to point www.your-domain-name.com to Crevado. From the DNS Management page, locate the DNS Records area at the top of the page. Locate the www alias. This is the CNAME you will be editing, so click the Edit button for the www CNAME alias as indicated below:

CNAME setup

When you click on the Edit button additional options will be revealed. Here you need to edit the Value field for the www record so it points to proxy.crevado.com as shown below. Click on the Save button to save your changes.

Proxy setup

NOTE: It may take up to 48 hours for these changes to propagate throughout the internet.

Rejoice! All your domain configuration work is done - the final step is to setup the Crevado side of things.

Login to Crevado Admin and click on the “Settings” tab.

Domain Setup Scroll down to “Domain Name Binding” under “Domain Hosting Settings”

Domain Setup Click on “use a custom domain” and add the WWW version of your domain name in the field provided and click the “update domain” button.

Domain Setup

That’s it! Now all you need to do is wait for the DNS changes to take effect

Remember: The DNS changes you made at your registrar can take some time to propagate to DNS servers around the internet (anywhere from one hour to one day).

Custom Domain Setup : Google Domains

The following article describes how to link your Google Domains registered domain name with your Crevado Portfolio.

Remember: Custom Domain name binding requires a Premium account for details see the plan comparison page

Set Up Your Forwarding

First you need to create forwarding from your bare/naked domain name to the www subdomain using the following steps:

To start, click the website option on the left hand side, then click on forward domain on the right hand side: Forwarding config for google domains

The default Forward From includes both the bare/root domain as well as the www subdomain - we need to change this so it only forwards the root domain. Click the Edit button to edit the forward from list: Forwarding config for google domains

Delete the the 'www' forward from option by clicking the related trash can button: Forwarding config for google domains

Delete the the 'www' forward from option by clicking the related trash can button, the remaining Forward From subdomain option left should be left blank as indicated below.

Be sure to enter your target forwarding URL in the format http://www.YOUR-DOMAIN-NAME.COM -- note that 'YOUR-DOMAIN-NAME.COM' should be replaced by your root domain name:

NOTE: Make sure you replace 'your-domain-name.com' with the actual name of your domain name, i.e. if your domain is myportfolio.com then you would enter myportfolio.com

Forwarding config for google domains

To finalize your forwarding configuration expand the advanced options section by clicking Advanced Options at the bottom of the page. This will reveal additional options as indicated in the screenshot below, here you need to change two default options:

Under Redirect Type select the Permanent Redirect (301) option. Under Path Forwarding choose the Forward Path option. Ensure your screenshot looks like the one below remembering to substitute 'your-domain-name.com' with your custom domain name. Click Forward to save the forwarding setup: Forwarding config for google domains

From the forwarding confirmation page, confirm that your forwarding setup looks like the screenshot below. Forwarding config for google domains

Set Up Your DNS

Now we need to setup your DNS, click DNS on the left hand side. You'll be taken to the DNS page where it lists your DNS records -- click manage custom records: DNS for google Your custom records page may show many records, the only one we're interested in changing is the WWW record. From the custom records page, ensure your WWW record is of type CNAME and points to proxy.crevado.com. If you do not have a WWW record create one by clicking the create new record button and ensure it is configured as shown below. Click save when you're done: DNS for google The resource record confirmation page should now display the overview of your records. Confirm the WWW record shows as type CNAME and is pointing to proxy.crevado.com.: DNS for google

NOTE: DNS changes like the above can take up to 48 hours to take effect and propagate throughout the internet.

Rejoice! All your domain configuration work is done - the final step is to setup the Crevado side of things. Login to Crevado Admin and click on the “Settings” tab.

Domain Setup Scroll down to “Domain Name Binding” under “Domain Hosting Settings”

Domain Setup Click on “use a custom domain” and add the WWW version of your domain name in the field provided and click the “update domain” button.

Domain Setup

That’s it! Now all you need to do is wait for the DNS changes to take effect

Remember: The DNS changes you made at your registrar can take some time to propagate to DNS servers around the internet (anywhere from one hour to one day).

Custom Domain Setup: Generic/Basic

The following article describes how to link a Custom Domain name with your Crevado Portfolio.

NOTE: Custom Domain name binding requires a Premium Crevado Account for details see our plan comparison page.

Contact your Domain providers support team and ask them to set it up like this:

  • Your “www” subdomain should be configured as a CNAME record which points to: proxy.crevado.com
  • Your root domain (without the www, sometime referred to as '@') should be an A Record pointing to 72.14.188.72
  • That’s the domain config done but PLEASE NOTE: DNS changes can take up to 24 hours to take effect!

On the Crevado side of things, follow these steps to ensure your portfolio appears once the DNS changes take effect:

  • Login to Crevado Admin and click on Settings Domain Setup
  • Scroll down to Custom Domain Name Binding which can be found in the Domain Hosting Settings area Domain Setup
  • Click on Use a custom domain and add the WWW version of your domain name in the field provided and click the Update Domain button. Domain Setup
  • That’s it! Now all you need to do is wait for the DNS changes to take effect.
  • REMEMBER: DNS changes can take up to 24 hours to take effect!

Accessing Your Crevado Portfolio via the Crevado API

What’s this about an API?

Every Crevado portfolio has a built in minimal REST style API which allows reading of pages and media on your portfolio using JSON.

How do I access the API?

It’s pretty easy! First obtain your API Key at your API information page.

Once you have your API key, you can access your JSON REST API via https://crevado.com/api/pages.json. When accessing the Crevado API resources you must pass your API key and Crevado domain via custom HTTP headers. Your API Key should be passed as the header X-APIKey and your Crevado domain name as X-APIDomain - see the code samples below for more information. If either of these credentials are not supplied or incorrect the endpoint will return with a HTTP 403 (Forbidden).

Sample JSON Output

Typical output from api/pages.json:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[{
  "images_count":13,
    "link_title":"Awesome Photography Gallery",
    "page_type_id":5,
    "updated_at":"2013-02-21T11:37:10Z",
    "api_url":"pages/76327-photos"
}, {
  "images_count":0,
  "link_title":"About",
  "page_type_id":1,
  "updated_at":"2013-02-21T11:36:30Z",
  "api_url":"pages/76324-about-me"
}
...etc.etc...
]

Accessing the above mentioned page “Awesome Photography Gallery” can be done via /api/pages/76324-photos.json:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
  "page": {
      "page_title":"Awesome Photography Gallery",
      "link_title":"Awesome Photography Gallery"
  },
  "media":[
    {
      "id":282857,
      "title":"Elephant in the field",
      "urls":{
        "enlarged":"http://i.crevado.com/91282857_enlarged-1.jpg",
        "thumb":"http://i.crevado.com/91282857_thumb-1.jpg"
      }
    },
    {
      "id":282856,
      "title":"Where'd he go?",
      "urls":{
        "enlarged":"http://i.crevado.com/91282857_enlarged-1.jpg",
        "thumb":"http://i.crevado.com/91282857_thumb-1.jpg"
      }
    },
    ... etc. etc...
  ]
}

PHP Code Sample

The following is a PHP code sample which demonstrates how you can interact with the API

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<?
/*
 *  CREVADO.COM API Integration with PHP
 *
 *  Author ✰  Crevado Portfolios
 *
 *  DateCreated ✰ Thu, 14/Mar/2013
 *
 */

class CrevadoPortfolio {

  const PAGE_TYPE_CONTENT   = 0;
  const PAGE_TYPE_ABOUT     = 1;
  const PAGE_TYPE_GALLERIES = 2;
  const PAGE_TYPE_LINK      = 3;
  const PAGE_TYPE_EMAIL     = 4;
  const PAGE_TYPE_GALLERY   = 5;

  private $arrConfig = array();
  private $_errors   = array();
  // cache ttl in seconds
  private $_ttl      = 180;
  // cache dir (built in __construct)
  private $_cachedir = null;

  // Constructor - pass hostname as yourname.crevado.com or www.yourname.com
  // along with your API key:
  //
  // $obj = new CrevadoPortfolio("myname.crevado.com","my-secret-api-key");
  // or
  // $obj = new CrevadoPortfolio("myname.com","my-secret-api-key");
  public function __construct($sCrevadoHostName, $sAPIKey) {
    // keys are always 32 chars long
    if (strlen(trim($sAPIKey)) != 32)
      throw new Exception("Invalid API key! {$sAPIKey}");
    $this->arrConfig = array(
      'domain'  =>  strtolower(trim($sCrevadoHostName)),
      'api_key' =>  trim($sAPIKey),
    );
    // init cache dir..
    $this->_cachedir = join(DIRECTORY_SEPARATOR, array(sys_get_temp_dir(), ".crevado-cache-".$this->arrConfig['domain']));
    if (!is_dir($this->_cachedir))
      mkdir($this->_cachedir, 0700);
  }

  // Error Handling
  protected function resetErrors() {
    $this->_errors = array();
  }

  public function errors() {
    return $this->_errors;
  }

  private function addError($sMessage) {
    $this->_errors[] = $sMessage;
  }

  // The main meat of all this...
  protected function get($sAPIUrl) {
    if ($cache = $this->isCached($sAPIUrl))
      return $cache;
    $this->resetErrors();
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://crevado.com/api/".$sAPIUrl.".json");
    curl_setopt($ch, CURLOPT_USERAGENT, "Crevado/PHP/v1.0");
    // NOTE: API key is passed to the server via the X-ApiKey header
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      "X-ApiKey: "   .$this->arrConfig['api_key'],
      "X-ApiDomain: ".$this->arrConfig['domain'],
    ));
    curl_setopt($ch, CURLOPT_VERBOSE, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);

    $response = curl_exec($ch);
    // Check for a cURL connection error
    if (curl_error($ch)) {
      // We hit a failure!
      $this->addError("Curl Error: ".curl_error($ch));
    } else {
      $info = curl_getinfo($ch);
      if ($info['http_code'] != 200)
        $this->addError("HTTP ERROR {$info['http_code']} - http://en.wikipedia.org/wiki/HTTP_{$info['http_code']}");
    }
    curl_close($ch);
    if (!empty($response) && !count($this->_errors)) {
      $this->saveCache($sAPIUrl, $response);
      return json_decode($response);
    }
    return null;
  }

  // API Wrapping
  public function page($page) {
    $url = null;
    if (is_object($page)) {
      if (empty($page->api_url))
        throw new Exception("Invalid Page! (missing url?)");
      else
        $url = $page->api_url;
    } elseif (is_array($page)) {
      if (empty($page['api_url']))
        throw new Exception("Invalid Page! (missing url?)");
      else
        $url = $page['api_url'];
    } else {
      $url = $page;
    }
    return $this->get($url);
  }

  public function pages() {
    return $this->get("pages");
  }

  private function getCachePath($sAPIUrl) {
    return join(DIRECTORY_SEPARATOR, array($this->_cachedir, md5($sAPIUrl)));
  }

  private function saveCache($sAPIUrl, $sContents) {
    $sCachePath = $this->getCachePath($sAPIUrl);
    if ($fp = fopen($sCachePath, "w")) {
      fwrite($fp, $sContents);
      fclose($fp);
    }
  }

  private function isCached($sAPIUrl) {
    $sCachePath = $this->getCachePath($sAPIUrl);
    // if file exists and its less than our TTL
    if (file_exists($sCachePath) && (filemtime($sCachePath) > (time()-$this->_ttl)))
      return json_decode(file_get_contents($sCachePath));
    return false;
  }
}

//----------------------------------------------------------------------
//    _______  __    _    __  __ ____  _     _____
//   | ____\ \/ /   / \  |  \/  |  _ \| |   | ____|
//   |  _|  \  /   / _ \ | |\/| | |_) | |   |  _|  
//   | |___ /  \  / ___ \| |  | |  __/| |___| |___
//   |_____/_/\_\/_/   \_\_|  |_|_|   |_____|_____|
//
//       S A M P L E   U S A G E
//
//                  your crevado domain:          and your API key:
$objFolio = new CrevadoPortfolio("mysite.crevado.com", "dd152981...............87d3da552");

if ($pages = $objFolio->pages()) {
  //print_r($pages); <- take a peek!
  $objGalleryPage = null;
  foreach ($pages as $objPage) {
    // output some useful attributes for kicks..
    echo "{$objPage->link_title} => {$objPage->page_type_id} ({$objPage->api_url})\n";
    // if we don't have a gallery page already and this is one record it for a page() call demo
    if (!$objGalleryPage && $objPage->page_type_id == CrevadoPortfolio::PAGE_TYPE_GALLERY)
      $objGalleryPage = $objPage;
  }

  // given we've swiped the first available gallery above get the contents of the page
  $objMyGalleryPage = $objFolio->page($objGalleryPage);
  // you can also pass the api_url directly:
  //$objMyGalleryPage = $objFolio->page("pages/76324-photos");
  // images ...
  print_r($objMyGalleryPage->media);

} else {
  echo "<h2>Something bad happened:</h2>";
  print_r($objFolio->errors());
}
//----------------------------------------------------------------------

Changing the Name of Your Portfolio

Editing the name of your Crevado Portfolio is easy. From Crevado Admin click on Customize:

Partway down the customization page, you will see the Portfolio Header area. The functions in this area let you either rename your portfolio or upload an image or logo to the header area of your portfolio.

To change the name of your Portfolio click the Portfolio Name box and type the new name:

Don't forget to click Save when you are finished making your changes. If you decide not to change the name, just click Cancel.