acf
This commit is contained in:
27
plugins/fields/acfsoundcloud/acfsoundcloud.php
Normal file
27
plugins/fields/acfsoundcloud/acfsoundcloud.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Advanced Custom Fields
|
||||
* @version 2.8.8 Pro
|
||||
*
|
||||
* @author Tassos Marinos <info@tassos.gr>
|
||||
* @link http://www.tassos.gr
|
||||
* @copyright Copyright © 2020 Tassos Marinos All Rights Reserved
|
||||
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Factory;
|
||||
|
||||
JLoader::register('ACF_Field', JPATH_PLUGINS . '/system/acf/helper/plugin.php');
|
||||
|
||||
if (!class_exists('ACF_Field'))
|
||||
{
|
||||
Factory::getApplication()->enqueueMessage('Advanced Custom Fields System Plugin is missing', 'error');
|
||||
return;
|
||||
}
|
||||
|
||||
class PlgFieldsACFSoundCloud extends ACF_Field
|
||||
{
|
||||
}
|
||||
22
plugins/fields/acfsoundcloud/acfsoundcloud.xml
Normal file
22
plugins/fields/acfsoundcloud/acfsoundcloud.xml
Normal file
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<extension type="plugin" version="3.7.0" group="fields" method="upgrade">
|
||||
<name>ACF_SOUNDCLOUD</name>
|
||||
<description>ACF_SOUNDCLOUD_DESC</description>
|
||||
<author>Tassos Marinos</author>
|
||||
<creationDate>May 2017</creationDate>
|
||||
<copyright>Copyright (C) 2019 Tassos Marinos. All rights reserved.</copyright>
|
||||
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
|
||||
<authorEmail>info@tassos.gr</authorEmail>
|
||||
<authorUrl>www.tassos.gr</authorUrl>
|
||||
<version>1.0</version>
|
||||
<scriptfile>script.install.php</scriptfile>
|
||||
<files>
|
||||
<filename plugin="acfsoundcloud">acfsoundcloud.php</filename>
|
||||
<filename>script.install.helper.php</filename>
|
||||
<filename>version.php</filename>
|
||||
<folder>params</folder>
|
||||
<folder>tmpl</folder>
|
||||
<folder>language</folder>
|
||||
<folder>fields</folder>
|
||||
</files>
|
||||
</extension>
|
||||
80
plugins/fields/acfsoundcloud/fields/acfsoundcloud.php
Normal file
80
plugins/fields/acfsoundcloud/fields/acfsoundcloud.php
Normal file
@ -0,0 +1,80 @@
|
||||
<?php
|
||||
/**
|
||||
* @author Tassos.gr <info@tassos.gr>
|
||||
* @link http://www.tassos.gr
|
||||
* @copyright Copyright © 2019 Tassos Marinos All Rights Reserved
|
||||
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
use Joomla\CMS\Form\FormField;
|
||||
use Joomla\CMS\Form\Form;
|
||||
|
||||
class JFormFieldACFSoundCloud extends FormField
|
||||
{
|
||||
/**
|
||||
* Method to attach a JForm object to the field.
|
||||
*
|
||||
* @param SimpleXMLElement $element The SimpleXMLElement object representing the <field /> tag for the form field object.
|
||||
* @param mixed $value The form field value to validate.
|
||||
* @param string $group The field name group control value.
|
||||
*
|
||||
* @return boolean True on success.
|
||||
*
|
||||
* @since 3.6
|
||||
*/
|
||||
public function setup(SimpleXMLElement $element, $value, $group = null)
|
||||
{
|
||||
if (!parent::setup($element, $value, $group))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->value && is_string($this->value))
|
||||
{
|
||||
// Support old values
|
||||
if (is_numeric($this->value))
|
||||
{
|
||||
$this->value = [
|
||||
'id' => $this->value
|
||||
];
|
||||
} else
|
||||
{
|
||||
// Guess here is the JSON string from 'default' attribute
|
||||
$this->value = json_decode($this->value, true);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected function getInput()
|
||||
{
|
||||
$form_source = new SimpleXMLElement('
|
||||
<form>
|
||||
<fieldset name="acfsoundcloud">
|
||||
<field name="id" type="text"
|
||||
label="ACF_SOUNDCLOUD_ID"
|
||||
class="w-100"
|
||||
description="ACF_SOUNDCLOUD_ID_DESC"
|
||||
hint="341546259"
|
||||
required="' . $this->required . '"
|
||||
/>
|
||||
<field name="playlist" type="nrtoggle"
|
||||
label="ACF_SOUNDCLOUD_PLAYLIST"
|
||||
description="ACF_SOUNDCLOUD_PLAYLIST_DESC"
|
||||
/>
|
||||
</fieldset>
|
||||
</form>
|
||||
');
|
||||
|
||||
$control = $this->name;
|
||||
$formname = 'acfsoundcloud.' . str_replace(['jform[', '[', ']'], ['', '.', ''], $control);
|
||||
|
||||
$form = Form::getInstance($formname, $form_source->asXML(), ['control' => $control]);
|
||||
$form->bind($this->value);
|
||||
|
||||
return $form->renderFieldset('acfsoundcloud');
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
; @package Advanced Custom Fields
|
||||
; @version 2.8.8 Pro
|
||||
;
|
||||
; @author Tassos Marinos - http://www.tassos.gr/joomla-extensions
|
||||
; @copyright Copyright (c) 2016 Tassos Marinos. All rights reserved.
|
||||
; @license http://www.tassos.gr
|
||||
|
||||
PLG_FIELDS_ACFSOUNDCLOUD_LABEL="ACF - SoundCloud"
|
||||
ACF_SOUNDCLOUD="Camps - ACF SoundCloud"
|
||||
ACF_SOUNDCLOUD_DESC="Crea un camp on mostrar fàcilment un reproductor SoundCloud per la teva pista d'elecció. A més, pots personalitzar el reproductor amb opcions com la reproducció automàtica, mostrar/amagar els comentaris, qui ha pujat la pista i més."
|
||||
ACF_SOUNDCLOUD_WIDTH="Amplada del reproductor"
|
||||
ACF_SOUNDCLOUD_WIDTH_DESC="L'amplada del reproductor en píxels.<br><br>Pots utilitzar un percentatge afegint el signe % al final"
|
||||
ACF_SOUNDCLOUD_HEIGHT="Alçada del reproductor"
|
||||
ACF_SOUNDCLOUD_HEIGHT_DESC="L'alçada del reproductor en píxels.<br><br>Pots utilitzar un percentatge afegint el signe % al final"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY="Reproducció automàtica"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY_DESC="Estableix si vols que la pista es reprodueixi automàticament en carregar la pàgina"
|
||||
ACF_SOUNDCLOUD_HIDERELATED="Amagar relacionats"
|
||||
ACF_SOUNDCLOUD_HIDERELATED_DESC="Estableix si vols amagar les pistes relacionades del reproductor"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS="mostrar comentaris"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS_DESC="Estableix si vols mostrar els comentaris a la pista"
|
||||
ACF_SOUNDCLOUD_SHOWUSER="Mostrar usuari"
|
||||
ACF_SOUNDCLOUD_SHOWUSER_DESC="Estableix si mostrar el nom d'usuari que ha pujat la pista"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS="Mostrar republicacions"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS_DESC="Estableix si vols mostrar republicacions de la mateixa pista al reproductor"
|
||||
ACF_SOUNDCLOUD_VISUAL="Utilitza incrustat visual"
|
||||
ACF_SOUNDCLOUD_VISUAL_DESC="Estableix si vols el reproductor visual SoundCloud que mostra l'art de la pista"
|
||||
ACF_SOUNDCLOUD_COLOR="Color de la IU"
|
||||
ACF_SOUNDCLOUD_COLOR_DESC="Escull el color dels controls del reproductor i de la informació de pista"
|
||||
ACF_SOUNDCLOUD_VALUE_DESC="Escriu la ID de la pista SoundCloud"
|
||||
@ -0,0 +1,29 @@
|
||||
; @package Advanced Custom Fields
|
||||
; @version 2.8.8 Pro
|
||||
;
|
||||
; @author Tassos Marinos - http://www.tassos.gr/joomla-extensions
|
||||
; @copyright Copyright (c) 2016 Tassos Marinos. All rights reserved.
|
||||
; @license http://www.tassos.gr
|
||||
|
||||
PLG_FIELDS_ACFSOUNDCLOUD_LABEL="ACF - SoundCloud"
|
||||
ACF_SOUNDCLOUD="Felter - ACF SoundCloud"
|
||||
ACF_SOUNDCLOUD_DESC="Opret et felt til let at vise en SoundCloud afspiller der afspiller dit foretrukne spor. Oveni det kan du brugerdefinere afspilleren med indstillinger såsom auto-afspil, vis/skjul kommentarer, vis/skjul uploaderens info og mere."
|
||||
ACF_SOUNDCLOUD_WIDTH="Afspillerbredde"
|
||||
ACF_SOUNDCLOUD_WIDTH_DESC="Afspillerens bredde i pixels. <br><br> Hvis du foretrækker en procentsats, så tilføj et procentegn % i slutningen"
|
||||
ACF_SOUNDCLOUD_HEIGHT="Højde på afspillerHeight"
|
||||
ACF_SOUNDCLOUD_HEIGHT_DESC="Afspillerens højde i pixels. <br><br> Hvis du foretrækker en procentsats, så tilføj et procenttegn % i slutningen"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY="Autoafspil"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY_DESC="OM du ønsker at sporet skal starte afspilning når siden indlæsesyou want the track to start playing once the page loads"
|
||||
ACF_SOUNDCLOUD_HIDERELATED="Skjul relateret"
|
||||
ACF_SOUNDCLOUD_HIDERELATED_DESC="Om du ønsker at skjule relaterede tracks fra afspilleren"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS="Vis kommentarer"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS_DESC="Om du ønsker at vise kommentarer på sporet"
|
||||
ACF_SOUNDCLOUD_SHOWUSER="Vis bruger"
|
||||
ACF_SOUNDCLOUD_SHOWUSER_DESC="Om du ønsker at vise uploaderens brugernavn"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS="Vis rapporter"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS_DESC="Om du ønsker at vise genopslag af det samme track i afspillerenin the player"
|
||||
ACF_SOUNDCLOUD_VISUAL="Anvend visuel indlejring"
|
||||
ACF_SOUNDCLOUD_VISUAL_DESC="Om du ønsker SoundCloud's visuelle afspiller med en prominent visning af sporets kunst"
|
||||
ACF_SOUNDCLOUD_COLOR="UI farve"
|
||||
ACF_SOUNDCLOUD_COLOR_DESC="Vælg farven på afspillerens knapper og sporinfothe color of the player's controls and track info"
|
||||
ACF_SOUNDCLOUD_VALUE_DESC="Angiv SoundCloud track ID'et"
|
||||
@ -0,0 +1,29 @@
|
||||
; @package Advanced Custom Fields
|
||||
; @version 2.8.8 Pro
|
||||
;
|
||||
; @author Tassos Marinos - http://www.tassos.gr/joomla-extensions
|
||||
; @copyright Copyright (c) 2016 Tassos Marinos. All rights reserved.
|
||||
; @license http://www.tassos.gr
|
||||
|
||||
PLG_FIELDS_ACFSOUNDCLOUD_LABEL="ACF - SoundCloud"
|
||||
ACF_SOUNDCLOUD="Felder - ACF SoundCloud"
|
||||
ACF_SOUNDCLOUD_DESC="Erstellen Sie ein Feld, um auf einfache Weise einen SoundCloud-Player anzuzeigen, der den gewünschten Titel wiedergibt. Darüber hinaus können Sie den Player mit Optionen wie automatischer Wiedergabe, Ein- / Ausblenden der Kommentare, Ein- / Ausblenden der Informationen des Uploaders und mehr anpassen."
|
||||
ACF_SOUNDCLOUD_WIDTH="Spielerbreite"
|
||||
ACF_SOUNDCLOUD_WIDTH_DESC="Die Breite des Players in Pixel. <br> <br> Wenn Sie Prozent bevorzugen, fügen Sie das Prozentzeichen% am Ende hinzu."
|
||||
ACF_SOUNDCLOUD_HEIGHT="Spielergröße"
|
||||
ACF_SOUNDCLOUD_HEIGHT_DESC="Die Größe des Players in Pixel. <br> <br> Wenn Sie den Prozentsatz bevorzugen, fügen Sie das Prozentzeichen% am Ende hinzu."
|
||||
ACF_SOUNDCLOUD_AUTOPLAY="Autoplay"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY_DESC="Soll der Titel nach dem Laden der Seite abgespielt werden?"
|
||||
ACF_SOUNDCLOUD_HIDERELATED="Verwandte ausblenden"
|
||||
ACF_SOUNDCLOUD_HIDERELATED_DESC="Möchten Sie die zugehörigen Titel vor dem Player verbergen?"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS="Kommentare anzeigen"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS_DESC="Möchten Sie die Kommentare zum Track anzeigen?"
|
||||
ACF_SOUNDCLOUD_SHOWUSER="Benutzer anzeigen"
|
||||
ACF_SOUNDCLOUD_SHOWUSER_DESC="Möchten Sie den Benutzernamen des Uploaders anzeigen?"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS="Reposts anzeigen"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS_DESC="Möchten Sie Reposts desselben Titels im Player anzeigen?"
|
||||
ACF_SOUNDCLOUD_VISUAL="Visual Embed verwenden"
|
||||
ACF_SOUNDCLOUD_VISUAL_DESC="Möchten Sie den Visual Player von SoundCloud mit einer herausragenden Darstellung der Titelkunst?"
|
||||
ACF_SOUNDCLOUD_COLOR="UI-Farbe"
|
||||
ACF_SOUNDCLOUD_COLOR_DESC="Wählen Sie die Farbe der Steuerelemente und der Titelinformationen des Players."
|
||||
ACF_SOUNDCLOUD_VALUE_DESC="Geben Sie die SoundCloud-Track-ID ein"
|
||||
@ -0,0 +1,33 @@
|
||||
; @package Advanced Custom Fields
|
||||
; @version 2.8.8 Pro
|
||||
;
|
||||
; @author Tassos Marinos - http://www.tassos.gr/joomla-extensions
|
||||
; @copyright Copyright (c) 2019 Tassos Marinos. All rights reserved.
|
||||
; @license http://www.tassos.gr
|
||||
|
||||
PLG_FIELDS_ACFSOUNDCLOUD_LABEL="ACF - SoundCloud"
|
||||
ACF_SOUNDCLOUD="Fields - ACF SoundCloud"
|
||||
ACF_SOUNDCLOUD_DESC="Enter a SoundCloud Track or Playlist ID in the back-end and display a SoundCloud Player in the front-end."
|
||||
ACF_SOUNDCLOUD_WIDTH="Player Width"
|
||||
ACF_SOUNDCLOUD_WIDTH_DESC="The Player's Width in pixels. <br><br> If you prefer percentage add the percentage sign % at the end"
|
||||
ACF_SOUNDCLOUD_HEIGHT="Player Height"
|
||||
ACF_SOUNDCLOUD_HEIGHT_DESC="The Player's Height in pixels. <br><br> If you prefer percentage add the percentage sign % at the end"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY="Autoplay"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY_DESC="Whether you want the track to start playing once the page loads"
|
||||
ACF_SOUNDCLOUD_HIDERELATED="Hide Related"
|
||||
ACF_SOUNDCLOUD_HIDERELATED_DESC="Whether you want to hide the related tracks from the player"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS="Show Comments"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS_DESC="Whether you want to show the comments on the track"
|
||||
ACF_SOUNDCLOUD_SHOWUSER="Show User"
|
||||
ACF_SOUNDCLOUD_SHOWUSER_DESC="Whether you want to show the uploader's username"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS="Show Reposts"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS_DESC="Whether you want to show reposts of the same track in the player"
|
||||
ACF_SOUNDCLOUD_VISUAL="Use Visual Embed"
|
||||
ACF_SOUNDCLOUD_VISUAL_DESC="Whether you want SoundCloud's Visual Player with a prominent display of the track's art"
|
||||
ACF_SOUNDCLOUD_COLOR="UI Color"
|
||||
ACF_SOUNDCLOUD_COLOR_DESC="Choose the color of the player's controls and track info"
|
||||
ACF_SOUNDCLOUD_VALUE_DESC="Enter the SoundCloud track ID"
|
||||
ACF_SOUNDCLOUD_PLAYLIST="Playlist Mode"
|
||||
ACF_SOUNDCLOUD_PLAYLIST_DESC="Enable this, if the ID above concerns a Playlist instead of single Track."
|
||||
ACF_SOUNDCLOUD_ID_DESC="Enter the Track or the Playlist ID"
|
||||
ACF_SOUNDCLOUD_ID="SoundCloud ID"
|
||||
@ -0,0 +1,9 @@
|
||||
; @package Advanced Custom Fields
|
||||
; @version 2.8.8 Pro
|
||||
;
|
||||
; @author Tassos Marinos - http://www.tassos.gr/joomla-extensions
|
||||
; @copyright Copyright (c) 2019 Tassos Marinos. All rights reserved.
|
||||
; @license http://www.tassos.gr
|
||||
|
||||
ACF_SOUNDCLOUD="Fields - ACF SoundCloud"
|
||||
ACF_SOUNDCLOUD_DESC="Enter a SoundCloud Track or Playlist ID in the back-end and display a SoundCloud Player in the front-end."
|
||||
@ -0,0 +1,29 @@
|
||||
; @package Advanced Custom Fields
|
||||
; @version 2.8.8 Pro
|
||||
;
|
||||
; @author Tassos Marinos - http://www.tassos.gr/joomla-extensions
|
||||
; @copyright Copyright (c) 2016 Tassos Marinos. All rights reserved.
|
||||
; @license http://www.tassos.gr
|
||||
|
||||
PLG_FIELDS_ACFSOUNDCLOUD_LABEL="ACF - SoundCloud"
|
||||
ACF_SOUNDCLOUD="Campos - ACF SoundCloud"
|
||||
ACF_SOUNDCLOUD_DESC="Cree un campo para mostrar fácilmente un reproductor de SoundCloud que reproduzca la pista deseada. Además de eso, puedes personalizar el reproductor con opciones como reproducción automática, mostrar/ocultar los comentarios, mostrar/ocultar la información de quien subió y más."
|
||||
ACF_SOUNDCLOUD_WIDTH="Ancho del Reproductor"
|
||||
ACF_SOUNDCLOUD_WIDTH_DESC="El ancho del reproductor en píxeles. <br><br> Si prefiere porcentaje agregue el signo de porcentaje % al final"
|
||||
ACF_SOUNDCLOUD_HEIGHT="Alto del Reproductor"
|
||||
ACF_SOUNDCLOUD_HEIGHT_DESC="El alto del reproductor en píxeles. <br><br> Si prefiere porcentaje agregue el signo de porcentaje % al final"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY="Auto-reproducción"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY_DESC="Si desea que la pista comience a reproducirse una vez que se carga la página"
|
||||
ACF_SOUNDCLOUD_HIDERELATED="Ocultar Relacionado"
|
||||
ACF_SOUNDCLOUD_HIDERELATED_DESC="Si desea ocultar las pistas relacionadas del reproductor"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS="Mostrar Comentarios"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS_DESC="Si desea mostrar los comentarios en la pista"
|
||||
ACF_SOUNDCLOUD_SHOWUSER="Mostrar Usuario"
|
||||
ACF_SOUNDCLOUD_SHOWUSER_DESC="Si desea mostrar el nombre de usuario de quien lo subió"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS="Mostrar Reenvíos"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS_DESC="Si desea mostrar reposiciones de la misma pista en el reproductor"
|
||||
ACF_SOUNDCLOUD_VISUAL="Usar Inserción Visual"
|
||||
ACF_SOUNDCLOUD_VISUAL_DESC="Si desea Visual Player de SoundCloud con una visualización destacada del arte de la pista"
|
||||
ACF_SOUNDCLOUD_COLOR="Color de UI"
|
||||
ACF_SOUNDCLOUD_COLOR_DESC="Elija el color de los controles del reproductor y la información de la pista"
|
||||
ACF_SOUNDCLOUD_VALUE_DESC="Introduce el ID de la pista de SoundCloud"
|
||||
@ -0,0 +1,9 @@
|
||||
; @package Advanced Custom Fields
|
||||
; @version 2.8.8 Pro
|
||||
;
|
||||
; @author Tassos Marinos - http://www.tassos.gr/joomla-extensions
|
||||
; @copyright Copyright (c) 2019 Tassos Marinos. All rights reserved.
|
||||
; @license http://www.tassos.gr
|
||||
|
||||
ACF_SOUNDCLOUD="Campos - ACF SoundCloud"
|
||||
ACF_SOUNDCLOUD_DESC="Ingrese una ID de pista o lista de reproducción de SoundCloud en el back-end y muestre un reproductor de SoundCloud en el front-end."
|
||||
@ -0,0 +1,29 @@
|
||||
; @package Advanced Custom Fields
|
||||
; @version 2.8.8 Pro
|
||||
;
|
||||
; @author Tassos Marinos - http://www.tassos.gr/joomla-extensions
|
||||
; @copyright Copyright (c) 2016 Tassos Marinos. All rights reserved.
|
||||
; @license http://www.tassos.gr
|
||||
|
||||
PLG_FIELDS_ACFSOUNDCLOUD_LABEL="ACF - SoundCloud"
|
||||
ACF_SOUNDCLOUD="Champs - SoundCloud ACF"
|
||||
ACF_SOUNDCLOUD_DESC="Créé un champ affichant un lecteur SoundClound qui jouera la piste désirée. De plus, vous pouvez personnaliser le lecteur avec des options telles que la lecture automatique, afficher/masquer les commentaires, afficher/masquer les informations de l'uploadeur et plus encore."
|
||||
ACF_SOUNDCLOUD_WIDTH="Largeur du lecteur"
|
||||
ACF_SOUNDCLOUD_WIDTH_DESC="La largeur du lecteur en pixels. <br><br>Si vous préférez un pourcentage, ajoutez le signe % à la fin"
|
||||
ACF_SOUNDCLOUD_HEIGHT="Hauteur du lecteur"
|
||||
ACF_SOUNDCLOUD_HEIGHT_DESC="La hauteur du lecteur en pixels. <br><br>Si vous préférez un pourcentage, ajoutez le signe % à la fin"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY="Lecture automatique"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY_DESC="Si vous souhaitez que la piste commence à se jouer une fois la page chargée"
|
||||
ACF_SOUNDCLOUD_HIDERELATED="Masquer Similaires"
|
||||
ACF_SOUNDCLOUD_HIDERELATED_DESC="Si vous souhaitez masquer les pistes similaires depuis le lecteur"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS="Afficher commentaires"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS_DESC="Si vous souhaitez afficher les commentaires sur la piste"
|
||||
ACF_SOUNDCLOUD_SHOWUSER="Voir utilisateur"
|
||||
ACF_SOUNDCLOUD_SHOWUSER_DESC="Si vous souhaitez afficher le nom d'utilisateur du téléverseur"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS="Afficher les reposts"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS_DESC="Si vous souhaitez afficher les reposts de la piste dans le lecteur"
|
||||
ACF_SOUNDCLOUD_VISUAL="Utiliser l'intégration visuelle"
|
||||
ACF_SOUNDCLOUD_VISUAL_DESC="Si vous souhaitez que le lecteur visuel de SoundCloud affiche en évidence la pochette de la piste"
|
||||
ACF_SOUNDCLOUD_COLOR="Couleur de l'interface"
|
||||
ACF_SOUNDCLOUD_COLOR_DESC="Choisissez une couleur pour les contrôles du lecteur et des infos de la piste"
|
||||
ACF_SOUNDCLOUD_VALUE_DESC="Entrez l'ID de la piste SoundCloud"
|
||||
@ -0,0 +1,29 @@
|
||||
; @package Advanced Custom Fields
|
||||
; @version 2.8.8 Pro
|
||||
;
|
||||
; @author Tassos Marinos - http://www.tassos.gr/joomla-extensions
|
||||
; @copyright Copyright (c) 2016 Tassos Marinos. All rights reserved.
|
||||
; @license http://www.tassos.gr
|
||||
|
||||
PLG_FIELDS_ACFSOUNDCLOUD_LABEL="ACF - SoundCloud"
|
||||
ACF_SOUNDCLOUD="Campi - ACF SoundCloud"
|
||||
ACF_SOUNDCLOUD_DESC="Creare un campo per visualizzare facilmente il lettore SoundCloud che riproduce la traccia desiderata. Oltre a questo, è possibile personalizzare il lettore con opzioni come la riproduzione automatica, mostrare/nascondere i commenti, mostrare/nascondere le informazioni del proprietario e altro ancora."
|
||||
ACF_SOUNDCLOUD_WIDTH="Larghezza lettore"
|
||||
ACF_SOUNDCLOUD_WIDTH_DESC="Larghezza del lettore in pixel. <br><br>Se prefirisci la percentuale inserisci il simobolo % alla fine. "
|
||||
ACF_SOUNDCLOUD_HEIGHT="Altezza lettore"
|
||||
ACF_SOUNDCLOUD_HEIGHT_DESC="Altezza del lettore in pixel. <br><br>Se prefirisci la percentuale inserisci il simbolo % alla fine."
|
||||
ACF_SOUNDCLOUD_AUTOPLAY="Autoplay"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY_DESC="Se si desidera che la traccia cominci a riprodurre una volta che la pagina è stata caricata"
|
||||
ACF_SOUNDCLOUD_HIDERELATED="Nascondi Correlati"
|
||||
ACF_SOUNDCLOUD_HIDERELATED_DESC="Se desideri nascondere le tracce correlate dal lettore"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS="Mostra Commenti"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS_DESC="Se desideri mostrare i commenti sulla traccia"
|
||||
ACF_SOUNDCLOUD_SHOWUSER="Mostra Utente"
|
||||
ACF_SOUNDCLOUD_SHOWUSER_DESC="Se desideri mostrare il nome utente di chi ha caricato il file"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS="Mostra ripubblicazioni"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS_DESC="Se desideri mostrare i post della stessa traccia nel lettore"
|
||||
ACF_SOUNDCLOUD_VISUAL="Usa incorporamento visuale"
|
||||
ACF_SOUNDCLOUD_VISUAL_DESC="Se desideri utilizzare il lettore grafico di SoundCloud al posto della visualizzazione classica."
|
||||
ACF_SOUNDCLOUD_COLOR="Colore interfaccia"
|
||||
ACF_SOUNDCLOUD_COLOR_DESC="Scegliere il colore dei controlli del lettore e le informazioni della traccia."
|
||||
ACF_SOUNDCLOUD_VALUE_DESC="Inserisci l'ID della traccia di SoundCloud"
|
||||
@ -0,0 +1,29 @@
|
||||
; @package Advanced Custom Fields
|
||||
; @version 2.8.8 Pro
|
||||
;
|
||||
; @author Tassos Marinos - http://www.tassos.gr/joomla-extensions
|
||||
; @copyright Copyright (c) 2016 Tassos Marinos. All rights reserved.
|
||||
; @license http://www.tassos.gr
|
||||
|
||||
PLG_FIELDS_ACFSOUNDCLOUD_LABEL="ACF - SoundCloud"
|
||||
ACF_SOUNDCLOUD="Velden - ACF SoundCloud"
|
||||
ACF_SOUNDCLOUD_DESC="Maak een veld om eenvoudig een SoundCloud-speler weer te geven die het gewenste nummer afspeelt. Bovendien kun je de speler aanpassen met opties zoals automatisch afspelen, de opmerkingen tonen / verbergen, de informatie van de uploader tonen / verbergen en meer."
|
||||
ACF_SOUNDCLOUD_WIDTH="Speler breedte"
|
||||
ACF_SOUNDCLOUD_WIDTH_DESC="De breedte van de speler in pixels. <br><br>Als liever percentage gebruikt, voeg dan het procentteken% aan het einde toe"
|
||||
ACF_SOUNDCLOUD_HEIGHT="Speler Hoogte"
|
||||
ACF_SOUNDCLOUD_HEIGHT_DESC="De hoogte van de speler in pixels. Als liever een percentage gebruikt, voeg dan het einde het procentteken% toe"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY="Automatisch Afspelen"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY_DESC="Kies of je wilt dat de track zodra de pagina is geladen begint te spelen"
|
||||
ACF_SOUNDCLOUD_HIDERELATED="Verberg gerelateerde"
|
||||
ACF_SOUNDCLOUD_HIDERELATED_DESC="KIes of je de gerelateerde tracks in de speler wilt verbergen"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS="Toon Commentaren"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS_DESC="Kies of je reacties op de track wilt laten zien"
|
||||
ACF_SOUNDCLOUD_SHOWUSER="Toon Gebruiker"
|
||||
ACF_SOUNDCLOUD_SHOWUSER_DESC="Kies of de gebruikersnaam van de uploaders wilt tonen"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS="Toon Reposts"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS_DESC="Kies of je reposts van hetzelfde nummer in de speler wilt tonen"
|
||||
ACF_SOUNDCLOUD_VISUAL="Gebruik Visuele Embed"
|
||||
ACF_SOUNDCLOUD_VISUAL_DESC="Kies of je SoundCloud Visual Player wilt met een prominente weergave van de track's art"
|
||||
ACF_SOUNDCLOUD_COLOR="UI-kleur"
|
||||
ACF_SOUNDCLOUD_COLOR_DESC="Kies de kleur van de bedieningselementen van de speler en trackinformatie"
|
||||
ACF_SOUNDCLOUD_VALUE_DESC="Vul het SoundCloud Track-ID in "
|
||||
@ -0,0 +1,29 @@
|
||||
; @package Advanced Custom Fields
|
||||
; @version 2.8.8 Pro
|
||||
;
|
||||
; @author Tassos Marinos - http://www.tassos.gr/joomla-extensions
|
||||
; @copyright Copyright (c) 2016 Tassos Marinos. All rights reserved.
|
||||
; @license http://www.tassos.gr
|
||||
|
||||
PLG_FIELDS_ACFSOUNDCLOUD_LABEL="ACF - SoundCloud"
|
||||
ACF_SOUNDCLOUD="Поля - ACF SoundCloud"
|
||||
ACF_SOUNDCLOUD_DESC="Создайте поле для удобного отображения проигрывателя SoundCloud, воспроизводящего желаемую дорожку. Кроме того, вы можете настроить плеер с такими параметрами, как автозапуск, показать / скрыть комментарии, показать / скрыть информацию о загрузчике и многое другое."
|
||||
ACF_SOUNDCLOUD_WIDTH="Ширина игрока"
|
||||
ACF_SOUNDCLOUD_WIDTH_DESC="Ширина проигрывателя в пикселях. <br> <br> Если вы предпочитаете процент, добавьте знак процента в конце"
|
||||
ACF_SOUNDCLOUD_HEIGHT="Высота игрока"
|
||||
ACF_SOUNDCLOUD_HEIGHT_DESC="Высота игрока в пикселях. <br> <br> Если вы предпочитаете процент, добавьте знак процента в конце"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY="Автозапуск"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY_DESC="Хотите ли вы, чтобы дорожка начала воспроизводиться после загрузки страницы"
|
||||
ACF_SOUNDCLOUD_HIDERELATED="Скрыть похожие"
|
||||
ACF_SOUNDCLOUD_HIDERELATED_DESC="Хотите ли вы скрыть связанные треки от игрока"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS="Показать комментарии"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS_DESC="Хотите ли вы показать комментарии на треке"
|
||||
ACF_SOUNDCLOUD_SHOWUSER="Показать пользователя"
|
||||
ACF_SOUNDCLOUD_SHOWUSER_DESC="Хотите ли вы показать имя пользователя, добавившего видео"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS="Показать репосты"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS_DESC="Хотите ли вы показать репосты того же трека в плеере"
|
||||
ACF_SOUNDCLOUD_VISUAL="Использовать Visual Embed"
|
||||
ACF_SOUNDCLOUD_VISUAL_DESC="Хотите ли вы визуальный проигрыватель SoundCloud с ярким отображением искусства дорожки"
|
||||
ACF_SOUNDCLOUD_COLOR="Цвет интерфейса"
|
||||
ACF_SOUNDCLOUD_COLOR_DESC="Выберите цвет элементов управления игрока и информацию о треке"
|
||||
ACF_SOUNDCLOUD_VALUE_DESC="Введите идентификатор дорожки SoundCloud"
|
||||
@ -0,0 +1,29 @@
|
||||
; @package Advanced Custom Fields
|
||||
; @version 2.8.8 Pro
|
||||
;
|
||||
; @author Tassos Marinos - http://www.tassos.gr/joomla-extensions
|
||||
; @copyright Copyright (c) 2016 Tassos Marinos. All rights reserved.
|
||||
; @license http://www.tassos.gr
|
||||
|
||||
PLG_FIELDS_ACFSOUNDCLOUD_LABEL="ACF - SoundCloud"
|
||||
ACF_SOUNDCLOUD="Fält - ACF SoundCloud"
|
||||
ACF_SOUNDCLOUD_DESC="Skapa ett fält för att enkelt visa en SoundCloud Player som spelar önskat spår. Utöver det kan du anpassa spelaren med alternativ som autoplay, visa / dölja kommentarerna, visa / dölja uppladdarens information och mer."
|
||||
ACF_SOUNDCLOUD_WIDTH="Spelarens bredd"
|
||||
ACF_SOUNDCLOUD_WIDTH_DESC="Spelarens bredd i pixlar. <br><br> Om du föredrar procent lägg till procentsatsen% i slutet."
|
||||
ACF_SOUNDCLOUD_HEIGHT="Spelarens höjg"
|
||||
ACF_SOUNDCLOUD_HEIGHT_DESC="Spelarens höjd i pixlar. <br><br> Om du föredrar procent lägg till procentsatsen% i slutet."
|
||||
ACF_SOUNDCLOUD_AUTOPLAY="Autoplay"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY_DESC="Ange om du vill att spåret ska börja spelas när sidan laddas"
|
||||
ACF_SOUNDCLOUD_HIDERELATED="Dölj relaterade"
|
||||
ACF_SOUNDCLOUD_HIDERELATED_DESC="Ange om du vill dölja relaterade spår från spelaren"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS="Visa kommentarer"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS_DESC="Ange om du vill visa spårens kommentarer."
|
||||
ACF_SOUNDCLOUD_SHOWUSER="Visa användare"
|
||||
ACF_SOUNDCLOUD_SHOWUSER_DESC="Ange om du vill visa uppladdarens användarnamn."
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS="Visa Reposts"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS_DESC="Ange om du vill visa reposts av samma spår i spelaren"
|
||||
ACF_SOUNDCLOUD_VISUAL="Använd visuell inbäddning"
|
||||
ACF_SOUNDCLOUD_VISUAL_DESC="Ange om du vill ha SoundClouds Visual Player med en framträdande visning av spårets grafik"
|
||||
ACF_SOUNDCLOUD_COLOR="UI färg"
|
||||
ACF_SOUNDCLOUD_COLOR_DESC="Välj färg på spelarens kontroller och spårinformation."
|
||||
ACF_SOUNDCLOUD_VALUE_DESC="Ange the SoundCloud track ID"
|
||||
@ -0,0 +1,29 @@
|
||||
; @package Advanced Custom Fields
|
||||
; @version 2.8.8 Pro
|
||||
;
|
||||
; @author Tassos Marinos - http://www.tassos.gr/joomla-extensions
|
||||
; @copyright Copyright (c) 2016 Tassos Marinos. All rights reserved.
|
||||
; @license http://www.tassos.gr
|
||||
|
||||
PLG_FIELDS_ACFSOUNDCLOUD_LABEL="ACF - SoundCloud"
|
||||
ACF_SOUNDCLOUD="Поля - ACF SoundCloud"
|
||||
ACF_SOUNDCLOUD_DESC="Створіть поле, щоб легко відобразити програвач SoundCloud Player, який відтворює потрібний трек. Крім цього, ви можете налаштувати плеєр з такими параметрами, як автоматичне відтворення, показ / приховання коментарів, показ / приховування інформації про завантажувача тощо"_QQ_""
|
||||
ACF_SOUNDCLOUD_WIDTH="Ширина програвача"
|
||||
ACF_SOUNDCLOUD_WIDTH_DESC="Ширина програвача в пікселях. <br> <br> Якщо ви віддаєте перевагу відсотку, додайте знак відсотка% в кінці"
|
||||
ACF_SOUNDCLOUD_HEIGHT="Висота гравця"
|
||||
ACF_SOUNDCLOUD_HEIGHT_DESC="Висота гравця в пікселях. <br> <br> Якщо ви віддаєте перевагу відсотку, додайте знак відсотка% в кінці"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY="Автовідтворення"
|
||||
ACF_SOUNDCLOUD_AUTOPLAY_DESC="Ви хочете, щоб композиція починала відтворюватися після завантаження сторінки"
|
||||
ACF_SOUNDCLOUD_HIDERELATED="Сховати пов'язане"
|
||||
ACF_SOUNDCLOUD_HIDERELATED_DESC="Чи хочете ви приховати відповідні треки від програвача"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS="Показати коментарі"
|
||||
ACF_SOUNDCLOUD_SHOWCOMMENTS_DESC="Ви хочете показати коментарі до треку"
|
||||
ACF_SOUNDCLOUD_SHOWUSER="Показати користувача"
|
||||
ACF_SOUNDCLOUD_SHOWUSER_DESC="Ви хочете показати ім'я користувача завантажувача"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS="Показати записи"
|
||||
ACF_SOUNDCLOUD_SHOWREPOSTS_DESC="Чи бажаєте ви показувати репости одного і того ж треку в програвачі"
|
||||
ACF_SOUNDCLOUD_VISUAL="Використовувати візуальне вставлення"
|
||||
ACF_SOUNDCLOUD_VISUAL_DESC="Чи хочете ви, щоб визуальний плеєр SoundCloud мав видатний показ мистецтва треку"
|
||||
ACF_SOUNDCLOUD_COLOR="Колір інтерфейсу"
|
||||
ACF_SOUNDCLOUD_COLOR_DESC="Виберіть колір керування програвача та інформацію про трек"
|
||||
ACF_SOUNDCLOUD_VALUE_DESC="Введіть ідентифікатор доріжки SoundCloud"
|
||||
51
plugins/fields/acfsoundcloud/params/acfsoundcloud.xml
Normal file
51
plugins/fields/acfsoundcloud/params/acfsoundcloud.xml
Normal file
@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<form>
|
||||
<fields name="fieldparams">
|
||||
<fieldset name="fieldparams">
|
||||
<field name="width" type="text"
|
||||
label="ACF_SOUNDCLOUD_WIDTH"
|
||||
description="ACF_SOUNDCLOUD_WIDTH_DESC"
|
||||
default="100%"
|
||||
/>
|
||||
<field name="height" type="text"
|
||||
label="ACF_SOUNDCLOUD_HEIGHT"
|
||||
description="ACF_SOUNDCLOUD_HEIGHT_DESC"
|
||||
default="166"
|
||||
/>
|
||||
|
||||
<field name="autoplay" type="nrtoggle"
|
||||
label="ACF_SOUNDCLOUD_AUTOPLAY"
|
||||
description="ACF_SOUNDCLOUD_AUTOPLAY_DESC"
|
||||
/>
|
||||
<field name="hideRelated" type="nrtoggle"
|
||||
label="ACF_SOUNDCLOUD_HIDERELATED"
|
||||
description="ACF_SOUNDCLOUD_HIDERELATED_DESC"
|
||||
/>
|
||||
<field name="showComments" type="nrtoggle"
|
||||
label="ACF_SOUNDCLOUD_SHOWCOMMENTS"
|
||||
description="ACF_SOUNDCLOUD_SHOWCOMMENTS_DESC"
|
||||
checked="true"
|
||||
/>
|
||||
<field name="showUser" type="nrtoggle"
|
||||
label="ACF_SOUNDCLOUD_SHOWUSER"
|
||||
description="ACF_SOUNDCLOUD_SHOWUSER_DESC"
|
||||
checked="true"
|
||||
/>
|
||||
<field name="showReposts" type="nrtoggle"
|
||||
label="ACF_SOUNDCLOUD_SHOWREPOSTS"
|
||||
description="ACF_SOUNDCLOUD_SHOWREPOSTS_DESC"
|
||||
/>
|
||||
<field name="visual" type="nrtoggle"
|
||||
label="ACF_SOUNDCLOUD_VISUAL"
|
||||
description="ACF_SOUNDCLOUD_VISUAL_DESC"
|
||||
/>
|
||||
<field name="color" type="nrcolor"
|
||||
label="ACF_SOUNDCLOUD_COLOR"
|
||||
description="ACF_SOUNDCLOUD_COLOR_DESC"
|
||||
default="#00cc11"
|
||||
/>
|
||||
|
||||
|
||||
</fieldset>
|
||||
</fields>
|
||||
</form>
|
||||
691
plugins/fields/acfsoundcloud/script.install.helper.php
Normal file
691
plugins/fields/acfsoundcloud/script.install.helper.php
Normal file
@ -0,0 +1,691 @@
|
||||
<?php
|
||||
/**
|
||||
* Installer Script Helper
|
||||
*
|
||||
* @author Tassos Marinos <info@tassos.gr>
|
||||
* @link http://www.tassos.gr
|
||||
* @copyright Copyright © 2016 Tassos Marinos All Rights Reserved
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GNU/GPL
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Joomla\CMS\Installer\Installer;
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\Language\Text;
|
||||
use Joomla\Filesystem\File;
|
||||
use Joomla\Filesystem\Folder;
|
||||
|
||||
class PlgFieldsAcfsoundcloudInstallerScriptHelper
|
||||
{
|
||||
public $name = '';
|
||||
public $alias = '';
|
||||
public $extname = '';
|
||||
public $extension_type = '';
|
||||
public $plugin_folder = 'system';
|
||||
public $module_position = 'status';
|
||||
public $client_id = 1;
|
||||
public $install_type = 'install';
|
||||
public $show_message = true;
|
||||
public $autopublish = true;
|
||||
public $db = null;
|
||||
public $app = null;
|
||||
public $installedVersion;
|
||||
|
||||
public function __construct(&$params)
|
||||
{
|
||||
$this->extname = $this->extname ?: $this->alias;
|
||||
$this->db = Factory::getDbo();
|
||||
$this->app = Factory::getApplication();
|
||||
$this->installedVersion = $this->getVersion($this->getInstalledXMLFile());
|
||||
}
|
||||
|
||||
/**
|
||||
* Preflight event
|
||||
*
|
||||
* @param string
|
||||
* @param JAdapterInstance
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function preflight($route, $adapter)
|
||||
{
|
||||
if (!in_array($route, array('install', 'update')))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Factory::getLanguage()->load('plg_system_novaraininstaller', JPATH_PLUGINS . '/system/novaraininstaller');
|
||||
|
||||
if ($this->show_message && $this->isInstalled())
|
||||
{
|
||||
$this->install_type = 'update';
|
||||
}
|
||||
|
||||
if ($this->onBeforeInstall() === false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Preflight event
|
||||
*
|
||||
* @param string
|
||||
* @param JAdapterInstance
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function postflight($route, $adapter)
|
||||
{
|
||||
Factory::getLanguage()->load($this->getPrefix() . '_' . $this->extname, $this->getMainFolder());
|
||||
|
||||
if (!in_array($route, array('install', 'update')))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ($this->onAfterInstall() === false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($route == 'install' && $this->autopublish)
|
||||
{
|
||||
$this->publishExtension();
|
||||
}
|
||||
|
||||
if ($this->show_message)
|
||||
{
|
||||
$this->addInstalledMessage();
|
||||
}
|
||||
|
||||
Factory::getCache()->clean('com_plugins');
|
||||
Factory::getCache()->clean('_system');
|
||||
}
|
||||
|
||||
public function isInstalled()
|
||||
{
|
||||
if (!is_file($this->getInstalledXMLFile()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$query = $this->db->getQuery(true)
|
||||
->select('extension_id')
|
||||
->from('#__extensions')
|
||||
->where($this->db->quoteName('type') . ' = ' . $this->db->quote($this->extension_type))
|
||||
->where($this->db->quoteName('element') . ' = ' . $this->db->quote($this->getElementName()));
|
||||
$this->db->setQuery($query, 0, 1);
|
||||
$result = $this->db->loadResult();
|
||||
|
||||
return empty($result) ? false : true;
|
||||
}
|
||||
|
||||
public function getMainFolder()
|
||||
{
|
||||
switch ($this->extension_type)
|
||||
{
|
||||
case 'plugin' :
|
||||
return JPATH_SITE . '/plugins/' . $this->plugin_folder . '/' . $this->extname;
|
||||
|
||||
case 'component' :
|
||||
return JPATH_ADMINISTRATOR . '/components/com_' . $this->extname;
|
||||
|
||||
case 'module' :
|
||||
return JPATH_ADMINISTRATOR . '/modules/mod_' . $this->extname;
|
||||
|
||||
case 'library' :
|
||||
return JPATH_SITE . '/libraries/' . $this->extname;
|
||||
}
|
||||
}
|
||||
|
||||
public function getInstalledXMLFile()
|
||||
{
|
||||
return $this->getXMLFile($this->getMainFolder());
|
||||
}
|
||||
|
||||
public function getCurrentXMLFile()
|
||||
{
|
||||
return $this->getXMLFile(__DIR__);
|
||||
}
|
||||
|
||||
public function getXMLFile($folder)
|
||||
{
|
||||
switch ($this->extension_type)
|
||||
{
|
||||
case 'module' :
|
||||
return $folder . '/mod_' . $this->extname . '.xml';
|
||||
default :
|
||||
return $folder . '/' . $this->extname . '.xml';
|
||||
}
|
||||
}
|
||||
|
||||
public function foldersExist($folders = array())
|
||||
{
|
||||
foreach ($folders as $folder)
|
||||
{
|
||||
if (is_dir($folder))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function publishExtension()
|
||||
{
|
||||
switch ($this->extension_type)
|
||||
{
|
||||
case 'plugin' :
|
||||
$this->publishPlugin();
|
||||
|
||||
case 'module' :
|
||||
$this->publishModule();
|
||||
}
|
||||
}
|
||||
|
||||
public function publishPlugin()
|
||||
{
|
||||
$query = $this->db->getQuery(true)
|
||||
->update('#__extensions')
|
||||
->set($this->db->quoteName('enabled') . ' = 1')
|
||||
->where($this->db->quoteName('type') . ' = ' . $this->db->quote('plugin'))
|
||||
->where($this->db->quoteName('element') . ' = ' . $this->db->quote($this->extname))
|
||||
->where($this->db->quoteName('folder') . ' = ' . $this->db->quote($this->plugin_folder));
|
||||
$this->db->setQuery($query);
|
||||
$this->db->execute();
|
||||
}
|
||||
|
||||
public function publishModule()
|
||||
{
|
||||
// Get module id
|
||||
$query = $this->db->getQuery(true)
|
||||
->select('id')
|
||||
->from('#__modules')
|
||||
->where($this->db->quoteName('module') . ' = ' . $this->db->quote('mod_' . $this->extname))
|
||||
->where($this->db->quoteName('client_id') . ' = ' . (int) $this->client_id);
|
||||
$this->db->setQuery($query, 0, 1);
|
||||
$id = $this->db->loadResult();
|
||||
|
||||
if (!$id)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// check if module is already in the modules_menu table (meaning is is already saved)
|
||||
$query->clear()
|
||||
->select('moduleid')
|
||||
->from('#__modules_menu')
|
||||
->where($this->db->quoteName('moduleid') . ' = ' . (int) $id);
|
||||
$this->db->setQuery($query, 0, 1);
|
||||
$exists = $this->db->loadResult();
|
||||
|
||||
if ($exists)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Get highest ordering number in position
|
||||
$query->clear()
|
||||
->select('ordering')
|
||||
->from('#__modules')
|
||||
->where($this->db->quoteName('position') . ' = ' . $this->db->quote($this->module_position))
|
||||
->where($this->db->quoteName('client_id') . ' = ' . (int) $this->client_id)
|
||||
->order('ordering DESC');
|
||||
$this->db->setQuery($query, 0, 1);
|
||||
$ordering = $this->db->loadResult();
|
||||
$ordering++;
|
||||
|
||||
// publish module and set ordering number
|
||||
$query->clear()
|
||||
->update('#__modules')
|
||||
->set($this->db->quoteName('published') . ' = 1')
|
||||
->set($this->db->quoteName('ordering') . ' = ' . (int) $ordering)
|
||||
->set($this->db->quoteName('position') . ' = ' . $this->db->quote($this->module_position))
|
||||
->where($this->db->quoteName('id') . ' = ' . (int) $id);
|
||||
$this->db->setQuery($query);
|
||||
$this->db->execute();
|
||||
|
||||
// add module to the modules_menu table
|
||||
$query->clear()
|
||||
->insert('#__modules_menu')
|
||||
->columns(array($this->db->quoteName('moduleid'), $this->db->quoteName('menuid')))
|
||||
->values((int) $id . ', 0');
|
||||
$this->db->setQuery($query);
|
||||
$this->db->execute();
|
||||
}
|
||||
|
||||
public function addInstalledMessage()
|
||||
{
|
||||
Factory::getApplication()->enqueueMessage(
|
||||
Text::sprintf(
|
||||
Text::_($this->install_type == 'update' ? 'NRI_THE_EXTENSION_HAS_BEEN_UPDATED_SUCCESSFULLY' : 'NRI_THE_EXTENSION_HAS_BEEN_INSTALLED_SUCCESSFULLY'),
|
||||
'<strong>' . Text::_($this->name) . '</strong>',
|
||||
'<strong>' . $this->getVersion() . '</strong>',
|
||||
$this->getFullType()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
public function getPrefix()
|
||||
{
|
||||
switch ($this->extension_type)
|
||||
{
|
||||
case 'plugin';
|
||||
return Text::_('plg_' . strtolower($this->plugin_folder));
|
||||
|
||||
case 'component':
|
||||
return Text::_('com');
|
||||
|
||||
case 'module':
|
||||
return Text::_('mod');
|
||||
|
||||
case 'library':
|
||||
return Text::_('lib');
|
||||
|
||||
default:
|
||||
return $this->extension_type;
|
||||
}
|
||||
}
|
||||
|
||||
public function getElementName($type = null, $extname = null)
|
||||
{
|
||||
$type = is_null($type) ? $this->extension_type : $type;
|
||||
$extname = is_null($extname) ? $this->extname : $extname;
|
||||
|
||||
switch ($type)
|
||||
{
|
||||
case 'component' :
|
||||
return 'com_' . $extname;
|
||||
|
||||
case 'module' :
|
||||
return 'mod_' . $extname;
|
||||
|
||||
case 'plugin' :
|
||||
default:
|
||||
return $extname;
|
||||
}
|
||||
}
|
||||
|
||||
public function getFullType()
|
||||
{
|
||||
return Text::_('NRI_' . strtoupper($this->getPrefix()));
|
||||
}
|
||||
|
||||
public function isPro()
|
||||
{
|
||||
$versionFile = __DIR__ . "/version.php";
|
||||
|
||||
// If version file does not exist we assume a PRO version
|
||||
if (!is_file($versionFile))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// Load version file
|
||||
require_once $versionFile;
|
||||
return (bool) $NR_PRO;
|
||||
}
|
||||
|
||||
public function getVersion($file = '')
|
||||
{
|
||||
$file = $file ?: $this->getCurrentXMLFile();
|
||||
|
||||
if (!is_file($file))
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
$xml = Installer::parseXMLInstallFile($file);
|
||||
|
||||
if (!$xml || !isset($xml['version']))
|
||||
{
|
||||
return '';
|
||||
}
|
||||
|
||||
return $xml['version'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks wether the extension can be installed or not
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function canInstall()
|
||||
{
|
||||
// The extension is not installed yet. Accept Install.
|
||||
if (!$installed_version = $this->getVersion($this->getInstalledXMLFile()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// Path to extension's version file
|
||||
$versionFile = $this->getMainFolder() . "/version.php";
|
||||
$NR_PRO = true;
|
||||
|
||||
// If version file does not exist we assume we have a PRO version installed
|
||||
if (file_exists($versionFile))
|
||||
{
|
||||
require_once($versionFile);
|
||||
}
|
||||
|
||||
// The free version is installed. Accept install.
|
||||
if (!(bool)$NR_PRO)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// Current package is a PRO version. Accept install.
|
||||
if ($this->isPro())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// User is trying to update from PRO version to FREE. Do not accept install.
|
||||
Factory::getLanguage()->load($this->getPrefix() . '_' . $this->extname, __DIR__);
|
||||
|
||||
Factory::getApplication()->enqueueMessage(
|
||||
Text::_('NRI_ERROR_PRO_TO_FREE'), 'error'
|
||||
);
|
||||
|
||||
Factory::getApplication()->enqueueMessage(
|
||||
html_entity_decode(
|
||||
Text::sprintf(
|
||||
'NRI_ERROR_UNINSTALL_FIRST',
|
||||
'<a href="http://www.tassos.gr/joomla-extensions/' . $this->getUrlAlias() . '" target="_blank">',
|
||||
'</a>',
|
||||
Text::_($this->name)
|
||||
)
|
||||
), 'error'
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the URL alias of the extension.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function getUrlAlias()
|
||||
{
|
||||
$alias = $this->alias;
|
||||
|
||||
switch ($alias)
|
||||
{
|
||||
case 'smilepack':
|
||||
$alias = 'smile-pack';
|
||||
break;
|
||||
case 'convertforms':
|
||||
$alias = 'convert-forms';
|
||||
break;
|
||||
case 'rstbox':
|
||||
$alias = 'engagebox';
|
||||
break;
|
||||
case 'gsd':
|
||||
$alias = 'google-structured-data';
|
||||
break;
|
||||
}
|
||||
|
||||
// ACF
|
||||
if ($this->plugin_folder === 'fields' && ($alias === 'acf' || $this->startsWith($alias, 'acf')))
|
||||
{
|
||||
$alias = 'advanced-custom-fields';
|
||||
}
|
||||
|
||||
return $alias;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether string starts with substring.
|
||||
*
|
||||
* @param string $string
|
||||
* @param string $query
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function startsWith($string, $query)
|
||||
{
|
||||
return substr($string, 0, strlen($query)) === $query;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if current version is newer than the installed one
|
||||
* Used for Novarain Framework
|
||||
*
|
||||
* @return boolean [description]
|
||||
*/
|
||||
public function isNewer()
|
||||
{
|
||||
if (!$installed_version = $this->getVersion($this->getInstalledXMLFile()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
$package_version = $this->getVersion();
|
||||
|
||||
return version_compare($installed_version, $package_version, '<=');
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method triggered before installation
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function onBeforeInstall()
|
||||
{
|
||||
if (!$this->canInstall())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper method triggered after installation
|
||||
*/
|
||||
public function onAfterInstall()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete files
|
||||
*
|
||||
* @param array $folders
|
||||
*/
|
||||
public function deleteFiles($files = array())
|
||||
{
|
||||
foreach ($files as $key => $file)
|
||||
{
|
||||
if (!is_file($file))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
File::delete($file);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes folders
|
||||
*
|
||||
* @param array $folders
|
||||
*/
|
||||
public function deleteFolders($folders = array())
|
||||
{
|
||||
foreach ($folders as $folder)
|
||||
{
|
||||
if (!is_dir($folder))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
Folder::delete($folder);
|
||||
}
|
||||
}
|
||||
|
||||
public function dropIndex($table, $index)
|
||||
{
|
||||
$db = $this->db;
|
||||
|
||||
// Check if index exists first
|
||||
$query = 'SHOW INDEX FROM ' . $db->quoteName('#__' . $table) . ' WHERE KEY_NAME = ' . $db->quote($index);
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
|
||||
if (!$db->loadResult())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove index
|
||||
$query = 'ALTER TABLE ' . $db->quoteName('#__' . $table) . ' DROP INDEX ' . $db->quoteName($index);
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
}
|
||||
|
||||
public function dropUnwantedTables($tables) {
|
||||
|
||||
if (!$tables) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($tables as $table) {
|
||||
$query = "DROP TABLE IF EXISTS #__".$this->db->escape($table);
|
||||
$this->db->setQuery($query);
|
||||
$this->db->execute();
|
||||
}
|
||||
}
|
||||
|
||||
public function dropUnwantedColumns($table, $columns) {
|
||||
|
||||
if (!$columns || !$table) {
|
||||
return;
|
||||
}
|
||||
|
||||
$db = $this->db;
|
||||
|
||||
// Check if columns exists in database
|
||||
function qt($n) {
|
||||
return(Factory::getDBO()->quote($n));
|
||||
}
|
||||
|
||||
$query = 'SHOW COLUMNS FROM #__'.$table.' WHERE Field IN ('.implode(",", array_map("qt", $columns)).')';
|
||||
$db->setQuery($query);
|
||||
$rows = $db->loadColumn(0);
|
||||
|
||||
// Abort if we don't have any rows
|
||||
if (!$rows) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Let's remove the columns
|
||||
$q = "";
|
||||
foreach ($rows as $key => $column) {
|
||||
$comma = (($key+1) < count($rows)) ? "," : "";
|
||||
$q .= "drop ".$this->db->escape($column).$comma;
|
||||
}
|
||||
|
||||
$query = "alter table #__".$table." $q";
|
||||
|
||||
$db->setQuery($query);
|
||||
$db->execute();
|
||||
}
|
||||
|
||||
public function fetch($table, $columns = "*", $where = null, $singlerow = false) {
|
||||
if (!$table) {
|
||||
return;
|
||||
}
|
||||
|
||||
$db = $this->db;
|
||||
$query = $db->getQuery(true);
|
||||
|
||||
$query
|
||||
->select($columns)
|
||||
->from("#__$table");
|
||||
|
||||
if (isset($where)) {
|
||||
$query->where("$where");
|
||||
}
|
||||
|
||||
$db->setQuery($query);
|
||||
|
||||
return ($singlerow) ? $db->loadObject() : $db->loadObjectList();
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the Novarain Framework
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function loadFramework()
|
||||
{
|
||||
if (is_file(JPATH_PLUGINS . '/system/nrframework/autoload.php'))
|
||||
{
|
||||
include_once JPATH_PLUGINS . '/system/nrframework/autoload.php';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-orders plugin after passed array of plugins
|
||||
*
|
||||
* @param string $plugin Plugin element name
|
||||
* @param array $lowerPluginOrder Array of plugin element names
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function pluginOrderAfter($lowerPluginOrder)
|
||||
{
|
||||
|
||||
if (!is_array($lowerPluginOrder) || !count($lowerPluginOrder))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$db = $this->db;
|
||||
|
||||
// Get plugins max order
|
||||
$query = $db->getQuery(true);
|
||||
$query
|
||||
->select($db->quoteName('b.ordering'))
|
||||
->from($db->quoteName('#__extensions', 'b'))
|
||||
->where($db->quoteName('b.element') . ' IN ("'.implode("\",\"",$lowerPluginOrder).'")')
|
||||
->order('b.ordering desc');
|
||||
|
||||
$db->setQuery($query);
|
||||
$maxOrder = $db->loadResult();
|
||||
|
||||
if (is_null($maxOrder))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Get plugin details
|
||||
$query
|
||||
->clear()
|
||||
->select(array($db->quoteName('extension_id'), $db->quoteName('ordering')))
|
||||
->from($db->quoteName('#__extensions'))
|
||||
->where($db->quoteName('element') . ' = ' . $db->quote($this->alias));
|
||||
|
||||
$db->setQuery($query);
|
||||
$pluginInfo = $db->loadObject();
|
||||
|
||||
if (!isset($pluginInfo->ordering) || $pluginInfo->ordering > $maxOrder)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Update the new plugin order
|
||||
$object = new stdClass();
|
||||
$object->extension_id = $pluginInfo->extension_id;
|
||||
$object->ordering = ($maxOrder + 1);
|
||||
|
||||
try {
|
||||
$db->updateObject('#__extensions', $object, 'extension_id');
|
||||
} catch (Exception $e) {
|
||||
return $e->getMessage();
|
||||
}
|
||||
}
|
||||
}
|
||||
23
plugins/fields/acfsoundcloud/script.install.php
Normal file
23
plugins/fields/acfsoundcloud/script.install.php
Normal file
@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Advanced Custom Fields
|
||||
* @version 2.8.8 Pro
|
||||
*
|
||||
* @author Tassos Marinos <info@tassos.gr>
|
||||
* @link http://www.tassos.gr
|
||||
* @copyright Copyright © 2019 Tassos Marinos All Rights Reserved
|
||||
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die('Restricted access');
|
||||
|
||||
require_once __DIR__ . '/script.install.helper.php';
|
||||
|
||||
class PlgFieldsACFSoundCloudInstallerScript extends PlgFieldsACFSoundCloudInstallerScriptHelper
|
||||
{
|
||||
public $alias = 'acfsoundcloud';
|
||||
public $extension_type = 'plugin';
|
||||
public $plugin_folder = 'fields';
|
||||
public $show_message = false;
|
||||
}
|
||||
70
plugins/fields/acfsoundcloud/tmpl/acfsoundcloud.php
Normal file
70
plugins/fields/acfsoundcloud/tmpl/acfsoundcloud.php
Normal file
@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Advanced Custom Fields
|
||||
* @version 2.8.8 Pro
|
||||
*
|
||||
* @author Tassos Marinos <info@tassos.gr>
|
||||
* @link http://www.tassos.gr
|
||||
* @copyright Copyright © 2019 Tassos Marinos All Rights Reserved
|
||||
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
if (!$field->value)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Support old value
|
||||
if (is_numeric($field->value))
|
||||
{
|
||||
$value = (object) [
|
||||
'id' => $field->value,
|
||||
'playlist' => false
|
||||
];
|
||||
}
|
||||
else if (is_string($field->value))
|
||||
{
|
||||
$value = json_decode($field->value);
|
||||
}
|
||||
else
|
||||
{
|
||||
$value = (object) $field->value;
|
||||
}
|
||||
|
||||
if (empty($value->id))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Setup Variables
|
||||
$width = $fieldParams->get('width', '100%');
|
||||
$height = $fieldParams->get('height', '166');
|
||||
$mode = (bool) $value->playlist ? 'playlists' : 'tracks';
|
||||
$query = $value->id;
|
||||
|
||||
|
||||
$autoplay = ($fieldParams->get('autoplay', 0)) ? 'true' : 'false';
|
||||
$hideRelated = ($fieldParams->get('hideRelated', 0)) ? 'true' : 'false';
|
||||
$showComments = ($fieldParams->get('showComments', 1)) ? 'true' : 'false';
|
||||
$showUser = ($fieldParams->get('showUser', 1)) ? 'true' : 'false';
|
||||
$showReposts = ($fieldParams->get('showReposts', 0)) ? 'true' : 'false';
|
||||
$visual = ($fieldParams->get('visual', 0)) ? 'true' : 'false';
|
||||
$color = substr($fieldParams->get('color', '#00cc11'), 1);
|
||||
$query = $value->id . '&auto_play=' . $autoplay . '&hide_related=' . $hideRelated . '&show_comments=' . $showComments . '&show_user=' . $showUser . '&show_reposts=' . $showReposts . '&visual=' . $visual . '&color=' . $color;
|
||||
|
||||
|
||||
// Output
|
||||
$buffer = '
|
||||
<iframe
|
||||
src="https://w.soundcloud.com/player/?url=https://api.soundcloud.com/' . $mode . '/' . $query . '"
|
||||
width="' . $width . '"
|
||||
height="' . $height . '"
|
||||
scrolling="no"
|
||||
frameborder="0">
|
||||
</iframe>
|
||||
';
|
||||
|
||||
echo $buffer;
|
||||
16
plugins/fields/acfsoundcloud/version.php
Normal file
16
plugins/fields/acfsoundcloud/version.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @package Advanced Custom Fields
|
||||
* @version 2.8.8 Pro
|
||||
*
|
||||
* @author Tassos Marinos <info@tassos.gr>
|
||||
* @link http://www.tassos.gr
|
||||
* @copyright Copyright © 2019 Tassos Marinos All Rights Reserved
|
||||
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
|
||||
*/
|
||||
|
||||
defined('_JEXEC') or die('Restricted Access');
|
||||
$NR_PRO = "1";
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user