Новости Joomla

Обновление пакета плагинов JL Like 5.0

Обновление пакета плагинов  JL Like 5.0

Обновление пакета плагинов JL Like 5.0.0Команда JoomLine рада представить долгожданное обновление плагина социальных кнопок JL Like — версию 5.0.0! В этом релизе мы сделали акцент на совместимости с последними версиями Joomla, улучшении производительности и расширении функционала.👩‍💻 Что нового в JL Like 5.0.0?- Полная совместимость с Joomla 5 — теперь плагин работает на всех актуальных версиях Joomla, включая Joomla 5.- Рефакторинг и оптимизация кода — проведена масштабная чистка и обновление внутренних классов для повышения стабильности и скорости работы.- Удаление устаревших зависимостей — полностью отказались от использования jQuery, что ускорило загрузку страниц и повысило безопасность.- Обновление CSS и удаление неиспользуемых стилей — интерфейс стал еще легче и современнее.- Удалена поддержка устаревших виджетов — например, функциональность твиттер-виджета вынесена из плагина.- Поддержка twitter:card — улучшена интеграция с социальными сетями для красивого отображения ссылок.- Гибкая настройка счетчиков лайков — теперь можно включать и отключать рандомизацию количества лайков.- Улучшено подключение скриптов — переход на WebAssetManager для более корректной работы с ресурсами.- Обновлены языковые переменныеРасширения всё ещё наследуют старую архитектуру плагинов Joomla 3, но были протестированы на Joomla 5.3.Новость на сайте JoomlineСтраница расширенияGitHub расширения@joomlafeed#расширения

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

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Друзья, помогите пожалуйста, сервис DropBox поменял свой код. Вот пример моей страницы:
https://www.dropbox.com/sh/aev1ky5bjbk8cef/Eq9fDTTyZp
Раньше ссылки на файлы и размер я вытаскивал таким образом:
Код
preg_match_all("!<a[^>]*\shref=[\"]?([^>\"#\s]+)[\"]?[^>]*>([^<]*<[^>]*>){5,8}<span[^>]*\sclass=\"size\">([A-Z0-9\s\.]*)<\/span>!is",$str,$matches);
Сейчас нужна совсем другая регулярка. Помогите пожалуйста. Некогда с этим разбираться. Ибо в регулярках я не силен, опять придется сначала изучать мануал, вспоминать их.
За 100% небажный рабочий код кину на сотовый 200 руб.
« Последнее редактирование: 04.10.2016, 12:25:33 от ecolora »
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #1 : 04.10.2016, 12:09:32 »
У вас в <head> есть переменная window.MODULE_CONFIG, которая содержит эти ссылки. Если есть возможность отправить ее на сервер, то это будет лучшим вариантом. Если же придется парсить HTML, то есть такой вариант:
Код: php-brief
preg_match('~<script[^>]*>[^<]*window.MODULE_CONFIG\s*=\s*(\{[^;]+\});[^<]*</script>~is',$html,$matches);
$module_config=json_decode($matches[1]);
$files=$module_config->modules->clean->init_react->components[0]->props->contents->files;
$hrefs=array();
foreach($files as $file){
$hrefs[]=$file->href;
}
Думаю, что JS-переменные будут менять реже, чем HTML.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #2 : 04.10.2016, 12:11:45 »
Да они меняют с периодичностью раз в полгода свой код.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #3 : 04.10.2016, 12:21:54 »
Код не работает:
http://www.ecolora.org/index.php/demo/commedia/menuaudio/playing-from-http/dropbox
И ещё у меня там размер вытаскивался.
« Последнее редактирование: 04.10.2016, 12:24:59 от ecolora »
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #4 : 04.10.2016, 12:40:32 »
Код не работает
Что именно не работает? Проверил у себя:
Спойлер
[свернуть]
Может быть, надо убрать параметр dl?
Спойлер
[свернуть]
Не будь паразитом, сделай что-нибудь самостоятельно!
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #5 : 05.10.2016, 08:50:48 »
Спойлер
[свернуть]
Такой будет работать.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #6 : 05.10.2016, 10:19:15 »
Не работает.
Дружище, раньше я вытаскивал с размером.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #7 : 05.10.2016, 11:14:30 »
В массиве $files содержатся объекты-файлы со своими свойствами, в т.ч. ссылка и размер.
Код: php-brief
preg_match('~<script[^>]*>[^<]*window.MODULE_CONFIG\s*=\s*(\{[^;]+\});[^<]*</script>~is',$str,$matches);
$module_config=json_decode($matches[1]);
$files=$module_config->modules->clean->init_react->components[0]->props->contents->files;
$cm=count($files);//количество файлов
foreach($files as $file){
$href=$file->href;//ссылка
$size=round($file->bytes/1024/1024,1);//размер
}
Надеюсь, что вопрос исчерпан.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #8 : 05.10.2016, 11:42:29 »
Был такой рабочий код:
Код
if (strpos($url,'dropbox.com')!== false) {
     preg_match_all("!<a[^>]*\shref=[\"]?([^>\"#\s]+)[\"]?[^>]*>([^<]*<[^>]*>){5,8}<span[^>]*\sclass=\"size\">([A-Z0-9\s\.]*)<\/span>!is",$str,$matches);
     }
    $cm = count($matches[1]); //количество найденных ссылок
и дальше с ними работал:
Код
for ($i=0;$i<$cm;($i=$i+1)) {
что-то делаем с $matches[1][$i]
}
Ваша регулярка не работает.
Может дело в том, что у Вас preg_match, а у меня preg_match_all?
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #9 : 05.10.2016, 12:01:54 »
Моя регулярка работает - я не пожалел время его проверять. Я вам в предыдущем посте подробно объяснял, какие данные можно получить с ее помощью, комментарии даже оставил. Далее вам нужно решить, как его применить, а не пытаться копи-пастом засунуть в старый код. Или вы PHP тоже не знаете?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #10 : 05.10.2016, 12:07:11 »
Знаю я PHP, дружище... совсем некогда разбираться с новым кодом. Хотел просто заменить одну регулярку на другую и всё. :-(
Видите ли в чем дело, у меня там несколько вариантов было. И для всех был универсальный разбор потом. Ладно сейчас попробую как-то приладить...
у Вас отличный код, но собственно ощущение, будто туземец (я) пришел к белому человеку (Вам) и попросил подточить каменный наконечник, чтобы его приладить к древку, а белый человек говорит: зачем тебе каменный, выкинь, на тебе металлический, пофигу что он другой формы, и к древку не подходит, зато он гораздо острее и прочнее.
Вот такая ситуация, теперь пытаюсь приладить новый наконечник к своему древку. :-(
« Последнее редактирование: 05.10.2016, 12:24:53 от ecolora »
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #11 : 05.10.2016, 12:29:43 »
Тогда, честно, я вас не понимаю. Вы бы давно уже все сделали вместо того, чтобы написать кучу постов - ведь это дело 1-2 минут. Я не такой занятой, как вы, но единственая причина, по которой я до сих пор здесь пишу - я какой-то совет давал, а мне говорят, что он не рабочий.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #12 : 12.10.2016, 10:53:06 »
Ну 1-2 минуты, это Вы загнули. Пришлось много строк перелопатить.... а чем отличаетс preg_match от preg_match_all. Почему-то Ваша регулярка не работает если делать all. :-(
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #13 : 27.10.2016, 07:12:30 »
Странно. С этой ссылкой работает:
https://www.dropbox.com/sh/aev1ky5bjbk8cef/Eq9fDTTyZp
А с этой не работает:
https://www.dropbox.com/sh/pfez8n74il2xa9j/AABiGX-r57wVfPCgvEGseR3sa
Визуально вроде одинаковый код... :-(
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #14 : 27.10.2016, 09:56:06 »
код одинаковый. возможно вы просто не успеваете получить страницу во втором случае? у меня например она загружается порядка минуты.

кстати, можно уйти от тяжелой регулярки. можно обрезать HTML по вхождению "window.MODULE_CONFIG = ", и затем первого вхождения точки с запятой

типа так
Код
$files = json_decode(explode(';', explode('window.MODULE_CONFIG = ', $a)[1], 2)[0])->modules->clean->init_react->components[0]->props->contents->files;
« Последнее редактирование: 27.10.2016, 10:11:28 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #15 : 27.10.2016, 17:21:31 »
А что делать не подскажете? Чтобы "успеть" получить страницу?
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #16 : 27.10.2016, 17:23:35 »
ну как бы... а как получаете? cURL?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #17 : 27.10.2016, 17:30:19 »
Вы думаете дело всё-таки во времени загрузки?
Получаю через     
Код
    $str = file_get_contents($url);
    if ($str === false) {
    echo 'function <b>file_get_contents</b> returning <b>false</b> with \''.$url.'\' !<p>';
    return;
    }
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #18 : 27.10.2016, 17:33:32 »
ну я ж не знаю :) вы ж просто спрашиваете, что сделать чтоб успеть, я и подумал, что так и есть, дело во времени загрузки. file_get_contents отдает вам код страницы? или нет?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #19 : 28.10.2016, 09:28:34 »
Вот ещё пример. С этим урлом тоже работает (хотя там больше информации):
https://www.dropbox.com/sh/xlj1vdz15807jly/rFFe5NGeLF
Парсит нормально... Сейчас буду разбираться. Спасибо за совет!

Что-то не подумал сразу вывести содержимое того, что получает функция.
В $str вся страница есть для этого "сложного" урла, по которому не получается вывести ничего.

Значит проблема с регуляркой. :-(
« Последнее редактирование: 28.10.2016, 09:31:38 от ecolora »
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #20 : 28.10.2016, 09:37:50 »
я давал код без регулярки, можете использовать его

Код
$files = json_decode(explode(';', explode('window.MODULE_CONFIG = ', $str)[1], 2)[0])->modules->clean->init_react->components[0]->props->contents->files;

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

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #21 : 28.10.2016, 09:40:08 »
У Вас с этим урлом работает регулярка?
https://www.dropbox.com/sh/pfez8n74il2xa9j/AABiGX-r57wVfPCgvEGseR3sa
У меня с ним не работает на двух сайтах в моём компоненте. что уже диагноз
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #23 : 28.10.2016, 10:00:50 »
Есть почти готовое решение, проблема чуть поправить регулярку. А Вы предлагает всё заново начинать? Совсем нет времени. Это правда.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #24 : 28.10.2016, 10:03:48 »
та не очень то DOM поможет... из javascript выдираем, не из дерева

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

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #25 : 28.10.2016, 10:12:00 »
Просто помочь хотел, извините.

Цитировать
$dom = new DOMDocument;
$dom->loadHTML($html);
$scripts = $dom->getElementsByTagName('script');
foreach ($scripts as $script) {
;
}
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #26 : 28.10.2016, 10:16:35 »
и потом? точно также выдирать регуляркой или substr? профит в чем?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #27 : 28.10.2016, 10:25:19 »
и потом? точно также выдирать регуляркой или substr? профит в чем?
В точности и надежности, стало быть.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #28 : 28.10.2016, 10:30:31 »
в точности и надежности чего? цикла foreach? :) он несомненно точен :) только зачем он в данном случае - не понимаю. может быть не пойму задумки в целом.
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #29 : 28.10.2016, 10:34:35 »
Ну как? Культурно распарсить DOM, затем пройтись по скриптам, и также их распарсить.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Нужно править редирект компонента FAQ book Pro

Автор cantsave

Ответов: 0
Просмотров: 833
Последний ответ 12.06.2017, 15:53:08
от cantsave
Безопасность, был взлом

Автор Dmitriy M

Ответов: 2
Просмотров: 817
Последний ответ 25.02.2017, 21:55:44
от voland
необходим ряд доработок для VirtueMart 3

Автор winni-pyx

Ответов: 9
Просмотров: 974
Последний ответ 21.12.2016, 12:01:40
от dmitry_stas
Странное поведение is_dir

Автор ecolora

Ответов: 23
Просмотров: 825
Последний ответ 01.11.2016, 07:48:21
от Филипп Сорокин