Fullscreen
Loading...
 
[Show/Hide Left Column]
[Show/Hide Right Column]

CartoGraf_15

CartoGraf site
CartoGraf site


CartoGraf for Tiki version 15+


CartoGraf is an interactive web-based mapping application to enhance learning in history and geography classes in high schools. CartoGraf is mainly based on Maps, Drawings, PluginAppFrame and Trackers. It is a great example of how to use profiles in a general purpose app to make a very specific application using Tiki as a Framework.

To get your own copy of CartoGraf:
  1. You need to get branches/15x (Tiki 15.x version from SVN) for the latest and greatest goodies :-)
  2. Activate .htaccess by renaming _htaccess (even better is to link from .htaccess to _htaccess)
    Close
    Note: rewrite rules are essential for this profile
  3. You need to get the CartoGraf theme first and copy it over to the themes/ directory (see Theme section below)
  4. Select and apply this CartoGraf_15 profile from tiki-admin.php?page=profiles
  5. Follow the profile Setup instructions

We hope you like it and feel free to join the Tiki community!

To see a demo video of the older version, please visit: https://tv.tiki.org/CartoGraf

Theme


Pages included by this profile


General Preferences

YAML
instructions: Setup
preferences:
 feature_search_fulltext: n
 feature_search: y 
 feature_sefurl: y
 allowRegister: n
 browsertitle: CartoGraf Demo
 tracker_refresh_itemlink_detail: y
 geo_always_load_openlayers: y
 url_after_validation: Account_Validated
 feature_jquery_ui_theme: start
 feature_left_column: n
 tracker_clone_item: y
 toolbar_trackers: bold,list,numlist,wikiplugin_youtube
 layout_add_body_group_class: y
 layout_tabs_optional: n
 feature_wiki_ext_icon: n
 feature_syntax_highlighter: n
 search_error_missing_field: n
 sitelogo_title: CartoGraf
 sitelogo_alt: CartoGraf logo


Temporary

YAML
preferences:
 validateUsers: n
 feature_antibot: n
 sitelogo_alt: CartoGraf logo


File Galleries Prefs

YAML
preferences:
 fgal_tracker_existing_search: y
 fgal_elfinder_feature: y
 fgal_upload_from_source: y
 fgal_quota_per_fgal: y
 fgal_quota_default: 0
 fgal_sort_mode: lastModif
 fgal_list_name: n
 fgal_list_description: y
 fgal_list_last_user: y
 fgal_list_author: o
 fgal_list_created: o
 fgal_list_lastModif: y
 fgal_list_size: y
 fgal_list_files: n
 fgal_image_max_size_x: 800


User Files

YAML
preferences:
 feature_userfiles: y
 feature_use_fgal_for_user_files: y
 userfiles_private: n
 userfiles_hidden: y
 userfiles_quota: 30
 quota_show: bar_and_text


Limit username pattern

CartoGraf relies heavily on Unified Search (Zend_Search_Lucene). Because of this, a username jean-marc won't work. Since hypens are often used in emails, you can't use CartoGraf with the pref "Use email as username" (login_is_email). Space and quote should also not be permitted. Theoretically, underscore (_) should work, but tests have demonstrated that is doesn't. Thus, we are restricting to only numbers and letters, without any accents.
As of Tiki 12 the default unified search engine uses mysql which has a minimum searchable token length of 4, so setting minumum user name length to 5 to be safe.

YAML
preferences:
 username_pattern: /^[_a-zA-Z0-9]*$/
 login_is_email: n
 min_username_length: 5


Permissions

YAML
permissions:
 Anonymous:
  allow:
   - search
   - view_trackers
   - tracker_view_attachments
 Registered:
  allow:
   - attach_trackers
   - create_tracker_items
   - add_object
   - remove_object
   - upload_files
   - list_file_galleries
   - view_file_gallery
   - userfiles


Look & Feel

YAML
preferences:
 theme: CartoGraf
 feature_fixed_width: n
 jquery_ui_selectmenu: y
 feature_page_title: n
 feature_sitelogo: y
 wiki_edit_plugin: n
 sitelogo_src: themes/CartoGraf/img/logo.gif
 smarty_security_dirs: [themes/CartoGraf/img]


YAML
objects:
 -
  type: menu
  ref: CartoGraf_Top_menu
  data:
   name: Top
   description: A menu containing the base navigation of the site
   collapse: none
   items:
    -
     name: Home
     url: ((HomePage))
    -
     name: Help
     url: ((Help))
    -
     name: Setup
     url: ((Setup))
     permissions: [ admin ]
    -
     name: Admin
     url: tiki-admin.php
     permissions: [ admin ]
 -
  type: menu
  ref: CartoGraf_RightEdge_menu
  data:
   name: RightEdge
   description: 
   collapse: none
   items:
    -
     name: Register
     url: tiki-register.php
     groups: [ Anonymous ]
    -
     name: Demo
     url: ((Demo))
    -
     name: Contact
     url: ((Contact))


Modules

YAML
preferences:
 modseparateanon: y
objects:
 -
  type: module
  ref: LiveHeaderMap_module
  data:
   position: top
   order: 0
   name: LiveHeaderMap
   groups: [ Anonymous, Registered ]
   params:
    nobox: y
    nopage: Map
   custom: <div id="TheLiveHeaderMap" style="height:188px"></div>
 -
  type: module
  ref: Footer_module
  data:
   position: bottom
   order: 0
   name: Footer
   groups: [ Anonymous, Registered ]
   params:
    nobox: y
   custom: "{if $prefs.language eq 'fr'}{wikiplugin _name='include' page='Footer' start='-FR-START-' stop='-FR-END-'}{/wikiplugin}{else}{wikiplugin _name='include' page='Footer' start='-EN-START-' stop='-EN-END-'}{/wikiplugin}{/if}"
 -
  type: module
  ref: CustomDynamicCSS_module
  data:
   position: pagetop
   order: 0
   name: Custom Dynamic CSS
   groups: [ Anonymous, Registered ]
   params:
    nobox: y
   custom: "{if $prefs.search_error_missing_field eq 'n'}{literal}<style type='text/css'>#error_report .alert {display: none}</style>{/literal}{/if}"
 -
  type: module
  ref: LocationSearch_module
  data:
   position: top
   order: 49 #ensure the map location search is assigned as last module
   name: map_search_location
   groups: [ Registered ]
   params:
    legacy_mode: search_box
    show_search_button: y
    show_go_button: n
    show_edit_button: n
    default_button: search
    page: Map
    nobox: y
    style: "float: right; margin-right: 15px" #most of the params ignored as the module is not standard and does have no module div rendered but just the form tag (TODO: fix in Tiki)
 -
  type: module
  ref: TopMenu_module
  data:
   position: top
   order: 1
   name: menu
   groups: [ Anonymous, Registered ]
   params:
    id: $CartoGraf_Top_menu
    type: horiz
    css: y
    menu_id: TopMenu
    translate: y
    nobox: y
    decorations: n
    notitle: y
    style: "float: left; margin-left: 350px"
 -
  type: module
  ref: RightEdgeMenu_module
  data:
   position: right
   order: 1
   name: menu
   groups: [ Anonymous ]
   params: 
    bootstrap: n
    id: $CartoGraf_RightEdge_menu
    menu_id: RightEdgeMenu
    nobox: y
    nopage: Map


Features

YAML
preferences:
 feature_wiki: y
 feature_articles: n
 feature_mytiki: n
 feature_trackers: y
 geo_tilesets: [openstreetmap, google_street, google_satellite, google_physical, google_hybrid, blank]
 geo_google_streetview: y
 geo_google_streetview_overlay: y
 wikiplugin_appframe: y
 wikiplugin_list: y
 feature_search: y
 feature_wiki_argvariable: y
 trackerfield_geographicfeature: y



Drawing

YAML
preferences:
 feature_draw: y
 feature_draw_separate_base_image: y
 feature_draw_in_userfiles: y
 feature_draw_hide_buttons: ellipse_cx, tool_ellipse_cy, tool_ellipse_rx, tool_ellipse_ry, rect_width_tool, rect_height_tool, cornerRadiusLabel, tool_eyedropper, view_grid, tool_angle, tool_blur, tool_position, xy_panel, marker_panel, tool_reorient, rulers, tool_source, tool_zoom, tool_eyedropper, view_grid, tool_wireframe, line_panel, main_button

Trackers

Points of interest

YAML
objects:
 -
  type: tracker
  ref: pointsOfInterest
  data:
   name: Points of interest
   allow: [creator_modification, creator_deletion]
   show: list_modification_date
   section_format: tab
   admin_only_view: y
 -
  type: tracker_option
  data:
   tracker: $pointsOfInterest
   name: popup_fields
   value: "$profileobject:poiImage$,$profileobject:poiDescription$,$profileobject:poiFinder$"
 -
  type: tracker_field
  ref: poiName
  data:
   order: 10
   name: Name
   type: text_field
   tracker: $pointsOfInterest
   flags: [ public, mandatory, list, title, link, searchable ]
 -
  type: tracker_field
  ref: poiDescription
  data:
   order: 20
   name: Description
   type: text_area
   options: 
    toolbars: 1
    height: 6
    distinct: n
    wysiwyg: n
    samerow: 1
   tracker: $pointsOfInterest
   flags: [ public ]
 -
  type: tracker_field
  ref: poiIcon
  data:
   order: 30
   name: Icon
   type: icon
   tracker: $pointsOfInterest
   flags: [ public, list ]
   options: "$profileobject:iconContainer$"
 -
  type: tracker_field
  ref: poiCoordinates
  data:
   order: 40
   name: Coordinates
   type: header
   tracker: $pointsOfInterest
 -
  type: tracker_field
  ref: poiLocation
  data:
   order: 50
   name: Location
   type: map
   options: "1"
   tracker: $pointsOfInterest
   flags: [ public, mandatory ]
 -
  type: tracker_field
  ref: poiAttachments
  data:
   order: 60
   name: Attachments
   type: header
   tracker: $pointsOfInterest
 -
  type: tracker_field
  ref: poiImage
  data:
   order: 70
   name: Image
   type: files
   options: 
        galleryId: 2
        filter: image/*
        count: 1
        displayMode: img
        replace: n
        uploadInModal: y
        image_x: 800
        image_y: 800
   tracker: $pointsOfInterest
   flags: [ public ]
 -
  type: tracker_field
  ref: poiDetails
  data:
   order: 80
   name: Details
   type: header
   tracker: $pointsOfInterest
 -
  type: tracker_field
  ref: poiMap
  data:
   order: 90
   name: Map
   type: item_link
   options:
    trackerId: $profileobject:maps$
    fieldId: $profileobject:mapName$
    displayFieldsList: 
     - 0
    status: opc
    preSelectFieldMethod: exact
    displayOneItem: one
    indexRemote: 
     - $profileobject:mapShareCode$
    cascade: 7
   tracker: $pointsOfInterest
   flags: [ public, mandatory, list, title, searchable ]
   permname: map
   visible: immutable
 -
  type: tracker_field
  ref: poiFinder
  data:
   order: 100
   name: Finder
   type: user
   options: "1"
   tracker: $pointsOfInterest
   flags: [ public, mandatory, list ]
   permname: finder
   visible: immutable


Zones

This is both for polygons and paths

YAML
objects:
 -
  type: tracker
  ref: zones
  data:
   name: Zones
   allow: [creator_modification, creator_deletion]
   show: list_modification_date
   section_format: tab
   admin_only_view: y
 -
  type: tracker_option
  data:
   tracker: $zones
   name: popup_fields
   value: "$profileobject:zoneImage$,$profileobject:zoneDescription$,$profileobject:zoneFinder$"
 -
  type: tracker_field
  ref: zoneName
  data:
   order: 10
   name: Name
   type: text_field
   tracker: $zones
   flags: [ public, list, title, link, searchable ]
 -
  type: tracker_field
  ref: zoneDescription
  data:
   order: 20
   name: Description
   type: text_area
   options: 
    toolbars: 1
    height: 6
    distinct: n
    wysiwyg: n
    samerow: 1
   tracker: $zones
   flags: [ public ]
 -
  type: tracker_field
  ref: zoneAttachments
  data:
   order: 30
   name: Attachments
   type: header
   tracker: $zones
 -
  type: tracker_field
  ref: zoneImage
  data:
   order: 40
   name: Image
   type: files
   options: "2,image/*,1,img,,,1,n,$profileobject:imageBank$,2"
   tracker: $zones
   flags: [ public ]
 -
  type: tracker_field
  ref: zoneDetails
  data:
   order: 50
   name: Details
   type: header
   tracker: $zones
 -
  type: tracker_field
  ref: zoneMap
  data:
   order: 60
   name: Map
   type: item_link
   options:
    trackerId: $profileobject:maps$
    fieldId: $profileobject:mapName$
    displayFieldsList: 
     - 0
    status: opc
    preSelectFieldMethod: exact
    displayOneItem: one
    indexRemote: 
     - $profileobject:mapShareCode$
    cascade: 7
   tracker: $zones
   flags: [ public, mandatory, list, title, searchable ]
   permname: map
   visible: immutable
 -
  type: tracker_field
  ref: zoneFinder
  data:
   order: 70
   name: Finder
   type: user
   options: "1"
   tracker: $zones
   flags: [ public, mandatory, list ]
   permname: finder
   visible: immutable
 -
  type: tracker_field
  ref: zoneFeature
  data:
   order: 80
   name: Zone
   type: geographic_feature
   options: ""
   tracker: $zones
   flags: [ public, mandatory ]


Maps

YAML
objects:
 -
  type: tracker
  ref: maps
  data:
   name: Maps
   allow: [creator_modification, creator_deletion]
   show: list_modification_date
   section_format: tab
   admin_only_view: y
 -
  type: tracker_option
  data:
   tracker: $maps
   name: popup_fields
   value: "$profileobject:mapDescription$"
 -
  type: tracker_field
  ref: mapName
  data:
   name: Name
   type: text_field
   tracker: $maps
   order: 10
   flags: [ public, mandatory, list, title, link, searchable ]
 -
  type: tracker_field
  ref: mapDescription
  data:
   name: Instructions
   type: text_area
   options: 
    toolbars: 1
    height: 6
    distinct: n
    wysiwyg: n
    samerow: 1
   tracker: $maps
   order: 20
   flags: [ public, searchable ]
 -
  type: tracker_field
  ref: mapShareCode
  data:
   name: Share Code
   type: text_field
   tracker: $maps
   flags: [ public, list, searchable ]
   options: "0,10,,,50"
   order: 30
   permname: shareCode
   validation: regex
   validation_param: \w*
   validation_message: Only letters and numbers are allowed in share codes
 -
  type: tracker_field
  ref: mapDetailsHeader
  data:
   name: Change Base location
   type: header
   tracker: $maps
   order: 40
 -
  type: tracker_field
  ref: mapBaseLocation
  data:
   name: Base Location
   type: map
   tracker: $maps
   order: 50
   flags: [ public, mandatory ]
 -
  type: tracker_field
  ref: mapOwner
  data:
   name: Owner
   type: user
   options: "1"
   tracker: $maps
   order: 60
   flags: [ public, mandatory, list ]
   permname: owner
   visible: immutable


Legends

YAML
objects:
 -
  type: tracker
  ref: legend
  data:
   name: Legend
   allow: [creator_modification, creator_deletion]
   show: list_modification_date
   admin_only_view: y
 -
  type: tracker_field
  ref: legendIcon
  data:
   name: Icon
   type: icon
   tracker: $legend
   flags: [ public, mandatory, list ]
   order: 10
   options: "$profileobject:iconContainer$"
 -
  type: tracker_field
  ref: legendText
  data:
   name: Text
   type: text_field
   tracker: $legend
   order: 20
   flags: [ public, mandatory, list, title, link, searchable ]
 -
  type: tracker_field
  ref: legendMap
  data:
   name: Map
   type: item_link
   options:
    trackerId: $profileobject:maps$
    fieldId: $profileobject:mapName$
    displayFieldsList: 
     - 0
    status: opc
    preSelectFieldMethod: exact
    displayOneItem: one
    indexRemote: 
     - $profileobject:mapShareCode$
    cascade: 7
   tracker: $legend
   flags: [ public, mandatory, list, title, searchable ]
   permname: map
   order: 30
   visible: immutable
 -
  type: tracker_field
  ref: legendFinder
  data:
   name: Finder
   type: user
   options: "1"
   tracker: $legend
   order: 40
   flags: [ public, mandatory, list ]
   permname: finder
   visible: immutable


File Galleries

User files need to be added somewhere
YAML
objects:
 -
  type: file_gallery
  ref: iconContainer
  data:
   parent: 1
   name: Icons
   description: Icons available for selection in the map.
   owner: admin
   archives: 5
   flags: [visible]
   init_files:
    - https://profiles.tiki.org/pics/icons/plugin.png
 -
  type: file_gallery
  ref: imageBank
  data:
   parent: 1
   name: Image Bank
   description: Images uploaded by site admins, for use by teachers and students
   owner: admin
   archives: -1
   flags: [visible]
   image_max_size_x: 0

Wiki Pages

YAML
objects:
 -
  type: wiki_page
  ref: home_page
  data:
   name: HomePage
   content: wikicontent:CartoGraf_HomePage
 -
  type: wiki_page
  ref: cartograf_footer
  data:
   name: Footer
   content: wikicontent:CartoGraf_Footer
 -
  type: wiki_page
  ref: cartograf_setup
  data:
   name: Setup
   description: Post-Profile Setup Instructions
   lang: en
   content: wikicontent:CartoGraf_15_Setup
 -
  type: wiki_page
  ref: cartograf_help
  data:
   name: Help
   description: Help
   lang: en
   content: wikicontent:CartoGraf_Help
 -
  type: wiki_page
  ref: account_validated_page
  data:
   name: Account_Validated
   description: Account Validated
   lang: en
   content: wikicontent:CartoGraf_NewAccountValidationIncludedPage
 -
  type: wiki_page
  ref: demo_page
  data:
   name: Demo
   lang: en
   content: wikicontent:CartoGraf_Demo
 -
  type: wiki_page
  ref: partners_page
  data:
   name: Partners
   lang: en
   content: wikicontent:CartoGraf_Partners
 -
  type: wiki_page
  ref: contact_page
  data:
   name: Contact
   lang: en
   content: wikicontent:CartoGraf_Contact


Application Frame Pages

YAML
objects:
 -
  type: wiki_page
  ref: map_page
  data:
   name: Map
   content: wikicontent:CartoGraf_15_Map
 -
  type: wiki_page
  ref: mapcanvas_share_page
  data:
   name: MapCanvasShare
   content: wikicontent:CartoGraf_MapCanvasShare
 -
  type: wiki_page
  ref: mapcanvas_solo_page
  data:
   name: MapCanvasSolo
   content: wikicontent:CartoGraf_MapCanvasSolo
 -
  type: wiki_page
  ref: mapselector_page
  data:
   name: MapSelector
   content: wikicontent:CartoGraf_MapSelector


Known Issues

Regressions

(means it works fine in Tiki 12)
  • Streetview images loaded remotely from Google after saving the marker do not load (403 forbidden even with API key filled in to control panels - seems missing lib reference in html head for some reason?)
  • Uploading files (images) via modal dialog does not work (returns error "File empty") ( see https://dev.tiki.org/item6350 ) Workaround-ed by setting the height max size too.

Notes


Development Wiki

Moved to https://dev.tiki.org/CartoGraf.

Aliases
CartoGraf-15 | CartoGraf for Tiki 15

Contributors to this page: luciash d' being , Xavier de Pedro and Xavi (as xavidp - admin) .
Page last modified on Tuesday 11 of July, 2017 14:50:07 CEST by luciash d' being.
Category: 15.x