Новости Joomla

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

👩‍💻 События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper.

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых храниться весь "нестандарт".

В этой статье описаны все триггеры, которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Подходы, описанные в статье, полезны в тех случаях, когда вы работаете с данными в com_fields - механизме создания и редактирования пользовательских полей ядра Joomla и при использовании FieldsHelper. Многие сторонние компоненты не используют эту возможность, поэтому данная статья будет полезна лишь частично.

🏆 Открыто голосование за Joomla в премии CMS Critic People’s Choice Awards 2025

🏆 Открыто голосование за Joomla в  премии CMS Critic People’s Choice Awards 2025

🗓 Голосование продлится до 27 февраля 2026 года.

👩‍💻 Проголосовать! 👩‍💻

Номинации, в которых можно проголосовать за Joomla:
⭐️ Best Free CMS
⭐️ Best Open Source CMS
⭐️ Best Enterprise CMS

Также в номинации Best e-Commerce Solution участвуют компоненты интернет-магазинов для Joomla:
⭐️ HikaShop
⭐️ Virtuemart

В номинации Best Website Builder оказались:
⭐️ YooTheme
⭐️ SP Page Builder

Что такое CMS Critic Awards?
С 2012 года премия CMS Critic Awards занимает особое место в сообществе систем управления контентом (CMS). Это единственный в своем роде сайт, который составляет рейтинг системы управления контентом и связанных с ними решений на рынке — от малого до крупного и подчеркивает их инновации и услуги.

Каждый год награда CMS Critic Awards присуждается одному победителю в различных отраслевых категориях, таких как: «Лучшая облачная CMS», «Лучший DXP», «Лучшая Headless CMS и других. Затем результаты оглашаются через СМИ вместе с выбором редакции CMS Critic.
В этом году премия вернулась к своим традициям и только TOP-5 движков по количеству номинаций попали в 2-й этап - голосование.

@joomlafeed

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

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #30 : 28.10.2016, 10:38:47 »
Филипп Сорокин:
Вы меня тоже извините. Спасибо за совет!
dmitry_stas:
Попробую, спасибо заранее!
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #31 : 28.10.2016, 10:43:20 »
dmitry_stas: Спасибо! Работает! Вопрос с регуляркой конечно остается открытым... ибо хотелось бы оба варианта иметь "про запас".
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #32 : 28.10.2016, 10:55:23 »
Ну как? Культурно распарсить DOM, затем пройтись по скриптам, и также их распарсить.
зачем проходиться циклом, если парсинг нужного делается одной строкой без цикла?

Код
$files = json_decode(explode(';', explode('window.MODULE_CONFIG = ', $str)[1], 2)[0])->modules->clean->init_react->components[0]->props->contents->files;
сделает все, что нужно. потом делайте

foreach($files as $file){
   $href=$file->href;//ссылка
   $size=round($file->bytes/1024/1024,1);//размер
}
и выводите данные
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

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

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #33 : 28.10.2016, 16:53:16 »
Та нафиг тогда этот DOM придумали и циклы? Будем тяпляпом фигачить непойми как. Это по-нашему.
*

dmitry_stas

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

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

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #35 : 28.10.2016, 18:11:33 »
Циклы и используют после получения коллекции элементов, что в JS, что и в других языках, которые поддерживают DOM. Но я не спорю :)
*

dmitry_stas

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

fsv

  • Живу я здесь
  • 2787
  • 413 / 2
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #37 : 28.10.2016, 18:18:21 »
Парсить. Регулярки. То работает, то не работает. А будет ли дальше работать на других ссылках?
API есть. Я понимаю, что
Есть почти готовое решение, проблема чуть поправить регулярку. А Вы предлагает всё заново начинать? Совсем нет времени. Это правда.
, но учитывая, что за 3,5 недели не сделали, можно было бы доки почитать и сделать нормально.
P.S. с API DropBox не работал, сейчас мельком взглянул, могу ошибаться, но вопрос решаемый.
Веб-разработка: заказ. Только новая разработка.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #38 : 28.10.2016, 18:23:49 »
API есть
ну это само собой самое верное решение. и в конечном итоге однозначно надо сделать так, когда во временем попроще будет
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

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

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #39 : 28.10.2016, 20:14:30 »
Цитировать
не, ну почему же? истина же интересна Azn просто я либо не пойму вашей задумки

Всё то же самое, что писал Роберт, только поэтапно и через более надёжный метод DOM, который специально для этого предназначен. Затем, конечно же, содержимое элементов обрабатывается регулярками. И без JSON. Какой в нём смысл, если определить границы JSON-строки нереально? На точку с запятой ориентироваться? Так её может и не быть вовсе, или же она может присутствовать внутри JSON. Тогда обломушки.

Собственно, я бы сделал так:

Код: php
$dom = new DOMDocument;
$dom->loadHTML(file_get_contents('https://www.dropbox.com/sh/aev1ky5bjbk8cef/Eq9fDTTyZp'));
$scripts = $dom->getElementsByTagName('script');
$links = array();
foreach ($scripts as $script) {
    if(!empty($script->nodeValue) && preg_match_all('#"href"\s*:\s*"([^"]+)"#is', $script->nodeValue, $matches))
    {
        $links[] = $matches[1];
    }
}
var_dump($links);
« Последнее редактирование: 28.10.2016, 20:39:19 от Филипп Сорокин »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #40 : 28.10.2016, 21:05:27 »
Цитировать
Так её может и не быть вовсе
так тут чего угодно может не быть или не стать :) с таким успехом и href может через время не стать, поменяют структуру, и так далее. как сказал fsv единственное что будет хоть как то более менее долгоиграющее - это юзать API. а без него остается только работать с тем, что есть на данный момент.

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

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

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #41 : 28.10.2016, 21:23:04 »
Цитировать
юзать API
Золотые слова. Отблагодарим fsv репой :)
*

dmitry_stas

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

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #43 : 30.10.2016, 08:07:54 »
Прошу ещё немного помощи.
В Вашем коде:
Код
$files = json_decode(explode(';', explode('window.MODULE_CONFIG = ', $str)[1], 2)[0])->modules->clean->init_react->components[0]->props->contents->files;
Ругается на одном хостинге:
Код
Parse error: syntax error, unexpected '[' in ...php on line ...
На 3х остальных хостингах работает отлично!
Что может быть? Есть универсальное решение?
:)
Спасибо заранее за помощь!
« Последнее редактирование: 30.10.2016, 08:59:46 от ecolora »
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #44 : 30.10.2016, 08:31:16 »
не понимает массив explode()[]. php версия не подходит, ниже чем нужно. по переменным explode разнести надо

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

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #45 : 30.10.2016, 09:05:36 »
Спасибо! Будем надеяться, что поймёт. ;-)
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #46 : 18.11.2016, 05:29:52 »
Dropbox опять поменял код. Коллеги, помогите, пожалуйста ещё раз поправить:
https://www.dropbox.com/sh/aev1ky5bjbk8cef/Eq9fDTTyZp
Пробовал менять код на:
Код
       $str = explode('mod.initialize_module', $str);
       $files = json_decode($str[0])->components[0]->props->contents->files;
Не помогает.
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #47 : 18.11.2016, 08:10:14 »
А что в var_dump($str[0]); получается?
А вообще лучше всего воспользоваться https://www.dropbox.com/developers/documentation/http/documentation
« Последнее редактирование: 18.11.2016, 08:18:19 от Arkadiy »
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #48 : 18.11.2016, 09:46:37 »
вроде бы
Код
$str = explode('mod.initialize_module(', $str);
$str = explode(')', $str[1], 2);
$files = json_decode($str[0])->modules->clean->init_react->components[0]->props->contents->files;

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

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #49 : 18.11.2016, 09:58:40 »
Arkadiy:
Я ошибся. Надо $str[1], Такой код:
Код
       $str = explode('mod.initialize_module', $str);
В $str[1] заносит:
Цитировать
({"components": [{"module_name": "modules/clean/react/shared_link_folder/app", "install_hot_reloading_attrs": false, "props": {"fileViewTarget": 1, "showSyncCoachmark": false, "activityContext": 1, "openImmediatelyInApp": false, "accountMenuOptions": {"accountPhotoUrl": null, "showProUpgradeLink": false, "showBusinessUpgradeLink": false, "isPagelet": false, "showNameOnButton": true, "showProGiftingLink": false, "isMaestroDesign": false, "isToolbarAccountPhotoEnabled": false}, "folderShareToken": {"linkType": "s", "itemId": null, "linkKey": "aev1ky5bjbk8cef", "displayName": "music", "isPackage": false, "subPath": "", "secureHash": "Eq9fDTTyZp"}, "fileViewOrigin": 16, "membershipRequestOptions": null, "user": null, "folderSharedLinkInfo": {"url": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AAAh0-dAGBcFoiSzUKQBU9Zra?dl=0", "ownerTeamName": null, "ownerName": "Anton Zaytsev", "ownerTeamLogo": null}, "folderSharePermission": {"canCopyToDropboxRoles": ["anonymous"], "canRemoveLinkUids": [], "canPrintRoles": ["anonymous"], "canDownloadRoles": ["anonymous"], "canSyncToDropboxRoles": [], "canViewContextMenuRoles": ["anonymous"]}, "folder": {"open_in_app_data": null, "is_dir": true, "href": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AAAh0-dAGBcFoiSzUKQBU9Zra?dl=0", "shared_folder_id": null, "filename": "music"}, "takedownRequestType": null, "contents": {"files": [{"beacon_context": "AAAi0KAWXIcpEOmiB3-fz8JQFN2wImea1Po", "preview_url": null, "href": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AABuk3EGJBK5KDaJRPaEZWEba/Avicii_-_Levels.mp3?dl=0", "file_id": "id:Zc29slfnksAAAAAAAAAAWA", "is_dir": false, "filename": "Avicii_-_Levels.mp3", "direct_blockserver_link": "https://dl.dropboxusercontent.com/content_link/JNgff7Sa9VDW9nOrkkKxZCVaP4PSQtn02MpMCVSzCkVfi6xsqU1v5nNLXbKbCcMX/file?dl=0", "bytes": 5342591, "ts": 1343275200, "preview_type": "audio", "sjid": 600, "thumbnail_url_tmpl": null, "ns_id": 73437149}, {"beacon_context": "AACKWEs_2soW_86uFxDWYRhbOZGnQ2MRAUg", "preview_url": null, "href": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AABFNLda_o8FbKHMPdna9I0za/Elka_-_Na_bolshom_vozdushnom_share.mp3?dl=0", "file_id": "id:Zc29slfnksAAAAAAAAAAVw", "is_dir": false, "filename": "Elka_-_Na_bolshom_vozdushnom_share.mp3", "direct_blockserver_link": "https://dl.dropboxusercontent.com/content_link/y4bX3ddlyPkRJEp1pFif5EoQP54EucC9qkoEoln7aIosQ3RFHCF6TVnMfkIAcWnG/file?dl=0", "bytes": 7703274, "ts": 1343275413, "preview_type": "audio", "sjid": 601, "thumbnail_url_tmpl": null, "ns_id": 73437149}, {"beacon_context": "AABNug88BxPMeWVvTT9hZ8F97MytPTws5xU", "preview_url": null, "href": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AAClbr7-M-MhQLH8W0iw6e8va/Fly_project_-_Musica.mp3?dl=0", "file_id": "id:Zc29slfnksAAAAAAAAAAVg", "is_dir": false, "filename": "Fly_project_-_Musica.mp3", "direct_blockserver_link": "https://dl.dropboxusercontent.com/content_link/VoFHOXwvIJRH0Z63MPExR37Tz8mSqxTspMahx4VP8kVK7Vr1DQCkI7YcgACQMCBG/file?dl=0", "bytes": 8773280, "ts": 1343275612, "preview_type": "audio", "sjid": 602, "thumbnail_url_tmpl": null, "ns_id": 73437149}, {"beacon_context": "AADSY3-2HCt4d9jgweUPDtlDVFt4tARTg8I", "preview_url": null, "href": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AACiK9iSmHZEsSm2udEgsb1oa/Maroon_5_feat._Christina_aguilera_-_Moves_like_jagger_.mp3?dl=0", "file_id": "id:Zc29slfnksAAAAAAAAAAVQ", "is_dir": false, "filename": "Maroon_5_feat._Christina_aguilera_-_Moves_like_jagger_.mp3", "direct_blockserver_link": "https://dl.dropboxusercontent.com/content_link/UKs42PzhXwBbbLRhntJqRTlwmF5H0ubBfETC87MPvgreXMwSUUQlDhs2NMSsYjtG/file?dl=0", "bytes": 8054350, "ts": 1343275796, "preview_type": "audio", "sjid": 603, "thumbnail_url_tmpl": null, "ns_id": 73437149}, {"beacon_context": "AABmN52qlgbg5nokiqNeLaLhh-S22QqOeMo", "preview_url": null, "href": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AADL6Fzzl2KR8UM79LR8HHKKa/Michel_Telo_-_Barabarabara_bereberebere.mp3?dl=0", "file_id": "id:Zc29slfnksAAAAAAAAAAVA", "is_dir": false, "filename": "Michel_Telo_-_Barabarabara_bereberebere.mp3", "direct_blockserver_link": "https://dl.dropboxusercontent.com/content_link/V2RJTSIt1cM3e7Gk9yxcIE81VVRRAMWS5bfbldKThkb1T66nTdtA5524Uu4stjxX/file?dl=0", "bytes": 7100800, "ts": 1343278355, "preview_type": "audio", "sjid": 604, "thumbnail_url_tmpl": null, "ns_id": 73437149}, {"beacon_context": "AAASkLdMB8Nh-BHg7jVD7X5NsJ-IcEmFyLM", "preview_url": null, "href": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AAAhLbTZZ89aU-FoITwkk85Ya/Quest_Pistols_-_Ty_tak_krasiva.mp3?dl=0", "file_id": "id:Zc29slfnksAAAAAAAAAAUw", "is_dir": false, "filename": "Quest_Pistols_-_Ty_tak_krasiva.mp3", "direct_blockserver_link": "https://dl.dropboxusercontent.com/content_link/cqNc7sqGYTZYBcrk00khJEdUqF04J52EaubCYTYtFLdQmQ9q8EmNPT0oPARKRzf8/file?dl=0", "bytes": 6939435, "ts": 1343278697, "preview_type": "audio", "sjid": 605, "thumbnail_url_tmpl": null, "ns_id": 73437149}, {"beacon_context": "AADmwOWGWMPM5Q9fHEsUx_nX1PQWrD4zEc0", "preview_url": null, "href": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AADW-_YrNqY1OK8qz_qElKy1a/Selena_gomez_and_The_scene_-_Love_you_like_a_love_song_.mp3?dl=0", "file_id": "id:Zc29slfnksAAAAAAAAAAUg", "is_dir": false, "filename": "Selena_gomez_and_The_scene_-_Love_you_like_a_love_song_.mp3", "direct_blockserver_link": "https://dl.dropboxusercontent.com/content_link/3ps63d6IFSQPLIKPA2OP5tgzYQWkeEY4fiyf0BPepP8PCNLOrqB3uzLc9jOzKdQp/file?dl=0", "bytes": 6037277, "ts": 1343278849, "preview_type": "audio", "sjid": 606, "thumbnail_url_tmpl": null, "ns_id": 73437149}, {"beacon_context": "AABIwWycm2tBL_yJg0PegXY79342MZl0NAo", "preview_url": null, "href": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AABZtc3Cllei6ICPEEMSxt7ca/Stromae_-_Alors_on_dance_DJ_Pomeha_radio_remix.mp3?dl=0", "file_id": "id:Zc29slfnksAAAAAAAAAAUQ", "is_dir": false, "filename": "Stromae_-_Alors_on_dance_DJ_Pomeha_radio_remix.mp3", "direct_blockserver_link": "https://dl.dropboxusercontent.com/content_link/HDIS7gEHWTJr8xBIyn49BIa8Zl8J5jcNxsEPwxu6kxOsR4VzuS18oDH271m7yJpp/file?dl=0", "bytes": 8432413, "ts": 1343279071, "preview_type": "audio", "sjid": 607, "thumbnail_url_tmpl": null, "ns_id": 73437149}, {"beacon_context": "AAD6PQigzQf0P8egGRnnuxmXZYvfQLT5rpQ", "preview_url": null, "href": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AACoEi4uj50D_w9hdNaDS1qua/Wonder_Girls_-_Nobody.mp3?dl=0", "file_id": "id:Zc29slfnksAAAAAAAAAAUA", "is_dir": false, "filename": "Wonder_Girls_-_Nobody.mp3", "direct_blockserver_link": "https://dl.dropboxusercontent.com/content_link/atlDHJBywqGLed4fLMRQtBPT5vHoPDHpLdCrwtm7w0N3Pa4N1rKjx0lH5nLJvrfg/file?dl=0", "bytes": 8604053, "ts": 1343279319, "preview_type": "audio", "sjid": 608, "thumbnail_url_tmpl": null, "ns_id": 73437149}, {"beacon_context": "AADlFqkeXFGuM9y2E30K7AYRO0GPqK2nHYk", "preview_url": null, "href": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AABzEaLDdEg-LKxm5AbzCpj7a/Yolanda_be_cool_and_Dcup_-_We_no_speak_americano.mp3?dl=0", "file_id": "id:Zc29slfnksAAAAAAAAAATw", "is_dir": false, "filename": "Yolanda_be_cool_and_Dcup_-_We_no_speak_americano.mp3", "direct_blockserver_link": "https://dl.dropboxusercontent.com/content_link/nc8F7EEcpq80eTItu9B4C4dLo2daxpagIZs2ilHRCkh0KUANTzdXboYW3xVyezLi/file?dl=0", "bytes": 10830272, "ts": 1343279586, "preview_type": "audio", "sjid": 609, "thumbnail_url_tmpl": null, "ns_id": 73437149}], "folders": [], "fileSharedLinkInfos": [{"url": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AABuk3EGJBK5KDaJRPaEZWEba/Avicii_-_Levels.mp3?dl=0", "ownerTeamName": null, "ownerName": "Anton Zaytsev", "ownerTeamLogo": null}, {"url": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AABFNLda_o8FbKHMPdna9I0za/Elka_-_Na_bolshom_vozdushnom_share.mp3?dl=0", "ownerTeamName": null, "ownerName": "Anton Zaytsev", "ownerTeamLogo": null}, {"url": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AAClbr7-M-MhQLH8W0iw6e8va/Fly_project_-_Musica.mp3?dl=0", "ownerTeamName": null, "ownerName": "Anton Zaytsev", "ownerTeamLogo": null}, {"url": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AACiK9iSmHZEsSm2udEgsb1oa/Maroon_5_feat._Christina_aguilera_-_Moves_like_jagger_.mp3?dl=0", "ownerTeamName": null, "ownerName": "Anton Zaytsev", "ownerTeamLogo": null}, {"url": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AADL6Fzzl2KR8UM79LR8HHKKa/Michel_Telo_-_Barabarabara_bereberebere.mp3?dl=0", "ownerTeamName": null, "ownerName": "Anton Zaytsev", "ownerTeamLogo": null}, {"url": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AAAhLbTZZ89aU-FoITwkk85Ya/Quest_Pistols_-_Ty_tak_krasiva.mp3?dl=0", "ownerTeamName": null, "ownerName": "Anton Zaytsev", "ownerTeamLogo": null}, {"url": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AADW-_YrNqY1OK8qz_qElKy1a/Selena_gomez_and_The_scene_-_Love_you_like_a_love_song_.mp3?dl=0", "ownerTeamName": null, "ownerName": "Anton Zaytsev", "ownerTeamLogo": null}, {"url": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AABZtc3Cllei6ICPEEMSxt7ca/Stromae_-_Alors_on_dance_DJ_Pomeha_radio_remix.mp3?dl=0", "ownerTeamName": null, "ownerName": "Anton Zaytsev", "ownerTeamLogo": null}, {"url": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AACoEi4uj50D_w9hdNaDS1qua/Wonder_Girls_-_Nobody.mp3?dl=0", "ownerTeamName": null, "ownerName": "Anton Zaytsev", "ownerTeamLogo": null}, {"url": "https://www.dropbox.com/sh/aev1ky5bjbk8cef/AABzEaLDdEg-LKxm5AbzCpj7a/Yolanda_be_cool_and_Dcup_-_We_no_speak_americano.mp3?dl=0", "ownerTeamName": null, "ownerName": "Anton Zaytsev", "ownerTeamLogo": null}], "fileSharePermissions": [{"canCopyToDropboxRoles": ["anonymous"], "canRemoveLinkUids": [], "canPrintRoles": ["anonymous"], "canDownloadRoles": ["anonymous"], "canSyncToDropboxRoles": [], "canViewContextMenuRoles": ["anonymous"]}, {"canCopyToDropboxRoles": ["anonymous"], "canRemoveLinkUids": [], "canPrintRoles": ["anonymous"], "canDownloadRoles": ["anonymous"], "canSyncToDropboxRoles": [], "canViewContextMenuRoles": ["anonymous"]}, {"canCopyToDropboxRoles": ["anonymous"], "canRemoveLinkUids": [], "canPrintRoles": ["anonymous"], "canDownloadRoles": ["anonymous"], "canSyncToDropboxRoles": [], "canViewContextMenuRoles": ["anonymous"]}, {"canCopyToDropboxRoles": ["anonymous"], "canRemoveLinkUids": [], "canPrintRoles": ["anonymous"], "canDownloadRoles": ["anonymous"], "canSyncToDropboxRoles": [], "canViewContextMenuRoles": ["anonymous"]}, {"canCopyToDropboxRoles": ["anonymous"], "canRemoveLinkUids": [], "canPrintRoles": ["anonymous"], "canDownloadRoles": ["anonymous"], "canSyncToDropboxRoles": [], "canViewContextMenuRoles": ["anonymous"]}, {"canCopyToDropboxRoles": ["anonymous"], "canRemoveLinkUids": [], "canPrintRoles": ["anonymous"], "canDownloadRoles": ["anonymous"], "canSyncToDropboxRoles": [], "canViewContextMenuRoles": ["anonymous"]}, {"canCopyToDropboxRoles": ["anonymous"], "canRemoveLinkUids": [], "canPrintRoles": ["anonymous"], "canDownloadRoles": ["anonymous"], "canSyncToDropboxRoles": [], "canViewContextMenuRoles": ["anonymous"]}, {"canCopyToDropboxRoles": ["anonymous"], "canRemoveLinkUids": [], "canPrintRoles": ["anonymous"], "canDownloadRoles": ["anonymous"], "canSyncToDropboxRoles": [], "canViewContextMenuRoles": ["anonymous"]}, {"canCopyToDropboxRoles": ["anonymous"], "canRemoveLinkUids": [], "canPrintRoles": ["anonymous"], "canDownloadRoles": ["anonymous"], "canSyncToDropboxRoles": [], "canViewContextMenuRoles": ["anonymous"]}, {"canCopyToDropboxRoles": ["anonymous"], "canRemoveLinkUids": [], "canPrintRoles": ["anonymous"], "canDownloadRoles": ["anonymous"], "canSyncToDropboxRoles": [], "canViewContextMenuRoles": ["anonymous"]}], "fileShareTokens": [{"linkType": "s", "itemId": null, "linkKey": "aev1ky5bjbk8cef", "displayName": "Avicii_-_Levels.mp3", "isPackage": false, "subPath": "/Avicii_-_Levels.mp3", "secureHash": "AABuk3EGJBK5KDaJRPaEZWEba"}, {"linkType": "s", "itemId": null, "linkKey": "aev1ky5bjbk8cef", "displayName": "Elka_-_Na_bolshom_vozdushnom_share.mp3", "isPackage": false, "subPath": "/Elka_-_Na_bolshom_vozdushnom_share.mp3", "secureHash": "AABFNLda_o8FbKHMPdna9I0za"}, {"linkType": "s", "itemId": null, "linkKey": "aev1ky5bjbk8cef", "displayName": "Fly_project_-_Musica.mp3", "isPackage": false, "subPath": "/Fly_project_-_Musica.mp3", "secureHash": "AAClbr7-M-MhQLH8W0iw6e8va"}, {"linkType": "s", "itemId": null, "linkKey": "aev1ky5bjbk8cef", "displayName": "Maroon_5_feat._Christina_aguilera_-_Moves_like_jagger_.mp3", "isPackage": false, "subPath": "/Maroon_5_feat._Christina_aguilera_-_Moves_like_jagger_.mp3", "secureHash": "AACiK9iSmHZEsSm2udEgsb1oa"}, {"linkType": "s", "itemId": null, "linkKey": "aev1ky5bjbk8cef", "displayName": "Michel_Telo_-_Barabarabara_bereberebere.mp3", "isPackage": false, "subPath": "/Michel_Telo_-_Barabarabara_bereberebere.mp3", "secureHash": "AADL6Fzzl2KR8UM79LR8HHKKa"}, {"linkType": "s", "itemId": null, "linkKey": "aev1ky5bjbk8cef", "displayName": "Quest_Pistols_-_Ty_tak_krasiva.mp3", "isPackage": false, "subPath": "/Quest_Pistols_-_Ty_tak_krasiva.mp3", "secureHash": "AAAhLbTZZ89aU-FoITwkk85Ya"}, {"linkType": "s", "itemId": null, "linkKey": "aev1ky5bjbk8cef", "displayName": "Selena_gomez_and_The_scene_-_Love_you_like_a_love_song_.mp3", "isPackage": false, "subPath": "/Selena_gomez_and_The_scene_-_Love_you_like_a_love_song_.mp3", "secureHash": "AADW-_YrNqY1OK8qz_qElKy1a"}, {"linkType": "s", "itemId": null, "linkKey": "aev1ky5bjbk8cef", "displayName": "Stromae_-_Alors_on_dance_DJ_Pomeha_radio_remix.mp3", "isPackage": false, "subPath": "/Stromae_-_Alors_on_dance_DJ_Pomeha_radio_remix.mp3", "secureHash": "AABZtc3Cllei6ICPEEMSxt7ca"}, {"linkType": "s", "itemId": null, "linkKey": "aev1ky5bjbk8cef", "displayName": "Wonder_Girls_-_Nobody.mp3", "isPackage": false, "subPath": "/Wonder_Girls_-_Nobody.mp3", "secureHash": "AACoEi4uj50D_w9hdNaDS1qua"}, {"linkType": "s", "itemId": null, "linkKey": "aev1ky5bjbk8cef", "displayName": "Yolanda_be_cool_and_Dcup_-_We_no_speak_americano.mp3", "isPackage": false, "subPath": "/Yolanda_be_cool_and_Dcup_-_We_no_speak_americano.mp3", "secureHash": "AABzEaLDdEg-LKxm5AbzCpj7a"}]}, "outOfQuota": false}, "elem_id": "component9114370474989968945", "component_name": "SharedLinkFolderApp"}]}); })],[["modules/clean/legacy_pyxl_controllers/tabbable"], (function(mod){ var init =
И почему это не работает, не понятно:
Код
$files = json_decode($str[1])->components[0]->props->contents->files;
dmitry_stas: Ваш вариант к сожалнию не помог
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #50 : 18.11.2016, 10:07:15 »
Потому, что к json примешиваются ненужные символы. Во первых ( в начале совершенно лишняя, во вторых в конце наверняка тоже много лишнего. На первый взляд это )],[["modules/clean/legacy_pyxl_controllers/tabbable"], (function(mod){ var init =
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #51 : 18.11.2016, 10:09:56 »
Честно говоря, вообще не до конца понимаю, какая д.б. структура для JSON и что вырезать в итоге (старею, занят другой деятельностью)
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #52 : 18.11.2016, 10:14:34 »
Внутри текста есть объект. В json он находится внутри {}, внутри объекта есть свойства, они могут быть объектами {}, массивами [], строками "" или числами. Других видов данных я не припомню. Названия свойств заключаются в двойные кавычки, через двоеточие идет значение свойства ("property": 1), свойства разделяются запятыми. Вот вроде и все примудрости.
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #53 : 18.11.2016, 10:18:05 »
Кто-нибудь может сказатЬ, какой должен быть код, чтобы получить нужный массив $files?
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #54 : 18.11.2016, 10:21:41 »
$files = json_decode($str[0])->components[0]->props->contents->files;
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #55 : 18.11.2016, 10:24:04 »
dmitry_stas:
$str[0] вообще не содержит даже подобие JSON, он в $str[1] и то с мусором. :-(
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
*

dmitry_stas

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

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #57 : 18.11.2016, 11:00:26 »
Для начала надо подготовить валидный json, потом его декодировать, иначе ничего не получится.
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #58 : 18.11.2016, 11:17:09 »
он и подготовлен :) тот код, который я написал, полностью рабочий. с учетом последней правки
Код
$files = json_decode($str[0])->components[0]->props->contents->files;
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

ecolora

  • Завсегдатай
  • 1535
  • 171 / 2
  • творец
Re: Вытащить все ссылки на файлы с DropBox
« Ответ #59 : 18.11.2016, 11:37:37 »
dmitry_stas:
Спасибо! Всё действительно работает!
Я рифме друг словесной. Тут
Свой упражняю словоблуд:
Блог Ecolora
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор cantsave

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

Автор Dmitriy M

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

Автор winni-pyx

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

Автор ecolora

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