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