adding where clause to get custom fields by uid, fixing db changes in the update...
authorAnthony Talarico <talarico@gaslightmedia.com>
Fri, 20 Oct 2017 18:09:16 +0000 (14:09 -0400)
committerAnthony Talarico <talarico@gaslightmedia.com>
Fri, 20 Oct 2017 18:09:16 +0000 (14:09 -0400)
setting default uid to custom fields that already exist, changing layout of the admin view
for the custom fields to use glm grid instead of tables

css/admin.css [new file with mode: 0644]
models/admin/entity/fields.php
setup/adminHooks.php
setup/databaseScripts/update_database_V0.0.4.sql
views/admin/entity/fields.html

diff --git a/css/admin.css b/css/admin.css
new file mode 100644 (file)
index 0000000..2614375
--- /dev/null
@@ -0,0 +1,18 @@
+.glm-admin-custom-fields .glm-columns{
+    padding: 0 5px 10px 5px;
+}
+.glm-admin-custom-fields .glm-custom-field-label{
+    font-weight: bold;
+    line-height: 1;
+}
+
+@media(min-width: 1024px){
+    .glm-admin-custom-fields input[type=text]{
+        width: 50%;
+    }
+}
+@media(max-width: 1024px){
+    .glm-admin-custom-fields input[type=text]{
+        width: 100%;
+    }
+}
index 545f19a..5782124 100644 (file)
@@ -120,7 +120,9 @@ class GlmMembersAdmin_entity_fields extends GlmDataFieldsCustomFields
         $customFields     = false;
         $haveCustomFields = false;
         $customFieldData  = false;
-
+        $where = 'true';
+        $uid = '';
+        
         if (isset($_REQUEST['option'])) {
             $option = $_REQUEST['option'];
         }
@@ -130,10 +132,10 @@ class GlmMembersAdmin_entity_fields extends GlmDataFieldsCustomFields
         if (isset($_REQUEST['id'])) {
             $id = $_REQUEST['id']-0;
         }
-      $memberId = 0;
+        $memberId = 0;
         if (isset($actionData)) {
-            $memberId = $actionData;
-            print_r($actionData);
+            $memberId = $actionData['memberId'];
+            $uid = $actionData['uid'];
         }  
 
         switch ($option) {
@@ -145,9 +147,10 @@ class GlmMembersAdmin_entity_fields extends GlmDataFieldsCustomFields
                 break;
 
         }
-
+        // $where .= " AND field_id in (select id from " . GLM_MEMBERS_FIELDS_PLUGIN_DB_PREFIX ."custom_fields where uid = 'glm-member-db')";
+        $where .= " AND uid = '$uid'";
         // Get list of Custom Fields
-        $customFields = $this->getList( null, 'field_order,id' );
+        $customFields = $this->getList( $where, 'field_order,id' );
         if ( isset($customFields) && $customFields && count( $customFields ) > 0 ) {
             $haveCustomFields = true;
         }
@@ -162,6 +165,7 @@ class GlmMembersAdmin_entity_fields extends GlmDataFieldsCustomFields
             'customFieldsData' => $customFieldsData,
             'fieldTypes'       => $this->config['custom_field_types'],
             'haveCustomFields' => $haveCustomFields,
+            'uid'              => $uid
         );
 
         // Return status, suggested view, and data to controller
index cccf024..71adb91 100644 (file)
@@ -44,7 +44,8 @@ add_filter( 'glm-members-customfields-edit', function( $content, $uid ){
  */
 add_filter( 'glm-members-custom-fields-form', function( $content, $uid, $id ){
     unset( $_REQUEST['glm_action'] );
-    $content = $this->controller( 'entity', 'fields', array( 'uid' => $uid, 'memberId' => $id ), true );
+    // echo "CONTENT: " .  $content . " UID: " . $uid . " ID: " . $id . '<br>';
+    $content = $this->controller( 'entity', 'fields', array( 'uid' => $uid, 'memberId' => $id ), true);
     return $content;
 }, 10, 3 );
 /**
index ce026b4..6ae7b29 100644 (file)
@@ -10,7 +10,7 @@ ALTER TABLE {prefix}custom_fields ADD COLUMN required BOOLEAN DEFAULT '0';
 
 ----
 
-ALTER TABLE {prefix}custom_fields ADD COLUMN uid TINYTEXT NOT NULL DEFAULT '';
+ALTER TABLE {prefix}custom_fields ADD COLUMN uid TINYTEXT NOT NULL DEFAULT 'glm-member-db';
 
 ----
 
index 72fb72d..7c54bfc 100644 (file)
@@ -1,26 +1,24 @@
-<table id="glm-table-custom-fields" class="glm-admin-table glm-hidden glm-table">
+<div id="glm-members-custom-fields-{$uid}" class="glm-row glm-custom-field-group glm-admin-custom-fields">
     {foreach $customFields as $field}
-        <tr >
-            <th>{$field.field_name}</th>
-            <td>
-                {if $field.field_type.name == 'text'}
-                <input type="text" name="{$prefix}[{$field.id}]" value="{if isset($customFieldsData[$field.id])}{$customFieldsData[$field.id]|escape}{/if}">
-                {elseif $field.field_type.name == 'textarea'}
-                    {php}
-                    wp_editor('{if isset($customFieldsData[$field.id])}{$customFieldsData[$field.id]|escape:quotes}{/if}', 'custom-field-{$field.id}', array(
-                        'media_buttons' => false,
-                        // 'quicktags' => false,
-                        // 'wpautop' => false,  NOTE: Dont's use. Problem when numerous spaces before text.
-                        'textarea_name' => '{$prefix}[{$field.id}]',
-                        'editor_height' => 200,     // Height in px, overrides editor_rows
-                        // 'textarea_rows' => 8
-                    ));
-                    {/php}
-                {elseif $field.field_type.name == 'checkbox'}
-                <input type="hidden" name="{$prefix}[{$field.id}]" value="No" {if !isset($customFieldsData[$field.id]) || $customFieldsData[$field.id] == 'No'}checked{/if}>
-                <input type="checkbox" name="{$prefix}[{$field.id}]" value="Yes" {if isset($customFieldsData[$field.id]) && $customFieldsData[$field.id] == 'Yes'}checked{/if}>
-                {/if}
-            </td>
-        </tr>
+        <div class="glm-small-12 glm-large-2 glm-columns glm-custom-field-label">{$field.field_name}</div>
+        <div class="glm-small-12 glm-large-9 glm-columns glm-custom-field">
+            {if $field.field_type.name == 'text'}
+            <input type="text" name="{$prefix}[{$field.id}]" value="{if isset($customFieldsData[$field.id])}{$customFieldsData[$field.id]|escape}{/if}">
+            {elseif $field.field_type.name == 'textarea'}
+                {php}
+                wp_editor('{if isset($customFieldsData[$field.id])}{$customFieldsData[$field.id]|escape:quotes}{/if}', 'custom-field-{$field.id}', array(
+                    'media_buttons' => false,
+                    // 'quicktags' => false,
+                    // 'wpautop' => false,  NOTE: Dont's use. Problem when numerous spaces before text.
+                    'textarea_name' => '{$prefix}[{$field.id}]',
+                    'editor_height' => 200,     // Height in px, overrides editor_rows
+                    // 'textarea_rows' => 8
+                ));
+                {/php}
+            {elseif $field.field_type.name == 'checkbox'}
+            <input type="hidden" name="{$prefix}[{$field.id}]" value="No" {if !isset($customFieldsData[$field.id]) || $customFieldsData[$field.id] == 'No'}checked{/if}>
+            <input type="checkbox" name="{$prefix}[{$field.id}]" value="Yes" {if isset($customFieldsData[$field.id]) && $customFieldsData[$field.id] == 'Yes'}checked{/if}>
+            {/if}
+        </div>
     {/foreach}
-</table>
+</div>