1. C# / Говнокод #4623

    +117

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 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

    Комментарии (4)
  2. C# / Говнокод #4622

    +115

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 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

    Комментарии (2)
  3. C# / Говнокод #4621

    +116

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 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

    Комментарии (2)
  4. C# / Говнокод #4620

    +115

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 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

    Комментарии (0)
  5. PHP / Говнокод #4619

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    switch ($mode) {
                default:
                <не интересный код пропущен>
                break;
    }

    Догайтесь с какого это проекта?

    Я бы не запостил, если бы не увидел на хабре сообщение от некоторого striker_vlad:
    "буду рад, если найдете там что-то, что можно будет напостить на сам сайт ;)"

    Oleg_quadro, 13 Ноября 2010

    Комментарии (47)
  6. JavaScript / Говнокод #4618

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    var Class = function () {
    	this.method = function () {
    		/* … */
    	};
    };
    
    Class = new Class();

    fuckyounoob, 13 Ноября 2010

    Комментарии (2)
  7. PHP / Говнокод #4617

    +161

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 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

    Комментарии (6)
  8. C# / Говнокод #4616

    +121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 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

    Комментарии (1)
  9. ActionScript / Говнокод #4615

    −154

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 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

    Комментарии (0)
  10. C++ / Говнокод #4614

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 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

    Комментарии (9)