0 Пользователей и 1 Гость просматривают эту тему.
  • 8 Ответов
  • 1224 Просмотров
*

zoxma

  • Осваиваюсь на форуме
  • 19
  • 2 / 0
В шаблоне Helix 3 при написание статей есть такая вкладка "Helix blog options" в ней выбирается формат отображения статьи.
Фото, видео, галерея, цитата и т.д.

Так вот при загрузке изображений если в их наименовании имеются русские символы изображение не отображается.
(Видимо при загрузке фото ему не присваивается новое имя а остается тоже самое. Как тогда заставить присваивать?)


Есть ли какие либо варианты решения этой проблемы?

Кроме варианта переименовывать фото на английский перед загрузкой.
*

lexxbry

  • Живу я здесь
  • 2387
  • 67 / 8
Ну как бы почти везде пути до файлов и сами файлы на латинице должны быть...
Или это ушло в прошлое?
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

Cedars

  • Давно я тут
  • 585
  • 31 / 0
Было вот такое решение: http://rukodelie-ds.ru/forum/viewtopic.php?t=616 не знаю насколько оно рабочее..
*

zoxma

  • Осваиваюсь на форуме
  • 19
  • 2 / 0
Было вот такое решение: http://rukodelie-ds.ru/forum/viewtopic.php?t=616 не знаю насколько оно рабочее..
Не сработало  :( а жаль я прям понадеялся.
А может ли быть такое что эта функция "makeSafe" где то в шаблоне или фреймворке запрятана или наоборот отсутствует там и её нужно добавить?
Может быть где то среди этих файлов www\plugins\system\helix3 ? Но где?
*

lexxbry

  • Живу я здесь
  • 2387
  • 67 / 8
Так пройдитесь поиском по содержимому файлов
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

zoxma

  • Осваиваюсь на форуме
  • 19
  • 2 / 0
Да чет как то не находится.
Однако чутьё ведет меня вот к этому файлу
www\plugins\system\helix3\fields\spimage.php
Вот его код.
Код
<?php
/**
* @package Helix3 Framework
* @author JoomShaper http://www.joomshaper.com
* [member=126442]copyright[/member] Copyright (c) 2010 - 2017 JoomShaper
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later
*/

//no direct accees
defined ('_JEXEC') or die ('resticted aceess');

class JFormFieldSpimage extends JFormField
{

  protected $type = 'Spimage';

  protected function getInput()
  {
    $doc = JFactory::getDocument();

    JHtml::_('jquery.framework');

    $plg_path = JURI::root(true). '/plugins/system/helix3';
    $doc->addScript($plg_path . '/assets/js/spimage.js');
    $doc->addStyleSheet($plg_path . '/assets/css/spimage.css');

    if($this->value) {
      $class1 = ' hide';
      $class2 = '';
    } else {
      $class1 = '';
      $class2 = ' hide';
    }

    $output  = '<div class="sp-image-field clearfix">';
    $output .= '<div class="sp-image-upload-wrapper">';

    if($this->value) {
      $data_src = $this->value;
      $src = JURI::root(true). '/' . $data_src;

      $basename = basename($data_src);
      $thumbnail = JPATH_ROOT . '/' . dirname($data_src). '/' . JFile::stripExt($basename). '_thumbnail.' . JFile::getExt($basename);

      if(file_exists($thumbnail)) {
        $src = JURI::root(true). '/' . dirname($data_src). '/' . JFile::stripExt($basename). '_thumbnail.' . JFile::getExt($basename);
      }

      $output .= '<img src="'. $src .'" data-src="' . $data_src . '" alt="">';
    }

    $output .= '</div>';

    $output .= '<input type="file" class="sp-image-upload" accept="image/*" style="display:none;">';
    $output .= '<a class="btn btn-info btn-sp-image-upload'. $class1 .'" href="#"><i class="fa fa-plus"></i> Upload Image</a>';
    $output .= '<a class="btn btn-danger btn-sp-image-remove'. $class2 .'" href="#"><i class="fa fa-minus-circle"></i> Remove Image</a>';

    $output .= '<input type="hidden" name="'. $this->name .'" id="' . $this->id . '" value="' . htmlspecialchars($this->value, ENT_COMPAT, 'UTF-8')
    . '"  class="form-field-spimage">';
    $output .= '</div>';

    return $output;
  }
}
Полюбому здесь косяк больше негде (наверно)  ::)
Кто шарит подскажите пожалуйста.
По поводу того какое имя будет у файла в итоге мне не принципиально.
Важно чтобы пользователь при написании статьи мог добавить файл с любым именем.
*

lexxbry

  • Живу я здесь
  • 2387
  • 67 / 8
Да чет как то не находится.
плохо ищите
http://joxi.ru/8AnE17Ptj8ZMR2
SEO-оптимизация,продвижение
Создание и сопровождение сайтов на Joomla
Миграция
*

zoxma

  • Осваиваюсь на форуме
  • 19
  • 2 / 0
Ну поиск какбы всеравно не помог файлов много но они не из шаблона.
сюда бы человечка который разбирается в коде.
Там вот тот код что я поставил там наверно не хватает кода который будет переименовывать файл.
*

zoxma

  • Осваиваюсь на форуме
  • 19
  • 2 / 0
Может всётаки ктонибудь поможет а то я уже весь мозг сломал.
Я почти уверен что человек знающий php потратит на это 10 минут а я уже неделю мучаюсь.
Итак к чему я пришел.
Я так понял что загрузка файла реализована php + jQuery AJAX
Вот код
Код
/**
* @package Helix3 Framework
* @author JoomShaper http://www.joomshaper.com
* [member=126442]copyright[/member] Copyright (c) 2010 - 2017 JoomShaper
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or Later
*/
jQuery(function($) {

$('.sp-image-field').each(function(index, el) {

var $field = $(el);

// Upload form
$field.find('.btn-sp-image-upload').on('click', function(event) {
event.preventDefault();
$field.find('.sp-image-upload').click();
});

//Upload
$field.find(".sp-image-upload").on('change', (function(e) {
e.preventDefault();
var $this = $(this);
var file = $(this).prop('files')[0];

var data = new FormData();
data.append('option', 'com_ajax');
data.append('plugin', 'helix3');
data.append('action', 'upload_image');
data.append('imageonly', false);
data.append('format', 'json');

if (file.type.match(/image.*/)) {
data.append('image', file);

$.ajax({
type: "POST",
data:  data,
contentType: false,
cache: false,
processData:false,
beforeSend: function() {
$this.prop('disabled', true);
$field.find('.btn-sp-image-upload').attr('disabled', 'disabled');
var loader = $('<div class="sp-image-item-loader"><i class="fa fa-circle-o-notch fa-spin"></i></div>');
$field.find('.sp-image-upload-wrapper').html(loader)
},
success: function(response)
{
var data = $.parseJSON(response);

if(data.status) {
$field.find('.sp-image-upload-wrapper').empty().html(data.output);
} else {
$field.find('.sp-image-upload-wrapper').empty();
alert(data.output);
}

var $image = $field.find('.sp-image-upload-wrapper').find('>img');

if($image.length) {
$field.find('.btn-sp-image-upload').addClass('hide');
$field.find('.btn-sp-image-remove').removeClass('hide');
$field.find('.form-field-spimage').val($image.data('src'));
} else {
$field.find('.btn-sp-image-upload').removeClass('hide');
$field.find('.btn-sp-image-remove').addClass('hide');
$field.find('.form-field-spimage').val('');
}

$this.val('');
$this.prop('disabled', false);
$field.find('.btn-sp-image-upload').removeAttr('disabled');

},
error: function()
{
$field.find('.sp-image-upload-wrapper').empty();
$this.val('');
}
});
}

$this.val('');

}));

});

// Delete Image
$(document).on('click', '.btn-sp-image-remove', function(event) {

event.preventDefault();

var $this = $(this);
var $parent = $this.closest('.sp-image-field');

if (confirm("You are about to permanently delete this item. 'Cancel' to stop, 'OK' to delete.") == true) {
var request = {
'option' : 'com_ajax',
'plugin' : 'helix3',
'action' : 'remove_image',
'src' : $parent.find('.sp-image-upload-wrapper').find('>img').data('src'),
'format' : 'json'
};

$.ajax({
type: "POST",
data   : request,
success: function(response)
{
var data = $.parseJSON(response);
if(data.status) {
$parent.find('.sp-image-upload-wrapper').empty();
$parent.find('.btn-sp-image-upload').removeClass('hide');
$parent.find('.btn-sp-image-remove').addClass('hide');
$parent.find('.form-field-spimage').val('');

} else {
alert(data.output);
}
}
});
}
});

});

Но jQuery вродебы на имя файла не влияет он вроде как "технологии загрузки"
А то что влияет на имя прописывается в php
И как не крути в том самом файле код которого я вставлял в предыдущем сообщении
Если ещё точнее то вот этот код (я так думаю) отвечает за имя
Код
      if($this->value) {
      $data_src = $this->value;
      $src = JURI::root(true). '/' . $data_src;

      $basename = basename($data_src);
      $thumbnail = JPATH_ROOT . '/' . dirname($data_src). '/' . JFile::stripExt($basename). '_thumbnail.' . JFile::getExt($basename);

      if(file_exists($thumbnail)) {
        $src = JURI::root(true). '/' . dirname($data_src). '/' . JFile::stripExt($basename). '_thumbnail.' . JFile::getExt($basename);
      }

      $output .= '<img src="'. $src .'" data-src="' . $data_src . '" alt="">';
    }
Теперь немного аналитики

есть файл image.jpg загружаем его
автоматом создаётся папка: сайт\images\2018\09\17

и в ней появляется 2 изображения
image.jpg и image_thumbnail.jpg

повторная загрузка тогоже самого изображения дает такие имена
image1.jpg и image1_thumbnail.jpg и так далее 2 3 4.

Теперь есть файл изображение.jpg загружаем его
он попадает в туже папку: сайт\images\2018\09\17
в самой папке имя файла выглядит так гташка.jpg и гташка_thumbnail.jpg

на сайте в HTML коде это выглядит так <img src="/images/2018/09/17/изображение.jpg" alt="" itemprop="image">
и соответственно не отображается.

Правда в момент написания этого сообщения у меня в голове промелькнула мысль:
"У меня же сайт на локальном сервере, а сервер этот denwer, a php на нём же старой версии, а вдруг в этом косяк."


Ну и захожу я на тестовый хостинг загружаю там изображение с русским именем и всё отлично загрузилось, имя присвоилось такое /images/2018/09/17/1.jpg

И походу я кароче вообще зря поднял весь кипиш.

 *suicide* *suicide* *suicide*

Вопрос снят.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

OffCanvas меню Helix Ultimate добавить текст к иконке

Автор Andre100

Ответов: 2
Просмотров: 2170
Последний ответ 20.03.2023, 12:42:49
от Andre100
Через модуль html надо вставить три изображения в одну линию (горизонтально)

Автор dionisimuss

Ответов: 10
Просмотров: 800
Последний ответ 21.12.2022, 20:59:52
от dionisimuss
Helix 3 старается горизонтально размеченные картинки переставить вертикально

Автор olderman

Ответов: 3
Просмотров: 771
Последний ответ 30.10.2022, 08:59:06
от marksetter
Где настраивается и как убрать Sidebar в Helix Ultimate?

Автор varella

Ответов: 5
Просмотров: 769
Последний ответ 20.09.2022, 23:12:13
от varella
Helix ultimate 2 вопрос про меню и хедар

Автор Serganius

Ответов: 3
Просмотров: 736
Последний ответ 21.12.2021, 23:02:51
от Alex_gs