From: Anthony Talarico Date: Fri, 8 Sep 2017 13:16:03 +0000 (-0400) Subject: fixing the develop branch with initial files and setup X-Git-Tag: v1.0.0~1^2~43 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=7207736213d7acc2136ce2f8680823f9484ddac3;p=WP-Plugins%2Fglm-member-db-jobs.git fixing the develop branch with initial files and setup --- diff --git a/activate.php b/activate.php index 7f2223e..14018f1 100644 --- a/activate.php +++ b/activate.php @@ -1,13 +1,13 @@ * @license http://www.gaslightmedia.com Gaslightmedia * @release activate.php,v 1.0 2014/10/31 19:31:47 cscott Exp $ @@ -26,7 +26,7 @@ if (!defined('ABSPATH')) { * Currently the only actions are to add role capability to display and modify * prototypes. */ -class glmMembersJobsPluginActivate +class glmMembersjobsPluginActivate { /** @@ -68,7 +68,7 @@ class glmMembersJobsPluginActivate $this->config = $config; // Set current plugin version - update_option('glmMembersJobsPluginVersion', GLM_MEMBERS_JOBS_PLUGIN_VERSION); + update_option('glmMembersjobsPluginVersion', GLM_MEMBERS_JOBS_PLUGIN_VERSION); // Set Roles and Capabilities for this plugin require_once GLM_MEMBERS_JOBS_PLUGIN_SETUP_PATH.'/rolesAndCapabilities.php'; diff --git a/assets/calIcon.png b/assets/calIcon.png new file mode 100644 index 0000000..d50b0fc Binary files /dev/null and b/assets/calIcon.png differ diff --git a/classes/data/dataJobs.php b/classes/data/dataJobs.php new file mode 100644 index 0000000..7849c25 --- /dev/null +++ b/classes/data/dataJobs.php @@ -0,0 +1,334 @@ + + * @license http://www.gaslightmedia.com Gaslightmedia + * @release SVN: $Id: dataConditions.php,v 1.0 2011/01/25 19:31:47 cscott Exp $ + */ + +/********************************************************************** + * NOTE: THIS IS A Job Postings FILE - DO NOT USE UNMODIFIED + * + * Please change all references to conditions, Conditions, or CONDITIONS to a name + * appropriate for your new Add-On. + * + * Data fields in this file are conditions only. + * + * Remove this message before using this file in production! + **********************************************************************/ + +/** + * GlmDatajobs class + * + * PHP version 5 + * + * @category Data + * @package GLM Member DB + * @author Chuck Scott + * @license http://www.gaslightmedia.com Gaslightmedia + * @release SVN: $Id: dataMembers.php,v 1.0 2011/01/25 19:31:47 cscott + * Exp $ + */ +class GlmDatajobs extends GlmDataAbstract +{ + + /** + * WordPress Database Object + * + * @var $wpdb + * @access public + */ + public $wpdb; + /** + * Plugin Configuration Data + * + * @var $config + * @access public + */ + public $config; + /** + * Data Table Name + * + * @var $table + * @access public + */ + public $table; + /** + * Field definitions + * + * 'type' is type of field as defined by the application + * text Regular text field + * pointer Pointer to an entry in another table + * 'filters' is the filter name for a particular filter ID in PHP filter + * functions + * See PHP filter_id() + * + * 'use' is when to use the field + * l = List + * g = Get + * n = New + * i = Insert + * e = Edit + * u = Update + * d = Delete + * a = All + * + * @var $ini + * @access public + */ + public $fields = false; + + /** + * Constructor + * + * @param object $d database connection + * @param array $config Configuration array + * @param bool $limitedEdit Flag to say indicate limited edit requested + * + * @return void + * @access public + */ + public function __construct($wpdb, $config, $limitedEdit = false) + { + + // If this class is not being extended along with existing $wpdb and $config + if (!$this->wpdb) { + + // Save WordPress Database object + $this->wpdb = $wpdb; + + // Save plugin configuration object + $this->config = $config; + + } + + /* + * Table Name + */ + + $this->table = GLM_MEMBERS_JOBS_PLUGIN_DB_PREFIX . 'reports'; + + // -- Conditions Table + //CREATE TABLE {prefix}conditions ( + // id INT NOT NULL AUTO_INCREMENT, + // name TEXT NOT NULL, + // descr_short TEXT NULL, + // descr TEXT NULL, + // last_update DATE NULL, + // PRIMARY KEY (id) + //); + + /* + * Table Data Fields + */ + + $this->fields = array ( + + 'id' => array ( + 'field' => 'id', + 'type' => 'integer', + 'view_only' => true, + 'use' => 'a' + ), + 'report_active' => array ( + 'field' => 'report_active', + 'type' => 'checkbox', + 'default' => false, + 'use' => 'a' + ), + 'report_date' => array ( + 'field' => 'report_date', + 'type' => 'date', + 'default' => false, + 'use' => 'a' + ), + 'report_notes' => array ( + 'field' => 'report_notes', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'big_bay_cond' => array ( + 'field' => 'big_bay_cond', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'big_bay_name' => array ( + 'field' => 'big_bay_name', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'big_bay_groom' => array ( + 'field' => 'big_bay_groom', + 'type' => 'date', + 'required' => true, + 'use' => 'a' + ), + 'big_bay_base' => array ( + 'field' => 'big_bay_base', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'big_bay_notes' => array ( + 'field' => 'big_bay_notes', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'alston_name' => array ( + 'field' => 'alston_name', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'alston_cond' => array ( + 'field' => 'alston_cond', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'alston_groom' => array ( + 'field' => 'alston_groom', + 'type' => 'date', + 'required' => true, + 'use' => 'a' + ), + 'alston_base' => array ( + 'field' => 'alston_base', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'alston_notes' => array ( + 'field' => 'alston_notes', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'nestoria_cond' => array ( + 'field' => 'nestoria_cond', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'nestoria_name' => array ( + 'field' => 'nestoria_groom', + 'type' => 'date', + 'required' => true, + 'use' => 'a' + ), + + 'nestoria_groom' => array ( + 'field' => 'nestoria_groom', + 'type' => 'date', + 'required' => true, + 'use' => 'a' + ), + 'nestoria_base' => array ( + 'field' => 'nestoria_base', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'nestoria_notes' => array ( + 'field' => 'nestoria_notes', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'chassell_cond' => array ( + 'field' => 'chassell_cond', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'chassell_name' => array ( + 'field' => 'chassell_name', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'chassell_groom' => array ( + 'field' => 'chassell_groom', + 'type' => 'date', + 'required' => true, + 'use' => 'a' + ), + 'chassell_base' => array ( + 'field' => 'chassell_base', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'chassell_notes' => array ( + 'field' => 'chassell_notes', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'pinery_name' => array ( + 'field' => 'pinery_name', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + + 'pinery_base' => array ( + 'field' => 'pinery_base', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'pinery_notes' => array ( + 'field' => 'pinery_notes', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + 'pinery_groom' => array ( + 'field' => 'pinery_groom', + 'type' => 'date', + 'required' => true, + 'use' => 'a' + ), + 'report_blurb' => array ( + 'field' => 'report_blurb', + 'type' => 'text', + 'required' => true, + 'use' => 'a' + ), + + ); + } + + /* + * Entry Post Processing Call-Back Method + * + * Perform post-processing for all result entries. + * + * In this case we're using it to append an array of category + * data to each row result and also sort by name. + * + * @param array $r Array of field result data for a single entry + * @param string $a Action being performed (l, i, g, ...) + * + * @return object Class object + * + */ + public function entryPostProcessing($r, $a) + { + return $r; + } + +} + +?> \ No newline at end of file diff --git a/css/admin.css b/css/admin.css new file mode 100644 index 0000000..d272dc7 --- /dev/null +++ b/css/admin.css @@ -0,0 +1,21 @@ +#report-tabs{ + opacity: 0; + max-width: 725px; +} +.trail-notes{ + height: 100px; +} +.condition-label,.trail-label{ + margin-bottom: 5px; +} +.ui-datepicker-trigger{ + margin-left: 5px; + position: absolute; +} +.ui-tabs-panel .groom-date,.ui-tabs-panel .snow-base,.trail-conditions{ + margin-bottom: 20px; +} +.trail-name{ + margin-bottom: 20px; + +} diff --git a/deactivate.php b/deactivate.php index 0485ba3..b7f20e8 100644 --- a/deactivate.php +++ b/deactivate.php @@ -1,12 +1,12 @@ * @license http://www.gaslightmedia.com Gaslightmedia * @release admin.php,v 1.0 2014/10/31 19:31:47 cscott Exp $ @@ -22,7 +22,7 @@ if (!defined('ABSPATH')) { * This class performs all necessary additional work when this * plugin is deactivated. */ -class glmMembersJobsPluginDeactivate +class glmMembersjobsPluginDeactivate { /** @@ -55,7 +55,7 @@ class glmMembersJobsPluginDeactivate $this->config = $config; // Delete our version from WordPress Options - delete_option('glmMembersJobsPluginVersion'); + delete_option('glmMembersjobsPluginVersion'); } } diff --git a/defines.php b/defines.php index 6ef5a40..37d8e2e 100644 --- a/defines.php +++ b/defines.php @@ -7,14 +7,14 @@ // NOTE: Plugin & Database versions are defined in "/glm-member-db.php". -define('GLM_MEMBERS_JOBS_PLUGIN_NAME', 'GLM Members Job Listings'); -define('GLM_MEMBERS_JOBS_PLUGIN_SHORT_NAME', 'jobs'); -define('GLM_MEMBERS_JOBS_PLUGIN_SLUG', 'glm-member-jobs'); +define('GLM_MEMBERS_JOBS_PLUGIN_NAME', 'GLM Members Database Job Postings'); +define('GLM_MEMBERS_JOBS_PLUGIN_SHORT_NAME', 'Job Postings'); +define('GLM_MEMBERS_JOBS_PLUGIN_SLUG', 'glm-member-db-jobs'); // Database table prefixes - change if using add-on tables global $wpdb; -define('GLM_MEMBERS_JOBS_PLUGIN_DB_PREFIX', $wpdb->prefix.'glm_membersJobs'); -define('GLM_MEMBERS_JOBS_PLUGIN_ACTIVE_DB_OPTION', 'glmMembersJobsDbVersion'); +define('GLM_MEMBERS_JOBS_PLUGIN_DB_PREFIX', $wpdb->prefix.'glm_membersjobs_'); +define('GLM_MEMBERS_JOBS_PLUGIN_ACTIVE_DB_OPTION', 'glmMembersjobsDbVersion'); // Determine which system we're running on - If not provided, assume PRODUCTION $host = getenv('GLM_HOST_ID'); diff --git a/index.php b/index.php index 0f9091c..0d80aa2 100644 --- a/index.php +++ b/index.php @@ -1,8 +1,8 @@ * @license http://www.gaslightmedia.com Gaslightmedia * @version 0.0.1 @@ -44,8 +44,8 @@ define('GLM_MEMBERS_JOBS_PLUGIN_DB_VERSION', '0.0.1'); define('GLM_MEMBERS_JOBS_PLUGIN_MIN_MEMBERS_REQUIRED_VERSION', '2.8.0'); // Check if plugin version is not current in WordPress option and if needed updated it -if (GLM_MEMBERS_JOBS_PLUGIN_VERSION != get_option('glmMembersJobsPluginVersion')) { - update_option('glmMembersJobsPluginVersion', GLM_MEMBERS_JOBS_PLUGIN_VERSION); +if (GLM_MEMBERS_JOBS_PLUGIN_VERSION != get_option('glmMembersjobsPluginVersion')) { + update_option('glmMembersjobsPluginVersion', GLM_MEMBERS_JOBS_PLUGIN_VERSION); } /* @@ -100,7 +100,7 @@ if (is_file(GLM_MEMBERS_JOBS_PLUGIN_PATH.'/setup/databaseScripts/dbVersions.php' */ // Check for main plugin and that it's active -function glmMembersJobsPluginRequired() { +function glmMembersjobsPluginRequired() { echo '

The '.GLM_MEMBERS_JOBS_PLUGIN_NAME.' add-on requires the base GLM Member DB plugin to be installed and active!

@@ -111,12 +111,12 @@ function glmMembersJobsPluginRequired() { $plugin_name = 'glm-member-db/index.php'; $is_active = is_plugin_active($plugin_name); if ($is_active != '1') { - add_action( 'admin_notices', 'glmMembersJobsPluginRequired' ); + add_action( 'admin_notices', 'glmMembersjobsPluginRequired' ); deactivate_plugins('/'.GLM_MEMBERS_JOBS_PLUGIN_SLUG.'/index.php'); } // Check for Minimum DB version for main Member DB -function glmMembersJobsMinVerRequired() { +function glmMembersjobsMinVerRequired() { echo '

The '.GLM_MEMBERS_JOBS_PLUGIN_NAME.' requires that the main GLM Member DB plugin version be no older than ' @@ -128,8 +128,8 @@ function glmMembersJobsMinVerRequired() { } $glmMembersDatabasePluginVersion = get_option('glmMembersDatabasePluginVersion'); if (version_compare($glmMembersDatabasePluginVersion, GLM_MEMBERS_JOBS_PLUGIN_MIN_MEMBERS_REQUIRED_VERSION) < 0) { - define('GLM_MEMBERS_JOBS_MIN_VERSION_NOTE', "Members DB: $glmMembersDatabasePluginVersion, jobs Requires: ".GLM_MEMBERS_JOBS_PLUGIN_MIN_MEMBERS_REQUIRED_VERSION); - add_action( 'admin_notices', 'glmMembersJobsMinVerRequired'); + define('GLM_MEMBERS_JOBS_MIN_VERSION_NOTE', "Members DB: $glmMembersDatabasePluginVersion, Job Postings Requires: ".GLM_MEMBERS_JOBS_PLUGIN_MIN_MEMBERS_REQUIRED_VERSION); + add_action( 'admin_notices', 'glmMembersjobsMinVerRequired'); deactivate_plugins('/'.GLM_MEMBERS_JOBS_PLUGIN_SLUG.'/'.GLM_MEMBERS_JOBS_PLUGIN_SLUG.'.php'); } @@ -144,11 +144,11 @@ if (is_file(GLM_MEMBERS_JOBS_PLUGIN_DB_SCRIPTS.'/dbVersions.php')) { // Load Add-On Management Settings data /* None - Need to figure out a smooth way to do this. -$glmMembersJobsManagementSettings = $wpdb->get_row( "SELECT * FROM ".GLM_MEMBERS_JOBS_PLUGIN_DB_PREFIX."management WHERE id = 1", ARRAY_A ); -unset($glmMembersJobsManagementSettings['id']); +$glmMembersjobsManagementSettings = $wpdb->get_row( "SELECT * FROM ".GLM_MEMBERS_JOBS_PLUGIN_DB_PREFIX."management WHERE id = 1", ARRAY_A ); +unset($glmMembersjobsManagementSettings['id']); */ -function glmMembersJobsRegisterAddOn($addOns) { +function glmMembersjobsRegisterAddOn($addOns) { // Add this add-on to the add-ons array $addOns[GLM_MEMBERS_JOBS_PLUGIN_SLUG] = array( @@ -156,21 +156,21 @@ function glmMembersJobsRegisterAddOn($addOns) { 'name' => GLM_MEMBERS_JOBS_PLUGIN_NAME, 'short_name' => GLM_MEMBERS_JOBS_PLUGIN_SHORT_NAME, 'slug' => GLM_MEMBERS_JOBS_PLUGIN_SLUG, - 'actions' => $GLOBALS['glmMembersJobsAddOnValidActions'], + 'actions' => $GLOBALS['glmMembersjobsAddOnValidActions'], 'config' => array( ), - 'shortcodes' => $GLOBALS['glmMembersJobsShortcodes'], - 'shortcodesDescription' => $GLOBALS['glmMembersJobsShortcodesDescription'] + 'shortcodes' => $GLOBALS['glmMembersjobsShortcodes'], + 'shortcodesDescription' => $GLOBALS['glmMembersjobsShortcodesDescription'] ); // If we have database tables for this plugin/addon, provide that data also - if (isset($GLOBALS['glmMembersJobsDbVersions'])) { + if (isset($GLOBALS['glmMembersjobsDbVersions'])) { $addOns[GLM_MEMBERS_JOBS_PLUGIN_SLUG]['database'] = array( 'dbPrefix' => GLM_MEMBERS_JOBS_PLUGIN_DB_PREFIX, 'dbCurrentVersion' => GLM_MEMBERS_JOBS_PLUGIN_DB_VERSION, 'dbActiveVersionOption' => GLM_MEMBERS_JOBS_PLUGIN_ACTIVE_DB_OPTION, 'dbScriptPath' => GLM_MEMBERS_JOBS_PLUGIN_DB_SCRIPTS, - 'dbVersions' => $GLOBALS['glmMembersJobsDbVersions'] + 'dbVersions' => $GLOBALS['glmMembersjobsDbVersions'] ); } else { $addOns[GLM_MEMBERS_JOBS_PLUGIN_SLUG]['database'] = false; @@ -179,7 +179,7 @@ function glmMembersJobsRegisterAddOn($addOns) { // Return the array with our data added return $addOns; } -add_filter('glm-member-db-register-addon','glmMembersJobsRegisterAddOn', 10, 1); +add_filter('glm-member-db-register-addon','glmMembersjobsRegisterAddOn', 10, 1); /* * Plugin Update Support - uses Gaslight Media update server @@ -204,23 +204,23 @@ ${GLM_MEMBERS_JOBS_PLUGIN_PREFIX."updateChecker"}->declareCredentials(array( */ // Activate - function glmMembersJobsPluginActivate () + function glmMembersjobsPluginActivate () { global $wpdb, $config; require_once GLM_MEMBERS_JOBS_PLUGIN_PATH . '/activate.php'; - new glmMembersJobsPluginActivate($wpdb, $config); + new glmMembersjobsPluginActivate($wpdb, $config); } - register_activation_hook(__FILE__, 'glmMembersJobsPluginActivate'); + register_activation_hook(__FILE__, 'glmMembersjobsPluginActivate'); // Deactivate - function glmMembersJobsPluginDeactivate () + function glmMembersjobsPluginDeactivate () { global $wpdb, $config; require_once GLM_MEMBERS_JOBS_PLUGIN_PATH . '/deactivate.php'; - $x = new glmMembersJobsPluginDeactivate($wpdb, $config); + $x = new glmMembersjobsPluginDeactivate($wpdb, $config); return false; } - register_deactivation_hook(__FILE__, 'glmMembersJobsPluginDeactivate'); + register_deactivation_hook(__FILE__, 'glmMembersjobsPluginDeactivate'); /* * Hooks for testing capabilities provided by this add-on diff --git a/models/admin/jobs/index.php b/models/admin/jobs/index.php new file mode 100644 index 0000000..d0861b6 --- /dev/null +++ b/models/admin/jobs/index.php @@ -0,0 +1,225 @@ + + * @license http://www.gaslightmedia.com Gaslightmedia + * @release index.php,v 1.0 2014/10/31 19:31:47 cscott Exp $ + * @link http://dev.gaslightmedia.com/ + */ + +// Load Contacts data abstract +require_once GLM_MEMBERS_JOBS_PLUGIN_CLASS_PATH.'/data/dataJobs.php'; + +class GlmMembersAdmin_jobs_index extends GlmDatajobs +{ + + /** + * WordPress Database Object + * + * @var $wpdb + * @access public + */ + public $wpdb; + /** + * Plugin Configuration Data + * + * @var $config + * @access public + */ + public $config; + /** + * Report ID + * + * @var $report ID + * @access public + */ + public $report_id = false; + + /* + * Constructor + * + * This contructor performs the work for this model. This model returns + * an array containing the following. + * + * 'status' + * + * True if successfull and false if there was a fatal failure. + * + * 'view' + * + * A suggested view name that the contoller should use instead of the + * default view for this model or false to indicate that the default view + * should be used. + * + * 'data' + * + * Data that the model is returning for use in merging with the view to + * produce output. + * + * @wpdb object WordPress database object + * + * @return array Array containing status, suggested view, and any data + */ + public function __construct ($wpdb, $config) + { + + // Save WordPress Database object + $this->wpdb = $wpdb; + + // Save plugin configuration object + $this->config = $config; + + /* + * Run constructor for the Contacts data class + * + * Note, the third parameter is a flag that indicates to the Contacts + * data class that it should flag a group of fields as 'view_only'. + */ + parent::__construct(false, false, true); + + + } + + public function modelAction($actionData = false) + { + if( ! wp_script_is( 'jquery-ui', 'enqueued' ) ){ + wp_enqueue_script('jquery-ui-datepicker', false, array('jquery'), false, true); + wp_enqueue_style('jquery-style', '//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css'); + wp_enqueue_script("jquery-ui-tabs"); + } + $success_message = ""; + $haveReport = false; + $option = false; + $report = false; + $reportUpdated = false; + $reportUpdateError = false; + $reportAdded = false; + $reportAddError = false; + + + if (isset($_REQUEST['option']) && trim($_REQUEST['option']) != '') { + $option = $_REQUEST['option']; + } + + // get the report id for use in the edit, add and delete options + $this->report_id = ( isset( $_REQUEST['report'] ) ? filter_var( $_REQUEST['report'], FILTER_SANITIZE_STRING) : ''); + + $trail_data = $this->getList(); + + switch ($option) { + + case 'add': + + $report = $this->newEntry(); + $view_file = 'edit'; + + break; + + case 'insert': + + $report = $this->insertEntry(); +// echo '

', print_r($report), '
'; + $this->report_id = $report['fieldData']['id']; + + if ($report['status']) { + $haveReport = true; + $reportAdded = true; + + // Update created timestamp and name slug for URLs + //$this->updateSlug($this->reportID); + + // Get this again so we have the created date + $report = $this->editEntry($this->report_id); + + $option = 'edit'; + $reportAdded = true; + + } else { + $option = 'add'; + $reportAddError = true; + } + + $view_file = 'edit'; + + break; + + case 'edit': + + + + $report = $this->editEntry($this->report_id); + + // If we have a good report + if ($report['status']) { + $haveReport = true; + } + + $view_file = 'edit'; + break; + + case 'update': + + // Try to update this report + $report = $this->updateEntry($this->report_id); + + // Check if that was successful + if ($report['status']) { + $reportUpdated = true; + + $report = $this->editEntry($this->report_id); + } else { + $reportUpdateError = true; + } + + $haveReport = true; + $view_file = 'edit'; + + break; + + case 'delete': + echo "delte"; + $report = $this->deleteEntry($this->report_id,true); + + if ($report) { + $reportDeleted = true; + } else { + $reportDeleteError = true; + } + $view_file = "index"; + $trail_data = $this->getList(); + break; + default: + $trail_data = $this->getList(); + $view_file = 'index'; + break; + } + + // Compile template data + $templateData = array( + 'trailData' => $trail_data, + 'haveReport' => $haveReport, + 'reportUpdated' => $reportUpdated, + 'reportUpdateError' => $reportUpdateError, + 'reportAdded' => $reportAdded, + 'reportAddError' => $reportAddError, + 'option' => $option, + 'report' => $report, + 'assetsUrl' => GLM_MEMBERS_JOBS_PLUGIN_URL . 'assets/', + + ); + + // Return status, any suggested view, and any data to controller + return array( + 'status' => true, + 'modelRedirect' => false, + 'view' => 'admin/jobs/'.$view_file.'.html', + 'data' => $templateData + ); + } +} diff --git a/models/admin/jobs/list.php b/models/admin/jobs/list.php new file mode 100644 index 0000000..3ac00fa --- /dev/null +++ b/models/admin/jobs/list.php @@ -0,0 +1,8 @@ + + * @license http://www.gaslightmedia.com Gaslightmedia + * @release index.php,v 1.0 2014/10/31 19:31:47 cscott Exp $ + * @link http://dev.gaslightmedia.com/ + */ + +// Load Contacts data abstract +require_once GLM_MEMBERS_JOBS_PLUGIN_CLASS_PATH.'/data/dataJobs.php'; + +class GlmMembersFront_jobs_list extends GlmDatajobs +{ + + /** + * WordPress Database Object + * + * @var $wpdb + * @access public + */ + public $wpdb; + /** + * Plugin Configuration Data + * + * @var $config + * @access public + */ + public $config; + /** + * Contact Info + * + * @var $contactInfo + * @access public + */ + public $contactInfo = false; + /** + * Member ID + * + * @var $memberID + * @access public + */ + public $memberID = false; + /** + * Contact ID + * + * @var $contactID + * @access public + */ + public $contactID = false; + + + /* + * Constructor + * + * This contructor performs the work for this model. This model returns + * an array containing the following. + * + * 'status' + * + * True if successfull and false if there was a fatal failure. + * + * 'view' + * + * A suggested view name that the contoller should use instead of the + * default view for this model or false to indicate that the default view + * should be used. + * + * 'data' + * + * Data that the model is returning for use in merging with the view to + * produce output. + * + * @wpdb object WordPress database object + * + * @return array Array containing status, suggested view, and any data + */ + public function __construct ($wpdb, $config) + { + + // Save WordPress Database object + $this->wpdb = $wpdb; + + // Save plugin configuration object + $this->config = $config; + + /* + * Run constructor for the Contacts data class + * + * Note, the third parameter is a flag that indicates to the Contacts + * data class that it should flag a group of fields as 'view_only'. + */ + parent::__construct(false, false, true); + + + } + + public function modelAction($actionData = false) + { + $success_message = ""; + $option = false; + if (isset($_REQUEST['option']) && trim($_REQUEST['option']) != '') { + $option = $_REQUEST['option']; + } + + // separate the main report info and the individual details + $trail_data = $this->getList(); + foreach($trail_data as $id=>$record){ + foreach($record as $key=>$value){ + if(strpos($key, "report") !== false){ + $JOBS['trail_report'][$id]['report_info'][$key] = $value; + } else { + $JOBS['trail_report'][$id]['trail_info'][$key] = $value; + } + } + } +// echo '
', print_r($JOBS), '
'; + $view_file = 'list'; + switch ($option) { + + case "edit": + $view_file = 'edit'; + + break; + + default: + + break; + } + + + + // Compile template data + $templateData = array( + 'trailData' => $JOBS + ); + + // Return status, any suggested view, and any data to controller + return array( + 'status' => true, + 'modelRedirect' => false, + 'view' => 'front/jobs/'.$view_file.'.html', + 'data' => $templateData + ); + + } + +} diff --git a/setup/adminHooks.php b/setup/adminHooks.php index 08b2ad7..025d011 100644 --- a/setup/adminHooks.php +++ b/setup/adminHooks.php @@ -1,6 +1,6 @@ controller('jobs');} +); diff --git a/setup/adminTabs.php b/setup/adminTabs.php index 5a07565..0d6de9b 100644 --- a/setup/adminTabs.php +++ b/setup/adminTabs.php @@ -1,7 +1,7 @@ + * @license http://www.gaslightmedia.com Gaslightmedia + * @release dbVersions.php,v 1.0 2014/10/31 19:31:47 cscott Exp $ + * @link http://dev.gaslightmedia.com/ + */ + + +/********************************************************************** + * NOTE: THIS IS A Job Postings FILE - DO NOT USE UNMODIFIED + * + * Please change all references to conditions, Conditions, or CONDITIONS to a name + * appropriate for your new Add-On. + * + * This file lists all versions of the database tables for this add-on. + * The last entry in the array below should be for the most recent + * version and should match the "create_database_V..." file in this + * directory. + * + * NOTE: When first creating a new add-on with database tables, there + * should only be one line in the array below and there should be no + * "update_database..." files in this directory. + * + * Remove this message before using this file in production! + **********************************************************************/ + + +$glmMembersjobsDbVersions = array( + '0.0.1' => array('version' => '0.0.1', 'tables' => 1, 'date' => '09/08/2017'), +); diff --git a/setup/databaseScripts/drop_database_V0.0.1.sql b/setup/databaseScripts/drop_database_V0.0.1.sql new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/setup/databaseScripts/drop_database_V0.0.1.sql @@ -0,0 +1 @@ + diff --git a/setup/databaseScripts/update_database_V0.0.1.sql b/setup/databaseScripts/update_database_V0.0.1.sql new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/setup/databaseScripts/update_database_V0.0.1.sql @@ -0,0 +1 @@ + diff --git a/setup/frontHooks.php b/setup/frontHooks.php index c54ed55..6272ebd 100644 --- a/setup/frontHooks.php +++ b/setup/frontHooks.php @@ -1,6 +1,6 @@ * @license http://www.gaslightmedia.com Gaslightmedia * @release rolesAndPermissions.php,v 1.0 2014/10/31 19:31:47 cscott Exp $ diff --git a/setup/shortcodes.php b/setup/shortcodes.php index dfe0e8b..706f5a7 100644 --- a/setup/shortcodes.php +++ b/setup/shortcodes.php @@ -1,12 +1,12 @@ * @license http://www.gaslightmedia.com Gaslightmedia * @release shortcodes.php,v 1.0 2014/10/31 19:31:47 cscott Exp $ @@ -48,10 +48,10 @@ * The following is an explanation of this array. * * array( - * '{shortcode-slug} => array( + * '{shortcode-slug}' => array( * 'plugin' => '{plugin (add-on) slug}', // Identifies which plugin is providing the short-code * 'menu' => '{menu name}', // Menu name in this context is simply where to find the action - * 'action' => '{shortcode action name}, // Action used to execute this shortcode + * 'action' => '{shortcode action name}', // Action used to execute this shortcode * 'table' => '{table prefix}{table name}', // Database table where default attribute values are stored * 'attributes' => array( // An array of all shortcode attributes (options) * '{attr name}' => '{field name}', // Available attribute names and the database field names with the default value @@ -62,6 +62,7 @@ * * Shortcode descriptions sample * + * ShortcodeAttributeDescription * * [glm-members-sample-shortcode] *   @@ -86,8 +87,18 @@ * */ -$glmMembersJobsShortcodes = array( +$glmMembersjobsShortcodes = array( + 'glm-jobs' => array( + 'plugin' => GLM_MEMBERS_JOBS_PLUGIN_SLUG, + 'menu' => 'jobs', + 'action' => 'list', + 'table' => false, + 'attributes' => array( + 'id' => true, + 'member_only' => true + ) + ), ); -$glmMembersJobsShortcodesDescription = ''; +$glmMembersjobsShortcodesDescription = ''; diff --git a/setup/validActions.php b/setup/validActions.php index 4e19b6f..fba7242 100644 --- a/setup/validActions.php +++ b/setup/validActions.php @@ -1,12 +1,12 @@ * @license http://www.gaslightmedia.com Gaslightmedia * @release admin.php,v 1.0 2014/10/31 19:31:47 cscott Exp $ @@ -31,7 +31,7 @@ * * EXAMPLE * - * $glmMembersJobsAddOnValidActions = array( + * $glmMembersjobsAddOnValidActions = array( * 'adminActions' => array( * 'members' => array( * 'sample' => GLM_MEMBERS_JOBS_PLUGIN_SLUG, @@ -57,10 +57,17 @@ * */ -$glmMembersJobsAddOnValidActions = array( +$glmMembersjobsAddOnValidActions = array( 'adminActions' => array( + 'jobs' => array( + 'index' => GLM_MEMBERS_JOBS_PLUGIN_SLUG, + 'list' => GLM_MEMBERS_JOBS_PLUGIN_SLUG, + ), ), 'frontActions' => array( + 'jobs' => array( + 'list' => GLM_MEMBERS_JOBS_PLUGIN_SLUG + ), ) ); diff --git a/uninstall.php b/uninstall.php index 9424fba..c8f5528 100644 --- a/uninstall.php +++ b/uninstall.php @@ -3,13 +3,13 @@ die('uninstall not configured - See plugin uninstall.php script!'); /** - * GLM Members Job Listings + * GLM Members Database Job Postings * Uninstall Plugin * * PHP version 5.5 * * @category glmWordPressPlugin - * @package glmMembersJobs + * @package glmMembersjobs * @author Chuck Scott * @license http://www.gaslightmedia.com Gaslightmedia * @release admin.php,v 1.0 2014/10/31 19:31:47 cscott Exp $ diff --git a/views/admin/header.html b/views/admin/header.html new file mode 100644 index 0000000..4318c03 --- /dev/null +++ b/views/admin/header.html @@ -0,0 +1,8 @@ +
+

Job Postings

+ +
+ + diff --git a/views/admin/jobs/edit.html b/views/admin/jobs/edit.html new file mode 100644 index 0000000..4795973 --- /dev/null +++ b/views/admin/jobs/edit.html @@ -0,0 +1,149 @@ +{include file='admin/header.html'} + +{if ($option == 'add' || $haveReport)} + + Return to Reports List + + {if $option == 'edit' || $option == 'update'} + Delete this Report +

Edit Job Postings + {else} +

Add New Job Postings + {/if} +     + {if $reportUpdated}Obit Updated{/if} + {if $reportUpdateError}Obit Update Error{/if} + {if $reportAdded}Obit Added{/if} + {if $reportAddError}Obit Add Error{/if} +

+ + {if $reportUpdateError || $reportAddError} +

NOTICE: Your report has not yet been submitted.
Please select the tabs indicating a problem, correct the indicated fields and resubmit.

+ {else} + {/if} + +
+ + + {if $haveReport} + + + {else} + + {/if} + + + + + + + + + + + + + + + + + + + + +
Report Active: + + {if $report.fieldFail.report_active}

{$report.fieldFail.report_active}

{/if}
+
Report Date: + + {if $report.fieldFail.report_date.date}

{$report.fieldFail.report_date.date}

{/if}
+
Report Blurb: + + {if $report.fieldFail.report_blurb}

{$report.fieldFail.report_blurb}

{/if}
+
Report Notes: + + {if $report.fieldFail.report_notes}

{$report.fieldFail.report_notes}

{/if}
+
+
+ + {include file='admin/jobs/parts/bigBay.html'} + {include file='admin/jobs/parts/alston.html'} + {include file='admin/jobs/parts/nestoria.html'} + {include file='admin/jobs/parts/chassell.html'} + {include file='admin/jobs/parts/pinery.html'} +
+ +
+ +{else} + +

Sorry, no report found or permission not granted.

+ +{/if} + + + +
+
+

Cancel

+

+
+
+

WARNING:

+

+ Clicking the "Delete this Obit" button above will + delete all of the data and images associated with this report. + +

+

+ + Once deleted, this information will no longer be available and cannot be retrieved! + If you are unsure that you want to completely remove this data, consider changing the status + of this report to "Archived" instead. + +

+
+
+ + + +{include file='admin/footer.html'} diff --git a/views/admin/jobs/index.html b/views/admin/jobs/index.html new file mode 100644 index 0000000..a82dad3 --- /dev/null +++ b/views/admin/jobs/index.html @@ -0,0 +1,38 @@ +{include file='admin/header.html'} + + + + + + + + +
 
New Report
+ {if $trailData} + + + + + + + + {foreach $trailData as $record=>$data} + + + + + + + {/foreach} +
Report DateReport BlurbReport Notes
{$data.report_date.date}{$data.report_blurb}{$data.report_notes}EditDelete
+ + + {else if} +
No Trail Information
+ {/if} +{include file='admin/footer.html'} + diff --git a/views/front/jobs/list.html b/views/front/jobs/list.html new file mode 100644 index 0000000..c14262f --- /dev/null +++ b/views/front/jobs/list.html @@ -0,0 +1,16 @@ +{foreach $trailData as $key=>$value} + {foreach $value as $id=>$trail} +
+
+ Report Date: {$trail.report_info.report_date.date|date_format:"%B %e, %Y"} +
+
+ {include file='front/jobs/parts/bigBay.html'} + {include file='front/jobs/parts/alston.html'} + {include file='front/jobs/parts/nestoria.html'} + {include file='front/jobs/parts/chassell.html'} + {include file='front/jobs/parts/pinery.html'} +
+
+ {/foreach} +{/foreach} \ No newline at end of file