Почему при сохранении плагин контента не срабатывает?

  • 11 Ответов
  • 383 Просмотров

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

*

Karyuudo

  • ****
  • 368
  • 0
Делаю плагин переименовывания, пока готовы наброски.
Следующий скрипт переименовывает (я в папке плагина создавал test.php с тем же кодом), однако когда я его вставляю под

Код
public function onContentAfterSave( $context, $article, $isNew )
{

то ничего при сохранении материала не происходит. Почему?

Код
public function onContentAfterSave( $context, $article, $isNew )
{


$patch = '../../../images/recepty/newimg';
$handle = opendir($patch);
while(($file = readdir($handle))) {
    if ( is_file ($patch."/".$file) ) /*.переименовываем файл.*/
    {
        echo $patch .  "/" . $file;
        echo rename ( $patch .  "/" . $file, $patch .  "/renamed_" . $file );
    }
}

}
« Последнее редактирование: 11.01.2016, 14:21:49 от Karyuudo »

*

dmitry_stas

  • ********
  • 9645
  • 929
ничего - это что? не срабатывает событие? не находит директорию? находит, но не переименовывает файлы? что?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Karyuudo

  • ****
  • 368
  • 0
ничего - это что? не срабатывает событие? не находит директорию? находит, но не переименовывает файлы? что?
не срабатывает событие - файл в папке так и остается не переименованным.
другие события срабатывают, а это как-будто игнорируется

*

fsv

  • *******
  • 2504
  • 367
$patch = JPATH_ROOT . '/images/recepty/newimg';
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения

*

dmitry_stas

  • ********
  • 9645
  • 929
Цитировать
не срабатывает событие - файл в папке так и остается не переименованным
это может быть из-за 100500 причин, например нет прав на запись в папке. вы уверенны что именно событие не срабатывает?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Karyuudo

  • ****
  • 368
  • 0
$patch = JPATH_ROOT . '/images/recepty/newimg';
тоже ничего не происходит

*

Karyuudo

  • ****
  • 368
  • 0
это может быть из-за 100500 причин, например нет прав на запись в папке. вы уверенны что именно событие не срабатывает?
а как узнать причину?
права есть, это на денвере
путь - если запускать скрипт из соседней папки - то переименовывает.

*

dmitry_stas

  • ********
  • 9645
  • 929
а как узнать причину?
вариантов великое множество. в файл логируйте. хотя бы
Код: php
die;
сделайте в плагине и посмотрите что там происходит
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Karyuudo

  • ****
  • 368
  • 0
Все понял! Спасибо.
После остановки - появилось сообщение об ошибке. Начал разбираться.
Оказывается у меня директория называется по другому, не recepty. Это я перепутал с другим...
« Последнее редактирование: 13.01.2016, 17:32:23 от Karyuudo »

*

dmitry_stas

  • ********
  • 9645
  • 929
ну вот, уже проще. а то событие не вызывается, событие не вызывается :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций

*

Karyuudo

  • ****
  • 368
  • 0
Подумал, что оптимальнее перенести этот скрипт в другой плагин.
но почему-то снова не работает :(

Код
$patch = JPATH_ROOT .'/images/test';
$handle = opendir($patch);

while(($file = readdir($handle))) {

    if ( is_file ($patch.'/'.$file) ) /*.переименовываем файл.*/
    {
echo $patch .  '/' . $file.'<br> - patch+file';

if ($file=='0.jpg' || $file=='0.JPG'){

rename ( $patch .  '/' . $file, $patch .  '/'.$patch.'.jpg');
echo $patch .  '/' . $file.'<br> - patch+file';
echo $patch.' - patch <br>';
echo $file.' - file <br>';
die;

} //переименовать 0.jpg в название папки.jpg



if (preg_match('/^(\d+)(.[jJ][pP][gG])$/u', $file)) {
rename ( $patch .  "/" . $file, $patch .  "/".$patch.'-'.mb_strtolower($file));} //добавить к цифренному имени файла нпазвание папки и черточку
    }
}

выдает:
Цитировать
Z:\home\сайт.ru\www/images/test/0.JPG
- patch+file
Warning: rename(Z:\home\сайт.ru\www/images/test/0.JPG,Z:\home\сайт.ru\www/images/test/Z:\home\сайт.ru\www/images/test.jpg) [function.rename]: �������������� ������ � ����� �����, ����� ����� ��� ����� ����. (code: 123) in Z:\home\сайт.ru\www\plugins\content\imageresizer\imageresizer.php on line 168
Z:\home\сайт.ru\www/images/test/0.JPG
- patch+fileZ:\home\сайт.ru\www/images/test - patch
0.JPG - file

в то время точно такой же скрипт, вызываемый из другого плагина выдает:
Цитировать
Z:\home\сайт.ru\www/images/test/0.JPG
- patch+fileZ:\home\сайт.ru\www/images/test - patch
0.JPG - file

кажется понял, надо было кусок кода поместить в другое место... пробую дальше.. но уже нет ошибки и пошло переименовывание, правда пока не как надо
« Последнее редактирование: 14.01.2016, 21:22:19 от Karyuudo »

*

fsv

  • *******
  • 2504
  • 367
rename ( $patch .  '/' . $file, $patch .  '/'.$patch.'.jpg');
newname - 2 раза путь указали
Заказать разработку:    расширения Joomla  |   интерфейсы на javascript(jQuery)  |  мобильные приложения