it-swarm.com.de

Wie füge ich Werte programmgesteuert in ein globales benutzerdefiniertes Textfeld mit Ansichten ein?

Wie kann ich Werte aus den Ansichten programmgesteuert in ein globales benutzerdefiniertes Textfeld einfügen? Ich habe versucht, die Variable $ views aus hook_views_pre_render (& $ views) und my_theme_name_process_function (& $ vars) zu verwenden, war aber beim Abrufen des Werts nicht erfolgreich? Wenn ich ein einfaches Feld versuche, kann ich HTML programmgesteuert in das Markup einfügen.

$view = view Object
(
    [db_table] => views_view
    [base_table] => node
    [base_field] => nid
    [name] =>view_name
    [vid] => 3
    [description] => 
    [tag] => default
    [human_name] => view_name
    [core] => 7
    [api_version] => 
    [disabled] => 
    [editing] => 
    [args] => Array
    (
        )

    [use_ajax] => 
    [result] => Array

  [result] => Array
        (
            [0] => stdClass Object
                   [field_field_final_ort] => Array
                            (
                                [0] => Array
                                    (
                                        [rendered] => Array
                                            (
                                                     ['#markup'] => YES     

Ich möchte den Wert des benutzerdefinierten GLOBAL-Textfelds mithilfe des Ansichtsobjekts auf ähnliche Weise ändern, aber es gibt kein solches Array für das globale benutzerdefinierte Textfeld.
Wie kann man das ändern?

Mein Code war

function my_themename_process_views_view_field(&$vars) {

  if ($vars['view']->name == 'view_name') {
foreach( $vars['view']->result as $key => $value) { 
$value->field_name[0]['rendered']['#markup'] = '';
}

}}

Ich möchte diesen ähnlichen Code für ein globales benutzerdefiniertes Textfeld anwenden, aber im Ergebnisarray ist kein suxh verfügbar

Wie kann ich Werte für jede Zeile des globalen benutzerdefinierten Textfeldwerts ändern? Die unten angegebene Antwort gibt für jede Zeile die gleichen Werte an.

6
harshal

Sie sollten dies mit hook_views_pre_render () tun können. Bitte versuchen Sie den folgenden Code:

function YOUR_THEME_views_pre_render(&$view) {

  switch ($view->name) {
    case 'YOUR_VIEW_NAME':
      //  override the global custom text field value
      $view->field['nothing']->options['alter']['text'] = 'My custom text';
    break;
  }
}

Wenn der globale benutzerdefinierte Textwert für jedes Ansichtsergebnis unterschiedlich sein muss, können Sie ihn mithilfe von Ersatzmustern konfigurieren.

enter image description here

Um programmgesteuert Werte in ein globales benutzerdefiniertes Textfeld einzufügen, können Sie template_preprocess_views_view_fields () verwenden

function YOUR_THEME_preprocess_views_view_fields(&$vars) {
  $view = $vars['view'];

  foreach ($view->field as $id => $field) {

    // The global custom text content
    $vars['fields']['nothing']->content = 'Some global custom text content';

    // change the global custom text content depend on result (node id)
    if ($vars['row']->nid == 10) $vars['fields']['nothing']->content = 'CHANGED';
  }
}
14
Jack-PL