summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormetzlerd2013-05-31 18:03:32 (GMT)
committer metzlerd2013-05-31 18:03:32 (GMT)
commitdbbeba40366ef5a52f09ecb026b4ccba709341be (patch)
tree35bd3200408d0f31ac4c43818ed97e0292cb2507
parent6a6fe1cdae86db03f5f4ee2ad23b21b9f76476b3 (diff)
parent889c1e8c8e431eb9a2adfaa264b5af9afe3251a2 (diff)
Merge branch '7.x-3.x' of metzlerd@git.drupal.org:project/forena.git into 7.x-3.x
-rwxr-xr-xFrxMenu.inc6
-rwxr-xr-xFrxReport.inc9
-rwxr-xr-xforena.admin.inc9
-rwxr-xr-xforena.module4
-rwxr-xr-xrepos/forena_help/design_topics.xml2
-rw-r--r--repos/reports/help/design.frx6
-rwxr-xr-xrepos/reports/help/layout.frx16
7 files changed, 34 insertions, 18 deletions
diff --git a/FrxMenu.inc b/FrxMenu.inc
index 0233baa..84230a5 100755
--- a/FrxMenu.inc
+++ b/FrxMenu.inc
@@ -147,8 +147,9 @@ class FrxMenu {
$cache = unserialize($cache);
// Load menu item defaults
- $menu = $cache['menu'];
+ $menu = @$cache['menu'];
$path = $menu['path'];
+ $path_args = @$menu['args'];
$type = @$menu['type'];
$title = @$menu['title'] ? $menu['title']: $row->title;
if (module_exists('locale')) {
@@ -180,7 +181,8 @@ class FrxMenu {
// Now generate the callback arguments
$parts = explode( '/', $new_path);
$page_args = array_keys($parts, '%');
- $page_args = array_merge(array($path, $row->report_name), $page_args);
+ $path_args = $path_args ? rtrim($path,'/') . '/' . ltrim($path_args, '/') : $path;
+ $page_args = array_merge(array($path_args, $row->report_name), $page_args);
// Set the access callback
$access_callback = isset($cache['access']) ? 'forena_check_all_access' : TRUE;
diff --git a/FrxReport.inc b/FrxReport.inc
index d4b5d57..d1ee3f9 100755
--- a/FrxReport.inc
+++ b/FrxReport.inc
@@ -174,6 +174,7 @@ class FrxReport {
$frx = $node->attributes(FRX_NS);
+ $include_root = !isset($frx['skip_root']) || !$frx['skip_root'];
$elements = $dom_node->childNodes->length;
// Check for invalid link processing.
@@ -249,11 +250,11 @@ class FrxReport {
foreach ($tmp_attrs as $key => $value) {
$r_attr_text .= ' ' . $key . '="' . (string)$value . '"';
}
- $o .= $this->teng->replace('<' . $tag . $r_attr_text . '>');
+ if ($include_root) $o .= $this->teng->replace('<' . $tag . $r_attr_text . '>');
foreach ($dom_node->childNodes as $child) {
$o .= $this->render_section($child);
}
- $o .= '</' . $tag . '>';
+ if ($include_root) $o .= '</' . $tag . '>';
Frx::Data()->pop();
}
}
@@ -268,13 +269,13 @@ class FrxReport {
}
}
else {
- $o .= $this->teng->replace('<' . $tag . $attr_text . '>');
+ if ($include_root) $o .= $this->teng->replace('<' . $tag . $attr_text . '>');
// None found, so render children
foreach ($dom_node->childNodes as $child) {
$o .= $this->render_section($child);
}
- $o .= '</' . $tag . '>';
+ if ($include_root) $o .= '</' . $tag . '>';
}
}
if ($is_data_block && $continue) {
diff --git a/forena.admin.inc b/forena.admin.inc
index 1746aa6..5649ed4 100755
--- a/forena.admin.inc
+++ b/forena.admin.inc
@@ -452,10 +452,17 @@ function forena_layout_form($form, $form_state, $report_name) {
$form['menu']['path'] = array(
'#type' => 'textfield',
'#title' => t('Menu Path'),
- '#description' => t('Indicate site reletive path to menu. Paramters may be embedded in the url using a :parm syntax (e.g. states/:state)'),
+ '#description' => t('Indicate site reletive path to menu. Parameters may be embedded in the url using a :parm syntax (e.g. states/:state)'),
'#default_value' => @$menu['path'],
);
+ $form['menu']['args'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Additional Arguments'),
+ '#description' => t('Indicate additonal parameters that should be extracted after the menu path using a :parm syntax (e.g. :parma/:parmb)'),
+ '#default_value' => @$menu['args'],
+ );
+
$form['menu']['title'] = array(
'#type' => 'textfield',
'#title' => t('Menu Title'),
diff --git a/forena.module b/forena.module
index ae37f1e..97b1f5b 100755
--- a/forena.module
+++ b/forena.module
@@ -594,7 +594,7 @@ function forena_parameter_form($formid, &$form_state, $parameters, $attributes=
break;
default:
$type = 'textfield';
- $list = '';
+ $list = array();
}
if (isset($menu_parms[$id]) && $type=='textfield') {
@@ -632,7 +632,7 @@ function forena_parameter_form($formid, &$form_state, $parameters, $attributes=
//if $list is not empty then push options
//onto the array. options will cause an error for
//textfield elements.
- if ($list || $type = 'select' || $type='radios') {
+ if ($list || $type == 'select' || $type =='radios') {
$form['params'][$id]['#options'] = $list;
$form['params'][$id]['#multiple'] = $multiselect;
}
diff --git a/repos/forena_help/design_topics.xml b/repos/forena_help/design_topics.xml
index 8970562..7fb69a5 100755
--- a/repos/forena_help/design_topics.xml
+++ b/repos/forena_help/design_topics.xml
@@ -30,7 +30,7 @@
<name>help.design</name>
</row>
<row>
- <title>Reort Skins</title>
+ <title>Report Skins</title>
<name>help.skins</name>
</row>
</root>
diff --git a/repos/reports/help/design.frx b/repos/reports/help/design.frx
index 78286be..860bd53 100644
--- a/repos/reports/help/design.frx
+++ b/repos/reports/help/design.frx
@@ -65,6 +65,12 @@
'*', which would imply creating a a repeating pattern for every row or
element returned by the query.
</p>
+<p id="skip_root">
+ <strong>frx:skip_root attribute</strong>- This will cause the current node
+ of the report to not be rendered, but children will be rendered as normal.
+ This is most commonly used when you want the frx:foreach to not render the node
+ containing the frx:foreach attribute.
+</p>
<h2>Report fields</h2>
<p>Each field in the report is referenced by an xpath expression
enclosed by curly braces. In its simplest form the xpath xpression can
diff --git a/repos/reports/help/layout.frx b/repos/reports/help/layout.frx
index c4edd7a..59c6546 100755
--- a/repos/reports/help/layout.frx
+++ b/repos/reports/help/layout.frx
@@ -21,23 +21,23 @@
available. &nbsp;Explanation of the opions on this form are as
follows:</p>
<p>
- <strong>Body -&nbsp;</strong>&nbsp;The html body of the
+ <strong>Body -;</strong>&nbsp;The html body of the
report.&nbsp;
</p>
<p>
<strong>Category</strong> - This controls under which group the
report appears under the My Reports link.
</p>
- <p>Form - The form determines the look and feel of the report.
+ <p>
+ <strong>Menu</strong> - Specify configuration options for a drupal menu
+ here.
+ </p>
+ <p><strong>Skin</strong> - The skin determines the look and feel of the report.
&nbsp;In conventional report writers this can be thought of as
what kinid of paper form the report printed on. &nbsp;In the
modern days of the web most layout is controlled by Cascacding
- Style Sheets (CSS). &nbsp;Specify the form of the report and any
- css or js files of the same name in your reports directory will
- automatically get added to the report. &nbsp;In this way you can
- establish common styles that get used by reports that have the
- same form name. &nbsp;If you leave this blank, the default form,
- specified in the Forena configuration menu is used.&nbsp;</p>
+ Style Sheets (CSS) and Javascript Libraries. See the section on
+ Report Skins for additional information on creating report skins.</p>
<p>
<strong>Hidden</strong> - Checking this box will cause the report
not to be listed in the My Reports list regardless of the Category