acf
This commit is contained in:
441
plugins/fields/acfgallery/acfgallery.php
Normal file
441
plugins/fields/acfgallery/acfgallery.php
Normal file
@ -0,0 +1,441 @@
|
||||
<?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;
|
||||
|
||||
use NRFramework\Helpers\Widgets\GalleryManager;
|
||||
use NRFramework\Functions;
|
||||
use Joomla\Registry\Registry;
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\CMS\MVC\Model\BaseDatabaseModel;
|
||||
use Joomla\CMS\HTML\HTMLHelper;
|
||||
use Joomla\CMS\Utility\Utility;
|
||||
use Joomla\CMS\Language\Text;
|
||||
|
||||
JLoader::register('ACF_Field', JPATH_PLUGINS . '/system/acf/helper/plugin.php');
|
||||
JLoader::register('ACFGalleryHelper', __DIR__ . '/fields/helper.php');
|
||||
|
||||
if (!class_exists('ACF_Field'))
|
||||
{
|
||||
Factory::getApplication()->enqueueMessage('Advanced Custom Fields System Plugin is missing', 'error');
|
||||
return;
|
||||
}
|
||||
|
||||
class PlgFieldsACFGallery extends ACF_Field
|
||||
{
|
||||
/**
|
||||
* The validation rule will be used to validate the field on saving
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $validate = 'acfrequired';
|
||||
|
||||
public function onUserAfterSave($user, $isnew, $success, $msg)
|
||||
{
|
||||
// Load Fields Component Helper class
|
||||
JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');
|
||||
|
||||
$fields = FieldsHelper::getFields('com_users.user', $user, true);
|
||||
|
||||
if (!$fields)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// Get the fields data
|
||||
$fieldsData = !empty($user['com_fields']) ? $user['com_fields'] : [];
|
||||
|
||||
$this->processFiles($fields, $fieldsData, (object) $user);
|
||||
}
|
||||
|
||||
public function onContentAfterSave($context, $item, $isNew, $data = [])
|
||||
{
|
||||
if (!is_array($data))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!isset($data['com_fields']))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// Create correct context for category
|
||||
if ($context == 'com_categories.category')
|
||||
{
|
||||
$context = $item->get('extension') . '.categories';
|
||||
}
|
||||
|
||||
// Load Fields Component Helper class
|
||||
JLoader::register('FieldsHelper', JPATH_ADMINISTRATOR . '/components/com_fields/helpers/fields.php');
|
||||
|
||||
// Check the context
|
||||
$parts = FieldsHelper::extract($context, $item);
|
||||
|
||||
if (!$parts)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// Compile the right context for the fields
|
||||
$context = $parts[0] . '.' . $parts[1];
|
||||
|
||||
// Loading the fields
|
||||
$fields = FieldsHelper::getFields($context, $item);
|
||||
|
||||
if (!$fields)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// Get the fields data
|
||||
$fieldsData = !empty($data['com_fields']) ? $data['com_fields'] : [];
|
||||
|
||||
$this->processFiles($fields, $fieldsData, $item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes the files.
|
||||
*
|
||||
* Either duplicates the files or uploads them to final directory.
|
||||
*
|
||||
* @param array $fields
|
||||
* @param array $fieldsData
|
||||
* @param object $item
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private function processFiles($fields = [], $fieldsData = [], $item = [])
|
||||
{
|
||||
if (!$fields || !$fieldsData || !$item)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Whether we should clean up the temp folder at the end of this process
|
||||
$should_clean = false;
|
||||
|
||||
// Get the Fields Model
|
||||
if (!defined('nrJ4'))
|
||||
{
|
||||
$model = JModelLegacy::getInstance('Field', 'FieldsModel', ['ignore_request' => true]);
|
||||
}
|
||||
else
|
||||
{
|
||||
$model = Factory::getApplication()->bootComponent('com_fields')->getMVCFactory()->createModel('Field', 'Administrator', ['ignore_request' => true]);
|
||||
}
|
||||
|
||||
// Cache subform fields
|
||||
$subform_fields = [];
|
||||
|
||||
// Loop over the fields
|
||||
foreach ($fields as $field)
|
||||
{
|
||||
$field_type = $field->type;
|
||||
|
||||
/**
|
||||
* Check whether a Gallery field is used within the Subform field.
|
||||
*/
|
||||
if ($field_type === 'subform')
|
||||
{
|
||||
$submitted_subform_value = array_key_exists($field->name, $fieldsData) ? $fieldsData[$field->name] : null;
|
||||
|
||||
// Ensure it has a value
|
||||
if (!$submitted_subform_value || !$subform_value = json_decode($field->rawvalue, true))
|
||||
{
|
||||
// Update subform field
|
||||
$model->setFieldValue($field->id, $item->id, json_encode([]));
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$update = false;
|
||||
$is_subform_non_repeatable = false;
|
||||
|
||||
// Make non-repeatable subform fields a multi array so we can parse them
|
||||
if (Functions::startsWith(array_key_first($subform_value), 'field') && $field->fieldparams->get('repeat', '0') === '0')
|
||||
{
|
||||
$is_subform_non_repeatable = true;
|
||||
$subform_value = [$subform_value];
|
||||
}
|
||||
|
||||
foreach ($subform_value as $key => &$value)
|
||||
{
|
||||
foreach ($value as $_key => &$_value)
|
||||
{
|
||||
// Get Field ID
|
||||
$field_id = str_replace('field', '', $_key);
|
||||
|
||||
// Get Field by ID
|
||||
$subform_field = isset($subform_fields[$field_id]) ? $subform_fields[$field_id] : $model->getItem($field_id);
|
||||
|
||||
// Only proceed for this field type
|
||||
if ($subform_field->type !== $this->_name)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Cache field
|
||||
if (!isset($subform_fields[$field_id]))
|
||||
{
|
||||
$subform_fields[$field_id] = $subform_field;
|
||||
}
|
||||
|
||||
// Check if value can be json_decoded
|
||||
if (is_string($_value))
|
||||
{
|
||||
if ($decoded = json_decode($_value, true))
|
||||
{
|
||||
$_value = $decoded;
|
||||
}
|
||||
}
|
||||
|
||||
// $_value is a string when batching an item
|
||||
if (!is_array($_value))
|
||||
{
|
||||
$_value = [];
|
||||
}
|
||||
|
||||
if (\ACF\Item::isCopying())
|
||||
{
|
||||
// Duplicate files
|
||||
ACFGalleryHelper::duplicateFiles($_value);
|
||||
}
|
||||
else
|
||||
{
|
||||
// We should run our cleanup routine at the end
|
||||
$should_clean = true;
|
||||
|
||||
// Move to final folder
|
||||
$items = GalleryManager::moveTempItemsToDestination($_value, $subform_field, $this->getDestinationFolder($subform_field, $item));
|
||||
|
||||
// Save item tags
|
||||
$_value['items'] = GalleryManager::saveItemTags($items);
|
||||
}
|
||||
|
||||
$update = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ($update)
|
||||
{
|
||||
if ($is_subform_non_repeatable)
|
||||
{
|
||||
$subform_value = reset($subform_value);
|
||||
}
|
||||
|
||||
// Update subform field
|
||||
$model->setFieldValue($field->id, $item->id, json_encode($subform_value));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Only proceed for this field type
|
||||
if ($field_type !== $this->_name)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Determine the value if it is available from the data
|
||||
$value = array_key_exists($field->name, $fieldsData) ? $fieldsData[$field->name] : null;
|
||||
|
||||
if (!$value)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Check if value can be json_decoded
|
||||
if (is_string($value))
|
||||
{
|
||||
if ($decoded = json_decode($value, true))
|
||||
{
|
||||
$value = $decoded;
|
||||
}
|
||||
}
|
||||
|
||||
// $value is a string when batching an item
|
||||
if (!is_array($value))
|
||||
{
|
||||
$value = [];
|
||||
}
|
||||
|
||||
if (\ACF\Item::isCopying())
|
||||
{
|
||||
// Duplicate files
|
||||
ACFGalleryHelper::duplicateFiles($value);
|
||||
}
|
||||
else
|
||||
{
|
||||
// We should run our cleanup routine at the end
|
||||
$should_clean = true;
|
||||
|
||||
// Move to final folder
|
||||
$items = GalleryManager::moveTempItemsToDestination($value, $field, $this->getDestinationFolder($field, $item));
|
||||
|
||||
// Save item tags
|
||||
$value['items'] = GalleryManager::saveItemTags($items);
|
||||
}
|
||||
|
||||
// Setting the value for the field and the item
|
||||
$model->setFieldValue($field->id, $item->id, json_encode($value));
|
||||
}
|
||||
}
|
||||
|
||||
if ($should_clean)
|
||||
{
|
||||
// Clean old files from temp folder
|
||||
GalleryManager::clean();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the destination folder.
|
||||
*
|
||||
* @param object $field
|
||||
* @param array $item
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function getDestinationFolder($field, $item)
|
||||
{
|
||||
$ds = DIRECTORY_SEPARATOR;
|
||||
$destination_folder = null;
|
||||
|
||||
$field_id = $field->id;
|
||||
$item_id = $item->id;
|
||||
|
||||
// Make field params use Registry
|
||||
if (!$field->fieldparams instanceof Registry)
|
||||
{
|
||||
$field->fieldparams = new Registry($field->fieldparams);
|
||||
}
|
||||
|
||||
switch ($field->fieldparams->get('upload_folder_type', 'auto'))
|
||||
{
|
||||
case 'auto':
|
||||
default:
|
||||
// Get context and remove `com_` part
|
||||
$context = preg_replace('/^com_/', '', Factory::getApplication()->input->get('option'));
|
||||
$destination_folder = ['media', 'acfgallery', $context, $item_id, $field_id];
|
||||
break;
|
||||
case 'custom':
|
||||
$upload_folder = trim(ltrim($field->fieldparams->get('upload_folder'), $ds), $ds);
|
||||
|
||||
// Smart Tags Instance
|
||||
$st = new \NRFramework\SmartTags();
|
||||
|
||||
// Add custom Smart Tags
|
||||
$catAlias = isset($item->catid) ? $this->getCategoryAlias($item->catid) : '';
|
||||
|
||||
$custom_tags = [
|
||||
'field_id' => $field_id,
|
||||
'cat_id' => isset($item->catid) ? $item->catid : '',
|
||||
'cat_alias' => $catAlias,
|
||||
'item_catid' => isset($item->catid) ? $item->catid : '',
|
||||
'item_catalias' => $catAlias,
|
||||
'item_id' => $item_id,
|
||||
'item_alias' => isset($item->alias) ? $item->alias : '',
|
||||
'item_author_id' => isset($item->created_by) ? $item->created_by : ''
|
||||
];
|
||||
$st->add($custom_tags, 'field.');
|
||||
|
||||
// Replace Smart Tags
|
||||
$upload_folder = $st->replace($upload_folder);
|
||||
|
||||
$destination_folder = [$upload_folder];
|
||||
break;
|
||||
}
|
||||
|
||||
return implode($ds, array_merge([JPATH_ROOT], $destination_folder)) . $ds;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a category alias by its ID.
|
||||
*
|
||||
* @param int $cat_id
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function getCategoryAlias($cat_id = null)
|
||||
{
|
||||
if (!$cat_id)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$db = Factory::getDbo();
|
||||
|
||||
$query = $db->getQuery(true)
|
||||
->select($db->quoteName('alias'))
|
||||
->from($db->quoteName('#__categories'))
|
||||
->where($db->quoteName('id') . ' = ' . (int) $cat_id);
|
||||
$db->setQuery($query);
|
||||
|
||||
return $db->loadResult();
|
||||
}
|
||||
|
||||
/**
|
||||
* Transforms the field into a DOM XML element and appends it as a child on the given parent.
|
||||
*
|
||||
* @param stdClass $field The field.
|
||||
* @param DOMElement $parent The field node parent.
|
||||
* @param Form $form The form.
|
||||
*
|
||||
* @return DOMElement
|
||||
*
|
||||
* @since 3.7.0
|
||||
*/
|
||||
public function onCustomFieldsPrepareDom($field, DOMElement $parent, Joomla\CMS\Form\Form $form)
|
||||
{
|
||||
if (!$fieldNode = parent::onCustomFieldsPrepareDom($field, $parent, $form))
|
||||
{
|
||||
return $fieldNode;
|
||||
}
|
||||
|
||||
$fieldNode->setAttribute('field_id', $field->id);
|
||||
|
||||
return $fieldNode;
|
||||
}
|
||||
|
||||
/**
|
||||
* The form event. Load additional parameters when available into the field form.
|
||||
* Only when the type of the form is of interest.
|
||||
*
|
||||
* @param JForm $form The form
|
||||
* @param stdClass $data The data
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function onContentPrepareForm(Joomla\CMS\Form\Form $form, $data)
|
||||
{
|
||||
// Make sure we are manipulating the right field.
|
||||
if (isset($data->type) && $data->type != $this->_name)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$result = parent::onContentPrepareForm($form, $data);
|
||||
|
||||
// Display the server's maximum upload size in the field's description
|
||||
$max_upload_size_str = HTMLHelper::_('number.bytes', Utility::getMaxUploadSize());
|
||||
$field_desc = $form->getFieldAttribute('max_file_size', 'description', null, 'fieldparams');
|
||||
$form->setFieldAttribute('max_file_size', 'description', Text::sprintf($field_desc, $max_upload_size_str), 'fieldparams');
|
||||
|
||||
// Set the Field ID in Upload Folder Type description (if field is saved), otherwise, show FIELD_ID placeholder.
|
||||
// ITEM_ID is not replaceable in the field settings.
|
||||
$field_id = isset($data->id) ? $data->id : 'FIELD_ID';
|
||||
$upload_folder_type_desc = $form->getFieldAttribute('upload_folder_type', 'description', null, 'fieldparams');
|
||||
$form->setFieldAttribute('upload_folder_type', 'description', Text::sprintf($upload_folder_type_desc, $field_id), 'fieldparams');
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
26
plugins/fields/acfgallery/acfgallery.xml
Normal file
26
plugins/fields/acfgallery/acfgallery.xml
Normal file
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<extension type="plugin" version="3.7.0" group="fields" method="upgrade">
|
||||
<name>ACF_GALLERY</name>
|
||||
<description>ACF_GALLERY_DESC</description>
|
||||
<author>Tassos Marinos</author>
|
||||
<creationDate>September 2021</creationDate>
|
||||
<copyright>Copyright (C) 2021 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="acfgallery">acfgallery.php</filename>
|
||||
<filename>script.install.helper.php</filename>
|
||||
<filename>version.php</filename>
|
||||
<folder>fields</folder>
|
||||
<folder>language</folder>
|
||||
<folder>params</folder>
|
||||
<folder>tmpl</folder>
|
||||
</files>
|
||||
<media folder="media" destination="plg_fields_acfgallery">
|
||||
<folder>img</folder>
|
||||
<folder>js</folder>
|
||||
</media>
|
||||
</extension>
|
||||
113
plugins/fields/acfgallery/fields/acfgallery.php
Normal file
113
plugins/fields/acfgallery/fields/acfgallery.php
Normal file
@ -0,0 +1,113 @@
|
||||
<?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');
|
||||
|
||||
use Joomla\CMS\Form\Field\TextField;
|
||||
use Joomla\CMS\HTML\HTMLHelper;
|
||||
use Joomla\CMS\Factory;
|
||||
use Joomla\Registry\Registry;
|
||||
use Joomla\Filesystem\Path;
|
||||
|
||||
class JFormFieldACFGallery extends TextField
|
||||
{
|
||||
/**
|
||||
* Generates the Gallery Field
|
||||
*
|
||||
* @return string The field input markup.
|
||||
*/
|
||||
protected function getInput()
|
||||
{
|
||||
require_once JPATH_SITE . '/plugins/fields/acfgallery/fields/helper.php';
|
||||
|
||||
$style = (string) $this->element['style'];
|
||||
$style = ACFGalleryHelper::getStyle($style);
|
||||
|
||||
$data = [
|
||||
'value' => $this->prepareValue(),
|
||||
'required' => (string) $this->element['required'] == 'true' ? true : false,
|
||||
'name' => (int) $this->element['limit_files'] == 1 ? $this->name . '[items][0]' : $this->name . '[items][ITEM_ID]',
|
||||
'limit_files' => (string) $this->element['limit_files'],
|
||||
'max_file_size' => (string) $this->element['max_file_size'],
|
||||
'style' => $style,
|
||||
'original_image_resize' => (string) $this->element['original_image_resize'] === '1',
|
||||
'original_image_resize_width' => (string) $this->element['original_image_resize_width'],
|
||||
'thumb_width' => (string) $this->element['thumb_width'],
|
||||
'thumb_height' => (string) $this->element['thumb_height'],
|
||||
'thumb_resize_method' => (string) $this->element['resize_method'],
|
||||
'css_class' => ' ordering-' . (string) $this->element['ordering'],
|
||||
'disabled' => $this->disabled,
|
||||
'field_id' => (int) $this->element['field_id'],
|
||||
'item_id' => $this->getItemID(),
|
||||
'id' => $this->id,
|
||||
'pro' => true
|
||||
];
|
||||
|
||||
HTMLHelper::script('plg_fields_acfgallery/acfgallery.js', ['relative' => true, 'version' => 'auto']);
|
||||
|
||||
return \NRFramework\Widgets\Helper::render('GalleryManager', $data);
|
||||
}
|
||||
|
||||
private function getItemID()
|
||||
{
|
||||
$item_id = (int) Factory::getApplication()->input->get('id');
|
||||
|
||||
switch (Factory::getApplication()->input->get('option'))
|
||||
{
|
||||
case 'com_users':
|
||||
$item_id = Factory::getUser()->id;
|
||||
break;
|
||||
}
|
||||
|
||||
return $item_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* The list of uploaded Gallery Items.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
private function prepareValue()
|
||||
{
|
||||
if (empty($this->value))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$this->value = is_string($this->value) ? json_decode($this->value, true) : (array) $this->value;
|
||||
|
||||
if (!isset($this->value['items']))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$value = [];
|
||||
|
||||
foreach ($this->value['items'] as $key => $file)
|
||||
{
|
||||
$file = new Registry($file);
|
||||
|
||||
$value[] = [
|
||||
'source' => $file->get('source'),
|
||||
'original' => $file->get('original') ? $file->get('original') : $file->get('image'),
|
||||
'exists' => is_file(Path::clean(implode(DIRECTORY_SEPARATOR, [JPATH_ROOT, $file->get('thumbnail')]))),
|
||||
'caption' => $file->get('caption', ''),
|
||||
'thumbnail' => $file->get('thumbnail', ''),
|
||||
'is_media_uploader_file' => ($file->get('media_upload_source', 'false') == 'true'),
|
||||
'alt' => $file->get('alt', ''),
|
||||
'tags' => json_encode($file->get('tags', []))
|
||||
];
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
162
plugins/fields/acfgallery/fields/helper.php
Normal file
162
plugins/fields/acfgallery/fields/helper.php
Normal file
@ -0,0 +1,162 @@
|
||||
<?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');
|
||||
|
||||
use Joomla\CMS\Helper\TagsHelper;
|
||||
use NRFramework\File;
|
||||
use Joomla\CMS\Uri\Uri;
|
||||
|
||||
class ACFGalleryHelper
|
||||
{
|
||||
/**
|
||||
* Duplicates files.
|
||||
*
|
||||
* @param array $value
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function duplicateFiles(&$value = [])
|
||||
{
|
||||
if (!is_array($value) || !count($value))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!isset($value['items']) || !is_array($value['items']) || !count($value['items']))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($value['items'] as &$item)
|
||||
{
|
||||
if ($newSourcePath = self::duplicateGalleryItemFile('source', $item))
|
||||
{
|
||||
$item['source'] = $newSourcePath;
|
||||
}
|
||||
|
||||
if ($newImagePath = self::duplicateGalleryItemFile('image', $item))
|
||||
{
|
||||
$item['image'] = $newImagePath;
|
||||
}
|
||||
|
||||
if ($newThumbnailPath = self::duplicateGalleryItemFile('thumbnail', $item))
|
||||
{
|
||||
$item['thumbnail'] = $newThumbnailPath;
|
||||
}
|
||||
|
||||
if ($newSlideshowPath = self::duplicateGalleryItemFile('slideshow', $item))
|
||||
{
|
||||
$item['slideshow'] = $newSlideshowPath;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicates files item.
|
||||
*
|
||||
* @param array $value
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
private static function duplicateGalleryItemFile($key, $item)
|
||||
{
|
||||
// Duplicate the source image
|
||||
if (isset($item[$key]) && !empty($item[$key]))
|
||||
{
|
||||
// Original file path
|
||||
$path = implode(DIRECTORY_SEPARATOR, [JPATH_SITE, $item[$key]]);
|
||||
|
||||
if (!file_exists($path))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// New file path
|
||||
$newPath = File::copy($path, $path);
|
||||
|
||||
return str_replace([JPATH_SITE, JPATH_ROOT], '', $newPath);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses and returns the style.
|
||||
*
|
||||
* @param string $style
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function getStyle($style)
|
||||
{
|
||||
// Remove 'z' character from "zjustified" style
|
||||
// This is done for previewing purposes to display it at the end.
|
||||
return ltrim($style, 'z');
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares the Gallery Manager Widget uploaded files prior to being passed
|
||||
* to the Gallery Widget to display the Gallery on the front-end.
|
||||
*
|
||||
* @param array $items
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function prepareItems($items)
|
||||
{
|
||||
$tagsHelper = new TagsHelper();
|
||||
|
||||
$parsedTagIds = [];
|
||||
|
||||
foreach ($items as $key => &$item)
|
||||
{
|
||||
// Skip items that have not saved properly(items were still uploading and we saved the item)
|
||||
if ($key === 'ITEM_ID')
|
||||
{
|
||||
unset($items[$key]);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Get tag names from stored IDs
|
||||
$itemTags = [];
|
||||
|
||||
$tags = isset($item['tags']) ? $item['tags'] : [];
|
||||
if (is_array($tags) && count($tags))
|
||||
{
|
||||
foreach ($tags as $tagId)
|
||||
{
|
||||
if (isset($parsedTagIds[$tagId]))
|
||||
{
|
||||
$itemTags[] = $parsedTagIds[$tagId];
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!$tag = $tagsHelper->getTagNames([$tagId]))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
$itemTags[] = $tag[0];
|
||||
$parsedTagIds[$tagId] = $tag[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$item = array_merge($item, [
|
||||
'url' => Uri::root() . $item['image'],
|
||||
'thumbnail_url' => Uri::root() . $item['thumbnail'],
|
||||
'tags' => $itemTags
|
||||
]);
|
||||
}
|
||||
|
||||
return $items;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,127 @@
|
||||
; @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_ACFGALLERY_LABEL="ACF - Gallery"
|
||||
ACF_GALLERY="Felter - ACF Gallery"
|
||||
ACF_GALLERY_DESC="ACF gallerifeltet giver dig mulighed for at tiløje smukke billedgallerier til dit websted."
|
||||
ACF_GALLERY_VALUE_DESC="Tilføj nyt eller vælg billeder fra Joomla medier for at oprette et galleri."
|
||||
ACF_GALLERY_UPLOAD_FOLDER="Upload mappe"
|
||||
ACF_GALLERY_UPLOAD_FOLDER_DESC="Vælg mappen hvor de uploadede billeder til dit galleri bliver placeret.<br><br><strong>Bemærk:</strong> Du kan også anvende Smart Tags."
|
||||
ACF_GALLERY_LIMIT_FILES="Filgrænse"
|
||||
ACF_GALLERY_LIMIT_FILES_DESC="Hvor mange filer kan uploades? Angiv 0 for ingen grænse."
|
||||
ACF_GALLERY_MAX_FILE_SIZE="Filtstørrelsesgrænse"
|
||||
ACF_GALLERY_MAX_FILE_SIZE_DESC="Konfigurer den maksimalt tilladte størrelse for hver uploadede fil i megabyte. Angiv 0 for ingen grænse. <br><br>Din serves maksimale upload størrelse er: <b>%s</b>."
|
||||
ACF_GALLERY_LIGHTBOX="Lightboks popup"
|
||||
ACF_GALLERY_LIGHTBOX_DESC="Tillad at der ved klik på en miniature vises en lightboks popup med det fulde billede."
|
||||
ACF_GALLERY_MODULE="Modul som billedtekst"
|
||||
; ACF_GALLERY_MODULE_DESC="Select a module to be displayed below the image's caption in the lightbox popup."
|
||||
ACF_GALLERY_STYLE="Stil"
|
||||
; ACF_GALLERY_STYLE_DESC="Select how your gallery will look like on the front-end. Available styles:<br><br><strong>Grid</strong>: All items will have the same width and the same height as well. You can define the width and height of the items as well as the number of columns for this layout.<br><br><strong>Masonry</strong>: All items have the same width, but the height of each will be different. You can define the column's width as well as the number of columns for this layout<br><br><strong>Slideshow</strong>: This layout offers a dynamic carousel display with convenient thumbnail navigation for a captivating and interactive gallery experience.<br><br><strong>Justified</strong>: This layout is the opposite of the Masonry layout. All items will have the same height but different widths. You can define the target row height. It's called a target because row height is the lever we use to fit everything nicely. The algorithm will get as close to the target row height as possible."
|
||||
ACF_GALLERY_COLUMNS="Kolonner"
|
||||
ACF_GALLERY_COLUMNS_DESC="Angiv hvor mange elementer der skal vise per række på desktop, tablet eller mobilenheder."
|
||||
; ACF_GALLERY_GAP="Item Gap"
|
||||
ACF_GALLERY_GAP_DESC="Angiv mellemrummet mellem gallerielementerne på desktop, tablet eller mobilenheder."
|
||||
ACF_GALLERY_ORIGINAL_IMAGE="Optimer originalt billedeOriginal Image"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_RESIZE="Originalt billede skaler"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_RESIZE_DESC="optimer det originale billede uploadet af brugeren for at øge indlæsningshastigheden og frigive lagerplads. Dette er fuldskærmsbilledet som dine brugere ser i lightbox popup'en."
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_WIDTH="Bredde"
|
||||
; ACF_GALLERY_ORIGINAL_IMAGE_WIDTH_DESC="Resize the image to a specified width. If the height setting is unavailable, the image will be resized by keeping the image's aspect ratio."
|
||||
; ACF_GALLERY_ORIGINAL_IMAGE_HEIGHT="Height"
|
||||
; ACF_GALLERY_ORIGINAL_IMAGE_HEIGHT_DESC="Resize the image to a specified height."
|
||||
; ACF_GALLERY_IMAGE_RESIZE="Image Resize"
|
||||
; ACF_GALLERY_IMAGE_RESIZE_DESC="Select the method that will be used to resize the thumbnails in the gallery. <br><br><b>Crop</b>: Some parts of the image might be removed in order to fit the given Width and Height. <br><br><b>Stretch</b>: The image will be stretched and squeezed as needed in order to fit the given Width and Height. <br><br><b>Fit</b>: Keep the original aspect ratio and fit the dimensions defined by the given Width and Height. This could make the thumbnails have empty space in either top and bottom or left and right parts of the image."
|
||||
ACF_GALLERY_CROP="Beskær"
|
||||
ACF_GALLERY_STRETCH="Stræk"
|
||||
ACF_GALLERY_FIT="Tilpas"
|
||||
ACF_GALLERY_THUMB_WIDTH_DESC="Angiv bredden på dine miniaturer i pixels."
|
||||
; ACF_GALLERY_THUMB_HEIGHT_DESC="Set the height for your thumbnails in pixels."
|
||||
; ACF_GALLERY_SLIDESHOW_THUMB_HEIGHT_DESC="Set the height for your thumbnails in pixels. If set to 0 (or empty), then the thumbnail will be generated by also keeping the aspect ratio."
|
||||
; ACF_GALLERY_IMAGE_QUALITY="Image Quality"
|
||||
; ACF_GALLERY_IMAGE_QUALITY_DESC="Choose the quality for the thumbnails. The quality is a value that ranges between 1 and 100. The higher the quality is, the higher the image size of the thumbnails will be."
|
||||
ACF_GALLERY_FOLDER_TYPE="Upload destination"
|
||||
; ACF_GALLERY_FOLDER_TYPE_DESC="Specify a destination folder for uploaded images.<br><br><b>Auto</b>: The images will be uploaded to the following directory: /media/acfgallery/com_COMPONENT/ITEM_ID/%s.<br><br>Note:<br><strong>COMPONENT</strong> is the component name (i.e. content, users, etc...) where this field got populated from.<br><strong>ITEM_ID</strong> is the ID of the item this field was populated from. i.e. a Joomla article ID, User ID, Contact ID, etc...<br><br>Additionally a random prefix will be added in the beginning of each file name to increase security.<br><br><b>Custom</b>: Specify a custom destination folder where the images will be stored.<br><br>Available Smart Tags:<br><strong>{field.field_id}</strong>: The custom field ID.<br><strong>{field.item_id}</strong>: the ID of the item this field was populated from. i.e. a Joomla article ID, User ID, Contact ID, etc...<br><strong>{field.item_alias}</strong>: the alias of the item this field was populated from.<br><strong>{field.item_author_id}</strong>: The alias of the associated item author.<br><strong>{field.item_catid}</strong>: The category ID of the associated item.<br><strong>{field.item_catalias}</strong>: The category alias of the associated item."
|
||||
ACF_GALLERY_ORDERING="Elementsortering"
|
||||
ACF_GALLERY_ORDERING_DESC="Vælg hvordan gallerielementerne vil blive sorteret.<br><br><strong>Standard</strong>: Viser gallerielementerne i den samme rækkefølge som defineret i Galleristyringen (Tillader omsortering af gallerielementer).<br><strong>Alfabetisk</strong>: Viser gallerielementerne i alfabetisk rækkefølge baseret på filnavnet.<br><strong>Omvendt alfabetisk</strong>: Viser gallerielementerne i omvendt alfabetisk rækkefølge baseret på filnavnet.<br><strong>Tilfældig</strong>: Viser gallerielementerne i tilfældig rækkefølge."
|
||||
ACF_GALLERY_DEFAULT="Standard"
|
||||
ACF_GALLERY_ALPHABETICAL="Alfabetisk"
|
||||
ACF_GALLERY_REVERSE_ALPHABETICAL="Omvendt alfabetisk"
|
||||
ACF_GALLERY_RANDOM="Tlifældig"
|
||||
; ACF_GALLERY_JUSTIFIED_ITEM_HEIGHT_DESC="Set the height of the thumbnail, and the approximate height of each gallery item."
|
||||
; ACF_GALLERY_ITEM_WIDTH="Item Width"
|
||||
; ACF_GALLERY_ITEM_HEIGHT="Item Height"
|
||||
; ACF_GALLERY_ROW_TARGET_HEIGHT="Row Target Height"
|
||||
; ACF_GALLERY_SLIDESHOW="Slideshow"
|
||||
; ACF_GALLERY_SLIDES_PER_VIEW="Slides Per View"
|
||||
; ACF_GALLERY_SLIDES_PER_VIEW_DESC="Set how many slides to display at the same time.<br><br>Examples:<br>To show 1 slide, enter: 1<br>To show 1 and a half slide, enter: 1.5<br>To show 2 slides, enter: 2"
|
||||
; ACF_GALLERY_SPACE_BETWEEN_SLIDES="Space Between Slides"
|
||||
; ACF_GALLERY_SPACE_BETWEEN_SLIDES_DESC="Define the distance between slides in pixels."
|
||||
; ACF_GALLERY_INFINITE_LOOP="Infinite Loop"
|
||||
; ACF_GALLERY_INFINITE_LOOP_DESC="Enabling this setting allows the last slide to seamlessly loop back to the first."
|
||||
; ACF_GALLERY_KEYBOARD_CONTROL="Keyboard Control"
|
||||
; ACF_GALLERY_KEYBOARD_CONTROL_DESC="Enabling this setting allows you to control the slides using the keyboard arrows."
|
||||
; ACF_GALLERY_AUTOPLAY="Autoplay"
|
||||
; ACF_GALLERY_AUTOPLAY_DESC="Enabling this setting will make the slideshow autoplay."
|
||||
; ACF_GALLERY_AUTOPLAY_PROGRESS="Autoplay Progress"
|
||||
; ACF_GALLERY_AUTOPLAY_PROGRESS_DESC="Enabling this setting will display a circular progress bar on the bottom-right hand side of each slider indicating how long till the next slide will appear."
|
||||
; ACF_GALLERY_SHOW_THUMBNAILS_DESC="Enabling this setting will display thumbnails below the slideshow, allowing you to view any slide you desire."
|
||||
; ACF_GALLERY_THUMBNAILS_ARROWS="Navigation Arrows"
|
||||
; ACF_GALLERY_THUMBNAILS_ARROWS_DESC="Set whether to show navigation arrows in the thumbnails slider."
|
||||
; ACF_GALLERY_NAV_CONTROLS="Navigation Controls"
|
||||
; ACF_GALLERY_NAV_CONTROLS_DESC="Select the type of navigation controls.<br><br><strong>Arrows:</strong> Displays previous and next arrows on top of the slideshow.<br><strong>Dots:</strong> Display dots below the slideshow, allowing you to choose a slide.<br><strong>Arrows + Dots:</strong> Display both arrows and dots pagination."
|
||||
; ACF_GALLERY_ARROWS="Arrows"
|
||||
; ACF_GALLERY_DOTS="Dots"
|
||||
; ACF_GALLERY_ARROWS_DOTS="Arrows + Dots"
|
||||
; ACF_GALLERY_SLIDESHOW_THEME_COLOR="Theme Color"
|
||||
; ACF_GALLERY_SLIDESHOW_THEME_COLOR_DESC="Define the theme color."
|
||||
; ACF_GALLERY_AUTOPLAY_DELAY="Autoplay Delay"
|
||||
; ACF_GALLERY_AUTOPLAY_DELAY_DESC="Set the autoplay delay until the next slide appears, in milliseconds."
|
||||
; ACF_GALLERY_TRANSITION_EFFECT="Transition Effect"
|
||||
; ACF_GALLERY_TRANSITION_EFFECT_DESC="Select the transition effect between slides.<br><br>Note: If Slides Per View is >= 2, then the Slide effect will be always used automatically."
|
||||
; ACF_GALLERY_SLIDE="Slide"
|
||||
; ACF_GALLERY_FADE="Fade"
|
||||
; ACF_GALLERY_CUBE="Cube"
|
||||
; ACF_GALLERY_COVERFLOW="Coverflow"
|
||||
; ACF_GALLERY_FLIP="Flip"
|
||||
ACF_GALLERY_THUMBNAILS="Miniaturer"
|
||||
; ACF_GALLERY_WATERMARK_IMAGES="Watermark Images"
|
||||
; ACF_GALLERY_WATERMARK_TEXT_PRESET="Preset"
|
||||
; ACF_GALLERY_WATERMARK_TEXT_PRESET_DESC="Select a preset for the watermark text."
|
||||
; ACF_GALLERY_SITE_NAME="Site Name"
|
||||
; ACF_GALLERY_SITE_URL="Site URL"
|
||||
; ACF_GALLERY_WATERMARK_TYPE="Type"
|
||||
; ACF_GALLERY_WATERMARK_TYPE_DESC="Select whether to use a text, an image as a watermark or disable the watermark.<br>The watermark will be applied on the image uploaded.<br><br>To enable the watermark on the thumbnails, enable \\\"Apply on Thumbnails\\\" setting below."
|
||||
; ACF_GALLERY_WATERMARK_TEXT_DESC="Enter the text to be used as a watermark. You can also use Smart Tags.<br><br>File Smart Tags:<br>{file.filename}: myfile<br>{file.basename}: myfile.png"
|
||||
; ACF_WATERMARK_TEXT_COLOR_DESC="Select the color of the watermark text."
|
||||
; ACF_WATERMARK_FONT_SIZE_DESC="Set the font size of the watermark text in pixels. The font size will be adjusted based on the image's width."
|
||||
; ACF_WATERMARK_IMAGE_DESC="Select the image to be used as a watermark. The image dimensions will be adjusted based on the image's width."
|
||||
; ACF_GALLERY_WATERMARK_POSITION="Position"
|
||||
; ACF_GALLERY_WATERMARK_POSITION_DESC="Select the position of the watermark."
|
||||
; ACF_WATERMARK_OPACITY="Opacity"
|
||||
; ACF_WATERMARK_OPACITY_DESC="Set the opacity of the watermark image."
|
||||
; ACF_WATERMARK_ROTATION="Rotation"
|
||||
; ACF_WATERMARK_ROTATION_DESC="Rotate the watermark image by entering the desired angle in degrees. Remember, the rotation will occur clockwise."
|
||||
; ACF_GALLERY_WATERMARK_APPLY_ON_THUMBNAILS="Apply on Thumbnails"
|
||||
; ACF_GALLERY_WATERMARK_APPLY_ON_THUMBNAILS_DESC="Select whether to apply the watermark on the thumbnails or not. When this is disabled, the watermark will be applied only on the original image."
|
||||
; ACF_GALLERY_FILTERING_TAGS="Filtering Tags"
|
||||
; ACF_GALLERY_TAGS_POSITION="Tags Position"
|
||||
; ACF_GALLERY_TAGS_POSITION_DESC="Select whether to disable the filtering tags, or show a list of tags above or below the gallery items. This will allow your users to filter the gallery items by tag."
|
||||
; ACF_GALLERY_ABOVE_GALLERY_ITEMS="Above Gallery Items"
|
||||
; ACF_GALLERY_BELOW_GALLERY_ITEMS="Below Gallery Items"
|
||||
; ACF_GALLERY_TAGS_SORT="Sort Tags"
|
||||
; ACF_GALLERY_TAGS_SORT_DESC="Select how the tags will be sorted."
|
||||
; ACF_GALLERY_ALL_TAGS_ITEM_LABEL="All Tags Label"
|
||||
; ACF_GALLERY_ALL_TAGS_ITEM_LABEL_DESC="Enter a label to add an \\\"All\\\" item at the start of the tags filter list, allowing you to view all gallery items. Leave this empty if you don't want to display an \\\"All\\\" item.<br><br>You can make this multilingual by setting it to a translation string."
|
||||
; ACF_GALLERY_TAGS_MOBILE="Tags on Mobile"
|
||||
; ACF_GALLERY_TAGS_MOBILE_DESC="Set whether to display the tags on mobile devices, make them appear as a dropdown or disable them."
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR="Text Color"
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR_DESC="Set the tags text color."
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR_HOVER="Text Color - Hover"
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR_HOVER_DESC="Set the text color when hovering over a tag item."
|
||||
; ACF_GALLERY_TAGS_BG_COLOR_HOVER="Background Color - Hover"
|
||||
; ACF_GALLERY_TAGS_BG_COLOR_HOVER_DESC="Set the background color when hovering over a tag item."
|
||||
; ACF_GALLERY_SHOW="Show"
|
||||
; ACF_GALLERY_SHOW_AS_DROPDOWN="Show as dropdown"
|
||||
@ -0,0 +1,127 @@
|
||||
; @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_ACFGALLERY_LABEL="ACF - Galerie"
|
||||
ACF_GALLERY="Felder - ACF Galerie"
|
||||
ACF_GALLERY_DESC="Das ACF Galerie-Feld erlaubt es Ihnen, schicke Bildergalerie in Deine Seite einzubauen"
|
||||
ACF_GALLERY_VALUE_DESC="Fügen Sie neue Bilder hinzu oder wählen Sie Bilder aus dem Joomla Media Manager aus, um eine Galerie zu erstellen."
|
||||
ACF_GALLERY_UPLOAD_FOLDER="Upload-Ordner"
|
||||
ACF_GALLERY_UPLOAD_FOLDER_DESC="Ein Verzeichnis wählen, in dem die hochgeladenen Bilder gespeichert werden.<br><br><strong>Hinweis:</strong> Sie können hier auch Smart-Tags verwenden"
|
||||
ACF_GALLERY_LIMIT_FILES="Dateilimit"
|
||||
ACF_GALLERY_LIMIT_FILES_DESC="Wie viele Dateien können hochgeladen werden? Geben Sie 0 für unbegrenzt ein."
|
||||
ACF_GALLERY_MAX_FILE_SIZE="Dateigrößenbeschränkung"
|
||||
ACF_GALLERY_MAX_FILE_SIZE_DESC="Konfigurieren Sie die maximal zulässige Größe für jede hochgeladene Datei in Megabyte. Geben Sie unbegrenzt 0 ein. <br> <br> Die maximale Upload-Größe Ihres Servers beträgt: <b>% s </b>."
|
||||
ACF_GALLERY_LIGHTBOX="Lightbox Popup"
|
||||
ACF_GALLERY_LIGHTBOX_DESC="Thumbnails anklickbar machen, um das ganze Bild im Lightbox PopUp anzuzeigen."
|
||||
ACF_GALLERY_MODULE="Modul als Bildunterschrift"
|
||||
ACF_GALLERY_MODULE_DESC="Wählen Sie ein Modul aus, das unterhalb der Bildunterschrift im Lighbox PopUp angezeigt werden soll."
|
||||
ACF_GALLERY_STYLE="Stil"
|
||||
ACF_GALLERY_STYLE_DESC="Wählen Sie aus, wie Ihre Galerie auf dem Frontend aussehen soll. Verfügbare Stile:<br><br><strong>Raster</strong>: Alle Elemente haben die gleiche Breite und die gleiche Höhe. Sie können die Breite und Höhe der Elemente sowie die Anzahl der Spalten für dieses Layout festlegen.<br><br><strong>Masonry</strong>: Alle Elemente haben die gleiche Breite, aber die Höhe der einzelnen Elemente ist unterschiedlich. Sie können die Spaltenbreite sowie die Anzahl der Spalten für dieses Layout festlegen<br><br><strong>Slideshow</strong>: Dieses Layout bietet eine dynamische Bildwechsel-Anzeige mit praktischer Miniaturbild-Navigation für ein interaktives Galerie-Erlebnis..<br><br><strong>Justified</strong>: Dieses Layout ist das Gegenteil des Masonry-Layouts. Alle Elemente haben die gleiche Höhe, aber unterschiedliche Breiten. Sie können die Zielzeilenhöhe festlegen. Sie wird Zielhöhe genannt, weil die Zeilenhöhe der Hebel ist, mit dem wir alles gut einpassen können. Der Algorithmus nähert sich der Zielzeilenhöhe so weit wie möglich an."
|
||||
ACF_GALLERY_COLUMNS="Spalten"
|
||||
ACF_GALLERY_COLUMNS_DESC="Anzahl der Bilder pro Zeile für Desktop, Tablet oder mobile Geräte."
|
||||
ACF_GALLERY_GAP="Abstand zum nächsten Element"
|
||||
ACF_GALLERY_GAP_DESC="Den Abstand zwischen den Bildern in der Galerie einstellen für Desktop, Tablet und mobile Geräte einstellen. "
|
||||
ACF_GALLERY_ORIGINAL_IMAGE="Original-Bilder optimieren"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_RESIZE="Größenänderung der Original-Bilder "
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_RESIZE_DESC="Optimieren Sie das hochgeladene Originalbild, um die Ladegeschwindigkeit zu verbessern und Speicherplatz freizugeben. Dies ist das Vollbild, das Ihre Besucher im Lightbox-PopUp sehen."
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_WIDTH="Breite"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_WIDTH_DESC="Ändert die Größe des Bildes auf eine bestimmte Breite. Wenn die Einstellung für die Höhe nicht verfügbar ist, wird die Größe des Bildes unter Beibehaltung des Seitenverhältnisses des Bildes geändert."
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_HEIGHT="Höhe"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_HEIGHT_DESC="Ändert die Größe des Bildes auf eine bestimmte Höhe."
|
||||
ACF_GALLERY_IMAGE_RESIZE="Bildgrößenänderung"
|
||||
ACF_GALLERY_IMAGE_RESIZE_DESC="Wählen Sie die Methode, mit der die Größe der Miniaturbilder in der Galerie geändert werden soll. <br><br><b>Beschnitt </b>: Einige Teile des Bildes können entfernt werden, um in die angegebene Breite und Höhe zu passen.. <br><br><b>Stecken</b>: Das Bild wird nach Bedarf gestreckt und gestaucht, damit es in die angegebene Breite und Höhe passt.. <br><br><b>Passend</b>: Behalten Sie das ursprüngliche Seitenverhältnis bei und passen Sie die durch die angegebene Breite und Höhe definierten Abmessungen an. Dies kann dazu führen, dass die Miniaturansichten entweder oben und unten oder links und rechts im Bild leeren Platz haben."
|
||||
ACF_GALLERY_CROP="Beschnitt"
|
||||
ACF_GALLERY_STRETCH="Dehnen"
|
||||
ACF_GALLERY_FIT="Einpassen"
|
||||
ACF_GALLERY_THUMB_WIDTH_DESC="Legen Sie die Breite für Ihre Thumnbnails in Pixeln fest."
|
||||
ACF_GALLERY_THUMB_HEIGHT_DESC="Legen Sie die Höhe für die Miniaturansichten in Pixeln fest."
|
||||
ACF_GALLERY_SLIDESHOW_THUMB_HEIGHT_DESC="Legen Sie die Höhe für die Miniaturansichten in Pixeln fest. Wenn der Wert 0 (oder leer) ist, wird die Miniaturansicht unter Beibehaltung des Seitenverhältnisses erstellt."
|
||||
ACF_GALLERY_IMAGE_QUALITY="Bildqualität"
|
||||
ACF_GALLERY_IMAGE_QUALITY_DESC="Wählen Sie die Qualität für die Miniaturbilder. Die Qualität ist ein Wert, der zwischen 1 und 100 liegt. Je höher die Qualität ist, desto größer ist die Bildgröße der Miniaturansichten."
|
||||
ACF_GALLERY_FOLDER_TYPE="Upload-Ziel"
|
||||
; ACF_GALLERY_FOLDER_TYPE_DESC="Specify a destination folder for uploaded images.<br><br><b>Auto</b>: The images will be uploaded to the following directory: /media/acfgallery/com_COMPONENT/ITEM_ID/%s.<br><br>Note:<br><strong>COMPONENT</strong> is the component name (i.e. content, users, etc...) where this field got populated from.<br><strong>ITEM_ID</strong> is the ID of the item this field was populated from. i.e. a Joomla article ID, User ID, Contact ID, etc...<br><br>Additionally a random prefix will be added in the beginning of each file name to increase security.<br><br><b>Custom</b>: Specify a custom destination folder where the images will be stored.<br><br>Available Smart Tags:<br><strong>{field.field_id}</strong>: The custom field ID.<br><strong>{field.item_id}</strong>: the ID of the item this field was populated from. i.e. a Joomla article ID, User ID, Contact ID, etc...<br><strong>{field.item_alias}</strong>: the alias of the item this field was populated from.<br><strong>{field.item_author_id}</strong>: The alias of the associated item author.<br><strong>{field.item_catid}</strong>: The category ID of the associated item.<br><strong>{field.item_catalias}</strong>: The category alias of the associated item."
|
||||
ACF_GALLERY_ORDERING="Sortierung der Bilder"
|
||||
ACF_GALLERY_ORDERING_DESC="Wählen Sie aus, wie aus, wie die Elemente in der Galerie sortiert werden sollen.<br><br><strong>Standard </strong>: Zeigt die Bilder in der gleichen Reihenfolge an, wie sie im Galerie-Manager definiert sind (ermöglicht die Neuanordnung der Bilder).<br><strong>Alphabetisch</strong>: Ordnet die Bilder in alphabetischer Reihenfolge nach Dateinamen.<br><strong>Umgekehrt Alphabetisch</strong>: Zeigt die Bilder der Galerie in umgekehrter alphabetischer Reihenfolge nach dem Dateinamen an.<br><strong>Zufällig </strong>: Zeigt die Bilder in zufälliger Reihenfolge."
|
||||
ACF_GALLERY_DEFAULT="Standard"
|
||||
ACF_GALLERY_ALPHABETICAL="Alphabetisch"
|
||||
ACF_GALLERY_REVERSE_ALPHABETICAL="Umgekehrt Alphabetisch"
|
||||
ACF_GALLERY_RANDOM="Zufällig"
|
||||
ACF_GALLERY_JUSTIFIED_ITEM_HEIGHT_DESC="Legen Sie die Höhe der Miniaturansicht und die ungefähre Höhe der einzelnen Galerieelemente fest."
|
||||
ACF_GALLERY_ITEM_WIDTH="Element-Breite"
|
||||
ACF_GALLERY_ITEM_HEIGHT="Element-Höhe"
|
||||
ACF_GALLERY_ROW_TARGET_HEIGHT="Zeile Zielhöhe"
|
||||
ACF_GALLERY_SLIDESHOW="Diaschau"
|
||||
ACF_GALLERY_SLIDES_PER_VIEW="Folien pro Ansicht"
|
||||
ACF_GALLERY_SLIDES_PER_VIEW_DESC="Festlegen, wie viele Slides gleichzeitig angezeigt werden sollen.<br><br>Beispiel:<br>Um 1 Slide anzuzeigen, Tragen Sie eine 1 ein<br> Um 1 1/2 Slides gleichzeitig anzuzeigen, tragen Sie eine 1.5 ein<br>Für 2 Slides tragen Sie eine 2 ein"
|
||||
ACF_GALLERY_SPACE_BETWEEN_SLIDES="Abstand zwischen den Slides"
|
||||
ACF_GALLERY_SPACE_BETWEEN_SLIDES_DESC="Definiert den Abstand zwischen den Slides in Pixeln"
|
||||
ACF_GALLERY_INFINITE_LOOP="Endlosschleife"
|
||||
ACF_GALLERY_INFINITE_LOOP_DESC="Wenn Sie diese Einstellung aktivieren, wird der letzte Slide nahtlos zum ersten zurückgeführt."
|
||||
ACF_GALLERY_KEYBOARD_CONTROL="Tastatursteuerung"
|
||||
ACF_GALLERY_KEYBOARD_CONTROL_DESC="Wenn Sie diese Einstellung aktivieren, können Sie die Slides mit den Pfeiltasten der Tastatur steuern."
|
||||
ACF_GALLERY_AUTOPLAY="Autoplay"
|
||||
ACF_GALLERY_AUTOPLAY_DESC="Wenn Sie diese Einstellung aktivieren, wird die Slideshow automatisch abgespielt."
|
||||
ACF_GALLERY_AUTOPLAY_PROGRESS="Autoplay Fortschritt"
|
||||
ACF_GALLERY_AUTOPLAY_PROGRESS_DESC="Wenn Sie diese Einstellung aktivieren, wird unten rechts an jedem Slide ein animierter Fortschrittskreis angezeigt, der angibt, wie lange es dauert, bis der nächste Slide erscheint."
|
||||
ACF_GALLERY_SHOW_THUMBNAILS_DESC="Wenn Sie diese Einstellung aktivieren, werden unter der Slideshow Miniaturbilder angezeigt, so dass Sie jedes gewünschte Dia ansehen können."
|
||||
ACF_GALLERY_THUMBNAILS_ARROWS="Navigationspfeile"
|
||||
ACF_GALLERY_THUMBNAILS_ARROWS_DESC="Legen Sie fest, ob Navigationspfeile im Slide für Miniaturansichten angezeigt werden sollen."
|
||||
ACF_GALLERY_NAV_CONTROLS="Steuerelemente"
|
||||
ACF_GALLERY_NAV_CONTROLS_DESC="Wählen Sie die Art der Navigationssteuerung.<br><br><strong>Pfeile:</strong> Zeigt Vor- und Zurückpfeile für die Slideshow an.<br><strong>Dots:</strong> Zeigt eine Dot-Navigation unter der Slideshow, mit der Sie zu anderen Slides springen können.<br><strong>Pfeile und Dots:</strong> Zeigt sowohl die Pfeil- als auch die Dot-Navigation."
|
||||
ACF_GALLERY_ARROWS="Pfeile"
|
||||
ACF_GALLERY_DOTS="Punkte"
|
||||
ACF_GALLERY_ARROWS_DOTS="Pfeile + Punkte"
|
||||
ACF_GALLERY_SLIDESHOW_THEME_COLOR="Theme Farbe"
|
||||
ACF_GALLERY_SLIDESHOW_THEME_COLOR_DESC="Definiert die Theme-Farbe"
|
||||
ACF_GALLERY_AUTOPLAY_DELAY="Autoplay-Verzögerung"
|
||||
ACF_GALLERY_AUTOPLAY_DELAY_DESC="Legt die Verzögerung für die automatische Wiedergabe bis zum Erscheinen des nächsten Slides in Millisekunden fest."
|
||||
ACF_GALLERY_TRANSITION_EFFECT="Übergangs-Effekt"
|
||||
; ACF_GALLERY_TRANSITION_EFFECT_DESC="Select the transition effect between slides.<br><br>Note: If Slides Per View is >= 2, then the Slide effect will be always used automatically."
|
||||
ACF_GALLERY_SLIDE="Diaschau (slide)"
|
||||
ACF_GALLERY_FADE="Blenden (fade)"
|
||||
ACF_GALLERY_CUBE="Würfel"
|
||||
ACF_GALLERY_COVERFLOW="Coverflow"
|
||||
ACF_GALLERY_FLIP="Drehen (flip)"
|
||||
ACF_GALLERY_THUMBNAILS="Vorschaubilder"
|
||||
ACF_GALLERY_WATERMARK_IMAGES="Wasserzeichen Bilder"
|
||||
ACF_GALLERY_WATERMARK_TEXT_PRESET="Vorlage"
|
||||
ACF_GALLERY_WATERMARK_TEXT_PRESET_DESC="Wählen Sie eine Vorlage für den Wasserzeichen-Text."
|
||||
ACF_GALLERY_SITE_NAME="Seiten-Name"
|
||||
ACF_GALLERY_SITE_URL="Seiten-URL"
|
||||
ACF_GALLERY_WATERMARK_TYPE="Typ"
|
||||
ACF_GALLERY_WATERMARK_TYPE_DESC="Wählen Sie, ob Sie einen Text oder ein Bild als Wasserzeichen verwenden oder das Wasserzeichen deaktivieren möchten..<br>Das Wasserzeichen wird auf das hochgeladene Bild angewendet.<br><br>Um das Wasserzeichen auf den Vorschaubildern zu aktivieren, aktivieren Sie \\\"Auf Vorschaubilder anwenden\\\" in der Einstellung darunter."
|
||||
ACF_GALLERY_WATERMARK_TEXT_DESC="Geben Sie den Text ein, der als Wasserzeichen verwendet werden soll. Sie können auch Smart Tags verwenden.<br><br>Datei Smart Tag:<br>{file.filename}: myfile<br>{file.basename}: myfile.png"
|
||||
ACF_WATERMARK_TEXT_COLOR_DESC="Wählen Sie die Textfarbe des Wasserzeichens"
|
||||
ACF_WATERMARK_FONT_SIZE_DESC="Legen Sie die Schriftgröße des Wasserzeichentextes in Pixeln fest. Die Schriftgröße wird an die Breite des Bildes angepasst."
|
||||
; ACF_WATERMARK_IMAGE_DESC="Select the image to be used as a watermark. The image dimensions will be adjusted based on the image's width."
|
||||
; ACF_GALLERY_WATERMARK_POSITION="Position"
|
||||
; ACF_GALLERY_WATERMARK_POSITION_DESC="Select the position of the watermark."
|
||||
; ACF_WATERMARK_OPACITY="Opacity"
|
||||
; ACF_WATERMARK_OPACITY_DESC="Set the opacity of the watermark image."
|
||||
; ACF_WATERMARK_ROTATION="Rotation"
|
||||
; ACF_WATERMARK_ROTATION_DESC="Rotate the watermark image by entering the desired angle in degrees. Remember, the rotation will occur clockwise."
|
||||
; ACF_GALLERY_WATERMARK_APPLY_ON_THUMBNAILS="Apply on Thumbnails"
|
||||
; ACF_GALLERY_WATERMARK_APPLY_ON_THUMBNAILS_DESC="Select whether to apply the watermark on the thumbnails or not. When this is disabled, the watermark will be applied only on the original image."
|
||||
; ACF_GALLERY_FILTERING_TAGS="Filtering Tags"
|
||||
; ACF_GALLERY_TAGS_POSITION="Tags Position"
|
||||
; ACF_GALLERY_TAGS_POSITION_DESC="Select whether to disable the filtering tags, or show a list of tags above or below the gallery items. This will allow your users to filter the gallery items by tag."
|
||||
; ACF_GALLERY_ABOVE_GALLERY_ITEMS="Above Gallery Items"
|
||||
; ACF_GALLERY_BELOW_GALLERY_ITEMS="Below Gallery Items"
|
||||
; ACF_GALLERY_TAGS_SORT="Sort Tags"
|
||||
; ACF_GALLERY_TAGS_SORT_DESC="Select how the tags will be sorted."
|
||||
; ACF_GALLERY_ALL_TAGS_ITEM_LABEL="All Tags Label"
|
||||
; ACF_GALLERY_ALL_TAGS_ITEM_LABEL_DESC="Enter a label to add an \\\"All\\\" item at the start of the tags filter list, allowing you to view all gallery items. Leave this empty if you don't want to display an \\\"All\\\" item.<br><br>You can make this multilingual by setting it to a translation string."
|
||||
; ACF_GALLERY_TAGS_MOBILE="Tags on Mobile"
|
||||
; ACF_GALLERY_TAGS_MOBILE_DESC="Set whether to display the tags on mobile devices, make them appear as a dropdown or disable them."
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR="Text Color"
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR_DESC="Set the tags text color."
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR_HOVER="Text Color - Hover"
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR_HOVER_DESC="Set the text color when hovering over a tag item."
|
||||
; ACF_GALLERY_TAGS_BG_COLOR_HOVER="Background Color - Hover"
|
||||
; ACF_GALLERY_TAGS_BG_COLOR_HOVER_DESC="Set the background color when hovering over a tag item."
|
||||
; ACF_GALLERY_SHOW="Show"
|
||||
; ACF_GALLERY_SHOW_AS_DROPDOWN="Show as dropdown"
|
||||
@ -0,0 +1,127 @@
|
||||
; @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_ACFGALLERY_LABEL="ACF - Gallery"
|
||||
ACF_GALLERY="Fields - ACF Gallery"
|
||||
ACF_GALLERY_DESC="The ACF Gallery Field allows you to add beautiful image galleries to your site."
|
||||
ACF_GALLERY_VALUE_DESC="Add new or select images from the Joomla Media Manager to create a gallery."
|
||||
ACF_GALLERY_UPLOAD_FOLDER="Upload Folder"
|
||||
ACF_GALLERY_UPLOAD_FOLDER_DESC="Select the folder where the uploaded images for your gallery will be stored.<br><br><strong>Note:</strong> You can also use Smart Tags."
|
||||
ACF_GALLERY_LIMIT_FILES="Files Limit"
|
||||
ACF_GALLERY_LIMIT_FILES_DESC="How many files can be uploaded? Enter 0 for no limit."
|
||||
ACF_GALLERY_MAX_FILE_SIZE="File Size Limit"
|
||||
ACF_GALLERY_MAX_FILE_SIZE_DESC="Configure the maximum allowable size for each uploaded file in megabytes. Enter 0 for no limit. <br><br>Your server's maximum upload size is: <b>%s</b>."
|
||||
ACF_GALLERY_LIGHTBOX="Lightbox Popup"
|
||||
ACF_GALLERY_LIGHTBOX_DESC="Allow to click on a thumbnail and display the full image in a lightbox popup."
|
||||
ACF_GALLERY_MODULE="Module as Caption"
|
||||
ACF_GALLERY_MODULE_DESC="Select a module to be displayed below the image's caption in the lightbox popup."
|
||||
ACF_GALLERY_STYLE="Style"
|
||||
ACF_GALLERY_STYLE_DESC="Select how your gallery will look like on the front-end. Available styles:<br><br><strong>Grid</strong>: All items will have the same width and the same height as well. You can define the width and height of the items as well as the number of columns for this layout.<br><br><strong>Masonry</strong>: All items have the same width, but the height of each will be different. You can define the column's width as well as the number of columns for this layout<br><br><strong>Slideshow</strong>: This layout offers a dynamic carousel display with convenient thumbnail navigation for a captivating and interactive gallery experience.<br><br><strong>Justified</strong>: This layout is the opposite of the Masonry layout. All items will have the same height but different widths. You can define the target row height. It's called a target because row height is the lever we use to fit everything nicely. The algorithm will get as close to the target row height as possible."
|
||||
ACF_GALLERY_COLUMNS="Columns"
|
||||
ACF_GALLERY_COLUMNS_DESC="Set how many items to show per row in desktop, tablet or mobile devices."
|
||||
ACF_GALLERY_GAP="Item Gap"
|
||||
ACF_GALLERY_GAP_DESC="Set the space between the gallery items in desktop, tablet or mobile devices."
|
||||
ACF_GALLERY_ORIGINAL_IMAGE="Optimize Original Image"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_RESIZE="Original Image Resize"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_RESIZE_DESC="Optimize the original image uploaded by the user to increase loading speed and free up storage space. This is the fullscreen image your users see in the lightbox popup."
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_WIDTH="Width"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_WIDTH_DESC="Resize the image to a specified width. If the height setting is unavailable, the image will be resized by keeping the image's aspect ratio."
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_HEIGHT="Height"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_HEIGHT_DESC="Resize the image to a specified height."
|
||||
ACF_GALLERY_IMAGE_RESIZE="Image Resize"
|
||||
ACF_GALLERY_IMAGE_RESIZE_DESC="Select the method that will be used to resize the thumbnails in the gallery. <br><br><b>Crop</b>: Some parts of the image might be removed in order to fit the given Width and Height. <br><br><b>Stretch</b>: The image will be stretched and squeezed as needed in order to fit the given Width and Height. <br><br><b>Fit</b>: Keep the original aspect ratio and fit the dimensions defined by the given Width and Height. This could make the thumbnails have empty space in either top and bottom or left and right parts of the image."
|
||||
ACF_GALLERY_CROP="Crop"
|
||||
ACF_GALLERY_STRETCH="Stretch"
|
||||
ACF_GALLERY_FIT="Fit"
|
||||
ACF_GALLERY_THUMB_WIDTH_DESC="Set the width for your thumbnails in pixels."
|
||||
ACF_GALLERY_THUMB_HEIGHT_DESC="Set the height for your thumbnails in pixels."
|
||||
ACF_GALLERY_SLIDESHOW_THUMB_HEIGHT_DESC="Set the height for your thumbnails in pixels. If set to 0 (or empty), then the thumbnail will be generated by also keeping the aspect ratio."
|
||||
ACF_GALLERY_IMAGE_QUALITY="Image Quality"
|
||||
ACF_GALLERY_IMAGE_QUALITY_DESC="Choose the quality for the thumbnails. The quality is a value that ranges between 1 and 100. The higher the quality is, the higher the image size of the thumbnails will be."
|
||||
ACF_GALLERY_FOLDER_TYPE="Upload Destination"
|
||||
ACF_GALLERY_FOLDER_TYPE_DESC="Specify a destination folder for uploaded images.<br><br><b>Auto</b>: The images will be uploaded to the following directory: /media/acfgallery/com_COMPONENT/ITEM_ID/%s.<br><br>Note:<br><strong>COMPONENT</strong> is the component name (i.e. content, users, etc...) where this field got populated from.<br><strong>ITEM_ID</strong> is the ID of the item this field was populated from. i.e. a Joomla article ID, User ID, Contact ID, etc...<br><br>Additionally a random prefix will be added in the beginning of each file name to increase security.<br><br><b>Custom</b>: Specify a custom destination folder where the images will be stored.<br /><br />Available Smart Tags:<br /><strong>{field.field_id}</strong>: The custom field ID.<br /><strong>{field.item_id}</strong>: the ID of the item this field was populated from. i.e. a Joomla article ID, User ID, Contact ID, etc...<br /><strong>{field.item_alias}</strong>: the alias of the item this field was populated from.<br /><strong>{field.item_author_id}</strong>: The alias of the associated item author.<br /><strong>{field.item_catid}</strong>: The category ID of the associated item.<br /><strong>{field.item_catalias}</strong>: The category alias of the associated item."
|
||||
ACF_GALLERY_ORDERING="Item Ordering"
|
||||
ACF_GALLERY_ORDERING_DESC="Select how the gallery items will be ordered.<br><br><strong>Default</strong>: Displays the gallery items in the same order as defined in the Gallery Manager (Allows reordering of gallery items).<br><strong>Alphabetical</strong>: Displays the gallery items in alpabetical order based on the file name.<br><strong>Reverse alphabetical</strong>: Displays the gallery items in reverse alphabetical order based on the file name.<br><strong>Random</strong>: Displays the gallery items in random order."
|
||||
ACF_GALLERY_DEFAULT="Default"
|
||||
ACF_GALLERY_ALPHABETICAL="Alphabetical"
|
||||
ACF_GALLERY_REVERSE_ALPHABETICAL="Reverse alphabetical"
|
||||
ACF_GALLERY_RANDOM="Random"
|
||||
ACF_GALLERY_JUSTIFIED_ITEM_HEIGHT_DESC="Set the height of the thumbnail, and the approximate height of each gallery item."
|
||||
ACF_GALLERY_ITEM_WIDTH="Item Width"
|
||||
ACF_GALLERY_ITEM_HEIGHT="Item Height"
|
||||
ACF_GALLERY_ROW_TARGET_HEIGHT="Row Target Height"
|
||||
ACF_GALLERY_SLIDESHOW="Slideshow"
|
||||
ACF_GALLERY_SLIDES_PER_VIEW="Slides Per View"
|
||||
ACF_GALLERY_SLIDES_PER_VIEW_DESC="Set how many slides to display at the same time.<br><br>Examples:<br>To show 1 slide, enter: 1<br>To show 1 and a half slide, enter: 1.5<br>To show 2 slides, enter: 2"
|
||||
ACF_GALLERY_SPACE_BETWEEN_SLIDES="Space Between Slides"
|
||||
ACF_GALLERY_SPACE_BETWEEN_SLIDES_DESC="Define the distance between slides in pixels."
|
||||
ACF_GALLERY_INFINITE_LOOP="Infinite Loop"
|
||||
ACF_GALLERY_INFINITE_LOOP_DESC="Enabling this setting allows the last slide to seamlessly loop back to the first."
|
||||
ACF_GALLERY_KEYBOARD_CONTROL="Keyboard Control"
|
||||
ACF_GALLERY_KEYBOARD_CONTROL_DESC="Enabling this setting allows you to control the slides using the keyboard arrows."
|
||||
ACF_GALLERY_AUTOPLAY="Autoplay"
|
||||
ACF_GALLERY_AUTOPLAY_DESC="Enabling this setting will make the slideshow autoplay."
|
||||
ACF_GALLERY_AUTOPLAY_PROGRESS="Autoplay Progress"
|
||||
ACF_GALLERY_AUTOPLAY_PROGRESS_DESC="Enabling this setting will display a circular progress bar on the bottom-right hand side of each slider indicating how long till the next slide will appear."
|
||||
ACF_GALLERY_SHOW_THUMBNAILS_DESC="Enabling this setting will display thumbnails below the slideshow, allowing you to view any slide you desire."
|
||||
ACF_GALLERY_THUMBNAILS_ARROWS="Navigation Arrows"
|
||||
ACF_GALLERY_THUMBNAILS_ARROWS_DESC="Set whether to show navigation arrows in the thumbnails slider."
|
||||
ACF_GALLERY_NAV_CONTROLS="Navigation Controls"
|
||||
ACF_GALLERY_NAV_CONTROLS_DESC="Select the type of navigation controls.<br><br><strong>Arrows:</strong> Displays previous and next arrows on top of the slideshow.<br><strong>Dots:</strong> Display dots below the slideshow, allowing you to choose a slide.<br><strong>Arrows + Dots:</strong> Display both arrows and dots pagination."
|
||||
ACF_GALLERY_ARROWS="Arrows"
|
||||
ACF_GALLERY_DOTS="Dots"
|
||||
ACF_GALLERY_ARROWS_DOTS="Arrows + Dots"
|
||||
ACF_GALLERY_SLIDESHOW_THEME_COLOR="Theme Color"
|
||||
ACF_GALLERY_SLIDESHOW_THEME_COLOR_DESC="Define the theme color."
|
||||
ACF_GALLERY_AUTOPLAY_DELAY="Autoplay Delay"
|
||||
ACF_GALLERY_AUTOPLAY_DELAY_DESC="Set the autoplay delay until the next slide appears, in milliseconds."
|
||||
ACF_GALLERY_TRANSITION_EFFECT="Transition Effect"
|
||||
ACF_GALLERY_TRANSITION_EFFECT_DESC="Select the transition effect between slides.<br><br>Note: If Slides Per View is >= 2, then the Slide effect will be always used automatically."
|
||||
ACF_GALLERY_SLIDE="Slide"
|
||||
ACF_GALLERY_FADE="Fade"
|
||||
ACF_GALLERY_CUBE="Cube"
|
||||
ACF_GALLERY_COVERFLOW="Coverflow"
|
||||
ACF_GALLERY_FLIP="Flip"
|
||||
ACF_GALLERY_THUMBNAILS="Thumbnails"
|
||||
ACF_GALLERY_WATERMARK_IMAGES="Watermark Images"
|
||||
ACF_GALLERY_WATERMARK_TEXT_PRESET="Preset"
|
||||
ACF_GALLERY_WATERMARK_TEXT_PRESET_DESC="Select a preset for the watermark text."
|
||||
ACF_GALLERY_SITE_NAME="Site Name"
|
||||
ACF_GALLERY_SITE_URL="Site URL"
|
||||
ACF_GALLERY_WATERMARK_TYPE="Type"
|
||||
ACF_GALLERY_WATERMARK_TYPE_DESC="Select whether to use a text, an image as a watermark or disable the watermark.<br>The watermark will be applied on the image uploaded.<br><br>To enable the watermark on the thumbnails, enable \"Apply on Thumbnails\" setting below."
|
||||
ACF_GALLERY_WATERMARK_TEXT_DESC="Enter the text to be used as a watermark. You can also use Smart Tags.<br /><br />File Smart Tags:<br />{file.filename}: myfile<br />{file.basename}: myfile.png"
|
||||
ACF_WATERMARK_TEXT_COLOR_DESC="Select the color of the watermark text."
|
||||
ACF_WATERMARK_FONT_SIZE_DESC="Set the font size of the watermark text in pixels. The font size will be adjusted based on the image's width."
|
||||
ACF_WATERMARK_IMAGE_DESC="Select the image to be used as a watermark. The image dimensions will be adjusted based on the image's width."
|
||||
ACF_GALLERY_WATERMARK_POSITION="Position"
|
||||
ACF_GALLERY_WATERMARK_POSITION_DESC="Select the position of the watermark."
|
||||
ACF_WATERMARK_OPACITY="Opacity"
|
||||
ACF_WATERMARK_OPACITY_DESC="Set the opacity of the watermark image."
|
||||
ACF_WATERMARK_ROTATION="Rotation"
|
||||
ACF_WATERMARK_ROTATION_DESC="Rotate the watermark image by entering the desired angle in degrees. Remember, the rotation will occur clockwise."
|
||||
ACF_GALLERY_WATERMARK_APPLY_ON_THUMBNAILS="Apply on Thumbnails"
|
||||
ACF_GALLERY_WATERMARK_APPLY_ON_THUMBNAILS_DESC="Select whether to apply the watermark on the thumbnails or not. When this is disabled, the watermark will be applied only on the original image."
|
||||
ACF_GALLERY_FILTERING_TAGS="Filtering Tags"
|
||||
ACF_GALLERY_TAGS_POSITION="Tags Position"
|
||||
ACF_GALLERY_TAGS_POSITION_DESC="Select whether to disable the filtering tags, or show a list of tags above or below the gallery items. This will allow your users to filter the gallery items by tag."
|
||||
ACF_GALLERY_ABOVE_GALLERY_ITEMS="Above Gallery Items"
|
||||
ACF_GALLERY_BELOW_GALLERY_ITEMS="Below Gallery Items"
|
||||
ACF_GALLERY_TAGS_SORT="Sort Tags"
|
||||
ACF_GALLERY_TAGS_SORT_DESC="Select how the tags will be sorted."
|
||||
ACF_GALLERY_ALL_TAGS_ITEM_LABEL="All Tags Label"
|
||||
ACF_GALLERY_ALL_TAGS_ITEM_LABEL_DESC="Enter a label to add an \"All\" item at the start of the tags filter list, allowing you to view all gallery items. Leave this empty if you don't want to display an \"All\" item.<br><br>You can make this multilingual by setting it to a translation string."
|
||||
ACF_GALLERY_TAGS_MOBILE="Tags on Mobile"
|
||||
ACF_GALLERY_TAGS_MOBILE_DESC="Set whether to display the tags on mobile devices, make them appear as a dropdown or disable them."
|
||||
ACF_GALLERY_TAGS_TEXT_COLOR="Text Color"
|
||||
ACF_GALLERY_TAGS_TEXT_COLOR_DESC="Set the tags text color."
|
||||
ACF_GALLERY_TAGS_TEXT_COLOR_HOVER="Text Color - Hover"
|
||||
ACF_GALLERY_TAGS_TEXT_COLOR_HOVER_DESC="Set the text color when hovering over a tag item."
|
||||
ACF_GALLERY_TAGS_BG_COLOR_HOVER="Background Color - Hover"
|
||||
ACF_GALLERY_TAGS_BG_COLOR_HOVER_DESC="Set the background color when hovering over a tag item."
|
||||
ACF_GALLERY_SHOW="Show"
|
||||
ACF_GALLERY_SHOW_AS_DROPDOWN="Show as dropdown"
|
||||
@ -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_GALLERY="Fields - ACF Gallery"
|
||||
ACF_GALLERY_DESC="The ACF Gallery Field allows you to add beautiful image galleries to your site."
|
||||
@ -0,0 +1,127 @@
|
||||
; @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_ACFGALLERY_LABEL="ACF - Galeria"
|
||||
ACF_GALLERY="Campos - ACF Galeria"
|
||||
ACF_GALLERY_DESC="El campo Galería de ACF le permite agregar bellas galerías de imágenes a su sitio."
|
||||
ACF_GALLERY_VALUE_DESC="Agregue imágenes nuevas o seleccione imágenes del Administrador de medios de Joomla para crear una galería."
|
||||
ACF_GALLERY_UPLOAD_FOLDER="Cargar Carpeta"
|
||||
ACF_GALLERY_UPLOAD_FOLDER_DESC="Seleccione la carpeta donde se almacenarán las imágenes cargadas para su galería.<br><br><strong>Nota:</strong> También puede usar etiquetas inteligentes."
|
||||
ACF_GALLERY_LIMIT_FILES="Límite de Archivos"
|
||||
ACF_GALLERY_LIMIT_FILES_DESC="¿Cuántos archivos se pueden subir? Ingrese 0 para no tener límite."
|
||||
ACF_GALLERY_MAX_FILE_SIZE="Límite de Tamaño de Archivo"
|
||||
ACF_GALLERY_MAX_FILE_SIZE_DESC="Configure el tamaño máximo permitido para cada archivo subido en megabytes. Ingrese 0 para no tener límite. <br><br>El tamaño máximo de carga de su servidor es: <b>%s</b>."
|
||||
ACF_GALLERY_LIGHTBOX="Ventana Emergente"
|
||||
ACF_GALLERY_LIGHTBOX_DESC="Permita hacer clic en una miniatura y mostrar la imagen completa en una ventana emergente de lightbox."
|
||||
ACF_GALLERY_MODULE="Módulo como Título"
|
||||
ACF_GALLERY_MODULE_DESC="Seleccione un módulo que se mostrará debajo del título de la imagen en la ventana emergente."
|
||||
ACF_GALLERY_STYLE="Estilo"
|
||||
ACF_GALLERY_STYLE_DESC="Seleccione cómo se verá su galería en la interfaz. Estilos disponibles: <br><br><strong>Cuadricula</strong>: todos los elementos tendrán el mismo ancho y también la misma altura. Puede definir el ancho y el alto de los elementos, así como el número de columnas para este diseño. <br><br><strong>Masonry</strong>: todos los elementos tienen el mismo ancho, pero la altura de cada uno será diferente. Puede definir el ancho de la columna, así como el número de columnas para este diseño. <br><br><strong>Carrusel</strong>: este diseño ofrece una visualización dinámica en carrusel con una conveniente navegación en miniatura para una experiencia de galería cautivadora e interactiva. <br><br><strong>Justificado</strong>: este diseño es lo opuesto al diseño Masonry. Todos los artículos tendrán la misma altura pero diferentes anchos. Puede definir la altura de la fila de destino. Se llama objetivo porque la altura de la fila es la palanca que usamos para que todo quede bien. El algoritmo se acercará lo más posible a la altura de la fila objetivo."
|
||||
ACF_GALLERY_COLUMNS="Columnas"
|
||||
ACF_GALLERY_COLUMNS_DESC="Establezca cuántos elementos mostrar por fila en dispositivos de escritorio, tabletas o dispositivos móviles."
|
||||
ACF_GALLERY_GAP="Espaciado entre elementos"
|
||||
ACF_GALLERY_GAP_DESC="Establezca el espacio entre los elementos de la galería en dispositivos de escritorio, tabletas o móviles.ap"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE="Optimizar Imagen Original"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_RESIZE="Redimensionar Imagen Original"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_RESIZE_DESC="Optimice la imagen original cargada por el usuario para aumentar la velocidad de carga y liberar espacio de almacenamiento. Esta es la imagen de pantalla completa que ven los usuarios en la ventana emergente de lightbox."
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_WIDTH="Ancho"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_WIDTH_DESC="Cambie el tamaño de la imagen a un ancho específico. Si la configuración de altura no está disponible, se cambiará el tamaño de la imagen manteniendo la relación de aspecto de la imagen."
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_HEIGHT="Altura"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_HEIGHT_DESC="Cambie el tamaño de la imagen a una altura especificada."
|
||||
ACF_GALLERY_IMAGE_RESIZE="Cambiar tamaño de imagen"
|
||||
ACF_GALLERY_IMAGE_RESIZE_DESC="Seleccione el método que se utilizará para cambiar el tamaño de las miniaturas en la galería.<br><br><b> Recortar</b>: algunas partes de la imagen pueden eliminarse para ajustarse al ancho y alto dados. <br><br><b>Estirar</b>: la imagen se estirará y comprimirá según sea necesario para ajustarse al ancho y alto dados. <br><br><b>Ajustar</b>: Mantenga la relación de aspecto original y ajuste las dimensiones definidas por el Ancho y Alto dados. Esto podría hacer que las miniaturas tengan espacios vacíos en la parte superior e inferior o en la parte izquierda y derecha de la imagen."
|
||||
ACF_GALLERY_CROP="Fijo"
|
||||
ACF_GALLERY_STRETCH="Estirado"
|
||||
ACF_GALLERY_FIT="Adaptativo"
|
||||
ACF_GALLERY_THUMB_WIDTH_DESC="Establezca el ancho de sus miniaturas en píxeles."
|
||||
ACF_GALLERY_THUMB_HEIGHT_DESC="Establece la altura de tus miniaturas en píxeles."
|
||||
ACF_GALLERY_SLIDESHOW_THUMB_HEIGHT_DESC="Establece la altura de tus miniaturas en píxeles. Si se establece en 0 (o está vacía), la miniatura se generará manteniendo también la relación de aspecto."
|
||||
ACF_GALLERY_IMAGE_QUALITY="Calidad de la imagen"
|
||||
ACF_GALLERY_IMAGE_QUALITY_DESC="Elija la calidad de las miniaturas. La calidad es un valor que oscila entre 1 y 100. Cuanto mayor sea la calidad, mayor será el tamaño de la imagen de las miniaturas."
|
||||
ACF_GALLERY_FOLDER_TYPE="Cargar Destino"
|
||||
ACF_GALLERY_FOLDER_TYPE_DESC="Especifique una carpeta de destino para las imágenes cargadas. <br><br><b>Auto</b>: Las imágenes se cargarán en el siguiente directorio: /media/acfgallery/com_COMPONENT/ITEM_ID/%s.<br><br> Nota:<br><strong> COMPONENT</strong> es el nombre del componente (es decir, contenido, usuarios, etc.) donde El campo se completó desde.<br><strong>ITEM_ID</strong> es el ID del elemento desde el que se completó este campo. es decir, un ID de artículo de Joomla, ID de usuario, ID de contacto, etc. <br><br>Además, se agregará un prefijo aleatorio al principio de cada nombre de archivo para aumentar la seguridad. <br><br><b>Personalizado</b>: especifique una carpeta de destino personalizada donde se almacenarán las imágenes.<br><br> Etiquetas Inteligentes Disponibles:<br><strong>{field.field_id}</strong>: el ID del campo personalizado.<br><strong>{field.item_id}</strong>: el ID del elemento desde el que se completó este campo. es decir, un ID de artículo de Joomla, ID de usuario, ID de contacto, etc...<br><strong>{field.item_alias}</strong>: el alias del elemento desde el que se completó este campo.<br><strong>{field.item_author_id}</strong>: el alias del autor del elemento asociado.<br><strong>{field. item_catid}</strong>: el ID de categoría del artículo asociado.<br><strong>{field.item_catalias}</strong>: el alias de categoría del artículo asociado."
|
||||
ACF_GALLERY_ORDERING="Orden de Artiçículos"
|
||||
ACF_GALLERY_ORDERING_DESC="Seleccione cómo se ordenarán los elementos de la galería.<br><br><strong>Por defecto</strong>:Muestra los elementos de la galería en el mismo orden definido en el Administrador de la galería (permite reordenar los elementos de la galería).<br><strong>Alfabético</strong>: Muestra los elementos de la galería en orden alfabético según el nombre del archivo.<br><strong>Alfabético Inverso</strong>: Muestra los elementos de la galería en orden alfabético inverso según el nombre del archivo.<br><strong>Aleatorio</strong>:Muestra los elementos de la galería en orden aleatorio."
|
||||
ACF_GALLERY_DEFAULT="Por Defecto"
|
||||
ACF_GALLERY_ALPHABETICAL="Alfabético"
|
||||
ACF_GALLERY_REVERSE_ALPHABETICAL="Alfabético Inverso"
|
||||
ACF_GALLERY_RANDOM="Aleatorio"
|
||||
ACF_GALLERY_JUSTIFIED_ITEM_HEIGHT_DESC="Establezca la altura de la miniatura y la altura aproximada de cada elemento de la galería."
|
||||
ACF_GALLERY_ITEM_WIDTH="Ancho del elemento"
|
||||
ACF_GALLERY_ITEM_HEIGHT="Altura del elemento"
|
||||
ACF_GALLERY_ROW_TARGET_HEIGHT="Altura de la fila destino"
|
||||
ACF_GALLERY_SLIDESHOW="Carrusel"
|
||||
ACF_GALLERY_SLIDES_PER_VIEW="Diapositivas por vista"
|
||||
ACF_GALLERY_SLIDES_PER_VIEW_DESC="Establezca cuántas diapositivas se mostrarán al mismo tiempo. <br><br>Ejemplos<br>: Para mostrar 1 diapositiva, ingrese: 1 <br>Para mostrar 1 diapositiva y media, ingrese: 1.5 <br>Para mostrar 2 diapositivas, ingrese: 2"
|
||||
ACF_GALLERY_SPACE_BETWEEN_SLIDES="Espacio entre diapositivas"
|
||||
ACF_GALLERY_SPACE_BETWEEN_SLIDES_DESC="Defina la distancia entre diapositivas en píxeles."
|
||||
ACF_GALLERY_INFINITE_LOOP="Bucle infinito"
|
||||
ACF_GALLERY_INFINITE_LOOP_DESC="Activar esta configuración permite que las diapositivas vuelva a reproducirse de manera continua desde la primera."
|
||||
ACF_GALLERY_KEYBOARD_CONTROL="Control con teclado"
|
||||
ACF_GALLERY_KEYBOARD_CONTROL_DESC="Habilitar esta configuración le permite controlar las diapositivas usando las flechas del teclado."
|
||||
ACF_GALLERY_AUTOPLAY="Auto-reproducción"
|
||||
ACF_GALLERY_AUTOPLAY_DESC="Habilitar esta configuración hará que la presentación de diapositivas se reproduzca automáticamente."
|
||||
ACF_GALLERY_AUTOPLAY_PROGRESS="Progreso de reproducción automática"
|
||||
ACF_GALLERY_AUTOPLAY_PROGRESS_DESC="Al habilitar esta configuración se mostrará una barra de progreso circular en la parte inferior derecha de cada control deslizante que indica cuánto tiempo falta para que aparezca la siguiente diapositiva."
|
||||
ACF_GALLERY_SHOW_THUMBNAILS_DESC="Al habilitar esta configuración se mostrarán miniaturas debajo de la presentación de diapositivas, lo que le permitirá ver cualquier diapositiva que desee."
|
||||
ACF_GALLERY_THUMBNAILS_ARROWS="Flechas de navegación"
|
||||
ACF_GALLERY_THUMBNAILS_ARROWS_DESC="Establezca si se mostrarán flechas de navegación en el control deslizante de miniaturas."
|
||||
ACF_GALLERY_NAV_CONTROLS="Controles de Navegación"
|
||||
ACF_GALLERY_NAV_CONTROLS_DESC="Seleccione el tipo de controles de navegación. <br><br><strong>Flechas</strong>: muestra las flechas anterior y siguiente en la parte superior de la presentación de diapositivas. <br><strong>Puntos</strong>: muestra puntos debajo de la presentación de diapositivas, lo que le permite elegir una diapositiva. <br><strong>Flechas + puntos</strong>: muestra la paginación con flechas y puntos."
|
||||
ACF_GALLERY_ARROWS="Flechas"
|
||||
ACF_GALLERY_DOTS="Puntos"
|
||||
ACF_GALLERY_ARROWS_DOTS="Flechas + Puntos"
|
||||
ACF_GALLERY_SLIDESHOW_THEME_COLOR="Color del tema"
|
||||
ACF_GALLERY_SLIDESHOW_THEME_COLOR_DESC="Defina el color del tema."
|
||||
ACF_GALLERY_AUTOPLAY_DELAY="Retraso de reproducción automática"
|
||||
ACF_GALLERY_AUTOPLAY_DELAY_DESC="Establezca el retraso de la reproducción automática hasta que aparezca la siguiente diapositiva, en milisegundos."
|
||||
ACF_GALLERY_TRANSITION_EFFECT="Efecto de transición"
|
||||
ACF_GALLERY_TRANSITION_EFFECT_DESC="Seleccione el efecto de transición entre diapositivas. <br><br>Nota: Si Diapositivas por vista es >= 2, el efecto Diapositiva siempre se usará automáticamente."
|
||||
ACF_GALLERY_SLIDE="Diapositiva"
|
||||
ACF_GALLERY_FADE="Fundido"
|
||||
ACF_GALLERY_CUBE="Cubo"
|
||||
ACF_GALLERY_COVERFLOW="Cubierta"
|
||||
ACF_GALLERY_FLIP="Voltear"
|
||||
ACF_GALLERY_THUMBNAILS="Miniaturas"
|
||||
ACF_GALLERY_WATERMARK_IMAGES="Imágenes de marca de agua"
|
||||
ACF_GALLERY_WATERMARK_TEXT_PRESET="Preestablecido"
|
||||
ACF_GALLERY_WATERMARK_TEXT_PRESET_DESC="Seleccione un ajuste preestablecido para el texto de la marca de agua."
|
||||
ACF_GALLERY_SITE_NAME="Nombre del sitio"
|
||||
ACF_GALLERY_SITE_URL="URL del Sitio "
|
||||
ACF_GALLERY_WATERMARK_TYPE="Tipo"
|
||||
ACF_GALLERY_WATERMARK_TYPE_DESC="Seleccione si desea utilizar un texto, una imagen como marca de agua o desactivar la marca de agua. <br>La marca de agua se aplicará a la imagen cargada. <br><br>Para habilitar la marca de agua en las miniaturas, habilite la configuración \\\"Aplicar en miniaturas\\\" a continuación."
|
||||
ACF_GALLERY_WATERMARK_TEXT_DESC="Ingrese el texto que se utilizará como marca de agua. También puedes usar etiquetas inteligentes.<br><br> Etiquetas inteligentes de archivo:<br>{file.filename}: myfile<br>{file.basename}: myfile.png"
|
||||
ACF_WATERMARK_TEXT_COLOR_DESC="Seleccione el color del texto de la marca de agua."
|
||||
ACF_WATERMARK_FONT_SIZE_DESC="Establezca el tamaño de fuente del texto de la marca de agua en píxeles. El tamaño de fuente se ajustará según el ancho de la imagen."
|
||||
ACF_WATERMARK_IMAGE_DESC="Seleccione la imagen que se utilizará como marca de agua. Las dimensiones de la imagen se ajustarán según el ancho de la imagen."
|
||||
ACF_GALLERY_WATERMARK_POSITION="Posición"
|
||||
ACF_GALLERY_WATERMARK_POSITION_DESC="Seleccione la posición de la marca de agua."
|
||||
ACF_WATERMARK_OPACITY="Opacidad"
|
||||
ACF_WATERMARK_OPACITY_DESC="Establece la opacidad de la imagen de la marca de agua."
|
||||
ACF_WATERMARK_ROTATION="Rotación"
|
||||
ACF_WATERMARK_ROTATION_DESC="Gire la imagen de la marca de agua ingresando el ángulo deseado en grados. Recuerde, la rotación se producirá en el sentido de las agujas del reloj."
|
||||
ACF_GALLERY_WATERMARK_APPLY_ON_THUMBNAILS="Aplicar en miniaturas"
|
||||
ACF_GALLERY_WATERMARK_APPLY_ON_THUMBNAILS_DESC="Seleccione si desea aplicar la marca de agua en las miniaturas o no. Cuando esto está deshabilitado, la marca de agua se aplicará solo en la imagen original."
|
||||
ACF_GALLERY_FILTERING_TAGS="Etiquetas de filtrado"
|
||||
ACF_GALLERY_TAGS_POSITION="Posición de las etiquetas"
|
||||
ACF_GALLERY_TAGS_POSITION_DESC="Seleccione si desea desactivar las etiquetas de filtrado o mostrar una lista de etiquetas encima o debajo de los elementos de la galería. Esto permitirá a sus usuarios filtrar los elementos de la galería por etiqueta."
|
||||
ACF_GALLERY_ABOVE_GALLERY_ITEMS="Elementos anteriores de la galería"
|
||||
ACF_GALLERY_BELOW_GALLERY_ITEMS="Elementos posteriores de la galería"
|
||||
ACF_GALLERY_TAGS_SORT="Ordenar etiquetas"
|
||||
ACF_GALLERY_TAGS_SORT_DESC="Seleccione cómo se ordenarán las etiquetas."
|
||||
ACF_GALLERY_ALL_TAGS_ITEM_LABEL="Nombre de todas las etiquetas"
|
||||
ACF_GALLERY_ALL_TAGS_ITEM_LABEL_DESC="Ingrese una etiqueta para agregar un elemento \\\"All\\\" al inicio de la lista de filtros de etiquetas, lo que le permitirá ver todos los elementos de la galería. Déjelo vacío si no desea mostrar un elemento \\\"All\\\". <br><br>Puede hacerlo multilingüe configurándolo en una cadena de traducción."
|
||||
ACF_GALLERY_TAGS_MOBILE="Etiquetas en el móvil"
|
||||
ACF_GALLERY_TAGS_MOBILE_DESC="Establezca si desea mostrar las etiquetas en dispositivos móviles, hacer que aparezcan como un menú desplegable o desactivarlas."
|
||||
ACF_GALLERY_TAGS_TEXT_COLOR="Color del Texto"
|
||||
ACF_GALLERY_TAGS_TEXT_COLOR_DESC="Establezca el color del texto de las etiquetas."
|
||||
ACF_GALLERY_TAGS_TEXT_COLOR_HOVER="Color del texto: pasar el cursor"
|
||||
ACF_GALLERY_TAGS_TEXT_COLOR_HOVER_DESC="Establezca el color del texto al pasar el cursor sobre un elemento de etiqueta."
|
||||
ACF_GALLERY_TAGS_BG_COLOR_HOVER="Color de fondo: pasar el cursor"
|
||||
ACF_GALLERY_TAGS_BG_COLOR_HOVER_DESC="Establezca el color de fondo al pasar el cursor sobre un elemento de etiqueta."
|
||||
ACF_GALLERY_SHOW="Mostrar"
|
||||
ACF_GALLERY_SHOW_AS_DROPDOWN="Mostrar como desplegable"
|
||||
@ -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_GALLERY="Campos - ACF Gallery"
|
||||
ACF_GALLERY_DESC="El campo Galería de ACF le permite agregar bellas galerías de imágenes a su sitio."
|
||||
@ -0,0 +1,127 @@
|
||||
; @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_ACFGALLERY_LABEL="Galerie ACF "
|
||||
ACF_GALLERY="Champs : galerie ACF"
|
||||
ACF_GALLERY_DESC="Le champ galerie ACF vous permet d'ajouter de belles galeries d'images à votre site"
|
||||
ACF_GALLERY_VALUE_DESC="Ajoutez ou sélectionnez des images depuis le gestionnaire de médias pour créer la galerie"
|
||||
ACF_GALLERY_UPLOAD_FOLDER="Dossier d'pload"
|
||||
ACF_GALLERY_UPLOAD_FOLDER_DESC="Sélectionnez le dossier où enregistrer les images de votre galerie.<br><br><strong>Note :</strong> Vous pouvez aussi utiliser les Smart Tags."
|
||||
ACF_GALLERY_LIMIT_FILES="Nb maximal de fichiers"
|
||||
ACF_GALLERY_LIMIT_FILES_DESC="Combien de fichiers peuvent être transférés ? Saisir 0 pour aucune limite"
|
||||
ACF_GALLERY_MAX_FILE_SIZE="Limite de poids des fichiers"
|
||||
ACF_GALLERY_MAX_FILE_SIZE_DESC="Configurez la taille maximale en mégaoctets autorisée pour chaque fichier. Saisissez 0 pour ne pas limiter. <br><br>Le limite du serveur est : <b>%s</b>."
|
||||
ACF_GALLERY_LIGHTBOX="Popup lightbox"
|
||||
ACF_GALLERY_LIGHTBOX_DESC="Permet de cliquer sur l'image pour afficher l'original dans un popup lightbox."
|
||||
ACF_GALLERY_MODULE="Module comme légende"
|
||||
; ACF_GALLERY_MODULE_DESC="Select a module to be displayed below the image's caption in the lightbox popup."
|
||||
ACF_GALLERY_STYLE="Style"
|
||||
; ACF_GALLERY_STYLE_DESC="Select how your gallery will look like on the front-end. Available styles:<br><br><strong>Grid</strong>: All items will have the same width and the same height as well. You can define the width and height of the items as well as the number of columns for this layout.<br><br><strong>Masonry</strong>: All items have the same width, but the height of each will be different. You can define the column's width as well as the number of columns for this layout<br><br><strong>Slideshow</strong>: This layout offers a dynamic carousel display with convenient thumbnail navigation for a captivating and interactive gallery experience.<br><br><strong>Justified</strong>: This layout is the opposite of the Masonry layout. All items will have the same height but different widths. You can define the target row height. It's called a target because row height is the lever we use to fit everything nicely. The algorithm will get as close to the target row height as possible."
|
||||
ACF_GALLERY_COLUMNS="Colonnes"
|
||||
ACF_GALLERY_COLUMNS_DESC="Définissez le nombre d'images par ligne sur ordinateur, tablette et téléphone portable"
|
||||
; ACF_GALLERY_GAP="Item Gap"
|
||||
ACF_GALLERY_GAP_DESC="Définissez l'espace entre les éléments de la galerie sur ordinateur, tablette ou téléphone portable"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE="Optimiser l'image originale ?"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_RESIZE="Redimensionner l'image originale"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_RESIZE_DESC="Optimiser l'image originale pour améliorer le temps d'affichage et réduire la consommation d'espace disque. Il s'agit de l'image que vos visiteurs verront dans la lightbox."
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_WIDTH="Largeur"
|
||||
; ACF_GALLERY_ORIGINAL_IMAGE_WIDTH_DESC="Resize the image to a specified width. If the height setting is unavailable, the image will be resized by keeping the image's aspect ratio."
|
||||
; ACF_GALLERY_ORIGINAL_IMAGE_HEIGHT="Height"
|
||||
; ACF_GALLERY_ORIGINAL_IMAGE_HEIGHT_DESC="Resize the image to a specified height."
|
||||
; ACF_GALLERY_IMAGE_RESIZE="Image Resize"
|
||||
; ACF_GALLERY_IMAGE_RESIZE_DESC="Select the method that will be used to resize the thumbnails in the gallery. <br><br><b>Crop</b>: Some parts of the image might be removed in order to fit the given Width and Height. <br><br><b>Stretch</b>: The image will be stretched and squeezed as needed in order to fit the given Width and Height. <br><br><b>Fit</b>: Keep the original aspect ratio and fit the dimensions defined by the given Width and Height. This could make the thumbnails have empty space in either top and bottom or left and right parts of the image."
|
||||
ACF_GALLERY_CROP="Recadrage"
|
||||
ACF_GALLERY_STRETCH="Étirement"
|
||||
ACF_GALLERY_FIT="Ajustage"
|
||||
ACF_GALLERY_THUMB_WIDTH_DESC="Largeur des vignettes en pixels"
|
||||
; ACF_GALLERY_THUMB_HEIGHT_DESC="Set the height for your thumbnails in pixels."
|
||||
; ACF_GALLERY_SLIDESHOW_THUMB_HEIGHT_DESC="Set the height for your thumbnails in pixels. If set to 0 (or empty), then the thumbnail will be generated by also keeping the aspect ratio."
|
||||
; ACF_GALLERY_IMAGE_QUALITY="Image Quality"
|
||||
; ACF_GALLERY_IMAGE_QUALITY_DESC="Choose the quality for the thumbnails. The quality is a value that ranges between 1 and 100. The higher the quality is, the higher the image size of the thumbnails will be."
|
||||
ACF_GALLERY_FOLDER_TYPE="Destination des images"
|
||||
; ACF_GALLERY_FOLDER_TYPE_DESC="Specify a destination folder for uploaded images.<br><br><b>Auto</b>: The images will be uploaded to the following directory: /media/acfgallery/com_COMPONENT/ITEM_ID/%s.<br><br>Note:<br><strong>COMPONENT</strong> is the component name (i.e. content, users, etc...) where this field got populated from.<br><strong>ITEM_ID</strong> is the ID of the item this field was populated from. i.e. a Joomla article ID, User ID, Contact ID, etc...<br><br>Additionally a random prefix will be added in the beginning of each file name to increase security.<br><br><b>Custom</b>: Specify a custom destination folder where the images will be stored.<br><br>Available Smart Tags:<br><strong>{field.field_id}</strong>: The custom field ID.<br><strong>{field.item_id}</strong>: the ID of the item this field was populated from. i.e. a Joomla article ID, User ID, Contact ID, etc...<br><strong>{field.item_alias}</strong>: the alias of the item this field was populated from.<br><strong>{field.item_author_id}</strong>: The alias of the associated item author.<br><strong>{field.item_catid}</strong>: The category ID of the associated item.<br><strong>{field.item_catalias}</strong>: The category alias of the associated item."
|
||||
ACF_GALLERY_ORDERING="Tri des éléments"
|
||||
ACF_GALLERY_ORDERING_DESC="Définissez l'ordre de tri des images de la galerie.<br><br><strong>Défaut</strong>: Affiche les images dans le même ordre qye dans le gestionnaire de galeries (Avec possibilité de changer le mode de tri).<br><strong>Alphabétique</strong>: Affiche les images dans l'ordre alphabétique des noms de fichiers.<br><strong>Alphabétique inverse</strong>: Affiche les images dans l'ordre alphabétique inverse des noms de fichiers.<br><strong>Aléatoire</strong>: Affiche les images dans un ordre aléatoire"
|
||||
ACF_GALLERY_DEFAULT="Défaut"
|
||||
ACF_GALLERY_ALPHABETICAL="Alphabétique"
|
||||
ACF_GALLERY_REVERSE_ALPHABETICAL="Alphabétique inverse"
|
||||
ACF_GALLERY_RANDOM="Aléatoire"
|
||||
; ACF_GALLERY_JUSTIFIED_ITEM_HEIGHT_DESC="Set the height of the thumbnail, and the approximate height of each gallery item."
|
||||
; ACF_GALLERY_ITEM_WIDTH="Item Width"
|
||||
; ACF_GALLERY_ITEM_HEIGHT="Item Height"
|
||||
; ACF_GALLERY_ROW_TARGET_HEIGHT="Row Target Height"
|
||||
; ACF_GALLERY_SLIDESHOW="Slideshow"
|
||||
; ACF_GALLERY_SLIDES_PER_VIEW="Slides Per View"
|
||||
; ACF_GALLERY_SLIDES_PER_VIEW_DESC="Set how many slides to display at the same time.<br><br>Examples:<br>To show 1 slide, enter: 1<br>To show 1 and a half slide, enter: 1.5<br>To show 2 slides, enter: 2"
|
||||
; ACF_GALLERY_SPACE_BETWEEN_SLIDES="Space Between Slides"
|
||||
; ACF_GALLERY_SPACE_BETWEEN_SLIDES_DESC="Define the distance between slides in pixels."
|
||||
; ACF_GALLERY_INFINITE_LOOP="Infinite Loop"
|
||||
; ACF_GALLERY_INFINITE_LOOP_DESC="Enabling this setting allows the last slide to seamlessly loop back to the first."
|
||||
; ACF_GALLERY_KEYBOARD_CONTROL="Keyboard Control"
|
||||
; ACF_GALLERY_KEYBOARD_CONTROL_DESC="Enabling this setting allows you to control the slides using the keyboard arrows."
|
||||
; ACF_GALLERY_AUTOPLAY="Autoplay"
|
||||
; ACF_GALLERY_AUTOPLAY_DESC="Enabling this setting will make the slideshow autoplay."
|
||||
; ACF_GALLERY_AUTOPLAY_PROGRESS="Autoplay Progress"
|
||||
; ACF_GALLERY_AUTOPLAY_PROGRESS_DESC="Enabling this setting will display a circular progress bar on the bottom-right hand side of each slider indicating how long till the next slide will appear."
|
||||
; ACF_GALLERY_SHOW_THUMBNAILS_DESC="Enabling this setting will display thumbnails below the slideshow, allowing you to view any slide you desire."
|
||||
; ACF_GALLERY_THUMBNAILS_ARROWS="Navigation Arrows"
|
||||
; ACF_GALLERY_THUMBNAILS_ARROWS_DESC="Set whether to show navigation arrows in the thumbnails slider."
|
||||
; ACF_GALLERY_NAV_CONTROLS="Navigation Controls"
|
||||
; ACF_GALLERY_NAV_CONTROLS_DESC="Select the type of navigation controls.<br><br><strong>Arrows:</strong> Displays previous and next arrows on top of the slideshow.<br><strong>Dots:</strong> Display dots below the slideshow, allowing you to choose a slide.<br><strong>Arrows + Dots:</strong> Display both arrows and dots pagination."
|
||||
; ACF_GALLERY_ARROWS="Arrows"
|
||||
; ACF_GALLERY_DOTS="Dots"
|
||||
; ACF_GALLERY_ARROWS_DOTS="Arrows + Dots"
|
||||
; ACF_GALLERY_SLIDESHOW_THEME_COLOR="Theme Color"
|
||||
; ACF_GALLERY_SLIDESHOW_THEME_COLOR_DESC="Define the theme color."
|
||||
; ACF_GALLERY_AUTOPLAY_DELAY="Autoplay Delay"
|
||||
; ACF_GALLERY_AUTOPLAY_DELAY_DESC="Set the autoplay delay until the next slide appears, in milliseconds."
|
||||
; ACF_GALLERY_TRANSITION_EFFECT="Transition Effect"
|
||||
; ACF_GALLERY_TRANSITION_EFFECT_DESC="Select the transition effect between slides.<br><br>Note: If Slides Per View is >= 2, then the Slide effect will be always used automatically."
|
||||
; ACF_GALLERY_SLIDE="Slide"
|
||||
; ACF_GALLERY_FADE="Fade"
|
||||
; ACF_GALLERY_CUBE="Cube"
|
||||
; ACF_GALLERY_COVERFLOW="Coverflow"
|
||||
; ACF_GALLERY_FLIP="Flip"
|
||||
ACF_GALLERY_THUMBNAILS="Vignettes"
|
||||
; ACF_GALLERY_WATERMARK_IMAGES="Watermark Images"
|
||||
; ACF_GALLERY_WATERMARK_TEXT_PRESET="Preset"
|
||||
; ACF_GALLERY_WATERMARK_TEXT_PRESET_DESC="Select a preset for the watermark text."
|
||||
; ACF_GALLERY_SITE_NAME="Site Name"
|
||||
; ACF_GALLERY_SITE_URL="Site URL"
|
||||
; ACF_GALLERY_WATERMARK_TYPE="Type"
|
||||
; ACF_GALLERY_WATERMARK_TYPE_DESC="Select whether to use a text, an image as a watermark or disable the watermark.<br>The watermark will be applied on the image uploaded.<br><br>To enable the watermark on the thumbnails, enable \\\"Apply on Thumbnails\\\" setting below."
|
||||
; ACF_GALLERY_WATERMARK_TEXT_DESC="Enter the text to be used as a watermark. You can also use Smart Tags.<br><br>File Smart Tags:<br>{file.filename}: myfile<br>{file.basename}: myfile.png"
|
||||
; ACF_WATERMARK_TEXT_COLOR_DESC="Select the color of the watermark text."
|
||||
; ACF_WATERMARK_FONT_SIZE_DESC="Set the font size of the watermark text in pixels. The font size will be adjusted based on the image's width."
|
||||
; ACF_WATERMARK_IMAGE_DESC="Select the image to be used as a watermark. The image dimensions will be adjusted based on the image's width."
|
||||
; ACF_GALLERY_WATERMARK_POSITION="Position"
|
||||
; ACF_GALLERY_WATERMARK_POSITION_DESC="Select the position of the watermark."
|
||||
; ACF_WATERMARK_OPACITY="Opacity"
|
||||
; ACF_WATERMARK_OPACITY_DESC="Set the opacity of the watermark image."
|
||||
; ACF_WATERMARK_ROTATION="Rotation"
|
||||
; ACF_WATERMARK_ROTATION_DESC="Rotate the watermark image by entering the desired angle in degrees. Remember, the rotation will occur clockwise."
|
||||
; ACF_GALLERY_WATERMARK_APPLY_ON_THUMBNAILS="Apply on Thumbnails"
|
||||
; ACF_GALLERY_WATERMARK_APPLY_ON_THUMBNAILS_DESC="Select whether to apply the watermark on the thumbnails or not. When this is disabled, the watermark will be applied only on the original image."
|
||||
; ACF_GALLERY_FILTERING_TAGS="Filtering Tags"
|
||||
; ACF_GALLERY_TAGS_POSITION="Tags Position"
|
||||
; ACF_GALLERY_TAGS_POSITION_DESC="Select whether to disable the filtering tags, or show a list of tags above or below the gallery items. This will allow your users to filter the gallery items by tag."
|
||||
; ACF_GALLERY_ABOVE_GALLERY_ITEMS="Above Gallery Items"
|
||||
; ACF_GALLERY_BELOW_GALLERY_ITEMS="Below Gallery Items"
|
||||
; ACF_GALLERY_TAGS_SORT="Sort Tags"
|
||||
; ACF_GALLERY_TAGS_SORT_DESC="Select how the tags will be sorted."
|
||||
; ACF_GALLERY_ALL_TAGS_ITEM_LABEL="All Tags Label"
|
||||
; ACF_GALLERY_ALL_TAGS_ITEM_LABEL_DESC="Enter a label to add an \\\"All\\\" item at the start of the tags filter list, allowing you to view all gallery items. Leave this empty if you don't want to display an \\\"All\\\" item.<br><br>You can make this multilingual by setting it to a translation string."
|
||||
; ACF_GALLERY_TAGS_MOBILE="Tags on Mobile"
|
||||
; ACF_GALLERY_TAGS_MOBILE_DESC="Set whether to display the tags on mobile devices, make them appear as a dropdown or disable them."
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR="Text Color"
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR_DESC="Set the tags text color."
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR_HOVER="Text Color - Hover"
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR_HOVER_DESC="Set the text color when hovering over a tag item."
|
||||
; ACF_GALLERY_TAGS_BG_COLOR_HOVER="Background Color - Hover"
|
||||
; ACF_GALLERY_TAGS_BG_COLOR_HOVER_DESC="Set the background color when hovering over a tag item."
|
||||
; ACF_GALLERY_SHOW="Show"
|
||||
; ACF_GALLERY_SHOW_AS_DROPDOWN="Show as dropdown"
|
||||
@ -0,0 +1,127 @@
|
||||
; @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_ACFGALLERY_LABEL="ACF - Galleria"
|
||||
ACF_GALLERY="Campi - ACF Galleria"
|
||||
ACF_GALLERY_DESC="Il campo ACF Galleria ti permette di aggiungere fantastiche gallerie di immagini al tuo sito."
|
||||
ACF_GALLERY_VALUE_DESC="Aggiungi o seleziona nuove immagini dalla Gestione media di Joomla per creare una galleria."
|
||||
ACF_GALLERY_UPLOAD_FOLDER="Cartella di caricamento"
|
||||
ACF_GALLERY_UPLOAD_FOLDER_DESC="Seleziona la cartella dove le immagini caricate per la tua galleria verranno memorizzate.<br><br><strong>Nota:</strong> Puoi anche usare smart tag."
|
||||
ACF_GALLERY_LIMIT_FILES="Limite file"
|
||||
ACF_GALLERY_LIMIT_FILES_DESC="Quanti file possono essere caricati? Inserisci 0 per nessun limite."
|
||||
ACF_GALLERY_MAX_FILE_SIZE="Limite dimensione file"
|
||||
ACF_GALLERY_MAX_FILE_SIZE_DESC="Configura la dimensione massima consentita per ogni file caricato in megabyte. Inserisci 0 per nessun limite. <br><br>La dimensione massima di caricamento del tuo server è: <b>%s</b>."
|
||||
ACF_GALLERY_LIGHTBOX="Finestra popup lightbox"
|
||||
ACF_GALLERY_LIGHTBOX_DESC="Consenti di fare clic su una miniatura e visualizzare l'immagine completa in un popup lightbox."
|
||||
ACF_GALLERY_MODULE="Modulo come didascalia"
|
||||
; ACF_GALLERY_MODULE_DESC="Select a module to be displayed below the image's caption in the lightbox popup."
|
||||
ACF_GALLERY_STYLE="Stile"
|
||||
ACF_GALLERY_STYLE_DESC="Scegli come apparirà la tua galleria nel front-end. Stili disponibili: <br><br><strong>Grid</strong>: Tutti gli elementi avranno la stessa larghezza e la stessa altezza. Puoi definire la larghezza e l'altezza degli elementi, nonché il numero di colonne per questo layout<br><br><strong>Masonry</strong>: Tutti gli elementi avranno la stessa larghezza, ma l'altezza di ciascuno sarà diversa. Puoi definire la larghezza delle colonne e il numero di colonne per questo layout.<br><br><strong>Slideshow</strong>: Questo layout offre una visualizzazione dinamica a carosello con una comoda navigazione a miniature per un'esperienza di galleria coinvolgente e interattiva.<br><br><strong>Justified</strong>: Questo layout è l'opposto del layout Masonry. Tutti gli elementi avranno la stessa altezza ma larghezze diverse. Puoi definire l'altezza target delle righe. È chiamata target perché l'altezza delle righe è la leva che usiamo per adattare tutto perfettamente. L'algoritmo si avvicinerà il più possibile all'altezza target delle righe."
|
||||
ACF_GALLERY_COLUMNS="Colonne"
|
||||
ACF_GALLERY_COLUMNS_DESC="Imposta quanti elementi mostrare per riga su desktop, tablet o dispositivi mobili."
|
||||
; ACF_GALLERY_GAP="Item Gap"
|
||||
ACF_GALLERY_GAP_DESC="Imposta lo spazio tra gli elementi della galleria su desktop, tablet o dispositivi mobili."
|
||||
ACF_GALLERY_ORIGINAL_IMAGE="Ottimizza immagine originale"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_RESIZE="Ridimensiona immagine originale"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_RESIZE_DESC="Ottimizza l'immagine originale caricata dall'utente per aumentare la velocità di caricamento e liberare spazio di archiviazione. Questa è l'immagine a schermo intero che i tuoi utenti vedono nel popup lightbox."
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_WIDTH="Larghezza"
|
||||
; ACF_GALLERY_ORIGINAL_IMAGE_WIDTH_DESC="Resize the image to a specified width. If the height setting is unavailable, the image will be resized by keeping the image's aspect ratio."
|
||||
; ACF_GALLERY_ORIGINAL_IMAGE_HEIGHT="Height"
|
||||
; ACF_GALLERY_ORIGINAL_IMAGE_HEIGHT_DESC="Resize the image to a specified height."
|
||||
; ACF_GALLERY_IMAGE_RESIZE="Image Resize"
|
||||
; ACF_GALLERY_IMAGE_RESIZE_DESC="Select the method that will be used to resize the thumbnails in the gallery. <br><br><b>Crop</b>: Some parts of the image might be removed in order to fit the given Width and Height. <br><br><b>Stretch</b>: The image will be stretched and squeezed as needed in order to fit the given Width and Height. <br><br><b>Fit</b>: Keep the original aspect ratio and fit the dimensions defined by the given Width and Height. This could make the thumbnails have empty space in either top and bottom or left and right parts of the image."
|
||||
ACF_GALLERY_CROP="Ritaglia"
|
||||
ACF_GALLERY_STRETCH="Allunga"
|
||||
ACF_GALLERY_FIT="Adatta"
|
||||
ACF_GALLERY_THUMB_WIDTH_DESC="Imposta la larghezza delle miniature in pixel."
|
||||
; ACF_GALLERY_THUMB_HEIGHT_DESC="Set the height for your thumbnails in pixels."
|
||||
; ACF_GALLERY_SLIDESHOW_THUMB_HEIGHT_DESC="Set the height for your thumbnails in pixels. If set to 0 (or empty), then the thumbnail will be generated by also keeping the aspect ratio."
|
||||
; ACF_GALLERY_IMAGE_QUALITY="Image Quality"
|
||||
; ACF_GALLERY_IMAGE_QUALITY_DESC="Choose the quality for the thumbnails. The quality is a value that ranges between 1 and 100. The higher the quality is, the higher the image size of the thumbnails will be."
|
||||
ACF_GALLERY_FOLDER_TYPE="Destinazione caricamento"
|
||||
; ACF_GALLERY_FOLDER_TYPE_DESC="Specify a destination folder for uploaded images.<br><br><b>Auto</b>: The images will be uploaded to the following directory: /media/acfgallery/com_COMPONENT/ITEM_ID/%s.<br><br>Note:<br><strong>COMPONENT</strong> is the component name (i.e. content, users, etc...) where this field got populated from.<br><strong>ITEM_ID</strong> is the ID of the item this field was populated from. i.e. a Joomla article ID, User ID, Contact ID, etc...<br><br>Additionally a random prefix will be added in the beginning of each file name to increase security.<br><br><b>Custom</b>: Specify a custom destination folder where the images will be stored.<br><br>Available Smart Tags:<br><strong>{field.field_id}</strong>: The custom field ID.<br><strong>{field.item_id}</strong>: the ID of the item this field was populated from. i.e. a Joomla article ID, User ID, Contact ID, etc...<br><strong>{field.item_alias}</strong>: the alias of the item this field was populated from.<br><strong>{field.item_author_id}</strong>: The alias of the associated item author.<br><strong>{field.item_catid}</strong>: The category ID of the associated item.<br><strong>{field.item_catalias}</strong>: The category alias of the associated item."
|
||||
ACF_GALLERY_ORDERING="Ordinamento elementi"
|
||||
ACF_GALLERY_ORDERING_DESC="Seleziona come verranno ordinati gli elementi della galleria.<br><br><strong>Predefinito</strong>: visualizza gli elementi della galleria nello stesso ordine definito in Gestione galleria (consente il riordino degli elementi della galleria).<br><strong>Alfabetico</strong>: visualizza gli elementi della galleria in ordine alpabetico in base al nome del file.<br><strong>Alfabetico inverso</strong>: visualizza gli elementi della galleria in ordine alfabetico inverso in base al nome del file.<br><strong>Casuale</strong>: visualizza gli elementi della galleria in ordine casuale."
|
||||
ACF_GALLERY_DEFAULT="Predefinito"
|
||||
ACF_GALLERY_ALPHABETICAL="Alfabetico"
|
||||
ACF_GALLERY_REVERSE_ALPHABETICAL="Alfabetico inverso"
|
||||
ACF_GALLERY_RANDOM="Casuale"
|
||||
; ACF_GALLERY_JUSTIFIED_ITEM_HEIGHT_DESC="Set the height of the thumbnail, and the approximate height of each gallery item."
|
||||
; ACF_GALLERY_ITEM_WIDTH="Item Width"
|
||||
; ACF_GALLERY_ITEM_HEIGHT="Item Height"
|
||||
; ACF_GALLERY_ROW_TARGET_HEIGHT="Row Target Height"
|
||||
; ACF_GALLERY_SLIDESHOW="Slideshow"
|
||||
; ACF_GALLERY_SLIDES_PER_VIEW="Slides Per View"
|
||||
; ACF_GALLERY_SLIDES_PER_VIEW_DESC="Set how many slides to display at the same time.<br><br>Examples:<br>To show 1 slide, enter: 1<br>To show 1 and a half slide, enter: 1.5<br>To show 2 slides, enter: 2"
|
||||
; ACF_GALLERY_SPACE_BETWEEN_SLIDES="Space Between Slides"
|
||||
; ACF_GALLERY_SPACE_BETWEEN_SLIDES_DESC="Define the distance between slides in pixels."
|
||||
; ACF_GALLERY_INFINITE_LOOP="Infinite Loop"
|
||||
; ACF_GALLERY_INFINITE_LOOP_DESC="Enabling this setting allows the last slide to seamlessly loop back to the first."
|
||||
; ACF_GALLERY_KEYBOARD_CONTROL="Keyboard Control"
|
||||
; ACF_GALLERY_KEYBOARD_CONTROL_DESC="Enabling this setting allows you to control the slides using the keyboard arrows."
|
||||
; ACF_GALLERY_AUTOPLAY="Autoplay"
|
||||
; ACF_GALLERY_AUTOPLAY_DESC="Enabling this setting will make the slideshow autoplay."
|
||||
; ACF_GALLERY_AUTOPLAY_PROGRESS="Autoplay Progress"
|
||||
; ACF_GALLERY_AUTOPLAY_PROGRESS_DESC="Enabling this setting will display a circular progress bar on the bottom-right hand side of each slider indicating how long till the next slide will appear."
|
||||
; ACF_GALLERY_SHOW_THUMBNAILS_DESC="Enabling this setting will display thumbnails below the slideshow, allowing you to view any slide you desire."
|
||||
; ACF_GALLERY_THUMBNAILS_ARROWS="Navigation Arrows"
|
||||
; ACF_GALLERY_THUMBNAILS_ARROWS_DESC="Set whether to show navigation arrows in the thumbnails slider."
|
||||
; ACF_GALLERY_NAV_CONTROLS="Navigation Controls"
|
||||
; ACF_GALLERY_NAV_CONTROLS_DESC="Select the type of navigation controls.<br><br><strong>Arrows:</strong> Displays previous and next arrows on top of the slideshow.<br><strong>Dots:</strong> Display dots below the slideshow, allowing you to choose a slide.<br><strong>Arrows + Dots:</strong> Display both arrows and dots pagination."
|
||||
; ACF_GALLERY_ARROWS="Arrows"
|
||||
; ACF_GALLERY_DOTS="Dots"
|
||||
; ACF_GALLERY_ARROWS_DOTS="Arrows + Dots"
|
||||
; ACF_GALLERY_SLIDESHOW_THEME_COLOR="Theme Color"
|
||||
; ACF_GALLERY_SLIDESHOW_THEME_COLOR_DESC="Define the theme color."
|
||||
; ACF_GALLERY_AUTOPLAY_DELAY="Autoplay Delay"
|
||||
; ACF_GALLERY_AUTOPLAY_DELAY_DESC="Set the autoplay delay until the next slide appears, in milliseconds."
|
||||
; ACF_GALLERY_TRANSITION_EFFECT="Transition Effect"
|
||||
; ACF_GALLERY_TRANSITION_EFFECT_DESC="Select the transition effect between slides.<br><br>Note: If Slides Per View is >= 2, then the Slide effect will be always used automatically."
|
||||
; ACF_GALLERY_SLIDE="Slide"
|
||||
; ACF_GALLERY_FADE="Fade"
|
||||
; ACF_GALLERY_CUBE="Cube"
|
||||
; ACF_GALLERY_COVERFLOW="Coverflow"
|
||||
; ACF_GALLERY_FLIP="Flip"
|
||||
ACF_GALLERY_THUMBNAILS="Miniature"
|
||||
; ACF_GALLERY_WATERMARK_IMAGES="Watermark Images"
|
||||
; ACF_GALLERY_WATERMARK_TEXT_PRESET="Preset"
|
||||
; ACF_GALLERY_WATERMARK_TEXT_PRESET_DESC="Select a preset for the watermark text."
|
||||
; ACF_GALLERY_SITE_NAME="Site Name"
|
||||
; ACF_GALLERY_SITE_URL="Site URL"
|
||||
; ACF_GALLERY_WATERMARK_TYPE="Type"
|
||||
; ACF_GALLERY_WATERMARK_TYPE_DESC="Select whether to use a text, an image as a watermark or disable the watermark.<br>The watermark will be applied on the image uploaded.<br><br>To enable the watermark on the thumbnails, enable \\\"Apply on Thumbnails\\\" setting below."
|
||||
; ACF_GALLERY_WATERMARK_TEXT_DESC="Enter the text to be used as a watermark. You can also use Smart Tags.<br><br>File Smart Tags:<br>{file.filename}: myfile<br>{file.basename}: myfile.png"
|
||||
; ACF_WATERMARK_TEXT_COLOR_DESC="Select the color of the watermark text."
|
||||
; ACF_WATERMARK_FONT_SIZE_DESC="Set the font size of the watermark text in pixels. The font size will be adjusted based on the image's width."
|
||||
; ACF_WATERMARK_IMAGE_DESC="Select the image to be used as a watermark. The image dimensions will be adjusted based on the image's width."
|
||||
; ACF_GALLERY_WATERMARK_POSITION="Position"
|
||||
; ACF_GALLERY_WATERMARK_POSITION_DESC="Select the position of the watermark."
|
||||
; ACF_WATERMARK_OPACITY="Opacity"
|
||||
; ACF_WATERMARK_OPACITY_DESC="Set the opacity of the watermark image."
|
||||
; ACF_WATERMARK_ROTATION="Rotation"
|
||||
; ACF_WATERMARK_ROTATION_DESC="Rotate the watermark image by entering the desired angle in degrees. Remember, the rotation will occur clockwise."
|
||||
; ACF_GALLERY_WATERMARK_APPLY_ON_THUMBNAILS="Apply on Thumbnails"
|
||||
; ACF_GALLERY_WATERMARK_APPLY_ON_THUMBNAILS_DESC="Select whether to apply the watermark on the thumbnails or not. When this is disabled, the watermark will be applied only on the original image."
|
||||
; ACF_GALLERY_FILTERING_TAGS="Filtering Tags"
|
||||
; ACF_GALLERY_TAGS_POSITION="Tags Position"
|
||||
; ACF_GALLERY_TAGS_POSITION_DESC="Select whether to disable the filtering tags, or show a list of tags above or below the gallery items. This will allow your users to filter the gallery items by tag."
|
||||
; ACF_GALLERY_ABOVE_GALLERY_ITEMS="Above Gallery Items"
|
||||
; ACF_GALLERY_BELOW_GALLERY_ITEMS="Below Gallery Items"
|
||||
; ACF_GALLERY_TAGS_SORT="Sort Tags"
|
||||
; ACF_GALLERY_TAGS_SORT_DESC="Select how the tags will be sorted."
|
||||
; ACF_GALLERY_ALL_TAGS_ITEM_LABEL="All Tags Label"
|
||||
; ACF_GALLERY_ALL_TAGS_ITEM_LABEL_DESC="Enter a label to add an \\\"All\\\" item at the start of the tags filter list, allowing you to view all gallery items. Leave this empty if you don't want to display an \\\"All\\\" item.<br><br>You can make this multilingual by setting it to a translation string."
|
||||
; ACF_GALLERY_TAGS_MOBILE="Tags on Mobile"
|
||||
; ACF_GALLERY_TAGS_MOBILE_DESC="Set whether to display the tags on mobile devices, make them appear as a dropdown or disable them."
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR="Text Color"
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR_DESC="Set the tags text color."
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR_HOVER="Text Color - Hover"
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR_HOVER_DESC="Set the text color when hovering over a tag item."
|
||||
; ACF_GALLERY_TAGS_BG_COLOR_HOVER="Background Color - Hover"
|
||||
; ACF_GALLERY_TAGS_BG_COLOR_HOVER_DESC="Set the background color when hovering over a tag item."
|
||||
; ACF_GALLERY_SHOW="Show"
|
||||
; ACF_GALLERY_SHOW_AS_DROPDOWN="Show as dropdown"
|
||||
@ -0,0 +1,127 @@
|
||||
; @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_ACFGALLERY_LABEL="ACF - Gallery"
|
||||
ACF_GALLERY="Fält - ACF Gallery"
|
||||
ACF_GALLERY_DESC="ACF Gallery Field låter dig lägga till snygga bildgallerier på din webbplats."
|
||||
ACF_GALLERY_VALUE_DESC="Lägg till nya eller välj bilder från Joomla Media Manager för att skapa ett galleri."
|
||||
ACF_GALLERY_UPLOAD_FOLDER="Uppladdningsmapp"
|
||||
ACF_GALLERY_UPLOAD_FOLDER_DESC="Välj mapp där de uppladdade bilderna till ditt galleri ska sparas.<br><br><strong>Observera:</strong> Du kan även använda smarta taggar."
|
||||
ACF_GALLERY_LIMIT_FILES="Filbegränsning"
|
||||
ACF_GALLERY_LIMIT_FILES_DESC="Hur många filer kan laddas upp? Ange 0 för ingen begränsning."
|
||||
ACF_GALLERY_MAX_FILE_SIZE="Filstorlek gräns"
|
||||
ACF_GALLERY_MAX_FILE_SIZE_DESC="Ange högsta tillåtna storlek för varje uppladdad fil i megabyte. Ange 0 för obegränsad. <br><br>Servern tillåter maxuppladdningsstorlek: <b>%s</b>."
|
||||
ACF_GALLERY_LIGHTBOX="Lightbox Popup"
|
||||
ACF_GALLERY_LIGHTBOX_DESC="Tillåt att klicka på en miniatyr och visa hela bilden i en lightbox popup."
|
||||
ACF_GALLERY_MODULE="Modul som bildtext"
|
||||
; ACF_GALLERY_MODULE_DESC="Select a module to be displayed below the image's caption in the lightbox popup."
|
||||
ACF_GALLERY_STYLE="Stil"
|
||||
; ACF_GALLERY_STYLE_DESC="Select how your gallery will look like on the front-end. Available styles:<br><br><strong>Grid</strong>: All items will have the same width and the same height as well. You can define the width and height of the items as well as the number of columns for this layout.<br><br><strong>Masonry</strong>: All items have the same width, but the height of each will be different. You can define the column's width as well as the number of columns for this layout<br><br><strong>Slideshow</strong>: This layout offers a dynamic carousel display with convenient thumbnail navigation for a captivating and interactive gallery experience.<br><br><strong>Justified</strong>: This layout is the opposite of the Masonry layout. All items will have the same height but different widths. You can define the target row height. It's called a target because row height is the lever we use to fit everything nicely. The algorithm will get as close to the target row height as possible."
|
||||
ACF_GALLERY_COLUMNS="Columns"
|
||||
ACF_GALLERY_COLUMNS_DESC="Ställ in hur många objekt som ska visas per rad på datorer, surfplattor eller mobila enheter."
|
||||
; ACF_GALLERY_GAP="Item Gap"
|
||||
ACF_GALLERY_GAP_DESC="Ställ in utrymmet mellan galleriobjekten på datorer, surfplattor eller mobila enheter."
|
||||
ACF_GALLERY_ORIGINAL_IMAGE="Optimera originalbild"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_RESIZE="Skala om originalbild"
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_RESIZE_DESC="Optimera originalbilden som laddats upp av användare för att öka laddningshastighet och frigöra lagringsutrymme. Det här är helskärmsbilden som användarna ser i lightbox popup-fönstret."
|
||||
ACF_GALLERY_ORIGINAL_IMAGE_WIDTH="Bredd"
|
||||
; ACF_GALLERY_ORIGINAL_IMAGE_WIDTH_DESC="Resize the image to a specified width. If the height setting is unavailable, the image will be resized by keeping the image's aspect ratio."
|
||||
; ACF_GALLERY_ORIGINAL_IMAGE_HEIGHT="Height"
|
||||
; ACF_GALLERY_ORIGINAL_IMAGE_HEIGHT_DESC="Resize the image to a specified height."
|
||||
; ACF_GALLERY_IMAGE_RESIZE="Image Resize"
|
||||
; ACF_GALLERY_IMAGE_RESIZE_DESC="Select the method that will be used to resize the thumbnails in the gallery. <br><br><b>Crop</b>: Some parts of the image might be removed in order to fit the given Width and Height. <br><br><b>Stretch</b>: The image will be stretched and squeezed as needed in order to fit the given Width and Height. <br><br><b>Fit</b>: Keep the original aspect ratio and fit the dimensions defined by the given Width and Height. This could make the thumbnails have empty space in either top and bottom or left and right parts of the image."
|
||||
ACF_GALLERY_CROP="Beskär"
|
||||
ACF_GALLERY_STRETCH="Sträck ut"
|
||||
ACF_GALLERY_FIT="Passa in"
|
||||
ACF_GALLERY_THUMB_WIDTH_DESC="Ställ in bredden för miniatyrerna i pixlar."
|
||||
; ACF_GALLERY_THUMB_HEIGHT_DESC="Set the height for your thumbnails in pixels."
|
||||
; ACF_GALLERY_SLIDESHOW_THUMB_HEIGHT_DESC="Set the height for your thumbnails in pixels. If set to 0 (or empty), then the thumbnail will be generated by also keeping the aspect ratio."
|
||||
; ACF_GALLERY_IMAGE_QUALITY="Image Quality"
|
||||
; ACF_GALLERY_IMAGE_QUALITY_DESC="Choose the quality for the thumbnails. The quality is a value that ranges between 1 and 100. The higher the quality is, the higher the image size of the thumbnails will be."
|
||||
ACF_GALLERY_FOLDER_TYPE="Uppladdningsmapp"
|
||||
; ACF_GALLERY_FOLDER_TYPE_DESC="Specify a destination folder for uploaded images.<br><br><b>Auto</b>: The images will be uploaded to the following directory: /media/acfgallery/com_COMPONENT/ITEM_ID/%s.<br><br>Note:<br><strong>COMPONENT</strong> is the component name (i.e. content, users, etc...) where this field got populated from.<br><strong>ITEM_ID</strong> is the ID of the item this field was populated from. i.e. a Joomla article ID, User ID, Contact ID, etc...<br><br>Additionally a random prefix will be added in the beginning of each file name to increase security.<br><br><b>Custom</b>: Specify a custom destination folder where the images will be stored.<br><br>Available Smart Tags:<br><strong>{field.field_id}</strong>: The custom field ID.<br><strong>{field.item_id}</strong>: the ID of the item this field was populated from. i.e. a Joomla article ID, User ID, Contact ID, etc...<br><strong>{field.item_alias}</strong>: the alias of the item this field was populated from.<br><strong>{field.item_author_id}</strong>: The alias of the associated item author.<br><strong>{field.item_catid}</strong>: The category ID of the associated item.<br><strong>{field.item_catalias}</strong>: The category alias of the associated item."
|
||||
ACF_GALLERY_ORDERING="Sortering"
|
||||
ACF_GALLERY_ORDERING_DESC="Välj hur objekten i galleriet ska sorteras.<br><br><strong>Standard</strong>: Visar objekten i galleriet i samma ordning som de har angivits iGallerihanteraren (Tillåter omsortering).<br><strong>Alfabetisk</strong>: Visar objekten i galleriet i alfabetisk ordning baserat på filnamn.<br><strong>Omvänd alfabetisk</strong>: Visar objekten i galleriet i omvänd alfabetisk ordning baserat på fil namn.<br><strong>Slumpvis</strong>: Visar objekten i galleriet i slumpvis ordning."
|
||||
ACF_GALLERY_DEFAULT="Standard"
|
||||
ACF_GALLERY_ALPHABETICAL="Alfabetisk"
|
||||
ACF_GALLERY_REVERSE_ALPHABETICAL="Omvänd alfabetisk"
|
||||
ACF_GALLERY_RANDOM="Slumpmässig"
|
||||
; ACF_GALLERY_JUSTIFIED_ITEM_HEIGHT_DESC="Set the height of the thumbnail, and the approximate height of each gallery item."
|
||||
; ACF_GALLERY_ITEM_WIDTH="Item Width"
|
||||
; ACF_GALLERY_ITEM_HEIGHT="Item Height"
|
||||
; ACF_GALLERY_ROW_TARGET_HEIGHT="Row Target Height"
|
||||
; ACF_GALLERY_SLIDESHOW="Slideshow"
|
||||
; ACF_GALLERY_SLIDES_PER_VIEW="Slides Per View"
|
||||
; ACF_GALLERY_SLIDES_PER_VIEW_DESC="Set how many slides to display at the same time.<br><br>Examples:<br>To show 1 slide, enter: 1<br>To show 1 and a half slide, enter: 1.5<br>To show 2 slides, enter: 2"
|
||||
; ACF_GALLERY_SPACE_BETWEEN_SLIDES="Space Between Slides"
|
||||
; ACF_GALLERY_SPACE_BETWEEN_SLIDES_DESC="Define the distance between slides in pixels."
|
||||
; ACF_GALLERY_INFINITE_LOOP="Infinite Loop"
|
||||
; ACF_GALLERY_INFINITE_LOOP_DESC="Enabling this setting allows the last slide to seamlessly loop back to the first."
|
||||
; ACF_GALLERY_KEYBOARD_CONTROL="Keyboard Control"
|
||||
; ACF_GALLERY_KEYBOARD_CONTROL_DESC="Enabling this setting allows you to control the slides using the keyboard arrows."
|
||||
; ACF_GALLERY_AUTOPLAY="Autoplay"
|
||||
; ACF_GALLERY_AUTOPLAY_DESC="Enabling this setting will make the slideshow autoplay."
|
||||
; ACF_GALLERY_AUTOPLAY_PROGRESS="Autoplay Progress"
|
||||
; ACF_GALLERY_AUTOPLAY_PROGRESS_DESC="Enabling this setting will display a circular progress bar on the bottom-right hand side of each slider indicating how long till the next slide will appear."
|
||||
; ACF_GALLERY_SHOW_THUMBNAILS_DESC="Enabling this setting will display thumbnails below the slideshow, allowing you to view any slide you desire."
|
||||
; ACF_GALLERY_THUMBNAILS_ARROWS="Navigation Arrows"
|
||||
; ACF_GALLERY_THUMBNAILS_ARROWS_DESC="Set whether to show navigation arrows in the thumbnails slider."
|
||||
; ACF_GALLERY_NAV_CONTROLS="Navigation Controls"
|
||||
; ACF_GALLERY_NAV_CONTROLS_DESC="Select the type of navigation controls.<br><br><strong>Arrows:</strong> Displays previous and next arrows on top of the slideshow.<br><strong>Dots:</strong> Display dots below the slideshow, allowing you to choose a slide.<br><strong>Arrows + Dots:</strong> Display both arrows and dots pagination."
|
||||
; ACF_GALLERY_ARROWS="Arrows"
|
||||
; ACF_GALLERY_DOTS="Dots"
|
||||
; ACF_GALLERY_ARROWS_DOTS="Arrows + Dots"
|
||||
; ACF_GALLERY_SLIDESHOW_THEME_COLOR="Theme Color"
|
||||
; ACF_GALLERY_SLIDESHOW_THEME_COLOR_DESC="Define the theme color."
|
||||
; ACF_GALLERY_AUTOPLAY_DELAY="Autoplay Delay"
|
||||
; ACF_GALLERY_AUTOPLAY_DELAY_DESC="Set the autoplay delay until the next slide appears, in milliseconds."
|
||||
; ACF_GALLERY_TRANSITION_EFFECT="Transition Effect"
|
||||
; ACF_GALLERY_TRANSITION_EFFECT_DESC="Select the transition effect between slides.<br><br>Note: If Slides Per View is >= 2, then the Slide effect will be always used automatically."
|
||||
; ACF_GALLERY_SLIDE="Slide"
|
||||
; ACF_GALLERY_FADE="Fade"
|
||||
; ACF_GALLERY_CUBE="Cube"
|
||||
; ACF_GALLERY_COVERFLOW="Coverflow"
|
||||
; ACF_GALLERY_FLIP="Flip"
|
||||
ACF_GALLERY_THUMBNAILS="Miniatyrer"
|
||||
; ACF_GALLERY_WATERMARK_IMAGES="Watermark Images"
|
||||
; ACF_GALLERY_WATERMARK_TEXT_PRESET="Preset"
|
||||
; ACF_GALLERY_WATERMARK_TEXT_PRESET_DESC="Select a preset for the watermark text."
|
||||
; ACF_GALLERY_SITE_NAME="Site Name"
|
||||
; ACF_GALLERY_SITE_URL="Site URL"
|
||||
; ACF_GALLERY_WATERMARK_TYPE="Type"
|
||||
; ACF_GALLERY_WATERMARK_TYPE_DESC="Select whether to use a text, an image as a watermark or disable the watermark.<br>The watermark will be applied on the image uploaded.<br><br>To enable the watermark on the thumbnails, enable \\\"Apply on Thumbnails\\\" setting below."
|
||||
; ACF_GALLERY_WATERMARK_TEXT_DESC="Enter the text to be used as a watermark. You can also use Smart Tags.<br><br>File Smart Tags:<br>{file.filename}: myfile<br>{file.basename}: myfile.png"
|
||||
; ACF_WATERMARK_TEXT_COLOR_DESC="Select the color of the watermark text."
|
||||
; ACF_WATERMARK_FONT_SIZE_DESC="Set the font size of the watermark text in pixels. The font size will be adjusted based on the image's width."
|
||||
; ACF_WATERMARK_IMAGE_DESC="Select the image to be used as a watermark. The image dimensions will be adjusted based on the image's width."
|
||||
; ACF_GALLERY_WATERMARK_POSITION="Position"
|
||||
; ACF_GALLERY_WATERMARK_POSITION_DESC="Select the position of the watermark."
|
||||
; ACF_WATERMARK_OPACITY="Opacity"
|
||||
; ACF_WATERMARK_OPACITY_DESC="Set the opacity of the watermark image."
|
||||
; ACF_WATERMARK_ROTATION="Rotation"
|
||||
; ACF_WATERMARK_ROTATION_DESC="Rotate the watermark image by entering the desired angle in degrees. Remember, the rotation will occur clockwise."
|
||||
; ACF_GALLERY_WATERMARK_APPLY_ON_THUMBNAILS="Apply on Thumbnails"
|
||||
; ACF_GALLERY_WATERMARK_APPLY_ON_THUMBNAILS_DESC="Select whether to apply the watermark on the thumbnails or not. When this is disabled, the watermark will be applied only on the original image."
|
||||
; ACF_GALLERY_FILTERING_TAGS="Filtering Tags"
|
||||
; ACF_GALLERY_TAGS_POSITION="Tags Position"
|
||||
; ACF_GALLERY_TAGS_POSITION_DESC="Select whether to disable the filtering tags, or show a list of tags above or below the gallery items. This will allow your users to filter the gallery items by tag."
|
||||
; ACF_GALLERY_ABOVE_GALLERY_ITEMS="Above Gallery Items"
|
||||
; ACF_GALLERY_BELOW_GALLERY_ITEMS="Below Gallery Items"
|
||||
; ACF_GALLERY_TAGS_SORT="Sort Tags"
|
||||
; ACF_GALLERY_TAGS_SORT_DESC="Select how the tags will be sorted."
|
||||
; ACF_GALLERY_ALL_TAGS_ITEM_LABEL="All Tags Label"
|
||||
; ACF_GALLERY_ALL_TAGS_ITEM_LABEL_DESC="Enter a label to add an \\\"All\\\" item at the start of the tags filter list, allowing you to view all gallery items. Leave this empty if you don't want to display an \\\"All\\\" item.<br><br>You can make this multilingual by setting it to a translation string."
|
||||
; ACF_GALLERY_TAGS_MOBILE="Tags on Mobile"
|
||||
; ACF_GALLERY_TAGS_MOBILE_DESC="Set whether to display the tags on mobile devices, make them appear as a dropdown or disable them."
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR="Text Color"
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR_DESC="Set the tags text color."
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR_HOVER="Text Color - Hover"
|
||||
; ACF_GALLERY_TAGS_TEXT_COLOR_HOVER_DESC="Set the text color when hovering over a tag item."
|
||||
; ACF_GALLERY_TAGS_BG_COLOR_HOVER="Background Color - Hover"
|
||||
; ACF_GALLERY_TAGS_BG_COLOR_HOVER_DESC="Set the background color when hovering over a tag item."
|
||||
; ACF_GALLERY_SHOW="Show"
|
||||
; ACF_GALLERY_SHOW_AS_DROPDOWN="Show as dropdown"
|
||||
469
plugins/fields/acfgallery/params/acfgallery.xml
Normal file
469
plugins/fields/acfgallery/params/acfgallery.xml
Normal file
@ -0,0 +1,469 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<form>
|
||||
<fields name="fieldparams">
|
||||
<fieldset name="fieldparams">
|
||||
<field type="spacer" name="label"
|
||||
label="NR_UPLOAD_SETTINGS"
|
||||
class="acf"
|
||||
/>
|
||||
<field name="upload_folder_type" type="radio"
|
||||
label="ACF_GALLERY_FOLDER_TYPE"
|
||||
description="ACF_GALLERY_FOLDER_TYPE_DESC"
|
||||
class="btn-group btn-group-yesno"
|
||||
default="auto">
|
||||
<option value="auto">NR_AUTO</option>
|
||||
<option value="custom">NR_CUSTOM</option>
|
||||
</field>
|
||||
<field name="upload_folder" type="text"
|
||||
label="ACF_GALLERY_UPLOAD_FOLDER"
|
||||
description="ACF_GALLERY_UPLOAD_FOLDER_DESC"
|
||||
hint="media/acfgallery"
|
||||
default="media/acfgallery"
|
||||
showon="upload_folder_type:custom"
|
||||
/>
|
||||
<field name="limit_files" type="number"
|
||||
label="ACF_GALLERY_LIMIT_FILES"
|
||||
description="ACF_GALLERY_LIMIT_FILES_DESC"
|
||||
class="input-small"
|
||||
default="0"
|
||||
hint="0"
|
||||
min="0"
|
||||
/>
|
||||
<field name="max_file_size" type="nrnumber"
|
||||
label="ACF_GALLERY_MAX_FILE_SIZE"
|
||||
description="ACF_GALLERY_MAX_FILE_SIZE_DESC"
|
||||
class="input-small"
|
||||
addon="MB"
|
||||
min="0"
|
||||
default="0"
|
||||
hint="0"
|
||||
/>
|
||||
<field type="spacer" name="label2"
|
||||
label="NR_THEME"
|
||||
class="acf"
|
||||
/>
|
||||
<field name="style" type="NRImagesSelector"
|
||||
images="/media/plg_fields_acfgallery/img"
|
||||
class="acf-gallery-slideshow-preset-selector"
|
||||
width="600px"
|
||||
columns="4"
|
||||
key_type="filename"
|
||||
label="ACF_GALLERY_STYLE"
|
||||
description="ACF_GALLERY_STYLE_DESC"
|
||||
default="grid"
|
||||
/>
|
||||
<field name="devices_columns" type="NRResponsiveControl"
|
||||
label="ACF_GALLERY_COLUMNS"
|
||||
description="ACF_GALLERY_COLUMNS_DESC"
|
||||
showon="style:grid,masonry">
|
||||
<subform>
|
||||
<field name="columns" type="number"
|
||||
class="input-small"
|
||||
default="3"
|
||||
hint="3"
|
||||
min="1"
|
||||
max="6" />
|
||||
</subform>
|
||||
</field>
|
||||
<field name="devices_gap" type="NRResponsiveControl"
|
||||
label="ACF_GALLERY_GAP"
|
||||
description="ACF_GALLERY_GAP_DESC"
|
||||
showon="style!:slideshow">
|
||||
<subform>
|
||||
<field name="gap" type="nrnumber"
|
||||
class="input-small"
|
||||
default="10"
|
||||
hint="10"
|
||||
addon="px" />
|
||||
</subform>
|
||||
</field>
|
||||
<field name="justified_item_height" type="nrnumber"
|
||||
label="ACF_GALLERY_ROW_TARGET_HEIGHT"
|
||||
description="ACF_GALLERY_JUSTIFIED_ITEM_HEIGHT_DESC"
|
||||
addon="px"
|
||||
min="1"
|
||||
hint="200"
|
||||
class="input-small"
|
||||
showon="style:zjustified"
|
||||
/>
|
||||
<field name="ordering" type="list"
|
||||
label="ACF_GALLERY_ORDERING"
|
||||
description="ACF_GALLERY_ORDERING_DESC"
|
||||
default="default">
|
||||
<option value="default">ACF_GALLERY_DEFAULT</option>
|
||||
<option value="alphabetical">ACF_GALLERY_ALPHABETICAL</option>
|
||||
<option value="reverse_alphabetical">ACF_GALLERY_REVERSE_ALPHABETICAL</option>
|
||||
<option value="random">ACF_GALLERY_RANDOM</option>
|
||||
</field>
|
||||
<field type="spacer" name="label3"
|
||||
label="ACF_GALLERY_SLIDESHOW"
|
||||
class="acf"
|
||||
showon="style:slideshow"
|
||||
/>
|
||||
<field name="slides_per_view" type="NRResponsiveControl"
|
||||
class="is-one-line"
|
||||
label="ACF_GALLERY_SLIDES_PER_VIEW"
|
||||
description="ACF_GALLERY_SLIDES_PER_VIEW_DESC"
|
||||
default='{"desktop":{"value":"1"}}'
|
||||
subtype="NRNumber"
|
||||
subtype_min="1"
|
||||
subtype_hint="1"
|
||||
showon="style:slideshow"
|
||||
/>
|
||||
<field name="space_between_slides" type="NRResponsiveControl"
|
||||
class="is-one-line"
|
||||
label="ACF_GALLERY_SPACE_BETWEEN_SLIDES"
|
||||
description="ACF_GALLERY_SPACE_BETWEEN_SLIDES_DESC"
|
||||
default='{"desktop":{"value":"0"}}'
|
||||
subtype="TFUnitControl"
|
||||
subtype_min="0"
|
||||
subtype_max="999"
|
||||
subtype_hint="10"
|
||||
subtype_units="px,em,rem,%"
|
||||
showon="style:slideshow[AND]slides_per_view{breakpoint}!:1"
|
||||
/>
|
||||
<field name="nav_controls" type="list"
|
||||
label="ACF_GALLERY_NAV_CONTROLS"
|
||||
description="ACF_GALLERY_NAV_CONTROLS_DESC"
|
||||
class="btn-group btn-group-yesno"
|
||||
showon="style:slideshow"
|
||||
default="arrows">
|
||||
<option value="none">JDISABLED</option>
|
||||
<option value="arrows">ACF_GALLERY_ARROWS</option>
|
||||
<option value="dots">ACF_GALLERY_DOTS</option>
|
||||
<option value="arrows_dots">ACF_GALLERY_ARROWS_DOTS</option>
|
||||
</field>
|
||||
<field name="transition_effect" type="list"
|
||||
label="ACF_GALLERY_TRANSITION_EFFECT"
|
||||
description="ACF_GALLERY_TRANSITION_EFFECT_DESC"
|
||||
class="btn-group btn-group-yesno"
|
||||
showon="style:slideshow"
|
||||
default="slide">
|
||||
<option value="slide">ACF_GALLERY_SLIDE</option>
|
||||
<option value="fade">ACF_GALLERY_FADE</option>
|
||||
<option value="cube">ACF_GALLERY_CUBE</option>
|
||||
<option value="coverflow">ACF_GALLERY_COVERFLOW</option>
|
||||
<option value="flip">ACF_GALLERY_FLIP</option>
|
||||
</field>
|
||||
<field name="theme_color" type="color"
|
||||
label="ACF_GALLERY_SLIDESHOW_THEME_COLOR"
|
||||
description="ACF_GALLERY_SLIDESHOW_THEME_COLOR_DESC"
|
||||
default="#fff"
|
||||
showon="style:slideshow"
|
||||
/>
|
||||
<field name="autoplay" type="NRToggle"
|
||||
label="ACF_GALLERY_AUTOPLAY"
|
||||
description="ACF_GALLERY_AUTOPLAY_DESC"
|
||||
showon="style:slideshow"
|
||||
/>
|
||||
<field name="autoplay_delay" type="nrnumber"
|
||||
label="ACF_GALLERY_AUTOPLAY_DELAY"
|
||||
description="ACF_GALLERY_AUTOPLAY_DELAY_DESC"
|
||||
min="0"
|
||||
default="3000"
|
||||
hint="3000"
|
||||
addon="ms"
|
||||
class="input-small"
|
||||
showon="style:slideshow[AND]autoplay:1"
|
||||
/>
|
||||
<field name="autoplay_progress" type="NRToggle"
|
||||
label="ACF_GALLERY_AUTOPLAY_PROGRESS"
|
||||
description="ACF_GALLERY_AUTOPLAY_PROGRESS_DESC"
|
||||
showon="style:slideshow[AND]autoplay:1"
|
||||
/>
|
||||
<field name="infinite_loop" type="NRToggle"
|
||||
label="ACF_GALLERY_INFINITE_LOOP"
|
||||
description="ACF_GALLERY_INFINITE_LOOP_DESC"
|
||||
showon="style:slideshow"
|
||||
/>
|
||||
<field name="keyboard_control" type="NRToggle"
|
||||
label="ACF_GALLERY_KEYBOARD_CONTROL"
|
||||
description="ACF_GALLERY_KEYBOARD_CONTROL_DESC"
|
||||
showon="style:slideshow"
|
||||
/>
|
||||
|
||||
<field type="spacer" name="label_orginial_image"
|
||||
label="ACF_GALLERY_ORIGINAL_IMAGE"
|
||||
class="acf"
|
||||
/>
|
||||
<field name="original_image_resize" type="NRToggle"
|
||||
label="JENABLED"
|
||||
description="ACF_GALLERY_ORIGINAL_IMAGE_RESIZE_DESC"
|
||||
class="btn-group btn-group-yesno"
|
||||
default="0"
|
||||
showon="style!:slideshow"
|
||||
/>
|
||||
<field name="original_image_resize_width" type="nrnumber"
|
||||
label="ACF_GALLERY_ORIGINAL_IMAGE_WIDTH"
|
||||
description="ACF_GALLERY_ORIGINAL_IMAGE_WIDTH_DESC"
|
||||
required="true"
|
||||
addon="px"
|
||||
hint="1920"
|
||||
default="1920"
|
||||
class="input-small"
|
||||
showon="original_image_resize:1[OR]style:slideshow"
|
||||
/>
|
||||
<field name="original_image_resize_height" type="nrnumber"
|
||||
label="ACF_GALLERY_ORIGINAL_IMAGE_HEIGHT"
|
||||
description="ACF_GALLERY_ORIGINAL_IMAGE_HEIGHT_DESC"
|
||||
addon="px"
|
||||
hint="1080"
|
||||
class="input-small"
|
||||
showon="style:slideshow"
|
||||
/>
|
||||
|
||||
<field type="spacer" name="label_thumbnails"
|
||||
label="ACF_GALLERY_THUMBNAILS"
|
||||
class="acf"
|
||||
showon="style:grid,masonry,slideshow"
|
||||
/>
|
||||
<field name="show_thumbnails" type="NRToggle"
|
||||
label="JENABLED"
|
||||
description="ACF_GALLERY_SHOW_THUMBNAILS_DESC"
|
||||
showon="style:slideshow"
|
||||
/>
|
||||
<field name="show_thumbnails_arrows" type="NRToggle"
|
||||
label="ACF_GALLERY_THUMBNAILS_ARROWS"
|
||||
description="ACF_GALLERY_THUMBNAILS_ARROWS_DESC"
|
||||
showon="style:slideshow[AND]show_thumbnails:1"
|
||||
/>
|
||||
<field name="thumb_width" type="nrnumber"
|
||||
label="ACF_GALLERY_ITEM_WIDTH"
|
||||
description="ACF_GALLERY_THUMB_WIDTH_DESC"
|
||||
addon="px"
|
||||
min="1"
|
||||
hint="300"
|
||||
default="300"
|
||||
class="input-small"
|
||||
showon="style:grid,masonry"
|
||||
/>
|
||||
<field name="thumb_height" type="nrnumber"
|
||||
label="ACF_GALLERY_ITEM_HEIGHT"
|
||||
description="ACF_GALLERY_THUMB_HEIGHT_DESC"
|
||||
addon="px"
|
||||
min="1"
|
||||
hint="300"
|
||||
default="300"
|
||||
class="input-small"
|
||||
showon="style:grid"
|
||||
/>
|
||||
<field name="slideshow_thumb_width" type="nrnumber"
|
||||
label="ACF_GALLERY_ITEM_WIDTH"
|
||||
description="ACF_GALLERY_THUMB_WIDTH_DESC"
|
||||
addon="px"
|
||||
min="1"
|
||||
hint="300"
|
||||
default="300"
|
||||
class="input-small"
|
||||
showon="style:slideshow[AND]show_thumbnails:1"
|
||||
/>
|
||||
<field name="slideshow_thumb_height" type="nrnumber"
|
||||
label="ACF_GALLERY_ITEM_HEIGHT"
|
||||
description="ACF_GALLERY_SLIDESHOW_THUMB_HEIGHT_DESC"
|
||||
addon="px"
|
||||
min="1"
|
||||
hint="300"
|
||||
default=""
|
||||
class="input-small"
|
||||
showon="style:slideshow[AND]show_thumbnails:1"
|
||||
/>
|
||||
<field name="resize_method" type="radio"
|
||||
label="ACF_GALLERY_IMAGE_RESIZE"
|
||||
description="ACF_GALLERY_IMAGE_RESIZE_DESC"
|
||||
class="btn-group btn-group-yesno"
|
||||
showon="style:grid"
|
||||
default="crop">
|
||||
<option value="crop">ACF_GALLERY_CROP</option>
|
||||
<option value="stretch">ACF_GALLERY_STRETCH</option>
|
||||
<option value="fit">ACF_GALLERY_FIT</option>
|
||||
</field>
|
||||
<field name="slideshow_resize_method" type="radio"
|
||||
label="ACF_GALLERY_IMAGE_RESIZE"
|
||||
description="ACF_GALLERY_IMAGE_RESIZE_DESC"
|
||||
class="btn-group btn-group-yesno"
|
||||
showon="style:slideshow[AND]show_thumbnails:1"
|
||||
default="crop">
|
||||
<option value="crop">ACF_GALLERY_CROP</option>
|
||||
<option value="stretch">ACF_GALLERY_STRETCH</option>
|
||||
<option value="fit">ACF_GALLERY_FIT</option>
|
||||
</field>
|
||||
|
||||
<field type="spacer" name="label4"
|
||||
label="ACF_GALLERY_LIGHTBOX"
|
||||
class="acf"
|
||||
/>
|
||||
<field name="lightbox" type="NRToggle"
|
||||
label="JENABLED"
|
||||
description="ACF_GALLERY_LIGHTBOX_DESC"
|
||||
checked="true"
|
||||
showon="style!:slideshow"
|
||||
/>
|
||||
<field name="slideshow_lightbox" type="NRToggle"
|
||||
label="JENABLED"
|
||||
description="ACF_GALLERY_LIGHTBOX_DESC"
|
||||
showon="style:slideshow"
|
||||
/>
|
||||
<field name="module" type="NRModules"
|
||||
label="ACF_GALLERY_MODULE"
|
||||
description="ACF_GALLERY_MODULE_DESC"
|
||||
showon="style!:slideshow[AND]lightbox:1"
|
||||
default="">
|
||||
</field>
|
||||
<field name="slideshow_module" type="NRModules"
|
||||
label="ACF_GALLERY_MODULE"
|
||||
description="ACF_GALLERY_MODULE_DESC"
|
||||
showon="style:slideshow[AND]slideshow_lightbox:1"
|
||||
default="">
|
||||
</field>
|
||||
|
||||
<field type="spacer" name="watermark_label"
|
||||
label="ACF_GALLERY_WATERMARK_IMAGES"
|
||||
class="acf"
|
||||
/>
|
||||
<fields name="watermark">
|
||||
<field name="type" type="radio"
|
||||
label="NR_TYPE"
|
||||
description="ACF_GALLERY_WATERMARK_TYPE_DESC"
|
||||
class="btn-group btn-group-yesno"
|
||||
default="disabled">
|
||||
<option value="disabled">JDISABLED</option>
|
||||
<option value="text">NR_TEXT</option>
|
||||
<option value="image">NR_IMAGE</option>
|
||||
</field>
|
||||
<field name="text_preset" type="list"
|
||||
label="ACF_GALLERY_WATERMARK_TEXT_PRESET"
|
||||
description="ACF_GALLERY_WATERMARK_TEXT_PRESET_DESC"
|
||||
showon="type:text"
|
||||
default="site_name">
|
||||
<option value="site_name">ACF_GALLERY_SITE_NAME</option>
|
||||
<option value="site_url">ACF_GALLERY_SITE_URL</option>
|
||||
<option value="custom">NR_CUSTOM</option>
|
||||
</field>
|
||||
<field name="text" type="text"
|
||||
label="NR_TEXT"
|
||||
description="ACF_GALLERY_WATERMARK_TEXT_DESC"
|
||||
showon="type:text[AND]text_preset:custom"
|
||||
/>
|
||||
<field name="color" type="color"
|
||||
label="NR_COLOR"
|
||||
description="ACF_WATERMARK_TEXT_COLOR_DESC"
|
||||
position="bottom"
|
||||
default="#fff"
|
||||
showon="type:text"
|
||||
/>
|
||||
<field name="size" type="nrrangeslider"
|
||||
class="tf-mw-500"
|
||||
label="NR_FONT_SIZE"
|
||||
description="ACF_WATERMARK_FONT_SIZE_DESC"
|
||||
min="1"
|
||||
max="120"
|
||||
default="30"
|
||||
showon="type:text"
|
||||
/>
|
||||
<field name="image" type="media"
|
||||
label="NR_IMAGE"
|
||||
description="ACF_WATERMARK_IMAGE_DESC"
|
||||
showon="type:image"
|
||||
/>
|
||||
<field name="position" type="list"
|
||||
label="ACF_GALLERY_WATERMARK_POSITION"
|
||||
description="ACF_GALLERY_WATERMARK_POSITION_DESC"
|
||||
showon="type!:disabled"
|
||||
default="bottom-right">
|
||||
<option value="top-left">NR_TOP_LEFT</option>
|
||||
<option value="top-center">NR_TOP_CENTER</option>
|
||||
<option value="top-right">NR_TOP_RIGHT</option>
|
||||
<option value="center-left">NR_MIDDLE_LEFT</option>
|
||||
<option value="center-center">NR_CENTER</option>
|
||||
<option value="center-right">NR_MIDDLE_RIGHT</option>
|
||||
<option value="bottom-left">NR_BOTTOM_LEFT</option>
|
||||
<option value="bottom-center">NR_BOTTOM_CENTER</option>
|
||||
<option value="bottom-right">NR_BOTTOM_RIGHT</option>
|
||||
</field>
|
||||
<field name="opacity" type="nrrangeslider"
|
||||
class="tf-mw-500"
|
||||
label="ACF_WATERMARK_OPACITY"
|
||||
description="ACF_WATERMARK_OPACITY_DESC"
|
||||
min="0"
|
||||
max="100"
|
||||
default="50"
|
||||
showon="type!:disabled"
|
||||
/>
|
||||
<field name="angle" type="nrrangeslider"
|
||||
class="tf-mw-500"
|
||||
label="ACF_WATERMARK_ROTATION"
|
||||
description="ACF_WATERMARK_ROTATION_DESC"
|
||||
min="-360"
|
||||
max="360"
|
||||
default="0"
|
||||
showon="type!:disabled"
|
||||
/>
|
||||
<field name="apply_on_thumbnails" type="NRToggle"
|
||||
label="ACF_GALLERY_WATERMARK_APPLY_ON_THUMBNAILS"
|
||||
description="ACF_GALLERY_WATERMARK_APPLY_ON_THUMBNAILS_DESC"
|
||||
showon="type!:disabled"
|
||||
/>
|
||||
</fields>
|
||||
|
||||
<field type="spacer" name="tags_label"
|
||||
label="ACF_GALLERY_FILTERING_TAGS"
|
||||
class="acf"
|
||||
/>
|
||||
<fields name="tags">
|
||||
<field name="position" type="list"
|
||||
label="ACF_GALLERY_FILTERING_TAGS"
|
||||
description="ACF_GALLERY_TAGS_POSITION_DESC"
|
||||
default="disabled">
|
||||
<option value="above">ACF_GALLERY_ABOVE_GALLERY_ITEMS</option>
|
||||
<option value="below">ACF_GALLERY_BELOW_GALLERY_ITEMS</option>
|
||||
<option value="disabled">JDISABLED</option>
|
||||
</field>
|
||||
<field name="ordering" type="list"
|
||||
label="ACF_GALLERY_TAGS_SORT"
|
||||
description="ACF_GALLERY_TAGS_SORT_DESC"
|
||||
default="default"
|
||||
showon="position!:disabled">
|
||||
<option value="default">ACF_GALLERY_DEFAULT</option>
|
||||
<option value="alphabetical">ACF_GALLERY_ALPHABETICAL</option>
|
||||
<option value="reverse_alphabetical">ACF_GALLERY_REVERSE_ALPHABETICAL</option>
|
||||
<option value="random">ACF_GALLERY_RANDOM</option>
|
||||
</field>
|
||||
<field name="all_tags_item_label" type="text"
|
||||
label="ACF_GALLERY_ALL_TAGS_ITEM_LABEL"
|
||||
description="ACF_GALLERY_ALL_TAGS_ITEM_LABEL_DESC"
|
||||
default="All"
|
||||
showon="position!:disabled"
|
||||
/>
|
||||
<field name="mobile" type="list"
|
||||
label="ACF_GALLERY_TAGS_MOBILE"
|
||||
description="ACF_GALLERY_TAGS_MOBILE_DESC"
|
||||
default="show"
|
||||
showon="position!:disabled"
|
||||
>
|
||||
<option value="show">ACF_GALLERY_SHOW</option>
|
||||
<option value="dropdown">ACF_GALLERY_SHOW_AS_DROPDOWN</option>
|
||||
<option value="disabled">JDISABLED</option>
|
||||
</field>
|
||||
<field name="text_color" type="color"
|
||||
label="ACF_GALLERY_TAGS_TEXT_COLOR"
|
||||
description="ACF_GALLERY_TAGS_TEXT_COLOR_DESC"
|
||||
default="#555"
|
||||
showon="position!:disabled"
|
||||
/>
|
||||
<field name="text_color_hover" type="color"
|
||||
label="ACF_GALLERY_TAGS_TEXT_COLOR_HOVER"
|
||||
description="ACF_GALLERY_TAGS_TEXT_COLOR_HOVER_DESC"
|
||||
default="#fff"
|
||||
showon="position!:disabled"
|
||||
/>
|
||||
<field name="bg_color_hover" type="color"
|
||||
label="ACF_GALLERY_TAGS_BG_COLOR_HOVER"
|
||||
description="ACF_GALLERY_TAGS_BG_COLOR_HOVER_DESC"
|
||||
default="#1E3148"
|
||||
showon="position!:disabled"
|
||||
/>
|
||||
</fields>
|
||||
</fieldset>
|
||||
</fields>
|
||||
</form>
|
||||
|
||||
691
plugins/fields/acfgallery/script.install.helper.php
Normal file
691
plugins/fields/acfgallery/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 PlgFieldsAcfgalleryInstallerScriptHelper
|
||||
{
|
||||
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/acfgallery/script.install.php
Normal file
23
plugins/fields/acfgallery/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 PlgFieldsACFGalleryInstallerScript extends PlgFieldsACFGalleryInstallerScriptHelper
|
||||
{
|
||||
public $alias = 'acfgallery';
|
||||
public $extension_type = 'plugin';
|
||||
public $plugin_folder = "fields";
|
||||
public $show_message = false;
|
||||
}
|
||||
83
plugins/fields/acfgallery/tmpl/acfgallery.php
Normal file
83
plugins/fields/acfgallery/tmpl/acfgallery.php
Normal file
@ -0,0 +1,83 @@
|
||||
<?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 (!$gallery_data = $field->value)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
require_once JPATH_SITE . '/plugins/fields/acfgallery/fields/helper.php';
|
||||
|
||||
if (is_string($gallery_data) && !$gallery_data = json_decode($gallery_data, true))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$gallery_items = isset($gallery_data['items']) ? $gallery_data['items'] : [];
|
||||
|
||||
$style = $fieldParams->get('style', 'grid');
|
||||
$style = ACFGalleryHelper::getStyle($style);
|
||||
|
||||
$payload = [
|
||||
'items' => ACFGalleryHelper::prepareItems($gallery_items),
|
||||
'ordering' => $fieldParams->get('ordering', 'default'),
|
||||
'lightbox' => $fieldParams->get('lightbox', '0') === '1',
|
||||
'module' => $fieldParams->get('module', ''),
|
||||
'justified_item_height' => $fieldParams->get('justified_item_height'),
|
||||
'thumb_width' => $fieldParams->get('thumb_width', ''),
|
||||
'thumb_height' => $style === 'grid.svg' ? $fieldParams->get('thumb_height', '0') : null,
|
||||
'style' => $style,
|
||||
'columns' => $fieldParams->get('devices_columns.columns', []),
|
||||
'gap' => $fieldParams->get('devices_gap.gap', []),
|
||||
// tags
|
||||
'tags_position' => $fieldParams->get('tags.position', 'disabled'),
|
||||
'tags_ordering' => $fieldParams->get('tags.ordering', 'default'),
|
||||
'all_tags_item_label' => $fieldParams->get('tags.all_tags_item_label', 'All'),
|
||||
'tags_mobile' => $fieldParams->get('tags.mobile', 'show'),
|
||||
'tags_text_color' => $fieldParams->get('tags.text_color', '#555'),
|
||||
'tags_text_color_hover' => $fieldParams->get('tags.text_color_hover', '#fff'),
|
||||
'tags_bg_color_hover' => $fieldParams->get('tags.bg_color_hover', '#1E3148')
|
||||
];
|
||||
|
||||
// Set custom layout
|
||||
if ($field->params->get('acf_layout_override'))
|
||||
{
|
||||
$payload['layout'] = $field->params->get('acf_layout_override');
|
||||
}
|
||||
|
||||
$widgetName = $style === 'slideshow' ? 'Slideshow' : 'Gallery';
|
||||
|
||||
// Add Slideshow-related payload
|
||||
if ($style === 'slideshow')
|
||||
{
|
||||
$payload = array_merge($payload, [
|
||||
'lightbox' => $fieldParams->get('slideshow_lightbox', '0') === '1',
|
||||
'module' => $fieldParams->get('slideshow_module', ''),
|
||||
'ordering' => $fieldParams->get('ordering', 'default'),
|
||||
'slides_per_view' => $fieldParams->get('slides_per_view', ['desktop' => 1]),
|
||||
'space_between_slides' => $fieldParams->get('space_between_slides', ['desktop' => 10]),
|
||||
'infinite_loop' => $fieldParams->get('infinite_loop', '0') === '1',
|
||||
'keyboard_control' => $fieldParams->get('keyboard_control', '0') === '1',
|
||||
'autoplay' => $fieldParams->get('autoplay', '0') === '1',
|
||||
'autoplay_delay' => $fieldParams->get('autoplay_delay', 3000),
|
||||
'autoplay_progress' => $fieldParams->get('autoplay_progress', '0') === '1',
|
||||
'show_thumbnails' => $fieldParams->get('show_thumbnails', '0') === '1',
|
||||
'show_thumbnails_arrows' => $fieldParams->get('show_thumbnails_arrows', '0') === '1',
|
||||
'nav_controls' => $fieldParams->get('nav_controls', 'none'),
|
||||
'theme_color' => $fieldParams->get('theme_color', '#333'),
|
||||
'transition_effect' => $fieldParams->get('transition_effect', 'slide')
|
||||
]);
|
||||
}
|
||||
|
||||
echo \NRFramework\Widgets\Helper::render($widgetName, $payload);
|
||||
16
plugins/fields/acfgallery/version.php
Normal file
16
plugins/fields/acfgallery/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 © 2018 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