public static function add_records_to_client_history($history = array(), Sprout_Client $client, $type = '')
 {
     $records = SC_Record::get_records_by_association($client->get_id());
     if (!empty($records)) {
         foreach ($records as $record_id) {
             $record = SC_Record::get_instance($record_id);
             if ('' !== $type && $type != $record->get_type()) {
                 continue;
             }
             // Take care of the standard records only
             if ($record->get_type() !== SC_Controller::PRIVATE_NOTES_TYPE) {
                 continue;
             }
             $r_post = $record->get_post();
             $time = strtotime($r_post->post_date);
             $history[$time] = array('id' => $record_id, 'record_id' => $record_id, 'title' => esc_html($r_post->post_title), 'content' => wpautop($r_post->post_content), 'date' => wpautop($r_post->post_date), 'type' => sc__('Private Note'), 'type_slug' => SC_Controller::PRIVATE_NOTES_TYPE, 'edit' => true);
         }
     }
     return $history;
 }
 public static function maybe_update_private_note()
 {
     if (!isset($_REQUEST['nonce'])) {
         wp_die('Forget something?');
     }
     $nonce = $_REQUEST['nonce'];
     if (!wp_verify_nonce($nonce, self::NONCE)) {
         wp_die('Not going to fall for it!');
     }
     if (!isset($_REQUEST['record_id'])) {
         self::ajax_fail('No id given!');
     }
     $record_id = $_REQUEST['record_id'];
     $private_note = $_REQUEST['private_note'];
     $record = SC_Record::get_instance($record_id);
     $record->set_data($private_note, false);
     exit;
 }
Пример #3
0
/**
 * Load the SC application
 *
 * @package Sprout_Clients
 * @return void
 */
function sprout_clients_load()
{
    if (class_exists('Sprout_Client')) {
        sc_deactivate_plugin();
        return;
        // already loaded, or a name collision
    }
    do_action('sprout_clients_preload');
    //////////
    // Load //
    //////////
    /**
     * Master class
     */
    require_once SC_PATH . '/Sprout_Clients.php';
    // models
    require_once SC_PATH . '/models/_Model.php';
    require_once SC_PATH . '/models/Client.php';
    require_once SC_PATH . '/models/Message.php';
    require_once SC_PATH . '/models/Record.php';
    // controllers
    require_once SC_PATH . '/controllers/_Controller.php';
    require_once SC_PATH . '/languages/Sprout_Clients_l10n.php';
    if (!class_exists('Sprout_Invoices')) {
        require_once SC_PATH . '/controllers/admin/_Settings.php';
    }
    require_once SC_PATH . '/controllers/admin/Settings.php';
    // controllers -- clients
    require_once SC_PATH . '/controllers/clients/Clients.php';
    require_once SC_PATH . '/controllers/clients/Clients_Users.php';
    require_once SC_PATH . '/controllers/clients/Clients_Admin_Meta_Boxes.php';
    require_once SC_PATH . '/controllers/clients/Clients_Admin_Table.php';
    require_once SC_PATH . '/controllers/clients/Clients_AJAX.php';
    // controllers -- history
    require_once SC_PATH . '/controllers/history/Client_History.php';
    require_once SC_PATH . '/controllers/history/SI_History.php';
    // controllers -- messages
    require_once SC_PATH . '/controllers/messages/Messages.php';
    require_once SC_PATH . '/controllers/messages/Message_Triggers.php';
    require_once SC_PATH . '/controllers/messages/Messages_Admin_Meta_Boxes.php';
    require_once SC_PATH . '/controllers/messages/Messages_Admin_Settings.php';
    require_once SC_PATH . '/controllers/messages/Messages_Admin_Table.php';
    require_once SC_PATH . '/controllers/messages/Messages_Route.php';
    require_once SC_PATH . '/controllers/messages/Messages_Shortcodes.php';
    require_once SC_PATH . '/controllers/messages/Messages_Templates.php';
    require_once SC_PATH . '/controllers/records/Internal_Records.php';
    require_once SC_PATH . '/controllers/records/Records_Admin_Table.php';
    require_once SC_PATH . '/controllers/updates/Updates.php';
    // template-tags
    require_once SC_PATH . '/template-tags/sprout-clients.php';
    require_once SC_PATH . '/template-tags/forms.php';
    require_once SC_PATH . '/template-tags/ui.php';
    require_once SC_PATH . '/template-tags/users.php';
    require_once SC_PATH . '/template-tags/utility.php';
    /**
     * Master Model
     */
    SC_Post_Type::init();
    /**
     * Client Model
     */
    Sprout_Client::init();
    /**
     * Messages Model
     */
    SC_Message::init();
    /**
     * Shared Models
     */
    SC_Record::init();
    /**
     * Master Controller
     */
    SC_Controller::init();
    /**
     * Records is shared with Sprout Invoices
     */
    SC_Internal_Records::init();
    /**
     * l10n
     */
    SC_l10n::init();
    /**
     * Settings
     */
    if (!class_exists('Sprout_Invoices')) {
        SA_Settings_API::init();
    }
    SC_Settings::init();
    /**
     * Clients
     */
    SC_Clients::init();
    SC_Users::init();
    SC_Clients_Admin_Meta_Boxes::init();
    SC_Clients_Admin_Table::init();
    SC_Clients_AJAX::init();
    SC_Client_History::init();
    SC_Invoices_History::init();
    /**
     * Messaging
     */
    /*/
    	SC_Messages::init();
    	SC_Messages_Meta::init();
    	SC_Messages_Admin_Settings::init();
    	SC_Messages_Route::init();
    	SC_Message_Shortcodes::init();
    	SC_Templates::init();
    	SC_Message_Triggers::init();
    	/**/
    SC_Updates::init();
    do_action('sprout_clients_loaded');
}
    function column_data($item)
    {
        $record = SC_Record::get_instance($item->ID);
        $data = $record->get_data();
        if ($data != '') {
            ?>
				<a href="#TB_inline?width=900&height=600&inlineId=data_id_<?php 
            echo esc_attr($item->ID);
            ?>
" class="thickbox button" title="<?php 
            echo esc_attr($item->post_title);
            ?>
 <?php 
            sc_e('Data');
            ?>
"><?php 
            sc_e('View Data');
            ?>
</a>
				<?php 
            if (is_array($data)) {
                ?>
					<div id="data_id_<?php 
                echo esc_attr($item->ID);
                ?>
" style="display:none;"><pre style="white-space:pre-wrap; text-align: left; font: normal normal 11px/1.4 menlo, monaco, monospaced; padding: 5px;"><?php 
                print_r($data);
                ?>
</pre></div>
				<?php 
            } else {
                ?>
					<div id="data_id_<?php 
                echo esc_attr($item->ID);
                ?>
" style="display:none;"><?php 
                echo apply_filters('the_content', $data);
                ?>
</div>
				<?php 
            }
            ?>
			<?php 
        }
    }
Пример #5
0
    public static function add_records_to_client_history($history = array(), Sprout_Client $client, $type = '')
    {
        $records = array();
        $invoices = $client->get_invoices();
        if (!empty($invoices)) {
            foreach ($invoices as $invoice_id) {
                $records += SC_Record::get_records_by_association($invoice_id);
            }
        }
        $estimates = $client->get_estimates();
        if (!empty($estimates)) {
            foreach ($estimates as $estimate_id) {
                $records += SC_Record::get_records_by_association($estimate_id);
            }
        }
        if (!empty($records)) {
            foreach ($records as $record_id) {
                $record = SC_Record::get_instance($record_id);
                if ('' !== $type && $type !== $record->get_type()) {
                    continue;
                }
                // parent taking care of this one.
                if ($record->get_type() === SC_Controller::PRIVATE_NOTES_TYPE) {
                    continue;
                }
                $r_post = $record->get_post();
                $time = strtotime($r_post->post_date);
                $history[$time] = array('id' => $record_id, 'record_id' => $record_id, 'title' => esc_html($r_post->post_title), 'content' => wpautop($r_post->post_content), 'date' => wpautop($r_post->post_date), 'type_slug' => $record->get_type());
                switch ($record->get_type()) {
                    // Sprout Invoices
                    case 'si_history_update':
                        $history[$time]['type'] = sc__('Estimate Updated');
                        break;
                    case 'si_history_update':
                        $history[$time]['type'] = sc__('Estimate Viewed');
                        break;
                    case 'si_notification':
                        $history[$time]['type'] = sc__('Notification');
                        ob_start();
                        ?>
							<p>
								<p>
									<a href="#TB_inline?width=600&height=380&inlineId=notification_message_<?php 
                        echo (int) $r_post->ID;
                        ?>
" id="show_notification_tb_link_<?php 
                        echo (int) $r_post->ID;
                        ?>
" class="thickbox si_tooltip notification_message" title="<?php 
                        si_e('View Message');
                        ?>
"><?php 
                        si_e('View Message');
                        ?>
</a>
								</p>
								<div id="notification_message_<?php 
                        echo (int) $r_post->ID;
                        ?>
" class="cloak">
									<?php 
                        echo wpautop($r_post->post_content);
                        ?>
								</div>
							</p>
						<?php 
                        $notification_message = ob_get_clean();
                        $history[$time]['content'] = $notification_message;
                        break;
                    case 'si_invoice_created':
                        $history[$time]['type'] = sc__('Invoice Created');
                        break;
                    case 'si_history_status_update':
                    default:
                        $history[$time]['type'] = sc__('Status Update');
                        unset($history[$time]['title']);
                        break;
                }
            }
        }
        return $history;
    }