You are here

function _gallery_assist_block_display in Gallery Assist 6

Display the GA-Block Galleries (0).

1 call to _gallery_assist_block_display()
gallery_assist_block in ./gallery_assist.module
Implementation of hook_block().

File

./gallery_assist.module, line 4475
Drupal content type with gallery functionality.

Code

function _gallery_assist_block_display($delta) {
  global $user, $language;

  // Avoid User-ID 0.

  //$u = 1;
  if (arg(0) == 'node' && is_numeric(arg(1)) || arg(0) == 'node' && is_numeric(arg(1)) && is_numeric(arg(2))) {
    $u = db_result(db_query("SELECT uid FROM {gallery_assist} WHERE ref = %d", arg(1)));
  }
  if (arg(0) == 'user' && is_numeric(arg(1))) {
    $u = arg(1);
  }
  $myLink = array();
  $attr = array();

  //$u = 1;

  // Get settings.
  $data = variable_get('gallery_assist_block_data', FALSE);
  $data[$delta]['thumbnail_size'] = $data[$delta]['item_size'];
  $cover = $data[$delta]['bformat'] == 'pic' ? "AND p.cover = 1" : '';
  $order = $data[$delta]['bformat'] == 'lnk' ? 'ORDER BY n.created DESC' : '';
  $i18_n = variable_get('i18n_selection_mode', FALSE);
  $i18_n = variable_get('i18n_selection_mode', FALSE);
  if (module_exists('i18n') && $i18_n == 'strict') {
    $tlang = "AND g.lang = '%s'";
    $arguments = array(
      'pic' => array(
        $u,
        $language->language,
        $data[$delta]['visibles'],
      ),
      'lnk' => array(
        $u,
        $language->language,
        $data[$delta]['visibles'],
      ),
    );
  }
  else {
    $tlang = '';
    $arguments = array(
      'pic' => array(
        $u,
        $data[$delta]['visibles'],
      ),
      'lnk' => array(
        $u,
        $data[$delta]['visibles'],
      ),
    );
  }
  $q['pic'] = "SELECT n.nid, n.title, n.type, g.data, p.tpath, p.opath\n               FROM {node} n\n               JOIN {gallery_assist} g ON g.nid = n.nid\n               JOIN {gallery_assist_item} p on p.gref = g.gref\n               WHERE\n                 g.show_in_homepage_block = 1\n                 AND n.uid = %d\n                 {$tlang}\n                 AND p.cover = 1\n               ORDER BY n.created DESC\n               LIMIT %d";
  $q['lnk'] = "SELECT n.nid, n.title, n.type, g.data\n               FROM node n\n               JOIN {gallery_assist} g ON g.nid = n.nid\n               WHERE\n                 g.show_in_homepage_block = 1\n                 AND n.uid = %d\n                 {$tlang}\n               ORDER BY n.created DESC\n               LIMIT %d";
  $resT = db_query($q[$data[$delta]['bformat']], $arguments[$data[$delta]['bformat']]);
  while ($r = db_fetch_object($resT)) {
    $n_settings = unserialize($r->data);
    $r->gallconf[$r->type] = $n_settings;
    if (gallery_assist_check_public_status($r, $user)) {
      $c[$r->nid] = $r;
    }
  }
  if (empty($c)) {
    return '';
  }
  foreach ($c as $r) {

    // Menu trail.
    $lattr = array();
    if (arg(0) == 'node' && is_numeric(arg(1)) && arg(1) == $r->nid || arg(0) == 'node' && arg(2) == 'edit' && is_numeric(arg(1)) && arg(1) == $r->nid || arg(1) == 'ga_edit_one' && is_numeric(arg(2)) && arg(2) == $r->nid || arg(1) == "ga_edit_one_{$r->type}" && is_numeric(arg(2)) && arg(2) == $r->nid || arg(1) == 'ga_del_one' && is_numeric(arg(2)) && arg(2) == $r->nid) {

      //         || (arg(3) == "edit" && is_numeric(arg(1)) && arg(1) == $r->nid)
      $lattr['class'] = ' active';
    }
    else {
      $lattr['class'] = '';
    }
    switch ($data[$delta]['bformat']) {
      case 'pic':
        if (function_exists('imagecache_preset') && is_numeric($data[$delta]['preset_id'])) {
          $path = preg_replace('/\\/thm\\//', '/', $r->opath);
          $c[$r->nid]->imgPath = preg_replace('/\\/files\\//', '/files/imagecache/' . $data[$delta]['preset_name'] . '/', $path);
          $c[$r->nid]->imgPath2 = preg_replace('/\\/thm\\//', '/img/', $r->tpath);
        }
        else {
          $c[$r->nid]->imgPath = preg_replace('/\\/thm\\//', '/img/', $r->tpath);
        }
        if (file_exists($c[$r->nid]->imgPath)) {
          $imgInfo = image_get_info($c[$r->nid]->imgPath);
          $imgInfo += gallery_assist_image_more_info('ga-block-' . $delta, $imgInfo, $data[$delta]);
        }
        else {
          $imgInfo = image_get_info($c[$r->nid]->imgPath2);
          $imgInfo += gallery_assist_image_more_info('ga-block-' . $delta, $imgInfo, $data[$delta]);
        }
        $dir = $imgInfo['pos'] == 'h' ? 'width' : 'height';
        $attr[$dir] = $imgInfo["new_{$dir}"];
        $attr['style'] = $imgInfo['pos'] == 'h' ? 'margin-top:' . $imgInfo['top'] . 'px;' : '';
        if (function_exists('imagecache_preset') && is_numeric($data[$delta]['preset_id']) && $data[$delta]['preset_name']) {
          if ($data[$delta]['disable_margin_top'] == 1) {
            $attr['style'] = 'margin-top:0;';
          }
          $c[$r->nid]->img = theme('imagecache', $data[$delta]['preset_name'], $r->opath, $r->title, $r->title, $attr, $square);
        }
        else {
          $c[$r->nid]->img = theme('image', file_create_url($c[$r->nid]->imgPath), $r->title, $r->title, $attr, $square);
        }
        $force_height = $data[$delta]['force_height'] == 1 ? $imgInfo['height'] : NULL;
        $myLink[] = gallery_assist_build_block_item(l($c[$r->nid]->img, 'node/' . $r->nid, array(
          'attributes' => $lattr,
          'html' => TRUE,
        )), 'lnk', $data[$delta], $force_height);
        unset($attr);
        unset($imgInfo);
        break;
      case 'lnk':
        $myLink[] = l($c[$r->nid]->title, 'node/' . $r->nid, array(
          'attributes' => $lattr,
        ));
        break;
    }
  }
  $output1 = $data[$delta]['bformat'] == 'pic' ? implode('', $myLink) : theme('item_list', $myLink, NULL, 'ul');
  $output = empty($myLink) ? '' : '<div class="clear-block">' . $output1 . '</div>';
  return array(
    'subject' => $user->name . ' ' . gallery_assist_block_helper(0),
    'content' => $output,
  );
}