Benutzerdefinierte Felder / Custom Field

thomaslhh

New Member
Hallo,

besteht bei der Verwendung von benutzerdefinierten Feldern (z.B. für Google+-Adresse, Twitter etc.) die Möglichkeit diese nicht anzeigen zu lassen wenn das Mitglied dort keine URL einträgt? Mit anderen Worten, der Button wird nur dann ausgegeben wenn es tatsächlich eine hinterlegte Adresse gibt.

Vielen Dank,

Thomas
 

Basti

Administrator
Staff member
besteht bei der Verwendung von benutzerdefinierten Feldern (z.B. für Google+-Adresse, Twitter etc.) die Möglichkeit diese nicht anzeigen zu lassen wenn das Mitglied dort keine URL einträgt? Mit anderen Worten, der Button wird nur dann ausgegeben wenn es tatsächlich eine hinterlegte Adresse gibt.
Es sind nicht mehr als das, felder. Keine funktionen.
Dein problem ist, das du das html direkt in stats.html schreibst, anstatt ein plugin zu benutzen

Hier ein kleines beispiel

1) plugins/MyPluginName/
2) plugins/MyPluginName/languages/
3) plugins/MyPluginName/languages/english.php
Hier könntest du text definieren, brauchst du aber nix, dennoch brauchen wir die datei ( da sie immer eingefügt wird )
Code:
<?php

if (!defined('VISIOLIST')) {
  die("This file cannot be accessed directly.");
}

// When you make a new translation, fill out the following four variables to
// get credit for you work.
$translation = 'English';
$translator_name = 'Mark';
$translator_email = '';
$translator_url = 'http://visiolist.com/';

?>
4) plugins/MyPluginName/languages/index.htm ( kann leer bleiben )
5) plugins/MyPluginName/info.php
Code:
<?php

// You must give a name for your Plugin.  The other fields are optional.
$pluginname = "Mein Plugin Name";
$author = '';
$email = '';

// Update check url, VL resource page. Gibt es nicht, bleibt also leer
$url = '';

// Install = 0, da keine install.php gebraucht wird
$install = 0;

// Voraussetzungen, keine
$depend = '';

// Plugin Version
$version = '1.0';

?>
6) plugins/MyPluginName/index.htm ( kann leer bleiben )

Alles bevor diesem punkt sind nur vorbereitungen um eine korrekte plugin struktur zu erhalten. Nun wollen wir mal den button ausgeben

Angenommen du willst den button in stats.html ausgeben. Bitte beachte die kommentare, da du sachen je nach name abändern musst

7) plugins/MyPluginName/details_compile_details.php
Code:
// Ändere die variable, je nachdem wie dein "Custom field id" heisst
if(!empty($TMPL['acf_my_field_id']))
{
    // Änder den plugin namen, je nach dem wie du dein plugin nennst
    $TMPL['social_button'] = $this->do_plugin_skin('./plugins/MyPluginName', 'social_button');
}
8) plugins/MyPluginName/social_button.html
Code:
// Hier packst du dein button code rein so wie du ihn schon hattest
Und in deine stats.html packst du anstatt den ganzen kram nur {$social_button}
 

Basti

Administrator
Staff member
Naja, eigentlich ist beiddes das gleiche.

P.s in deiner if abfrage, müsses 2x & sein
 

thomaslhh

New Member
Vielen Dank schon mal, das erste Plugin arbeitet schon.
Den Punkt 7 betreffend... wie muss dieser konfiguriert sein wenn der Button auch in der Topliste ausgegeben werden soll?
Da gibt es zum einen die table_top_row_premium.html und die table_top_row.html.
Experimentiert habe ich schon, nur klappt es nicht.
 

leonor

Active Member
License Active
öhm der plugin hook nennt sich rankings_compile_stats, kurz gesagt du musst auch noch eine rankings_compile_stats.php erstellen :)

lg
 

Basti

Administrator
Staff member
Genau wie leonor sagt, und in die datei kannst das gleiche packen wie details_compile_details.php

Falls gebraucht kannst du auch eine andere html machen falls das html dort bissle anders ausschauen soll
Code:
$TMPL['social_button'] = $this->do_plugin_skin('./plugins/MyPluginName', 'social_button_rankings');
social_button_rankings.html
 
Top