summaryrefslogtreecommitdiffstats
path: root/apk_browser.module
diff options
context:
space:
mode:
Diffstat (limited to 'apk_browser.module')
-rw-r--r--apk_browser.module83
1 files changed, 77 insertions, 6 deletions
diff --git a/apk_browser.module b/apk_browser.module
index f33f606..70e37ab 100644
--- a/apk_browser.module
+++ b/apk_browser.module
@@ -489,17 +489,88 @@ function apk_browser_commit_url($commit) {
}
$href = str_replace('%commit%', $commit, variable_get('apk_import_commit_url', ''));
$attributes = empty($title) ? array() : array('title' => check_plain($title), 'class' => 'with-tooltip');
+ //if we get title from query we add tooltip js script
+ if ($title) {
+ $path = drupal_get_path('module', 'apk_browser');
+ drupal_add_js($path . '/tooltip/tooltip.js');
+ drupal_add_js('jQuery().ready(function(){jQuery(".with-tooltip").simpletooltip();});', 'inline');
+ }
return l($commit, $href, array('attributes' => $attributes));
}
+//format the fields into a table
+function apk_browser_package_table($vars) {
+ $empty = '<p>' . t('None') . '</p>';
+ //prepare depends fields
+ $depends = '';
+ if (!empty($vars['apk_depends'])) {
+ foreach ($vars['apk_depends'] as $dep) {
+ $value = trim($dep['value'], '!');
+ $value = preg_split("/[<>=]/", $value);
+ $depends .= '<p>' . l($dep['value'], 'apk/' .
+ $vars['taxonomy_apk_repo']['0']['taxonomy_term']->name . '/' .
+ $vars['taxonomy_apk_arch']['0']['taxonomy_term']->name . '/' .
+ $value[0], array()) . '</p>';
+ }
+ } else {
+ $depends = $empty;
+ }
+ //prepare install if fields
+ $installif = '';
+ if (!empty($vars['apk_install_if'])) {
+ foreach ($vars['apk_install_if'] as $iif) {
+ $value = trim($iif['value'], '!');
+ $value = preg_split("/[<>=]/", $value);
+ $installif .= '<p>' . l($iif['value'], 'apk/' .
+ $vars['taxonomy_apk_repo']['0']['taxonomy_term']->name . '/' .
+ $vars['taxonomy_apk_arch']['0']['taxonomy_term']->name . '/' .
+ $value[0], array()) . '</p>';
+ }
+ }
+ //prepare origin link
+ if (!empty($vars['apk_origin'])) {
+ $value = trim($vars['apk_origin'][0]['value'], '!');
+ $value = preg_split("/[<>=]/", $value);
+ $origin = l($vars['apk_origin'][0]['safe_value'], 'apk/' .
+ $vars['taxonomy_apk_repo']['0']['taxonomy_term']->name . '/' .
+ $vars['taxonomy_apk_arch']['0']['taxonomy_term']->name . '/' .
+ $vars['apk_origin'][0]['value']
+ );
+ } else {
+ $origin = $empty;
+ }
+ //prepare all fields
+ $fields[t('Package')] = $vars['title'];
+ $fields[t('Version')] = $vars['apk_version'][0]['safe_value'];
+ $fields[t('Architecture')] = $vars['taxonomy_apk_arch'][0]['taxonomy_term']->name;
+ $fields[t('Repository')] = $vars['taxonomy_apk_repo'][0]['taxonomy_term']->name;
+ $fields[t('Project')] = l('URL', $vars['apk_url'][0]['safe_value']);
+ $fields[t('Description')] = $vars['apk_description'][0]['safe_value'];
+ $fields[t('License')] = $vars['apk_license'][0]['safe_value'];
+ $fields[t('Maintainer')] = empty($vars['apk_maintainer']) ? $empty : $vars['apk_maintainer'][0]['safe_value'];
+ $fields[t('Build date')] = empty($vars['apk_build_time']) ? $empty : date('r', $vars['apk_build_time'][0]['safe_value']);
+ $fields[t('Commit')] = empty($vars['apk_commit']) ? $empty : apk_browser_commit_url($vars['apk_commit']['0']['value']);
+ //only show origin if its different then itself
+ if ($vars['apk_origin'][0]['value'] != $vars['title']) {
+ $fields[t('Origin')] = $origin;
+ }
+ //to prevent misunderstanding only display when needed.
+ $fields[t('Depends')] = $depends;
+ if (!empty($installif)) {
+ $fields[t('Install if')] = $installif;
+ }
+ //setup array for theme function
+ foreach ($fields as $header => $cell) {
+ $table['rows'][]['data'] = array(array('data' => $header, 'header' => 'header'), $cell);
+ }
+ //render the table
+ return theme('table', $table);
+}
+
+//create template variable with package table
function apk_browser_preprocess_node(&$vars) {
if ($vars['node']->type == 'apk') {
- if (isset($vars['apk_commit']['0']['value'])) {
- $vars['commit_url'] = apk_browser_commit_url($vars['apk_commit']['0']['value']);
- }
- $path = drupal_get_path('module', 'apk_browser');
- drupal_add_js($path . '/tooltip/tooltip.js');
- drupal_add_js('jQuery().ready(function(){jQuery(".with-tooltip").simpletooltip();});', 'inline');
+ $vars['apk_table'] = apk_browser_package_table($vars);
}
}