CFusion — Adobe ColdFusion во всей красе

17Сен/090

Бен Форта рассказывает о MS Excell и CF9

Связано с категорией: Полезности Нет комментариев
14Сен/090

Quicksilver: фреймворк для CF9

Очень интересный подкаст о Quicksilver – фреймворке, заточенном специально под CF9. Слушайте:

Связано с категорией: Новости, Полезности Нет комментариев
25Июл/090

Дебагинг в CFBuilder

Наглядная демонстрация возможностей IDE в части дебагинга: http://blogs.adobe.com/cfbuilder/Debugging/Using%20ColdFusion%20Debugger.swf

Связано с категорией: Полезности Нет комментариев
16Май/092

WhoIs-клиент

Очень простой WhoIs-клиент для доменов в зоне .com и .net – всего несколько строк кода.

<cfscript>
    whois = createObject("java", "org.apache.commons.net.WhoisClient").init();
    try {
      whois.connect(whois.DEFAULT_HOST);
      WriteOutput("<pre>"& whois.query("adobe.com") &"</pre>");
      whois.disconnect();
    }
    catch(IOException e) {
       WriteOutput("Error I/O exception: " + e.getMessage());
    }
</cfscript>

Даль, что для Рунета не подходит

Связано с категорией: Полезности 2 Комментарии
1Май/090

Работаем с Twitter

Маленькая хитрость. При помощи функции REReplace() мы заменим, к примеру, @riafusion  на ссылку на twitter-аккаунт https://twitter.com/riafusion. Это делается очень просто:

<cfset t = "Привет, подружись с @riafusion" />
<cfset t = REReplace(t, '[@]+([A-Za-z0-9-_]+)','<a href="http://twitter.com/\1" rel="nofollow">@\1</a>','ALL') />

Ну вот и всё!

Связано с категорией: Полезности Нет комментариев
1Май/090

Преобразуем URL-адреса в правильный HTML

Отлично, когда система превращает написанный в тексте URL в “живой” – это всегда удобно. Сделать в ColdFusion это можно следующим образом:

<cfset t_sting = "Зайди на http://cfusion.ru - лучший русскоязычный блог о CF" />
<cfset t_string = REReplace(t_string, "([A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&amp;\?\/.=]+)", "<a href="\1">\1</a>", "ALL") />

После чего вы получите такую строку:

Зайди на <a href="http://cfusion.ru">http://cfusion.ru</a> - лучший русскоязычный блог о CF

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

Связано с категорией: Полезности Нет комментариев
9Мар/090

ColdExt RC 1

Вышел первый кандидат-релиз ColdExt – лучшего способа использовать ExtJS в ваших coldfusion-проектах.

Связано с категорией: Новости, Полезности Нет комментариев
2Мар/090

CF & Apache Derby

Как вы знаете, CF умеет работать с БД от Apache – Derby. Посмотрите видео о том как это делается:

15Фев/090

Получаем MAC-адрес

Как получить Mac-адрес средствами Coldfusion? Легко!

<cfscript>
j=createobject("java", "java.net.InetAddress");
m=createobject("java", "java.net.NetworkInterface");
a=j.getLocalHost();
mac=m.getByInetAddress(a).getHardwareAddress();
</cfscript>
<cfdump var="#mac#">

Удачи.

Связано с категорией: Полезности Нет комментариев
5Фев/090

Читаем документы MS Office

Сегодня Рей опубликовал отличный пост о том, как при помощи coldfusion читать документы, созданные в MS Office.

Рей, кроме того, приводит и рабочий вариант кода, а также некоторые советы.

Связано с категорией: Полезности Нет комментариев
5Фев/090

SAVA: ваша бесплатная CMS

Да-да, совершенно бесплатная, многофункциональная, современная CMS, написанная на coldfusion – SAVA.

Связано с категорией: Полезности Нет комментариев
26Янв/090

Сколько пользователь тратит времени на просмотр страницы?

Интересный вопрос, и его себе задал Рэй Кэмден в своём посте. И, разумеется предложил наилучшее решение:


<cffunction name="onRequestStart" returnType="boolean" output="false">
   <cfargument name="thePage" type="string" required="true">
   <cfset var data = "">
   <cfif arrayLen(session.pages)>

     <cfset session.pages[arrayLen(session.pages)].duration = dateDiff("s", session.pages[arrayLen(session.pages)].timestamp, now())>
   </cfif>
   <cfset data = {page=getCurrentURL(),timestamp=now()}>
   <cfset arrayAppend(session.pages,data)>

   <cfreturn true>
</cffunction>

и

<cffunction name="onSessionEnd" returnType="void" output="false">
   <cfargument name="sessionScope" type="struct" required="true">
   <cfargument name="appScope" type="struct" required="false">

   <cfset var data = "">
   <cfset var filename = "">

   <cfwddx action="cfml2wddx" input="#arguments.sessionScope.pages#" output="data">

   <cfset filename = expandPath("./" & replace(createUUID(),"-","_","all") & ".txt")>

   <cfset fileWrite(filename, data)>
</cffunction>

Очень интересное решение!

Связано с категорией: Полезности Нет комментариев
22Янв/090

Полезность №5

Эй, а как средствами coldfusion определить разницу в двух датах? Легче не бывает. Для этого имеется функция datediff(), имеющая такой синтаксис:

datediff("на что сравниваем?", "дата №1", "дата №2")

Сравнивать разницу можно на:

  • yyyy: годы;
  • q: кварталы;
  • m: месяцы;
  • y: дни года;
  • d: дни;
  • w: дни недели;
  • ww: недели;
  • h: часы;
  • n: минуты;
  • s: секунды;

В общем случае функция обычно используется так:

//article.published - дата публикации, к примеру, статьи
#datediff('d', article.published, now())#

Пригодится! :)

Связано с категорией: Полезности Нет комментариев
22Янв/092

Полезность №4

Как выбрать из строки имя и фамилию при помощи ColdFusion? Как всегда – легко!

Для этого мы воспользуемся функцией gettoken():

<cfscript>
myname="Алексей Яковенко";
firstname=gettoken(myname, 1);
lastname=gettoken(myname, 2);
</cfscript>

Я немного доработал код до функции, которая очень примитивна, но показывает работу наглядно. Как вы понимаете, имена люди могут писать как без отчества, так и с ним, поэтому и вы можете получать доступ к частям ФИО:

<cfscript>
//функция вернёт структуру
function extractnames(names,extracttype) {
    //extracttype: "simple" - для двузначных имён. Или "notsimple" - для полного ФИО
    exnames=structnew();
    if (arguments.extracttype eq "simple") {
        exnames.fname=gettoken(arguments.names, 1);
        exnames.lname=gettoken(arguments.names, 2);
    } else if (arguments.extracttype eq "notsimple") {
        exnames.fname=gettoken(arguments.names, 1);
        exnames.mname=gettoken(arguments.names, 2);
        exnames.lname=gettoken(arguments.names, 3);
    } else {
        exnames.error=true;
    }
    return exnames;
}
</cfscript>

Всё готово. :)

Связано с категорией: Полезности 2 Комментарии
21Янв/091

Полезность №3

Как сгенерировать при помощи coldfusion стойкий пароль? Хм… всего пару строк написать и готово:

<cfscript>
npass="";
for(i=0; i lte 3; i=i+1) {
    //Генерируем пароль из букв и цифр, чередуя их. 
    //В конце мы 8-символьный пароль
    npass=npass & chr(randrange(90,115)) & randrange(0,9);
}
</cfscript>

Разумеется, вы можете сделать пароль длиннее. А можете доработать этот пример в функцию, которая будет возвращать вам пароль заданной длины:

<cfscript>
//параметр "n" - сколько символов должно быть в пароле 
function makepass(n) {
npass="";
for(i=0; i lte ( (arguments.n/2) - 1); i=i+1) {
    //Генерируем пароль из букв и цифр, чередуя их. 
    //В конце мы 8-символьный пароль
    npass=npass & chr(randrange(55,115)) & randrange(0,9);
} return npass;
}
</cfscript>

В результате вы получите сгенерированный пароль. Примерно такие:

j480[2e2=6`7   @3f9n9=9L8M0   U8Z6K5>5[9H3   J6Y6X7L6?1^0   I4T2k5\2n7R4

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

Как видите, coldfusion решает поставленную задачу очень быстро и элегантно.

Связано с категорией: Полезности 1 комментарий