Скрипты для шаблонов сайтов: Общие сведения о шаблонах и скриптах сайтов SharePoint

Содержание

Как написать шаблоны для веб-разработки на JavaScript 

JavaScript используется повсеместно, так что минимальные знания пригодятся почти любому разработчику. Сегодня я приведу рядовые шаблоны, которые вам обязательно пригодятся.

Александр Ватолин

Геймдизайнер и преподаватель в Школе программистов МШП

Мы разберем, как создавать рядовые части ваших сайтов:

  1. Разделы, работающие без каких либо фреймворков. Постараемся обойтись без каких либо фреймворков, чтобы решения были универсальными. Вкладки используются почти во всех сайтах, поскольку они сильно экономят место на странице, упрощая интерфейс для пользователя.
  2. Таймеры. Да- да. Они частенько пригодятся при разработке, но шаблонов вечно не хватает под рукой. Так что, можете считать это полезным семплом.
  3. Выпадающие меню. Их заготовок достаточно во фреймворках, но иногда вы бываете ограничены в ресурсах и приходится собирать что-то вручную.
  4. Различные динамические детали для выведения статистики.
     

Ну, и под конец разберем, какие есть популярные и полезные фреймворки для отрисовки интерфейсов.

Что ж, пора начинать. В конце статьи вас ждут исходники.

Начнем с таймера. Сразу заспойлерю вам полученный результат. Выглядеть это будет примерно так.

Начнем с разметки, а потом более подробно разберем и скрипт. На разметке не будем долго останавливаться, она достаточно простая, а стили подробнее можно рассмотреть в исходниках. Итак, вот так выглядит разметка:

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

Хотя этот пример и был достаточно очевидным, но он способен сэкономить вам время, если подобный скрипт будет под рукой.

Далее на очереди выпадающие окна. Этот скрипт лично мне помогал не раз, когда было нужно построить подобную логику.

Чего вам стоит ожидать от этого решения ? На самом деле самых обычных кнопок с выпадающем меню. Без каких либо фейерверков, 3D-эффектов и прочего. В целом, подобные меню и бывают нужнее всего при разработке, поскольку выглядят строго и просто. При желании никто не запретит их поменять.

Теперь пойдемте к разметке данной страницы. Тут аналогично с прошлым. Стили можно изучить в исходниках, а вот разметку покажу здесь.

Все минималистично и просто, чисто одно меню:

Теперь предстоит разобраться со скриптом. Логика работы достаточно простая. По факту, мы создаем селекторы на объекты меню, а далее по клику переводим все объекты из неактивного состояния в активное. Работает это при помощи подобных строк в CSS. Ну а дальше немного магии скриптов.

Ну и сам скрипт, собственно.

Думаю, теперь стало куда меньше вопросов, как сделать интерактивными подобные меню.

К слову, табы, о которых пойдет речь далее, работают почти так же, хотя скрипт для них будет куда больше. Но общая суть аналогична с данным скриптом, можете сравнить.

Начнем с результатов вкладок. Вот, как они могут выглядеть:

Суть работы такова, что в разметке вы делаете сразу три вкладки и скриптом поочередно их отключаете. Начнем с разметки, чтобы понять, как это выглядит изнутри.

Хорошо, у нас есть три вкладки, которые нужно научиться переключать. В этом нам поможет подобный скрипт, решающий любые вопросы.

Как не сложно заметить, тут используются повторные функции на кнопки и на сами вкладки. Если вы захотите использовать подобное меню без кнопок, просто удалите их из скрипта и разметки. А так, сама логика работы аналогична с прошлым скриптом.

Также бонусом для самообучения докину вам два подобных элемента, которые могут пригодится при повседневном создании сайтов.

Подобные билдеры помогут при создании прикольных анимаций на сайте или для отображения статистики на сайте. Все, что вам понадобится — настроить скрипт и управлять объектом не при помощи ручного меню, а при помощи скрипта.

Однако, случается, что писать все вручную тоже не вариант, и нужна библиотека или фреймворк, которые построят единый стиль сайта без особых проблем. Поделюсь несколькими такими решениями, возможно, один из них станет основой вашей работы:

Sencha js. Отличный инструмент для быстрой разработки с огромным количеством предустановленных элементов интерфейса. Все было бы идеально, если бы не ценник за полную версию.

Semantic UI. В моем понимании это отличный и доступный инструмент для построения интерфейсов на сайте. Этот инструмент рассматривает классы и слова как взаимозаменяемые понятия и использует простые фразы. Если еще не пользовались им, советую попробовать и упростить свою разработку в разы.

Anime js. Если нужны анимации на сайте, вам сюда. Здесь буквально можно сделать что угодно. Хоть у данного инструмента высокий входной порог, его возможности бесконечны.

Уверен, часть вещей вас могла зацепить. Наверняка, что-то захотелось изучить подробнее. Поэтому прикладываю все исходники, использованные в этой статье. Пользуйтесь с удовольствием.

До встречи в будущих статьях!

Реклама на Tproger: найдем для вас разработчиков нужного стека и уровня.

Подробнее

Реклама на tproger.ru

Загрузка

Полезное-бесплатное! Шаблоны сайтов, популярные скрипты, программа размещения на досках, 111 тыс. e-mail адресов, регистратор сайта в каталогах, способы повышения прибыльности сайта!

Полезное-бесплатное! Шаблоны сайтов, популярные скрипты, программа размещения на досках, 111 тыс. e-mail адресов, регистратор сайта в каталогах, способы повышения прибыльности сайта!
gif» bgcolor=»#c2ddfe»/>
Развлекательный портал
Полезное-бесплатное! Шаблоны сайтов, популярные скрипты, программа размещения на досках, 111 тыс. e-mail адресов, регистратор сайта в каталогах, способы повышения прибыльности сайта!

Шаблоны сайтов

48 простых, средних и профессиональных шаблона для облегчения труда по созданию сайта


Шаблоны сайтов, 48 простых, средних и профессиональных шаблона для облегчения труда по созданию сайта, полезное, полезный, полезные программы, новое, интересное, бесплатно, скачать бесплатно, бесплатная

35 популярных скрипта

Сборник из 35 лучших, самых популярных PHP скриптов, все скрипты последних версий.


35 популярных скрипта, Сборник из 35 лучших, самых популярных PHP скриптов, все скрипты последних версий.

EspAnadir Clasific Pro RE

Наиболее успешно решает задачу размещения информации на досках объявлений, во много раз сокращая затраты времени, благодаря возможности одновременно зарегистрировать Ваше объявление на сколь угодно большом количестве досок, многие из которых уже имеются в прилагаемом каталоге. Отличительная особенность EspAnadir Clasific Pro RE — это уникальный по простоте и эффективности мастер по добавлению досок объявлений. Мастер шаг за шагом позволит Вам просто и качественно добавлять интересующие Вас доски в свою собсвенную базу данных.


EspAnadir Clasific Pro RE, Наиболее успешно решает задачу размещения информации на досках объявлений, во много раз сокращая затраты времени, благодаря возможности одновременно зарегистрировать Ваше объявление на сколь угодно большом количестве досок, многие из которых уже имеются в прилагаемом каталоге. Отличительная особенность EspAnadir Clasific Pro RE — это уникальный по простоте и эффективности мастер по добавлению досок объявлений. Мастер шаг за шагом позволит Вам просто и качественно добавлять интересующие Вас доски в свою собсвенную базу данных

111815 реальных e-mail адресов

База существующих e-mail адресов, очень помогает для рассылки своих объявлений и может использоваться в предыдущей программе EspAnadir Clasific Pro RE


111815 реальных e-mail адресов База существующих e-mail адресов, очень помогает для рассылки своих объявлений и может использоваться в предыдущей программе EspAnadir Clasific Pro RE

WebTrafficGuru

WebTrafficGuru 3.8 программа регистрации сайта позволяет произвести автоматическую регистрацию сайта в более 1950 поисковых системах, тематических каталогах и рейтингах российского и мирового интернета.
WebTrafficGuru это самая надежная регистрация при высокой скорость работы. Программа WebTrafficGuru сама интеллектуально заполняет поля формы добавления ресурса согласно заданной пользователем информации о сайте. Количество сайтов регистрируемых пользователем не ограничено. WebTrafficGuru делает индивидуальный выбор рубрик для каждого поисковика. WebTrafficGuru это лучшее средство для увеличения индекса цитирования и раскрутки ваших сайтов.


WebTrafficGuru, WebTrafficGuru 3.8 программа регистрации сайта позволяет произвести автоматическую регистрацию сайта в более 1950 поисковых системах, тематических каталогах и рейтингах российского и мирового интернета. WebTrafficGuru это самая надежная регистрация при высокой скорость работы. Программа WebTrafficGuru сама интеллектуально заполняет поля формы добавления ресурса согласно заданной пользователем информации о сайте. Количество сайтов регистрируемых пользователем не ограничено.
WebTrafficGuru делает индивидуальный выбор рубрик для каждого поисковика. WebTrafficGuru это лучшее средство для увеличения индекса цитирования и раскрутки ваших сайтов.

10 способов повышения прибыльности сайта

Книга известнейшего американского маркетолога Терри Дина рассказывает о том, каким образом можно быстро повысить прибыльность любого коммерческого сайта путем устранения довольно распространенных ошибок в деятельности предпринимателя, которых последний очень часто не замечает. Иными словами, данная книга является пошаговой инструкцией к работе над ошибками, цель которой — вывести Ваш коммерческий проект на новые высоты электронного бизнеса.


10 способов повышения прибыльности сайта, Книга известнейшего американского маркетолога Терри Дина рассказывает о том, каким образом можно быстро повысить прибыльность любого коммерческого сайта путем устранения довольно распространенных ошибок в деятельности предпринимателя, которых последний очень часто не замечает. Иными словами, данная книга является пошаговой инструкцией к работе над ошибками, цель которой — вывести Ваш коммерческий проект на новые высоты электронного бизнеса




Шаблоны и сценарии — West Wind Web Connection

Web Connection поддерживает два очень похожих механизма «скриптинга». Один использует шаблоны, а другой использует скрипты. Разница между ними относительно тонкая, но ключевые моменты:

Шаблоны
Используется с: Response.ExpandTemplate()

  • Оцениваются
  • Можно обновлять как текстовые файлы и сразу отражать изменения
  • Может оценивать только выражения FoxPro или CodeBlocks
  • Нельзя использовать код вложенного блока, отличный от <% if %> <% endif %> блоков
  • Быстро выполняются, особенно если вы используете только выражения

Скрипты
Используется с: Response. ExpandScript()

  • (автоматически) скомпилированы как код FoxPro
  • Превращаются в настоящие файлы PRG, которые можно отлаживать и выполнять пошагово.
  • Поддержка сложной логики, включая выражения, кодовые блоки и вложенные блоки потока управления
  • Сложнее обновлять приложения с несколькими экземплярами из-за блокировки FXP
  • Скрипты лучше поддерживают макет и неполные страницы и разделы

Таким образом, шаблоны отлично подходят для выражений. Вы можете использовать шаблоны с автономными кодовыми блоками, которые выполняются как единый блок (что-то вроде функции), но это не работает для операторов структурированного кода, таких как цикл <% SCAN %> <% ENDSCAN %> . с HTML между ними.

Скрипты также работают с выражениями, и путь выполнения для них одинаков, но сила скриптов в том, что они, по сути, скомпилированы в файл FoxPro PRG, что означает, что вы можете выразить что-либо внутри скобок <% %> в код. Весь остальной документ обрабатывается как текстовые строки. У вас больше контроля над сценариями, а сценарии буквально выполняются в виде скомпилированного файла FXP. Вы можете выполнять пошаговые действия и отлаживать файлы сценариев, просто введя <% SET STEP ON %> 9.0020 в скрипт. Хотя сценарии запускают полностью скомпилированный код FoxPro, существуют некоторые накладные расходы, связанные с проверкой во время выполнения, чтобы убедиться, что скомпилированные файлы существуют и могут выполняться, и выгружать PRG после каждого выполнения, чтобы обеспечить горячую замену кода с обновлениями.

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

Сценарии 101

Сценарии — это настоящие программные файлы FoxPro, преобразованные из HTML-шаблона сценария в исполняемый файл PRG . Это работает следующим образом: весь статический текст преобразуется в строки FoxPro, которые объединяются в одну большую строку, возвращаемую в результате. Любые блоки кода <% %> напрямую встраиваются в файл PRG как исполняемый код, а не строки и <%= %> и <%: %> выражений объединяются в выходную строку как EVAL() выражений, которые возвращают строки. В основном вся страница представлена ​​в виде строк , за исключением для блоков кода и выражений, которые встроены в PRG как и, таким образом, выполняются.

Вот простой пример страницы сценария:

 
<тело>
 

Отображение таблицы клиентов

<час> <% SELECT * FROM TT_CUST INTO Курсор TQuery lnReccount = ПЕРЕСЧЁТ() %> Таблица Customer содержит записи <%= Reccount() %>.

<граница таблицы=1> <% СКАНИРОВАНИЕ %> <%: TQuery.Company %><%: TQuery.Address %> <% КОНЕЦ СКАНИРОВАНИЯ %>

Чтобы запустить эту страницу, сохраните ее в расширении .wcs (сценарий веб-подключения) (или расширении вашей карты сценариев) и вызовите ее через веб-URL:

http://localhost/wconnect/CustomerTable.wcs

Обратите внимание, что вы используете <% %> для блоков кода сценария, которые выполняются как программа, и <%= %> или <%: %> (HtmlEncoded) для вывода выражений, возвращающих значение. <%: %> следует использовать только с одним выражением, а <% %> может содержать несколько команд (в переводе на термины TEXTMERGE <%= %> являются выражениями TextMerge, а <% %> считается чистым кодом. Все остальное (статический HTML) находится между TEXT...ENDTEXT директив).

Если у вас есть ошибка в вашем коде, страница вернет ошибку. Например, если я неправильно напишу Reccount() выше как Recount() , вы получите страницу ошибки сценария, которая говорит:

 Ошибка: файл «recount.prg» не существует.
Код: Пересчет()
Номер ошибки: 1
Строка №: 9
 

Если вы находитесь в режиме отладки ( DEBUGMODE .T. в wconnect.h ), Web Connection также попытается найти строку кода, вызвавшую ошибку, и поместит на нее курсор. Это не всегда возможно из-за характера ошибки, но в большинстве случаев, особенно если произошла простая опечатка, вы можете отредактировать сохранение изменений и немедленно повторно запустить запрос.

Исправление примера
Давайте немного изменим пример, чтобы сделать его более гибким. Давайте исправим отображение, добавив таблицу стилей application.css , очистим отображение таблицы и добавим еще одно поле (телефон) и, наконец, поддержку запроса пользователя, какие записи он хочет видеть:

 
<голова>
Демонстрация сценария таблицы клиентов
<ССЫЛКА rel="stylesheet" type="text/css" href="application. css">

<тело>
 

Отображение таблицы клиентов

<час> <% lcCompany = ПРОПИСН(Запрос.Форма("txtCompany")) ЛКГде = "" ЕСЛИ !ПУСТОЙ(lcCompany) lcWhere = "ГДЕ ВЕРХНИЙ (компания) = lcCompany" КОНЕЦ ВЫБЕРИТЕ * ИЗ TT_CUST &lcWhere ; INTO Курсор TQuery ; ЗАКАЗАТЬ Компания lnReccount = ПЕРЕСЧЁТ() %>
Фильтр компаний: <час> Выбрано <%= Reccount() %> записей.

<граница таблицы="1"> КомпанияАдресТелефон <% СКАН %> <%= TQuery.Company %> <%: IIF(EMPTY(TQuery.Address),[
],DisplayMemo(TQuery.Address)) %> <%: IIF(EMPTY(TQuery.Phone),[
],DisplayMemo(TQuery.Phone)) %> <% КОНЕЦ СКАНИРОВАНИЯ %> <час>


Обратите внимание, что эта форма теперь стала формой ввода и вывода одновременно, потому что мы используем поле формы (txtCompany) в теге , чтобы попросить пользователя ввести фильтр компании для списка создавать. Затем по каждому запросу мы извлекаем ввод пользователя с помощью метода Request.Form в переменную (которая должна быть PRIVATE , а не LOCAL , чтобы быть видимой где угодно, кроме текущего блока <% %> ) lcCompany . Мы используем переменную, чтобы также вывести ее обратно в поле редактирования, используя <%: lcCompany %> , чтобы установить атрибут VALUE= поля txtCompany . Таким образом, в поле всегда отображается последний выбор пользователя.

Режимы сценариев
Механизм сценариев Web Connection может использовать 2 режима для запуска сценариев:

  • Интерактивный
    В интерактивном режиме страницы проверяются на диске, даты файлов сравниваются, и сценарий, если он изменен, перекомпилируется и перезагрузил. Скрипты выгружаются по завершении выполнения, поэтому в этом режиме есть некоторые дополнительные накладные расходы. Код по-прежнему компилируется в PRG и выполняется как FXP, но на сравнение файлов, загрузку и выгрузку тратятся накладные расходы.

  • Скомпилированные
    Как следует из названия, скомпилированные страницы предполагают, что страницы уже скомпилированы в файлы .fxp и готовы к выполнению. Для этого требуется либо предварительная компиляция, либо загрузка файлов .fxp на сервер как часть сценария развертывания (обратите внимание, что в этом есть оговорки, если ваши пути различаются). Страницы скомпилированных скриптов не проверяются на изменения и не выгружаются после выполнения, что делает их быстрее, но также не позволяет обновлять скрипты на сервере.

Объекты, доступные в сценариях
В сценариях доступны следующие объекты Web Connection:

  • Запрос
  • Ответ
  • Сервер
  • Процесс
  • Сессия
  • Любые ЧАСТНЫЕ или ОБЩЕСТВЕННЫЕ переменные, находящиеся в области действия
  • Любой из глобальных объектов FoxPro ( Приложение является основным)

Эти объекты являются стандартными объектами Web Connection, и вы можете найти их свойства и методы отдельно в различных справочниках классов. Кроме того

Дополнительные примеры использования сценариев см. в примерах сценариев на демонстрационной странице Web Connection.

Шаблоны 101

Шаблоны аналогичны сценариям, использующим очень похожий синтаксис ASP с тегами <% %> и <%= %> или <%: %> . Основное различие между сценариями и шаблонами заключается в том, что шаблоны не являются программами, а оцениваются путем анализа файла шаблона во время выполнения и расширения любых выражений внутри <%%> блоков. Думайте о шаблонах как о причудливых блоках FoxPro TextMerge .

Шаблоны лучше всего подходят для отображения «представлений» — объектов или значений данных, которые ранее были созданы и отформатированы в коде, предшествующем вызову ExpandTemplate, и затем вы можете встроить выражения в страницу для отображения представления:

 
<%: TQuery.Компания %>
<%: TQuery.CareOf %> <ч /> <дел> <%: pcErrorMsg %>

Web Connection использует набор функций MergeText() для просмотра документа сверху вниз и оценки каждого выражения или блока кода. Каждый кодовый блок или выражение оценивается ровно один раз. Вы можете вставлять блоки кода, такие как:

 <%
  ЛОКАЛЬНЫЙ lcВывод
  lcOutput = "Привет, мир"
  lcOutput = lcOutput + "Рик!"
  RETURN lcOutput && отображается в вывод
%>
 

Приведенное выше работает как автономный блок кода. Думайте о блоке как о встроенной, но полностью автономной функции, которая выполняется и не может напрямую передавать значения из себя.

В отличие от сценариев вы не можете делать подобные вещи :

 <% SELECT TQuery
      СКАН %>
   Компания: <%= Компания %>
<% КОНЕЦ СКАНИРОВАНИЯ %>
 

Разделение структурированных операторов на несколько блоков кода не поддерживается в шаблонах, за исключением IF/ENDIF. Работает следующее:

 <% if (plIsActive) %>
    Баланс: <% loCustomer.oData.Balance %>
<% конец%>
 

Обратите внимание, что синтаксис должен включать пробелы перед предложениями if и endif! Нет 9Предложение 0008 else , но вы можете использовать несколько операторов if для выполнения того же самого.

Шаблоны лучше всего работают с выражениями, а не с CodeBlocks. CodeBlocks должны компилироваться каждый раз, а выражения просто анализируются и оцениваются, что достаточно эффективно. Если вы обнаружите, что в шаблоне имеется куча кода, обычно лучше создать UDF или метод класса для обработки этой операции, а не выполнять эту логику в шаблоне в блоке кода.

Вы можете использовать любую комбинацию выражений, вызовов UDF, свойств и методов объектов и любых переменных PRIVATE, находящихся в области действия вызывающего кода.

 
<ТЕЛО>
<%
ОБЩЕСТВЕННЫЙ ОКУСТ
oCust = СОЗДАТЬ("cКлиент")
oCust.Load(VAL(Request.QueryString("PK")))
%>
С возвращением, <%= oCust.cFirstName %>. Ваш кредитный лимит составляет <%= oCust.GetCreditLimit() %>.
<час>
Время создания: <%= TIME() %>
<%
ВЫПУСК OCUST
%>


 

Обратите внимание, что вы можете использовать блоки кода, но поскольку шаблоны не являются автономными программами, любые переменные, которые вы хотите использовать на странице, должны быть объявлены как ОБЩЕСТВЕННЫЕ (здесь oCust). Однако при необходимости можно получить доступ к любому регулярному выражению.

Объекты, доступные в шаблонах
В шаблонах доступны следующие объекты Web Connection:

  • Запрос
  • Сервер
  • Процесс
  • Сессия
  • (Ответ)

Обратите внимание, что объект Response здесь заключен в скобки! Вы можете использовать объект Response, но только тогда и только тогда, когда вы используете флаг llNoOutput для его различных методов. Шаблоны оцениваются в строку, и эта строка затем отправляется на вывод сразу после завершения синтаксического анализа, поэтому использование объекта Response напрямую приведет к отправке вывода перед любым содержимым в фактическом шаблоне.

Если вам нужно изменить поведение объекта Response, например изменить заголовок HTTP, вам необходимо сначала очистить объект, а затем переназначить пользовательский заголовок:

 <%
Ответ.Очистить()
Ответ.ContentTypeHeader("текст/xml")
%>
 0"?>

тестовое значение
<%= Response.Write("",.T.) %>
 

(обратите внимание на использование параметра .T. ( llNoOutput ) в вызове метода Response.Write() ! Большинство методов ответа включают этот параметр)

Если вы делаете это часто, вам следует рассмотреть возможность использования методов класса Process для обработки заголовка.

 Response.AddCookie("TestCookie","Рик")
Ответ.РазвернутьШаблон()
 

Сценарии, такие как шаблоны, могут использовать выражения, просто встраивая выражение в текст HTML с расширением . Шаблоны должны максимально использовать выражения для оптимальной производительности, поскольку они просто оцениваются на лету. Конечно, вы можете вызывать функции UDF, а также методы любого класса, находящегося в области видимости.

Как вызывать сценарии и шаблоны

Сценарии и шаблоны можно вызывать двумя способами:

  • Непосредственно с помощью карт сценариев (. WC или .WCS)
  • Использование Response.ExpandTemplate() и Response.ExpandScript()

Если вы вызываете сценарии напрямую через карту сценариев, страницы должны быть полностью автономными и предоставлять и обрабатывать все входные и выходные данные — код метода не задействован.

Но вы также можете сначала запустить метод процесса Web Connection, а затем из него вызвать страницу сценария. Преимущество этого подхода в том, что вы можете отделить пользовательский интерфейс (страницу скрипта) от бизнес-логики (метод класса Process). Кроме того, вы можете настраивать объекты и создавать частные переменные, которые также будут доступны на странице сценария.

 * Метод Simple Process, вызывающий шаблон
Шаблон вызова функции
ЧАСТНЫЙ ОКУСТ
oCust = СОЗДАТЬ("cCust")
oCust.Load(VAL(Request.QueryString("PK")))
... дополнительная обработка объекта клиента
*** Теперь отобразите шаблон
Ответ.ExpandScript()
ENDFUNC
 

Шаблон теперь может использовать объект oCust как часть скрипта, если oCust был объявлен как PRIVATE (по умолчанию, если вы его не объявляете).

 
<ТЕЛО>
С возвращением <%: oCust.cFirstName %>
Не стесняйтесь делать покупки вокруг. Ваш текущий кредитный лимит: <%= oCust.CalcCreditLimit() %>


 

Обратите внимание, что любые переменные PRIVATE, которые вы объявляете, будут находиться в области действия и могут быть вызваны из шаблона или сценария. Любые классы или функции UDF, которые находятся в области действия или стеке вызовов, также могут быть вызваны напрямую.

Пути для ExpandTemplate и ExpandScript**

Обратите внимание, что в приведенном выше примере я не указал путь к шаблону. По умолчанию ExpandScript() и ExpandTemplate() используют физический путь для файла сценария запроса. Если я пойду на Customer.wcs он будет искать этот файл для выполнения в качестве шаблона, если вы не укажете другой путь.

Вы можете указать имена файлов несколькими способами:

  • Нет пути — текущий физический путь
  • Любой абсолютный путь ОС
  • Относительный путь к серверу, начинающийся с ~/

Лучше всего использовать физический путь без параметров. Если это невозможно, следующим лучшим выбором является использование путь ~/, так как это позволяет избежать жесткого кодирования пути в вашем приложении. Вместо этого он выяснит, где находится ваша веб-папка, и начнет искать путь от корня до указанного вами пути, следуя ~/ .

 Response.ExpandScript("~/Admin/DataAdministration.wwd")
 

Путь ~/ разрешен:

  • Из данных запроса IIS, которые предоставляют корневой путь
  • Если этого нет, потому что ваш веб-сервер может не предоставлять его, используя cHtmlPagePath в конфигурации класса процесса в yourapp.ini

Последний определен в yourapp.ini . Для демонстрации это wwdemo.ini например:

 [wwDemo]
путь к данным = wwwDemo\
htmlpagepath=d:\inetpub\wwwroot\wconnect\
 

Этот параметр доступен внутри класса Process как Config.cHtmlPagePath , и если IIS по запросу не возвращает физический путь приложения, он автоматически используется для разрешения пути ~/.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *