Главная arrow Программирование arrow HTML arrow Joomla: автоматизация установки шаблонов Monday, September 25 2017  
ГлавнаяКонтактыАдминистрированиеПрограммированиеСсылки
UK-flag-ico.png English Version
GERMAN-flag-ico.png Die deutsche Version
map.gif карта сайта
нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Поделиться:

Joomla: автоматизация установки шаблонов Версия для печати
Написал microsin   
08.11.2007
Этот простой vbs-скрипт может избавить от нудной процедуры установки шаблонов, если их много.

'USAGE: cscript.exe install_all_templates.vbs templates_catalog
'Example: install_all_templates.vbs f:\Joomla\templates\Templateplazza
'
' Этот простой скрипт может избавить от нудной процедуры установки шаблонов,
'  если их много. Например, необходимо выбрать шаблон для сайта из
'  большой подборки шаблонов, и для этого необходимо сначала установить
'  каждый шаблон по отдельности в менеджере шаблонов Joomla, что при количестве
'  шаблонов в 30 и более перерастает в неподъемную задачу.
' Скрипт работает просто - на входе через командную строку передается путь до папки,
'  куда свалены шаблоны (каждый шаблон - архив с расширением zip). Каждый архив
'  проверяется на корректность (при этом используется врЕменная папка temp_dir_path).
'  Если с архивом шаблона все в порядке, то создается в папке templates сайта на Joomla
'  папка для шаблона, и туда распаковывается его содержимое. Если папка для шаблона
'  с таким же именем уже существовала, то её старое содержимое уничтожается и заменяется
'  новым. Ошибки пишутся в файл logfile.
' Внимание! Для упрощения скрипт принимает только те архивы шаблонов, у которых основные
'  файлы (проверка осуществляется по файлам index.php и templateDetails.xml) и каталоги
'  находятся именно в КОРНЕ архива.

Set objArgs = WScript.Arguments
templates_dir_path = objArgs(0)
temp_dir_path = "c:\!install_all_templates_temp"
unzip = chr(34)+"C:\Program Files\7-Zip\7z.exe"+chr(34)+" x -r -o"
logfile = "install_log.txt"
install_dir = "Q:\home\deltacom.ru\www\templates"

Function clear_temp ()
   'delete all folders
   Set FSO = CreateObject("Scripting.FileSystemObject")
   FSO.DeleteFolder temp_dir_path + "\*", 1
   Set temp = FSO.GetFolder(temp_dir_path)
   'delete all files in root folder
   For Each File1 In temp.Files
      FSO.DeleteFile File1.Path, 1
   Next
End Function

Function log (message)
   Set FSO = CreateObject("Scripting.FileSystemObject")
   Set TextStream = FSO.OpenTextFile(logfile, 8, True)
   if (Trim(message)<>"") then
      TextStream.WriteLine CStr(Now) + " " + message
   else
      TextStream.WriteLine message
   end if
   TextStream.Close
End Function

log ("*** START ***")
'Step 1: make temp folder, if not exist
Set FSO = CreateObject("Scripting.FileSystemObject")
if not FSO.FolderExists(temp_dir_path) then
   FSO.CreateFolder temp_dir_path
end if

'cycle at each file in templates_dir_path
Set WshShell = CreateObject("WScript.Shell")
Set Folder = FSO.GetFolder(templates_dir_path)
For Each File In Folder.Files
   clear_temp
   templateOK = true
   'Step 2: unpack template to temp folder
   cmdline = unzip + temp_dir_path + " " + File.Path
   'WScript.Echo (cmdline)
   RetCode = WshShell.Run(cmdline, 1, True)
   if RetCode<>0 then
      log ("!!!Error unpack: " + File.Path)
   end if
   'Step 3: check template files
   TemplFile = temp_dir_path + "\" + "index.php"
   if not FSO.FileExists(TemplFile) then
      templateOK = false
   end if
   TemplFile = temp_dir_path + "\" + "templateDetails.xml"
   if not FSO.FileExists(TemplFile) then
      templateOK = false
   end if
   if not templateOK then
      log ("!!!Bad template: " + File.Path)
   end if
   if templateOK then
      'Step 4: create template work folder
      templ_dir = install_dir + "\" + FSO.GetBaseName(File.Name)
      'WScript.Echo (templ_dir)
      if FSO.FolderExists(templ_dir) then
         FSO.DeleteFolder templ_dir, 1
      end if
      FSO.CreateFolder templ_dir
      'Step 5: unpak template contents
      cmdline = unzip + templ_dir + " " + File.Path
      RetCode = WshShell.Run(cmdline, 1, True)
      if RetCode<>0 then
         log ("!!!Error unpack: " + File.Path)
      end if
      log (FSO.GetBaseName(File.Name) + " installed")
   end if
Next
clear_temp
log ("*** STOP ***")
log ("")
WScript.Echo ("Шаблоны установлены")

Последнее обновление ( 08.11.2007 )
 

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:

Защитный код
Обновить

< Пред.   След. >

Top of Page
 
microsin © 2017