|
|
| Название | LinkPath |
| Имя файла (*.txt) | LinkPath.txt |
| Описание | Помещает в буфер ссылку на заданный файл относительно текущего пути |
| Автор | Вахмурка |
| Параметры | "%P", "%T", "%M" |
| Вызываемые плагины | miscplugin, clip |
| Иконка |
|
| Версия | 2.0 |
| Дата обновления | 26.01.2006 |
args P, T, M
local Result, i, BegP, BegT
local Bef = "<a href="
local Aft = "></a>"
if(P == T) do
Result = Bef ++ M ++ Aft
clip.set(Result)
quit
endif
;Sub_ParsePath - eiy ne?eioa ParsePath
local SourceDepth = runfile.Subs\Sub_ParsePath(P, "")
local TargetDepth = runfile.Subs\Sub_ParsePath(T, "")
if(index(P, T) != 0) do
Result = Bef ++ repeat("../", SourceDepth - TargetDepth) ++ M ++ Aft
clip.set(Result)
quit
endif
if(index(T, P) != 0) do
Result = Bef ++ select(T, length(P) - length(T)) ++ M ++ Aft
clip.set(Result)
quit
endif
local Lim = min(SourceDepth, TargetDepth)
local Counter = 0
for(i = 1; i <= Lim; i = i + 1)
Result = BegP
BegP = runfile.Subs\Sub_ParsePath(P, i - SourceDepth)
BegT = runfile.Subs\Sub_ParsePath(T, i - TargetDepth)
if(BegP == "" || BegT == "")
break
if(BegP == BegT) do
Counter = Counter + 1
else
break
endif
endfor
if(Counter == 0) do
local mpDlgCaption = "LinkPath Script"
local mpIcon = "WARNING"
local mpDlgText = "Source path is " ++ P ++ "\nTarget file is " ++ T ++ M
mpDlgText = mpDlgText ++ "\nThey seem to be on different logical disks!"
miscplugin.messagebox(1, "&OK")
quit
endif
Result = repeat("../", SourceDepth - Counter)
Result = Result ++ runfile.Subs\Sub_ParsePath(T, TargetDepth - Counter) ++ "/"
Result = Bef ++ replacechars(Result, "\", "/") ++ M ++ Aft
clip.set(Result)
Скрипт может оказаться полезным для веб-дизайнеров, которым приходится вставлять в странички ссылки на файлы, находящиеся в различных директориях относительно текущей.
Здесь и далее предполагается, что черновик веб-странички находится в текущей директории на активной панели. В противоположной панели нужно установить курсор на файл, ссылку на который необходимо получить ("целевой файл"). Разумеется, после этого курсор следует вернуть в исходную панель.
Пусть веб-страничка имеет следующее полное имя:
c:\One\Two\Three\Source.html
Помещаемые в буфер обмена ссылкы при различных путях целевого файла Target.html представлены в таблице:
| Полный путь целевого файла | Результат |
| c:\One\Target.html | <a href=../../Target.html></a> |
| c:\One\Two\Three\Target.html | <a href=Target.html></a> |
| c:\Four\Five\Six\Target.html | <a href=../../../Four/Five/Six/Target.html></a> |
| d:\Seven\Eight\Target.html | Ошибка! |
Ошибка в последнем случае вызвана тем, что страничка и целевой файл находятся на разных логических дисках.
После запуска скрипта необходимо перейти в редактор веб-странички и вставить туда содержимое буфера.
Обратим внимание на то, что ссылка является относительной, а не абсолютной. Это значит, что, сохраняя структуру директорий, мы можем записать оба файла (веб-страничку и целевой файл) куда угодно, и ссылка будет работать всегда.
Внимание! В скрипте использовано ключевое слово args, введенное в PowerPro 4.4! В более ранних версиях PowerPro скрипт будет выдавать сообщение об ошибке. Если вы по каким-либо причинам не хотите устанавливать версию 4.4, первую строку скрипта следует заменить на 3 строки:
local P = arg(1)
local T = arg(2)
local M = arg(3)
|
На главную |
|
Все о Total Commander |
|
PowerPro |
|
PowerPro & Total Commander |