WordPress.org

Support

Support » Plugins and Hacks » [Plugin: Runners Log] Running gear statistics

[Plugin: Runners Log] Running gear statistics

Viewing 15 replies - 1 through 15 (of 49 total)
  • What do you want the new interface exactly for? Do you want to enter the whole data independently from the posts to be entered or just for entering nrew gear and being able to use them when entering a new post? Or should these listings just be some kind of statistic page in the background like the (amazing :)! ) calculators?

    In my opinion there should be a way to setup the available hardware once and select them in every posting for each run. Maybe in select-box or something. Afterwards it might be possible to select for the stats next to month, year also the used gear.

    Cheers Eyeless

    I dont know how to do this 100%

    If you have a normal text field – you need to spell the shoe or gear name 100% correct each time.

    The ultimate way of doing this is mix.
    1. a page where your control (add or edit) your gear and set a category
    2. the setup page where you enable or disable the gear feature
    3. in some way being able to combinate the gear list with the metabox. The metabox is this one:
    http://s.wordpress.org/extend/plugins/runners-log/screenshot-1.png
    There should be added a new field per gear category. If you have added 2 shoes 1 t-shirt – there should be 2 new fields:
    Shoe
    T-shirt
    The content in them should be choosen from a drop-down menu where you in the field “shoe” get your 2 shoes etc…

    I dont know if this is too advance – but it was my ultimate idea…

    Just for your information .- just found this one: http://www.mysqlajaxtableeditor.com/index.php seems pretty nasty 🙂

    I dont have the more time today, sry…

    ok, got your idea, drop-down in the metabox is exactly what I meant!

    I am not quite sure, whether I got your idea how to use the information correctly. Consider we have a mysql-ajax-tableeditor, what do we do with it? Should it just be used in the backend or also in the blogposts? And for what use case exactly?
    In my opinion the magic mysql-ajax-table is nice to have for editing running information but it has some tradeoffs:
    -what happens if a user edits the time of its runs? Are the blogpost afterwards still work correctly? (I currently don’t know how a blogpost is mapped into your db)
    -how do we limit the number of new cols? Consider the case that a user creates tons of new colums for different kinds of running gear…wouldn’t be the best for the performance if this table is queried often. I’d prefer some simple php commands in the backend.

    In my opinion the current questions are

    a) how to add new kind of gear and how many
    IMO it would be enough to just track shoe usage, but there should be no problem in having methods to add a unlimited nb of kinds of gear. If a new kind is added I would add a column to the DB for each run storing the information which example of this kind was used.

    b) how to add gear usage
    IMO there should be a menu in the backend to add and delete certain gears. And in the metabox should be a drop-down list for every kind added.

    c) what and how to visualize the usage
    – km run with each example of a gear ([gear_log “km” “shoes” “pie”])
    – percentage of usage per example per gear ([gear_log “percentage” “shoes” “bar”])

    what do you think ?

    That statistics is the smallest problem – as I see it 🙂 A [runners_log_gear] tag should be easy to create.

    The problem is as you are mention – howto handle the information.

    The idea with the fancy table editor was to use in a special gear page in Admin. Here you should be able to set
    1. name eg: Nike
    2. type eg Trail
    3. category eg: Shoe
    4. Usage eg km/miles
    5. Date bought
    6. Last time used
    7. Number of time used
    (8. Adding a image of the gear) – not so important

    When you are adding a new course using the meta box you should be able to – in some way – choose what gear you have used based on your gear list.

    The gear list is created using the “fancy” editor or some other thing.

    Based on your courses and distances the “usage” field for the shoe or what ever is increased. Eg. you can set a manual start usages when you are adding the item.

    Does this make any sense or is there a better way to solve this?

    ok, consider we have a simple way for creating gears. It inserts information in a table GEARS with the columns (id|gear|name|buy-date) and per run can only be used one gear. Most you mentionded should be quite easy (I have a little problem to check my idea, since I currently don’t find the used tables in you plugin in my db, but I will figure them out). Consider we have currently a table RUNS storing each run:
    (id|date|time|distance)
    and add gear-id, so we get:
    (id|date|time|distance|gear-id)

    This provides information about:
    1. name (names are stored in GEARS-table)
    2. type eg Trail (could be added to GEARS table but obvious since Name and type should provide this information(mine do it and but I’ve just three pairs of running shoes))
    3. category eg: Shoe (types are stored in GEARS-table)
    4. Usage eg km/miles (
    SELECT SUM(R.distance) FROM 'GEARS' AS G AND 'RUNS' AS R WHERE R.gear-id == G.id AND G.name =="Nike";)
    5. Date bought (date is stored in GEARS-table)
    6. Last time used (
    SELECT MAX(R.date) FROM 'GEARS' AS G AND 'RUNS' AS R WHERE R.gear-id == G.id AND G.name =="Nike";)
    7. Number of time used (
    SELECT COUNT(*) FROM 'GEARS' AS G AND 'RUNS' AS R WHERE R.gear-id == G.id AND G.name =="Nike";)

    And everytime you change something in the gears table you should get all available drop-down-items by SELECT names from RUNS; The drop-down menu should be created just once per GEARS change and not on demand to avoid high db-load. Photo could also be added to GEARS.

    Problem is that you have to specify all kinds of GEARS before to get all available columns and be able to combine shoes and shirts (that’s why I just used one in the example above) .
    Next to this I wouldn’t provide a starting distance for gears since in this case you have to work with triggers and things are getting complex (and ressource consuming). But maybe storing starting distance in a own column in GEARS could solve the problem.

    As a result it would be possible to provide a simple html-table where all values for the used gear can be calculated. Not as fancy as with AJAX but quite functional.

    What do you think ?

    Cheer Eyeless

    you are welcome to give it a try.. 🙂

    Well, a database structure could be:

    CREATE TABLE IF NOT EXISTSgear` (
    gear_id mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
    gear_name varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT ”,
    gear_type varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT ”,
    gear_distance varchar(200) COLLATE utf8_unicode_ci NOT NULL DEFAULT ”,
    gear_category varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT ”,
    gear_bought datetime NOT NULL,
    PRIMARY KEY (id)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;`

    By have a database with id per item stats could be called like:

    [runners_log_gear id=”” type=pie year=2010]

    If I have time I will try to play around with it later today eg using mysqlajaxtableeditor.com

    mmmh, seems good… considering your tableschema above,do you want to save the distance for every gear seperatly or calculate it dynamicly if needed and add it to a “start”-distance (I would appreciate the second idea)?
    If you are working here I will have another look at the weather-front this evening to avoid doing work twice 😉

    Cheers Eyeless

    My thought was to have a gear table.

    Then in the meta box you specify what gear you have used and the data there is stored is the gear_id.

    To make stats you call the meta box related database, search for the gear_id by using something like this

    [runners_log_gear id=”” type=pie year=2010]

    Does it make sense?

    Yes, I think that’s exactly what I meant before 😉

    Cheers Eyeless

    Hmm Im pretty stocked here :S

    Seems to be over my level…

    I was able to create the database by adding this to runners_log.php

    BEFORE ?>

    /* G E A R   L I S T */
    // Do this when user activates the plugin (Install Script)
    	register_activation_hook( __FILE__, 'gear_list_install');
    
    function gear_list_install(){
    	global $wpdb;
    
    	$table_name = $wpdb->prefix . "gear_list";
    
    	if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
    		$sql = "CREATE TABLE " . $table_name . " (
    		gear_id mediumint(8) unsigned NOT NULL auto_increment,
    		gear_inuse mediumint(8) unsigned NOT NULL,
    		gear_name varchar(100) NOT NULL default '',
    		gear_type varchar(100) NOT NULL default '',
    		gear_category varchar(50) NOT NULL default '',
    		gear_price varchar(100) NOT NULL default '',
    		gear_bought datetime NOT NULL,
    		gear_comment TEXT NOT NULL default '',
    		PRIMARY KEY id (gear_id)
    		);";
    
        require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
        dbDelta($sql);
    
      }
    
    }

    And adding this to create a new submenu:

    AFTER

    function runnerslog_converter_toolbox() {
    		include('Includes/runnerslog_converter_toolbox.php');
    	}

    ADDING

    function runnerslog_gear() {
    		include('Includes/runnerslog_gear.php');
    	}

    AND AFTER

    add_submenu_page('runners-log', 'Coverter Toolbox', 'Coverter Toolbox', 'administrator', 'runners-log-converter-toolbox', 'runnerslog_converter_toolbox');

    ADDING

    add_submenu_page('runners-log', 'Gear List', 'Gear List', 'administrator', 'runners-log-gear-list', 'runnerslog_gear');

    Then in Includes I created runnerslog_gear.php

    and here we have the problem. The fancy tableeditor need some .js files in the head.

    <script type="text/javascript" src="js/prototype.js"></script>
    			<script type="text/javascript" src="js/scriptaculous-js/scriptaculous.js"></script>
    			<script type="text/javascript" src="js/lang/lang_vars-en.js"></script>
    			<script type="text/javascript" src="js/ajax_table_editor.js"></script>
    
    			<!-- calendar files -->
    			<link rel="stylesheet" type="text/css" media="all" href="js/jscalendar/skins/aqua/theme.css" title="win2k-cold-1" />
    			<script type="text/javascript" src="js/jscalendar/calendar.js"></script>
    			<script type="text/javascript" src="js/jscalendar/lang/calendar-en.js"></script>
    			<script type="text/javascript" src="js/jscalendar/calendar-setup.js"></script>

    But howto get them into the <head> – I did try something like this to test – but no result.

    <?php
    add_action('wp_head', 'addtoheader');
    function addtoheader() {
    	echo '<verystrong><verystrong>';
    }
    ?>

    So Im pretty sure Im not able to get the editor to work… Maybe I will have a second try tonight.

    Good Luck! Rome was not build in one day also 😉
    I don’t have an idea currently, don’t know wp good enough :-/

    Cheers Eyeless

    Heheh – you say so…

    I have no more hair – damn its frustrating

Viewing 15 replies - 1 through 15 (of 49 total)
  • The topic ‘[Plugin: Runners Log] Running gear statistics’ is closed to new replies.
Skip to toolbar