-
+117
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
private XmlNode GetListItemsXML(bool _flag, string _param, SPList _list)
{
SPQuery oEmptyQuery = new SPQuery();
SPListItemCollection spliColl;
XmlReaderSettings sett = new XmlReaderSettings();
Stream stream;
XmlReader reader;
XmlDocument listItems = new XmlDocument();
string str = "";
try
{
switch (_flag)
{
case true:
//select division
oEmptyQuery.Query = "<Where><Eq><FieldRef Name=\"URL\"/><Value Type=\"Text\">" + _param + "</Value></Eq></Where>";
spliColl = _list.GetItems(oEmptyQuery);
str = c_my_headFile + spliColl.Xml;
str.Replace("\r\n", "");
stream = new MemoryStream(new UTF8Encoding(true).GetBytes(str));
sett.ConformanceLevel = ConformanceLevel.Auto;
reader = XmlReader.Create(new StringReader(str), sett);
listItems.LoadXml(str);
return listItems.SelectSingleNode("xml").ChildNodes[1].ChildNodes[0];
//return listItems.SelectSingleNode("xml").ChildNodes[1];
case false:
//select articles
//_x0420__x0430__x0437__x0434__x04
oEmptyQuery.Query = "<Where><Eq><FieldRef Name=\"_x0420__x0430__x0437__x0434__x04\" LookupId=\"TRUE\" /><Value Type=\"Lookup\">" + _param + "</Value></Eq></Where>";
spliColl = _list.GetItems(oEmptyQuery);
str = c_my_headFile + spliColl.Xml;
str.Replace("\r\n", "");
stream = new MemoryStream(new UTF8Encoding(true).GetBytes(str));
sett.ConformanceLevel = ConformanceLevel.Auto;
reader = XmlReader.Create(new StringReader(str), sett);
listItems.LoadXml(str);
//return listItems.SelectSingleNode("xml").ChildNodes[1].ChildNodes[0];
return listItems.SelectSingleNode("xml").ChildNodes[1];
}
}
catch (XmlException)
{
return null;
}
catch (Exception)
{
return null;
}
return null;
}
Метод, у которого говорящая сигнатура. Увидев ее можно сразу понять что делает этот мегакусок.
Если кто-нибудь поймет зачем создается экземпляр ридера - объясните. Блин я не понял, честно... xD
(SPQuery и др. это опять же SharePoint API.)
dreaktor,
14 Ноября 2010
-
+115
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
private string ContentTransformation(string _xmlContent, string _xsltScheme)
{
try
{
XmlReaderSettings xmlRS = new XmlReaderSettings();
XPathDocument doc = new XPathDocument(XmlReader.Create(new StringReader(_xmlContent), xmlRS));
XPathNavigator nav = doc.CreateNavigator();
XmlReader reader = XmlReader.Create(new StringReader(nav.OuterXml));
reader.MoveToContent();
System.IO.StringReader strRead = new StringReader(_xsltScheme);
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(XmlReader.Create(strRead));
// Transform the node fragment.
StringWriter strW = new StringWriter();
XmlWriterSettings wrSet = new XmlWriterSettings();
wrSet.ConformanceLevel = ConformanceLevel.Auto;
XmlWriter xmlW = XmlWriter.Create(strW, wrSet);
xslt.Transform(reader, xmlW);
xmlW.Close();
return strW.ToString();
}
catch (ArgumentNullException anEx)
{
return "XSL преобразование не выполнено!<br>Параметр равен null.<br>" + anEx.Message;
}
catch (XsltException xsltEx)
{
return "XSL преобразование не выполнено!<br>Проверте XSL схему.<br>" + xsltEx.Message;
}
catch (Exception ex)
{
return ex.Message;
}
}
Учимся применять XSL шаблон к XML данным, и между делом поглядываем в сий гениальный шедевр - в нем вся истина о том, как четко и со вкусом, а главное элегантно выполнить эту задачу. Да еще и обработка ошибок сделана! Шикарный кусок.
dreaktor,
14 Ноября 2010
-
+116
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
private string makeUrlAbsolute(string url)
{
isWebPartPropertiesError = false;
try
{
if (!string.IsNullOrEmpty(url))
{
bool shouldCheckForRootWeb = false;
if (!url.StartsWith("http://"))
{
if (url.StartsWith("//")) throw new Exception("Неправильная ссылка");
if (!url.StartsWith("/")) url = url.Insert(0, "/");
url = url.Insert(0, SPContext.Current.Site.Url);
shouldCheckForRootWeb = true;
}
using (SPSite site = new SPSite(url))
{
using (SPWeb web = site.OpenWeb())
{
if (!url.Contains(web.Url)) isWebPartPropertiesError = true;
if (shouldCheckForRootWeb && site.Url.Equals(web.Url)) isWebPartPropertiesError = true;
return url;
}
}
}
else return "";
}
catch
{
isWebPartPropertiesError = true;
return "";
}
//this.CatalogIconImageUrl = this.ClassResourcePath + "/Test.ico";
//this.TitleIconImageUrl = this.ClassResourcePath + "/Test.ico";
}
Продолжаю серию мегаполезных хелперов.
Эта страхолюдина найдена там же где и пред. кусок.
Судя по названию, она должна делать урл абсолютным...
(SPSite и др., это SharePoint API если кто не в курсе)
dreaktor,
14 Ноября 2010
-
+115
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
private string GetSubURI(string _stringURI)
{
if (_stringURI.IndexOf("http://") > -1)
{
int counter = 0;
int chNumber = -1;
for (int i = 0; i <= _stringURI.Length - 1; i++)
{
if (_stringURI[i] == '/')
counter++;
if (counter == 3)
{
chNumber = i + 1;
break;
}
}
return _stringURI.Substring(chNumber, (_stringURI.Length - chNumber) - 1);
}
else
{
int chNumber = -1;
for (int i = _stringURI.Length - 1; i >= 0; i--)
{
if (_stringURI[i] == '/')
{
chNumber = i;
break;
}
}
if (chNumber != -1)
return _stringURI.Substring(0, chNumber);
else
return "";
}
}
Элегантный адаптер строк для другой функции, кушающей урлы, возвращаемые этим шедевром.
Это хозяйство досталось в наследство от уволенного "разработчика .NET".
Я сохранил, вдруг пригодиться .... и не прогадал :)
dreaktor,
14 Ноября 2010
-
+144
- 1
- 2
- 3
- 4
- 5
switch ($mode) {
default:
<не интересный код пропущен>
break;
}
Догайтесь с какого это проекта?
Я бы не запостил, если бы не увидел на хабре сообщение от некоторого striker_vlad:
"буду рад, если найдете там что-то, что можно будет напостить на сам сайт ;)"
Oleg_quadro,
13 Ноября 2010
-
+157
- 1
- 2
- 3
- 4
- 5
- 6
- 7
var Class = function () {
this.method = function () {
/* … */
};
};
Class = new Class();
fuckyounoob,
13 Ноября 2010
-
+161
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
<?php
//Список категорий
function get_cat_list () {
$sql_cat_list = mysql_query("SELECT * FROM te_categories ORDER BY category_id");
for ($cat_list=array(); $row=mysql_fetch_assoc($sql_cat_list); $cat_list[]=$row);
$cat_list = array_reverse ($cat_list); //переворачиваем массив
return $cat_list;
}
//Категории в норм виде (возвращает массив или печатает)
function get_categories ($cat_list, $print="noprint") {
foreach ($cat_list as $cat)
{
$categories [$cat['category_id']]['name'] = $cat['name'];
$categories [$cat['category_id']]['cat_count'] = $cat['cat_count'];
if ($print !== "noprint") echo '<li class="list"><a href="?page=article&category_id='.$cat['category_id'].'">'.$cat['name'].'</a> <small>('.$cat['cat_count'].')</small></li>';
}
if ($print == "noprint") return $categories;
}
/*
Коментарий ниже:
Зачем вначале мы получили список категорий $cat_list,
а затем зачем-то преобразовали в $categories в цикле foreach?
Просто для удобства и красоты мы из списка массивов
(записей или строк), полученных из БД,
сделали двумерный массив
с первичным ключом category_id
(ведь он у нас уникален).
Для наглядности распечатайте оба этих массива,
и сразу увидите разницу:
*/
?>
Свеженькое Г
Версия 0.02 CMS Tractor Engine
(Кажись 2010 год)
Будущее интернетов...
istem,
13 Ноября 2010
-
+121
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
string commQuery = "CREATE DATABASE " + this.textBox1.Text +
" ON" +
" ( " +
"NAME =" + this.textBox1.Text + ", " +
"FILENAME =" + this.textBox2.Text +
"SIZE = 100mb, " +
"MAXSIZE = unlimited, " +
"FILEGROWTH = 5mb" +
" ) " +
"LOG ON " +
" ( " +
"NAME =" + this.textBox1.Text + ", " +
"FILENAME =" + this.textBox2.Text +
"SIZE = 3mb, " +
"MAXSIZE = 50mb, " +
"FILEGROWTH = 5mb" +
" ) ";
SqlConnection conSQL = new SqlConnection("Data Source = (local);" + "Integrated security = True;" + "database = master");
SqlCommand commSQL = new SqlCommand("", conSQL);
commSQL.CommandType = CommandType.Text;
commSQL.CommandText = commQuery.ToString();
conSQL.Open();
commSQL.ExecuteNonQuery();
conSQL.Close();
очень нравиться совершенство стиля формирования БД на сервере и защита от SQL иньекций :-D
ageron,
13 Ноября 2010
-
−154
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
for(i = 0;i < 15;i++)//break_names_array.length
{
name_buttons_array[i] = new BreakenFriends(break_names_array[0]);
name_buttons_array[i].x = i * name_buttons_array[i].width;
addChild(name_buttons_array[i]);
if(i >= 12)
{
name_buttons_array[i].y = 4 * (name_buttons_array[i].height + 5);
name_buttons_array[i].x = (i - 12) * name_buttons_array[i].width;
}else
if(i >= 9)
{
name_buttons_array[i].y = 4 * (name_buttons_array[i].height + 5);
name_buttons_array[i].x = (i - 9) * name_buttons_array[i].width;
}else
if(i >= 6)
{
name_buttons_array[i].y = 3 * (name_buttons_array[i].height + 5);
name_buttons_array[i].x = (i - 6) * name_buttons_array[i].width;
}else
if(i >= 3)
{
name_buttons_array[i].y = 2 * (name_buttons_array[i].height + 5);
name_buttons_array[i].x = (i - 3) * name_buttons_array[i].width;
}
else
{
name_buttons_array[i].y = (name_buttons_array[i].height + 5);
}
}
"Таблица" =)
KirAmp,
13 Ноября 2010
-
+160
- 1
- 2
- 3
- 4
- 5
int m[3][3]={
{1, 6, 7},
{2, 5, 8},
{3, 4, 9}};
int tmp[3]={m[0][0],m[0][1],m[0][2]}; m[0][0]=m[1][0];m[0][1]=m[1][1];m[0][2]=m[1][2]; m[1][0]=tmp[0];m[1][1]=tmp[1];m[1][2]=tmp[2];
Программа меняет местами 2 строки
qbasic,
13 Ноября 2010