function connectionsShowViewPage() { global $wpdb, $connections; if (isset($_GET['action'])) { $action = $_GET['action']; } else { $action = NULL; } ?> <div class="wrap"> <div class="icon32" id="icon-connections"><br/></div> <h2>Connections</h2> <?php $connections->displayMessages(); switch ($action) { case 'add_new': /* * Check whether current user can add an entry. */ if (current_user_can('connections_add_entry')) { add_meta_box('metabox-name', 'Name', array(&$form, 'metaboxName'), $connections->pageHook->manage, 'normal', 'high'); $form = new cnFormObjects(); $entry = new cnEntry(); echo '<div id="poststuff" class="metabox-holder has-right-sidebar">'; echo '<h2><a name="new"></a>Add Entry</h2>'; $attr = array('action' => 'admin.php?page=connections&action=add', 'method' => 'post', 'enctype' => 'multipart/form-data'); $form->open($attr); $form->tokenField('add_entry'); wp_nonce_field('howto-metaboxes-general'); wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false); wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false); echo '<input type="hidden" name="action" value="save_howto_metaboxes_general" />'; echo '<div id="side-info-column" class="inner-sidebar">'; do_meta_boxes($connections->pageHook->manage, 'side', $entry); echo '</div>'; echo '<div id="post-body" class="has-sidebar">'; echo '<div id="post-body-content" class="has-sidebar-content">'; do_meta_boxes($connections->pageHook->manage, 'normal', $entry); echo '</div>'; echo '</div>'; $form->close(); echo '</div>'; ?> <script type="text/javascript"> //<![CDATA[ jQuery(document).ready( function($) { // close postboxes that should be closed $('.if-js-closed').removeClass('if-js-closed').addClass('closed'); // postboxes setup postboxes.add_postbox_toggles('<?php echo $connections->pageHook->manage; ?> '); }); //]]> </script> <?php unset($entry); } else { $connections->setErrorMessage('capability_add'); } break; case 'copy': /* * Check whether current user can add an entry. */ if (current_user_can('connections_add_entry')) { $id = esc_attr($_GET['id']); check_admin_referer('entry_copy_' . $id); add_meta_box('metabox-name', 'Name', array(&$form, 'metaboxName'), $connections->pageHook->manage, 'normal', 'high'); $form = new cnFormObjects(); $entry = new cnEntry($connections->retrieve->entry($id)); echo '<div id="poststuff" class="metabox-holder has-right-sidebar">'; echo '<h2><a name="new"></a>Add Entry</h2>'; $attr = array('action' => 'admin.php?page=connections&action=add&id=' . $id, 'method' => 'post', 'enctype' => 'multipart/form-data'); $form->open($attr); $form->tokenField('add_entry'); wp_nonce_field('howto-metaboxes-general'); wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false); wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false); echo '<input type="hidden" name="action" value="save_howto_metaboxes_general" />'; echo '<div id="side-info-column" class="inner-sidebar">'; do_meta_boxes($connections->pageHook->manage, 'side', $entry); echo '</div>'; echo '<div id="post-body" class="has-sidebar">'; echo '<div id="post-body-content" class="has-sidebar-content">'; do_meta_boxes($connections->pageHook->manage, 'normal', $entry); echo '</div>'; echo '</div>'; $form->close(); echo '</div>'; ?> <script type="text/javascript"> //<![CDATA[ jQuery(document).ready( function($) { // close postboxes that should be closed $('.if-js-closed').removeClass('if-js-closed').addClass('closed'); // postboxes setup postboxes.add_postbox_toggles('<?php echo $connections->pageHook->manage; ?> '); }); //]]> </script> <?php unset($entry); } else { $connections->setErrorMessage('capability_add'); } break; case 'edit': /* * Check whether the current user can edit entries. */ if (current_user_can('connections_edit_entry')) { $id = esc_attr($_GET['id']); check_admin_referer('entry_edit_' . $id); add_meta_box('metabox-name', 'Name', array(&$form, 'metaboxName'), $connections->pageHook->manage, 'normal', 'high'); $form = new cnFormObjects(); $entry = new cnEntry($connections->retrieve->entry($id)); echo '<div id="poststuff" class="metabox-holder has-right-sidebar">'; echo '<h2><a name="new"></a>Edit Entry</h2>'; $attr = array('action' => 'admin.php?page=connections&action=update&id=' . $id, 'method' => 'post', 'enctype' => 'multipart/form-data'); $form->open($attr); $form->tokenField('update_entry'); wp_nonce_field('howto-metaboxes-general'); wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false); wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false); echo '<input type="hidden" name="action" value="save_howto_metaboxes_general" />'; echo '<div id="side-info-column" class="inner-sidebar">'; do_meta_boxes($connections->pageHook->manage, 'side', $entry); echo '</div>'; echo '<div id="post-body" class="has-sidebar">'; echo '<div id="post-body-content" class="has-sidebar-content">'; do_meta_boxes($connections->pageHook->manage, 'normal', $entry); echo '</div>'; echo '</div>'; $form->close(); echo '</div>'; ?> <script type="text/javascript"> //<![CDATA[ jQuery(document).ready( function($) { // close postboxes that should be closed $('.if-js-closed').removeClass('if-js-closed').addClass('closed'); // postboxes setup postboxes.add_postbox_toggles('<?php echo $connections->pageHook->manage; ?> '); }); //]]> </script> <?php unset($entry); } else { $connections->setErrorMessage('capability_edit'); } break; default: $form = new cnFormObjects(); $categoryObjects = new cnCategoryObjects(); /* * Check whether user can view the entry list */ if (current_user_can('connections_view_entry_list')) { ?> <?php $retrieveAttr['list_type'] = $connections->currentUser->getFilterEntryType(); $retrieveAttr['category'] = $connections->currentUser->getFilterCategory(); $retrieveAttr['visibility'] = $connections->currentUser->getFilterVisibility(); $results = $connections->retrieve->entries($retrieveAttr); //print_r($connections->lastQuery); ?> <form action="admin.php?page=connections&action=do" method="post"> <?php $form->tokenField('bulk_action'); ?> <div class="tablenav"> <div class="alignleft actions"> <?php echo '<select class="postform" id="category" name="category">'; echo '<option value="-1">Show All Categories</option>'; echo $categoryObjects->buildCategoryRow('option', $connections->retrieve->categories(), $level, $connections->currentUser->getFilterCategory()); echo '</select>'; echo $form->buildSelect('entry_type', array('all' => 'Show All Enties', 'individual' => 'Show Individuals', 'organization' => 'Show Organizations', 'family' => 'Show Families'), $connections->currentUser->getFilterEntryType()); ?> <?php /* * Builds the visibilty select list base on current user capabilities. */ if (current_user_can('connections_view_public') || $connections->options->getAllowPublic()) { $visibilitySelect['public'] = 'Show Public'; } if (current_user_can('connections_view_private')) { $visibilitySelect['private'] = 'Show Private'; } if (current_user_can('connections_view_unlisted')) { $visibilitySelect['unlisted'] = 'Show Unlisted'; } if (isset($visibilitySelect)) { /* * Add the 'Show All' option and echo the list. */ $showAll['all'] = 'Show All'; $visibilitySelect = $showAll + $visibilitySelect; echo $form->buildSelect('visibility_type', $visibilitySelect, $connections->currentUser->getFilterVisibility()); } ?> <input id="doaction" class="button-secondary action" type="submit" name="filter" value="Filter" /> <input type="hidden" name="formId" value="do_action" /> <input type="hidden" name="token" value="<?php echo $form->token("do_action"); ?> " /> </div> </div> <div class="clear"></div> <div class="tablenav"> <?php if (current_user_can('connections_edit_entry') || current_user_can('connections_delete_entry')) { echo '<div class="alignleft actions">'; echo '<select name="action">'; echo '<option value="" SELECTED>Bulk Actions</option>'; $bulkActions = array(); if (current_user_can('connections_edit_entry')) { $bulkActions['public'] = 'Set Public'; $bulkActions['private'] = 'Set Private'; $bulkActions['unlisted'] = 'Set Unlisted'; } if (current_user_can('connections_delete_entry')) { $bulkActions['delete'] = 'Delete'; } $bulkActions = apply_filters('cn_view_bulk_actions', $bulkActions); foreach ($bulkActions as $action => $string) { echo '<option value="', $action, '">', $string, '</option>'; } echo '</select>'; echo '<input id="doaction" class="button-secondary action" type="submit" name="doaction" value="Apply" />'; echo '</div>'; } ?> <div class="tablenav-pages"> <?php echo '<span class="displaying-num">Displaying ', $connections->resultCount, ' of ', $connections->recordCount, ' records.</span>'; /* * Dynamically builds the alpha index based on the available entries. */ $previousLetter = NULL; $setAnchor = NULL; foreach ($results as $row) { $entry = new cnEntry($row); $currentLetter = strtoupper(mb_substr($entry->getSortColumn(), 0, 1)); if ($currentLetter != $previousLetter) { $setAnchor .= '<a href="#' . $currentLetter . '">' . $currentLetter . '</a> '; $previousLetter = $currentLetter; } } echo $setAnchor; ?> </div> </div> <div class="clear"></div> <table cellspacing="0" class="widefat connections"> <thead> <tr> <th class="manage-column column-cb check-column" id="cb" scope="col"><input type="checkbox"/></th> <th class="col" style="width:10%;"></th> <th scope="col" colspan="2" style="width:40%;">Name</th> <th scope="col" style="width:30%;">Categories</th> <th scope="col" style="width:20%;">Last Modified</th> </tr> </thead> <tfoot> <tr> <th class="manage-column column-cb check-column" scope="col"><input type="checkbox"/></th> <th class="col" style="width:10%;"></th> <th scope="col" colspan="2" style="width:40%;">Name</th> <th scope="col" style="width:30%;">Categories</th> <th scope="col" style="width:20%;">Last Modified</th> </tr> </tfoot> <tbody> <?php foreach ($results as $row) { /** * @TODO: Use the Output class to show entry details. */ $entry = new cnvCard($row); $vCard =& $entry; $currentLetter = strtoupper(mb_substr($entry->getSortColumn(), 0, 1)); if ($currentLetter != $previousLetter) { $setAnchor = "<a name='{$currentLetter}'></a>"; $previousLetter = $currentLetter; } else { $setAnchor = null; } /* * Genreate the edit, copy and delete URLs with nonce tokens. */ $editTokenURL = $form->tokenURL('admin.php?page=connections&action=edit&id=' . $entry->getId(), 'entry_edit_' . $entry->getId()); $copyTokenURL = $form->tokenURL('admin.php?page=connections&action=copy&id=' . $entry->getId(), 'entry_copy_' . $entry->getId()); $deleteTokenURL = $form->tokenURL('admin.php?page=connections&action=delete&id=' . $entry->getId(), 'entry_delete_' . $entry->getId()); echo "<tr id='row-" . $entry->getId() . "' class='parent-row'>"; echo "<th class='check-column' scope='row'><input type='checkbox' value='" . $entry->getId() . "' name='entry[]'/></th> \n"; echo '<td>'; echo $entry->getThumbnailImage(array('place_holder' => TRUE)); echo '</td>'; echo '<td colspan="2">'; if ($setAnchor) { echo $setAnchor; } echo '<div style="float:right"><a href="#wphead" title="Return to top."><img src="' . WP_PLUGIN_URL . '/connections/images/uparrow.gif" /></a></div>'; if (current_user_can('connections_edit_entry')) { echo '<a class="row-title" title="Edit ' . $entry->getFullFirstLastName() . '" href="' . $editTokenURL . '"> ' . $entry->getFullLastFirstName() . '</a><br />'; } else { echo '<strong>' . $entry->getFullLastFirstName() . '</strong>'; } echo '<div class="row-actions">'; echo '<a class="detailsbutton" id="row-' . $entry->getId() . '">Show Details</a> | '; echo $vCard->download(array('anchorText' => 'vCard')) . ' | '; if (current_user_can('connections_edit_entry')) { echo '<a class="editbutton" href="' . $editTokenURL . '" title="Edit ' . $entry->getFullFirstLastName() . '">Edit</a> | '; } if (current_user_can('connections_add_entry')) { echo '<a class="copybutton" href="' . $copyTokenURL . '" title="Copy ' . $entry->getFullFirstLastName() . '">Copy</a> | '; } if (current_user_can('connections_delete_entry')) { echo '<a class="submitdelete" onclick="return confirm(\'You are about to delete this entry. \\\'Cancel\\\' to stop, \\\'OK\\\' to delete\');" href="' . $deleteTokenURL . '" title="Delete ' . $entry->getFullFirstLastName() . '">Delete</a>'; } echo '</div>'; echo "</td> \n"; echo "<td > \n"; $categories = $entry->getCategory(); if (!empty($categories)) { $i = 0; foreach ($categories as $category) { /* * Genreate the category link token URL. */ $categoryFilterURL = $form->tokenURL('admin.php?page=connections&action=filter&category_id=' . $category->term_id, 'filter'); echo '<a href="' . $categoryFilterURL . '">' . $category->name . '</a>'; $i++; if (count($categories) > $i) { echo ', '; } } unset($i); } echo "</td> \n"; echo '<td >'; echo '<strong>On:</strong> ' . $entry->getFormattedTimeStamp('m/d/Y g:ia') . '<br />'; echo '<strong>By:</strong> ' . $entry->getEditedBy() . '<br />'; echo '<strong>Visibility:</strong> ' . $entry->displayVisibiltyType(); echo "</td> \n"; echo "</tr> \n"; echo "<tr class='child-row-" . $entry->getId() . " entrydetails' id='contact-" . $entry->getId() . "-detail' style='display:none;'>"; echo "<td colspan='2' > </td> \n"; //echo "<td > </td> \n"; echo "<td colspan='2'>"; /* * Check if the entry has relations. Count the relations and then cycle thru each relation. * Before the out check that the related entry still exists. If it does and the current user * has edit capabilites the edit link will be displayed. If the user does not have edit capabilities * the only the relation will be shown. After all relations have been output insert a <br> * for spacing [@TODO: NOTE: this should be done with styles]. */ if ($entry->getFamilyMembers()) { $count = count($entry->getFamilyMembers()); $i = 0; foreach ($entry->getFamilyMembers() as $key => $value) { $relation = new cnEntry(); $relation->set($key); $editRelationTokenURL = $form->tokenURL('admin.php?page=connections&action=edit&id=' . $relation->getId(), 'entry_edit_' . $relation->getId()); if ($relation->getId()) { if (current_user_can('connections_edit_entry')) { echo '<strong>' . $connections->options->getFamilyRelation($value) . ':</strong> ' . '<a href="' . $editRelationTokenURL . '" title="Edit ' . $relation->getFullFirstLastName() . '">' . $relation->getFullFirstLastName() . '</a><br />' . "\n"; } else { echo '<strong>' . $connections->options->getFamilyRelation($value) . ':</strong> ' . $relation->getFullFirstLastName() . '<br />' . "\n"; } } if ($count - 1 == $i) { echo '<br />'; } // Insert a break after all connections are listed. $i++; unset($relation); } unset($i); unset($count); } if ($entry->getContactFirstName() || $entry->getContactLastName()) { echo '<strong>Contact:</strong> ' . $entry->getContactFirstName() . ' ' . $entry->getContactLastName() . '<br />'; } if ($entry->getTitle()) { echo '<strong>Title:</strong> ' . $entry->getTitle() . '<br />'; } if ($entry->getOrganization() && $entry->getEntryType() !== 'organization') { echo '<strong>Organization:</strong> ' . $entry->getOrganization() . '<br />'; } if ($entry->getDepartment()) { echo '<strong>Department:</strong> ' . $entry->getDepartment() . '<br />'; } if ($entry->getAddresses()) { foreach ($entry->getAddresses() as $address) { echo "<div style='margin-bottom: 10px;'>"; if ($address->name != NULL || $address->type) { echo "<strong>" . $address->name . "</strong><br />"; } //The OR is for compatiblity for 0.2.24 and under if ($address->line_one != NULL) { echo $address->line_one . "<br />"; } if ($address->line_two != NULL) { echo $address->line_two . "<br />"; } if ($address->city != NULL) { echo $address->city . " "; } if ($address->state != NULL) { echo $address->state . " "; } if ($address->zipcode != NULL) { echo $address->zipcode . "<br />"; } if ($address->country != NULL) { echo $address->country; } echo "</div>"; } } echo "</td> \n"; echo "<td>"; if ($entry->getEmailAddresses()) { foreach ($entry->getEmailAddresses() as $emailRow) { if ($emailRow->address != null) { echo "<strong>" . $emailRow->name . ":</strong><br /><a href='mailto:" . $emailRow->address . "'>" . $emailRow->address . "</a><br /><br />"; } } } if ($entry->getIm()) { foreach ($entry->getIm() as $imRow) { if ($imRow->id != "") { echo "<strong>" . $imRow->name . ":</strong><br />" . $imRow->id . "<br /><br />"; } } } if ($entry->getSocialMedia()) { foreach ($entry->getSocialMedia() as $socialNetwork) { if ($socialNetwork->id != "") { echo "<strong>" . $socialNetwork->name . ":</strong><br /><a target='_blank' href='" . $socialNetwork->url . "'>" . $socialNetwork->url . "</a><br /><br />"; } } } if ($entry->getWebsites()) { foreach ($entry->getWebsites() as $website) { if ($website->url != "") { echo "<strong>Website:</strong><br /><a target='_blank' href='" . $website->url . "'>" . $website->url . "</a><br /><br />"; } } } if ($entry->getPhoneNumbers()) { foreach ($entry->getPhoneNumbers() as $phone) { if ($phone->number != "") { echo "<strong>" . $phone->name . "</strong>: " . $phone->number . "<br />"; } } } echo "</td> \n"; echo "<td>"; if ($entry->getBirthday()) { echo "<strong>Birthday:</strong><br />" . $entry->getBirthday() . "<br /><br />"; } if ($entry->getAnniversary()) { echo "<strong>Anniversary:</strong><br />" . $entry->getAnniversary(); } echo "</td> \n"; echo "</tr> \n"; echo "<tr class='child-row-" . $entry->getId() . " entrynotes' id='contact-" . $entry->getId() . "-detail-notes' style='display:none;'>"; echo "<td colspan='2'> </td> \n"; //echo "<td > </td> \n"; echo "<td colspan='3'>"; if ($entry->getBio()) { echo "<strong>Bio:</strong> " . $entry->getBio() . "<br />"; } else { echo " "; } if ($entry->getNotes()) { echo "<strong>Notes:</strong> " . $entry->getNotes(); } else { echo " "; } echo "</td> \n"; echo '<td> <strong>Entry ID:</strong> ' . $entry->getId() . '<br />' . ' <strong>Date Added:</strong> ' . $entry->getDateAdded('m/d/Y g:ia') . '<br /> <strong>Added By:</strong> ' . $entry->getAddedBy() . '<br />'; if (!$entry->getImageLinked()) { echo "<br /><strong>Image Linked:</strong> No"; } else { echo "<br /><strong>Image Linked:</strong> Yes"; } if ($entry->getImageLinked() && $entry->getImageDisplay()) { echo "<br /><strong>Display:</strong> Yes"; } else { echo "<br /><strong>Display:</strong> No"; } echo "</td> \n"; echo "</tr> \n"; } ?> </tbody> </table> </form> <p style="font-size:smaller; text-align:center">This is version <?php echo $connections->options->getVersion(), '-', $connections->options->getDBVersion(); ?> of Connections.</p> <form action="https://www.paypal.com/cgi-bin/webscr" method="post" style="text-align:center"> <input type="hidden" name="cmd" value="_s-xclick"> <input type="hidden" name="hosted_button_id" value="5070255"> <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!"> <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"> </form> <script type="text/javascript"> /* <![CDATA[ */ (function($){ $(document).ready(function(){ $('#doaction, #doaction2').click(function(){ if ( $('select[name^="action"]').val() == 'delete' ) { var m = 'You are about to delete the selected entry(ies).\n \'Cancel\' to stop, \'OK\' to delete.'; return showNotice.warn(m); } }); }); })(jQuery); /* ]]> */ </script> <?php } else { $connections->setErrorMessage('capability_view_entry_list'); } break; } ?> </div> <?php }