diff --git a/civicrm_entity.module b/civicrm_entity.module
index aed502e..e736803 100644
--- a/civicrm_entity.module
+++ b/civicrm_entity.module
@@ -60,6 +60,9 @@ function civicrm_entity_access($op, $entity, $account, $entity_type) {
   elseif ($op == 'view' && $entity_type == 'civicrm_participant') {
     return user_access('view event participants');
   }
+  elseif ($op == 'view' && $entity_type == 'civicrm_contribution_page') {
+    return user_access('make online contributions');
+  }
   else {
     return user_access('administer CiviCRM');
   }
@@ -300,6 +303,7 @@ function _civicrm_entity_enabled_entities() {
     'civicrm_address' => 'address',
     'civicrm_contact' => 'contact',
     'civicrm_contribution' => 'contribution',
+    'civicrm_contribution_page' => 'contribution_page',
     'civicrm_email' => 'email',
     'civicrm_entity_tag' => 'entity_tag',
     'civicrm_event' => 'event',
@@ -404,6 +408,7 @@ function _civicrm_entity_labels($entity) {
     'civicrm_address' => 'address_name',
     'civicrm_contact' => 'display_name',
     'civicrm_contribution' => 'contribution_source',
+    'civicrm_contribution_page' => 'title',
     'civicrm_email' => 'email',
     'civicrm_event' => 'title',
     'civicrm_entity_tag' => 'tag_id',
@@ -1649,8 +1654,11 @@ function  civicrm_entity_op_access($op, $entity) {
       case "civicrm_event":
         return user_access('view event info');
       case "civicrm_contribution":
-        return user_access('administer CiviCRM') &&
-        user_access('access CiviContribute');
+      case "civicrm_financial_type":
+        return user_access('access CiviContribute') &&
+        user_access('administer CiviCRM');
+      case "civicrm_contribution_page":
+        return user_access('make online contributions');
       case "civicrm_participant":
         return user_access('view event participants');
       case "civicrm_relationship":
@@ -1673,9 +1681,6 @@ function  civicrm_entity_op_access($op, $entity) {
       case "civicrm_tag":
         return user_access('administer Tagsets') &&
         user_access('administer CiviCRM');
-      case "civicrm_financial_type":
-        return user_access('access CiviContribute') &&
-        user_access('administer CiviCRM');
       case "civicrm_price_set_entity":
       case "civicrm_price_set":
       case "civicrm_price_field":
@@ -1723,6 +1728,7 @@ function  civicrm_entity_op_access($op, $entity) {
         return user_access('administer Tagsets') &&
         user_access('administer CiviCRM');
       case "civicrm_financial_type":
+      case "civicrm_contribution_page":
         return user_access('access CiviContribute') &&
         user_access('administer CiviCRM');
       case "civicrm_price_set_entity":
@@ -1777,6 +1783,7 @@ function  civicrm_entity_op_access($op, $entity) {
         return user_access('administer Tagsets') &&
         user_access('administer CiviCRM');
       case "civicrm_financial_type":
+      case "civicrm_contribution_page":
         return user_access('access CiviContribute') &&
         user_access('administer CiviCRM') &&
         user_access('delete in CiviContribute');
@@ -1922,6 +1929,9 @@ function _civicrm_entity_add_formatters($entity_type,&$fields) {
    case 'civicrm_contribution':
      _civicrm_entity_contribution_formatters($fields);
      break;
+   case 'civicrm_contribution_page':
+     _civicrm_entity_contribution_page_formatters($fields);
+     break;
    case 'civicrm_email':
      _civicrm_entity_email_formatters($fields);
      break;
@@ -2100,6 +2110,38 @@ function _civicrm_entity_contribution_formatters(&$fields){
   _civicrm_entity_yesno_addformatters('civicrm_contribution',$yes_no_fields,$fields);
 }
 
+function _civicrm_entity_contribution_page_formatters(&$fields){
+  $link_fields = array(
+    array(
+      'link_field' => 'created_id_contact',
+      'target' => 'civicrm_contact',
+    ),
+  );
+  _civicrm_entity_link_addformatters('civicrm_contribution_page',$link_fields,$fields);
+  $option_fields = array(
+    'financial_type_id',
+    'currency',
+  );
+  _civicrm_entity_option_addformatters('civicrm_contribution_page',$option_fields,$fields);
+  $yes_no_fields = array(
+    'is_credit_card_only',
+    'is_monetary',
+    'is_recur',
+    'is_confirm_enabled',
+    'is_recur_interval',
+    'is_recur_installments',
+    'is_pay_later',
+    'is_partial_payment',
+    'is_allow_other_amount',
+    'is_for_organization',
+    'is_email_receipt',
+    'is_active',
+    'is_share',
+    'is_billing_required',
+  );
+  _civicrm_entity_yesno_addformatters('civicrm_contribution_page',$yes_no_fields,$fields);
+}
+
 function _civicrm_entity_email_formatters(&$fields){
   $link_fields = array(
     array(
@@ -2644,4 +2686,3 @@ function _civicrm_entity_formatted_output_of_arrays(&$field,$wrapper) {
     return '';
   }
 }
-
