Добавление Flag во Views с другием названием

Главные вкладки

Аватар пользователя iNFerNo iNFerNo 11 февраля 2013 в 10:40

Встала задача флаг - Мне нравиться/Снять отметку "мне нравиться" добавить на страницу Views под названием Отметить/Снять отметку

если какая-то возможность кастомно собрать ссылку флага...

Комментарии

Аватар пользователя iNFerNo iNFerNo 11 февраля 2013 в 12:15

может быть это как то можно использовать?

function template_preprocess_flag(&$variables) {
  global $user;
  static $initialized = array();

  // Some typing shotcuts:
  $flag = &$variables['flag'];
  $action = $variables['action'];
  $content_id = $variables['content_id'];
  $flag_css_name = str_replace('_', '-', $flag->name);

  // Generate the link URL.
  $link_type = $flag->get_link_type();
  $link = module_invoke($link_type['module'], 'flag_link', $flag, $action, $content_id);
  if (isset($link['title']) && empty($link['html'])) {
    $link['title'] = check_plain($link['title']);
  }

  // Replace the link with the access denied text if unable to flag.
  if ($action == 'unflag' && !$flag->access($content_id, 'unflag')) {
    $link['title'] = $flag->get_label('unflag_denied_text', $content_id);
    unset($link['href']);
  }

  // Anonymous users always need the JavaScript to maintain their flag state.
  if ($user->uid == 0) {
    $link_type['uses standard js'] = TRUE;
  }

  // Load the JavaScript/CSS, if the link type requires it.
  if (!isset($initialized[$link_type['name']])) {
    if ($link_type['uses standard css']) {
      drupal_add_css(drupal_get_path('module', 'flag') . '/theme/flag.css');
    }
    if ($link_type['uses standard js']) {
      drupal_add_js(drupal_get_path('module', 'flag') . '/theme/flag.js');
    }
    $initialized[$link_type['name']] = TRUE;
  }

  $variables['link_href'] = isset($link['href']) ? check_url(url($link['href'], $link)) : FALSE;
  $variables['link_text'] = isset($link['title']) ? $link['title'] : $flag->get_label($action . '_short', $content_id);
  $variables['link_title'] = isset($link['attributes']['title']) ? check_plain($link['attributes']['title']) : check_plain(strip_tags($flag->get_label($action . '_long', $content_id)));
  $variables['status'] = ($action == 'flag' ? 'unflagged' : 'flagged');

  $variables['flag_wrapper_classes_array'] = array();
  $variables['flag_wrapper_classes_array'][] = 'flag-wrapper';
  $variables['flag_wrapper_classes_array'][] = 'flag-' . $flag_css_name;
  $variables['flag_wrapper_classes_array'][] = 'flag-' . $flag_css_name . '-' . $content_id;
  $variables['flag_wrapper_classes'] = implode(' ', $variables['flag_wrapper_classes_array']);

  $variables['flag_classes_array'] = array();
  $variables['flag_classes_array'][] = 'flag';
  $variables['flag_classes_array'][] = $variables['action'] . '-action';
  $variables['flag_classes_array'][] = 'flag-link-' . $flag->link_type;
  if (isset($link['attributes']['class'])) {
    $variables['flag_classes_array'][] = $link['attributes']['class'];
  }
  if ($variables['after_flagging']) {
    $inverse_action = ($action == 'flag' ? 'unflag' : 'flag');
    $variables['message_text'] = $flag->get_label($inverse_action . '_message', $content_id);
    $variables['flag_classes_array'][] = $variables['status'];
  }
  $variables['flag_classes'] = implode(' ', $variables['flag_classes_array']);

  // Backward compatibility: The following section preserves some deprecated
  // variables either to make old flag.tpl.php files continue to work, or to
  // prevent PHP from generating E_NOTICEs there. @todo: Remove these sometime.
  $variables['setup'] = FALSE;
  $variables['last_action'] = $variables['status'];
}

Аватар пользователя TurboPixel TurboPixel 11 февраля 2013 в 17:50

по-моему, если добавить relationship по флагу, и этот флаг потом добавить полем, то там есть возможность переписать текст флага.

Аватар пользователя iNFerNo iNFerNo 14 февраля 2013 в 13:39

вот пробую все решить вопрос

function mymodule_preprocess_flag(&$vars) {
if (in_array($vars['flag']->name, array('add'))) {

      $vars['action'] = 'what should I write?';
      $vars['link_text'] = t('Remove Flag');
      $vars['link_title'] = t('Remove Flag for this user');

        }
       
       
        }

меняется и для экшена и флаг и унфлаг

как условие

if ($action == 'unflag')

прописать правильно???