Typoscript filelink - URL-адрес Wrap в ссылке

В этом столбе столбец столбец будет проверяться путем проверки расстояния между центром окружности и точкой на линии (Ipoint), которые представляют точку пересечения между нормальным N (изображение 2) от центра круга до отрезка.

( https://i.stack.imgur.com/3o6do.png ) Image 1. Finding vectors E and D [/g4]

На изображении 1 один круг и показана одна строка, вектор A указывает на точку начала линии, вектор B указывает на конечную точку линии, вектор C указывает на центр круга. Теперь мы должны найти вектор E (от начальной точки линии до центра круга) и вектор D (от начальной точки линии до конечной точки линии), этот расчет показан на изображении 1.

( https: / /i.stack.imgur.com/7098a.png)Image 2. Finding vector X[/g5]

На изображении 2 мы видим, что вектор E проецируется на вектор D «точечным произведением», вектора E и единичного вектора D, результат точечного произведения является скалярным Xp, представляющим расстояние между начальной точкой линии и точкой пересечения (Ipoint) вектора N и вектора D. Следующий вектор X определяется путем умножения единичного вектора D и скалярного Xp .

Теперь нам нужно найти вектор Z (вектор в Ipoint), его простое его простое векторное сложение вектора A (начальная точка на линии) и вектор X. Далее нам нужно иметь дело со специальными случаями, мы должны проверьте, является ли Ipoint на сегменте линии, если его не нужно выяснить, осталось ли это от него или справа от него, мы будем использовать ближайший вектор, чтобы определить, какая точка ближе к кругу.

( https://i.stack.imgur.com/p9WIr.png ) Image 3. Finding closest point [/g6]

Когда проекция Xp отрицательна Ipoint оставлен от сегмента линии, ближайший вектор равен вектору начальной точки линии, когда проекция Xp больше, чем величина вектора D, тогда Ipoint справа от сегмента линии, тогда ближайший вектор равен вектору конечной точки линии в любом другом случае ближайший вектор равен вектору Z.

Теперь, когда у нас есть ближайший вектор, нам нужно найти вектор от центра окружности до Ipoint (dist vector), его простое просто нужно просто вычесть ближайший вектор из центра вектора. Затем просто проверьте, меньше ли величина векторного расстояния, чем радиус круга, если он тогда сталкивается, если его нет, нет столкновения.

( https://i.stack.imgur.com/ QJ63q.png ) Image 4. Checking for collision [/g7]

Для завершения мы можем вернуть некоторые значения для разрешения столкновений, самый простой способ - вернуть перекрытие столкновения (вычесть радиус из векторной величины) и ось возврата столкновений, его вектор D. Также точка пересечения - это вектор Z, если это необходимо.

0
задан CCR 13 July 2018 в 15:37
поделиться

4 ответа

Я бы не сделал этого со сценарием, но с конфигурацией сервера. Если вы используете Apache и включили .htaccess, вы можете добавить конфигурацию в файл .htaccess в каталоге, где находятся файлы. См. https://css-tricks.com/snippets/htaccess/force-files-to-download-not-open-in-browser/

. Кроме того, вы также можете использовать атрибут HTML5 download . Однако это не поддерживается Internet Explorer (однако поддерживается Edge).

0
ответ дан Rudy Gnodde 17 August 2018 в 12:30
поделиться

Вы уверены, что .filelink - это то, что вы ищете?

.filelink для набора файлов. Для всех файлов в папке, заданной .path, будет создана ссылка. см. manual

Из вашего описания вы хотите, чтобы текст был обернут ссылкой на один файл. Это будет более проблематичным для .typolink, где вы укажете ссылку в .parameter.

, если вам действительно нужен список ссылок из нескольких файлов, каждый из которых связан с вашим скриптом, вам нужно изменить .typolinkConfiguration.parameter который будет использоваться internaly на .filelink .

В любом случае может быть возможно сделать обертку, которая была бы следующей:

.typolinkConfiguration.parameter.wrap = /fileadmin/force_download_script.php?|

Возможно, вам легче создать свой список с помощью .stdWrap.filelist , где вы можете использовать имена файлов любым способом, чтобы обернуть свой собственный параметр href для тега A.

0
ответ дан Bernd Wilke πφ 17 August 2018 в 12:30
поделиться
  • 1
    Я использую filelink, а не typolink, потому что он позволяет мне «проверять». если файл, к которому я привязан, существует (см. Старая запись ). typolinkConfiguration.parameter не представляется возможным: TsRef , но, возможно, я ошибаюсь ... .stdWrap.filelist - хорошая идея, но трудно реализовать, учитывая, как мой файл был создан. – CCR 16 July 2018 в 13:58
  • 2
    с .filelist вы получаете только существующие файлы, это список папок. если ваш редактор должен выбирать файлы, никогда не делайте этого в текстовом / строковом поле, где он вводит имя. Всегда используйте отношения для sys_file, поэтому файл ссылается и не может быть удален (в TYPO3 BE) – Bernd Wilke πφ 17 July 2018 в 06:00

Проблема может быть довольно сложной, но шаг за шагом:

  • ваш код выше может быть неправильным, если это не просто копия & amp; Ошибка пасты: wrap = fileadmin/force_download_script.php?filepath=|.txt Отсутствует точка до txt. Тем не менее, все еще интересно, если запущен php-скрипт.
  • Возможно, сценарий не запускается из-за некоторых настроек в typo3conf/LocalConfiguration.php, соответственно, некоторых настроек в установочном инструменте.
  • В зависимости от версии TYPO3 также возможно, что сценарий не запускается вообще, потому что теперь все скрипты требуются в расширении. Это означает, что вам может понадобиться создать расширение для этого скрипта.
  • . Также простой оберткой результата с помощью пути сценария может быть недостаточно, но вы должны явно называть его TypoScript, включив скрипт как user-function или lib.

Административная панель может быть полезна для отладки некоторых вещей о вашем скрипте, но если вы не должны включать некоторый отладочный вывод сначала в свой собственный код, если этого недостаточно в ядре (временном). Поэтому вам нужно выяснить, вызван ли ваш сценарий, а если нет, причина для этого.

0
ответ дан David 17 August 2018 в 12:30
поделиться

Чтобы использовать основное решение TYPO3 с файловыми ссылками, вы можете использовать это руководство:

  1. Создайте хранилище файлов, где вы хотите, чтобы ваши «защищенные» файлы в бэкэнде TYPO3
  2. Не устанавливайте флажок «Является публичным?». в записи хранения
  3. Ссылки будут отображаться с помощью параметров eID и файла
  4. Вы можете посмотреть в FileDumpController, обрабатывающий эти ссылки: https://github.com/TYPO3 /TYPO3.CMS/blob/2348992f8e3045610636666af096911436fa1c89/typo3/sysext/core/Classes/Controller/FileDumpController.php
  5. Вы можете использовать прилагаемый крючок для расширения этого контроллера с помощью вашей логики.

К сожалению, я не могу найти официальную документацию для этой функции, но опубликую ее, когда найду что-то или напишу сам. ;)

Возможно, это тоже может вам помочь: https://extensions.typo3.org/extension/fal_securedownload/

Вот официальная часть , но это немного: https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Fal/Administration/Storages.html?highlight=filedumpcontroller

0
ответ дан Thomas Löffler 17 August 2018 в 12:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: