1. Список говнокодов пользователя qstd

    Всего: 10

  2. PHP / Говнокод #23337

    −2

    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
    public static function GenerateMenu()
        {
            $item = [];
            $section = self::find()->all();
            $count_section = 0;
    
            foreach ($section as $model_section) {
                $item[] = ['label' => $model_section->name, 'url' => '#'];
                $category = \common\models\Category::find()->where(['id_section' => $model_section->id])->all();
                $count_category = 0;
                foreach ($category as $model_category) {
                    $item[$count_section]['items'][$count_category] = ['label' => $model_category->name, 'url' => '#'];
                    $subcategory = \common\models\Subcategory::find()->where(['id_category' => $model_category->id])->all();
                    $count_subcategory = 0;
                    foreach ($subcategory as $model2) {
                        $item[$count_section]['items'][$count_category]['items'][$count_subcategory] = ['label' => $model2->name, 'url' => '#'];
                        $count_subcategory++;
                    }
                    $count_category++;
                }
                $count_section++;
            }
    
            return $item;
        }

    Феерическое решение для вывода tree из трех категорий.

    qstd, 09 Сентября 2017

    Комментарии (4)
  3. PHP / Говнокод #23182

    0

    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
    public function notLessThan($attribute_name, $params)
        {
            $attributes = [
                [
                    'error' => 0,
                    'name' => 'ingredient_1st',
                    'this' => $this->ingredient_1st
                ],
                [
                    'error' => 0,
                    'name' => 'ingredient_2nd',
                    'this' => $this->ingredient_2nd,
                ],
                [
                    'error' => 0,
                    'name' => 'ingredient_3rd',
                    'this' => $this->ingredient_3rd
                ],
                [
                    'error' => 0,
                    'name' => 'ingredient_4th',
                    'this' => $this->ingredient_4th
                ],
                [
                    'error' => 0,
                    'name' => 'ingredient_5th',
                    'this' => $this->ingredient_5th
                ],
            ];
            $this->counter = 0;
            foreach ($attributes as $key => &$attribute) { // change array element
                if (empty($attribute['this']) && $this->counter < 2) {
                    $attribute['error'] = 1;
                } else {
                    $this->counter++;
                }
            }
            if ($this->counter < 2) {
                foreach ($attributes as $key => $attribute) {
                    if ($attribute['error']) {
                        $this->addError($attribute['name'], 'Должно быть заполнено не менее двух полей.');
                    }
    
                }
                return false;
            }
            return true;
        }

    Валидатор проверки заполнения нужного количества полей

    qstd, 13 Июля 2017

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

    −2

    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
    /******** Model **********/
     $model = new CreateArticleForm();
            if ($model->load(Yii::$app->request->post())) {
                if ($model->create()) {
                    Yii::$app->session->setFlash('success', [
                        'type' => 'success',
                        'duration' => 0,
                        'icon' => 'fa fa-users',
                        'message' => 'Success created.',
                        'title' => 'Change password',
                    ]);
                } else {
                    Yii::$app->session->setFlash('danger', [
                        'type' => 'danger',
                        'duration' => 0,
                        'icon' => 'fa fa-users',
                        'message' => 'Error created.',
                        'title' => 'Change password',
                    ]);
                }
            } else {
                return $this->render('create-article',
                    [
                        'language_current' => $language_current,
                        'page' => $page,
                        'model' => $model,
                    ]);
            }
    
    /******** View **********/
     <?php Pjax::begin(['id' => 'my-pjax']); ?>
                                <?php $form = ActiveForm::begin(['id' => 'form-change-pass', 'options' => ['enctype' => 'multipart/form-data', 'data-pjax' => true]]); ?>
                                <?= $form->field($model, 'title')->textInput(['autofocus' => true, 'class' => 'form-control']) ?>
    
                                <label for="usr">Категория</label>
    
                                <div class="bs-docs-example">
                                    <?= Html::activeDropDownList($model, 'id_category',
                                        ArrayHelper::map(\common\models\Category::find()->all(), 'id', 'name'),
                                        ['class' => 'selectpicker dropdownlist form-control',
                                            'data-width' => '100%',
                                            'multiple' => 'true']) ?>
                                </div>
    
                                <?= $form->field($model, 'text', ['inputOptions' => ['class' => 'summernote form-control']])->textarea(['rows' => 6]) ?>
    
                                <?= Html::input('submit', '0', Yii::t('menu', 'form_submit')); ?>
                                <?php ActiveForm::end(); ?>
                                <?php Pjax::end(); ?>

    Первое использование Pjax в Yii2

    qstd, 14 Июля 2016

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

    +142

    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
    public void AllocateMemory(ref int[] segmentSizeProcess)
            {
                int[] difference;
                int j = 0;
                int tempo = 0;
    
                for (int i = 0; i < segmentSizeProcess.Count(); i++)
                {
                    difference = new int[memory.Count]; // храним разность размера блока памяти и требуемого размера для процесса
                    for (int count = 0; count < memory.Count; count++)
                    {
                        difference[count] = -2; // предварительно инициализируем 
                    }
                    for (int count_memory=0; count_memory<memory.Count();
                        count_memory++)
                    {
                        if (memory[count_memory].size - segmentSizeProcess[i] >= 0) // если равно 0, значит 
                        // сегмент полностью распределён
                        {
                            if (!memory[count_memory].isAllocate)
                            { difference[count_memory] = memory[count_memory].size - segmentSizeProcess[i]; }
                            else
                            { difference[count_memory] = -1; } // если сегмент занят - 
                            // то он недоступен
                        }
                    }
                    tempo = GetMinDifference(ref difference); // получаем индекс минимальной разности
                    // если результат "-", значит секторы заняты, выходим из цикла
                    if (difference[tempo] >= 0)
                    {
                        memory.ElementAt(tempo).isAllocate = true; // процесс занял сегмент
                        if (difference[tempo] > 0) // если остаётся фрагмент памяти
                        {
                            CreateDifferenceSegment(difference[tempo]); // создаем новый сегмент, равный
                            // наименьшей разности памяти сегмента и памяти для процесса
                        }
                            memory[tempo].size = segmentSizeProcess[i]; // распределяем память
                    }
                    else
                    {
                        break;
                    }
                }
            }

    Примерная реализация алгоритма best-fit

    qstd, 15 Июня 2015

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

    +142

    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
    function ValidateSignupData()
    {
        var username = $('#signup-name').val();
        var password = $('#signup-password').val();
        var password_confirm = $('#signup-password-confirmation').val();
        var email = $('#signup-email').val();
        var type_payment = $('#signup-payment').val();
        var card_numb = $('#signup-numb').val();
    
        if(username.length()>0) {
            if(password.length()>0) {
                if(password_confirm.length()>0) {
                    if (password == password_confirm) {
                        if(card_numb.length()>0 && card_numb.length()<14) {
                        }
                        else {
                            $('#message-signup').text('Поле "Номер карты" слишком короткое');
                        }
                    }
                    else {
                        $('#message-signup').text('Пароли не совпадают');
                    }
                }
                else
                {
                    $('#message-signup').text('Поле "Подтверждение пароля" не заполнено');
                }
        }
        else 
            {
            $('#message-signup').text('Поле "Пароль" не заполнено');
        }
        }
        else {
            $('#message-signup').text('Поле "Имя" не заполнено');
        }
    }

    Простейшая валидация формы.

    qstd, 21 Апреля 2015

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

    +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
    <tbody>
                <?php
                foreach ($views as $key_view => $value_view) {
                    ?>
                    <tr>
                        <td><?php print $key_view?></td>
                        <td><?php print $value_view?></td>
                        <?php
                        foreach ($sales as $key => $value) {
                            ?>
                            <td><?php print $value?> руб</td>
                            <td></td>
                            <td><?php print ($value_view / $value_view) * 100 ?></td>
                            <td>0</td>
                        <?php
                            break;
                        }
                        ?>
                    </tr>
                <?php } ?>
                </tbody>

    Верстка с кодом - вывод статистики для проекта.

    qstd, 30 Марта 2015

    Комментарии (12)
  8. PHP / Говнокод #17778

    +159

    1. 1
    2. 2
    <button type="submit"  method="post" action="/vote-positive" class="like" name="<?=$model->numb_positive?>"></button>
                        <button type="submit"  method="post" action="vote-negative" class="dizlike" name="<?=$model->numb_positive?>"></button>

    Попытка обработать нажатие на кнопку - для системы рейтинга.

    qstd, 13 Марта 2015

    Комментарии (7)
  9. C# / Говнокод #16253

    +130

    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
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    class ProducerConsumer
        {
            private static Semaphore semaphore = new Semaphore(1, 2);
            static object locker = new object();
            static int product = 0;
            private static bool work = true;
            private static bool valueSet = false; // why??
    
            private static void Producer() // производитель
            {
                while (work)
                {
                    Console.WriteLine("Thread Producer start");
                    int sqr = 0;
                    semaphore.WaitOne(); // декрементируем счётчик семафора
                    for (int i = 0; i < 15; i++)
                    {
                        sqr = i * i;
                    }
                    lock (locker) // error
                    {
    
                        while (valueSet)
                        {
                            Thread.Yield();
                        }
                        product += sqr;
                        valueSet = true;
                        Console.WriteLine("Product put: " + sqr);
                        Console.WriteLine("Product now: " + product);
                    }
                    semaphore.Release(); // выход из семафора
                    Thread.Sleep(5000);
                }
            }
    
            private static void Consumer() // потребитель
            {
                const int MAX = 5;
                int[] arr = new int[MAX];
                int result = 0;
                Random rand = new Random();
    
                while (work)
                {
                    Console.WriteLine("Thread Consumer start");
                    semaphore.WaitOne(); 
                    for (int i = 0; i < 5; i++)
                    {
                        arr[i] = rand.Next(0, 1024);
                    }
                    for (int i = 0; i < 5; i++)
                    {
                        result += arr[i];
                    }
                    result /= 5;
                    while (!valueSet)
                    {
                        Thread.Yield();
                    }
                    lock (locker)
                    {
                        if (product - result > 0) // исключаем отриц.кол-ва продуктов
                        {
                            product -= result;
                            Console.WriteLine("Product get: " + result);
                        }
                        else 
                        {
                            Console.WriteLine("Product < 0");
                        }
                        valueSet = false;
                        Console.WriteLine("Product now: " + product);
                    }
                    semaphore.Release();
                    Thread.Sleep(5000);
                }
            }
    
            public static void Main()
            {
                Thread threadProducer = new Thread(Producer);
                threadProducer.Start();
    
                Thread threadConsumer = new Thread(Consumer);
                threadConsumer.Start();
    
                Thread.Sleep(5000);
    
                Console.WriteLine("Main thread start.");
                String str = System.Console.ReadLine();
                Console.ReadKey();
            } 
    }

    Корявый пример решения задачи "Producer-Consumer".

    qstd, 29 Июня 2014

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

    +134

    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
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace ConnectToTenderGov
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                Connect connect = new Connect();
                webBrowser1.Navigate("https://tender.me.gov.ua/EDZFrontOffice/menu/ru/");
            
                while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
                    Application.DoEvents();
                webBrowser1.Document.GetElementById("login:login").SetAttribute("value", "***@***.com");
                webBrowser1.Document.GetElementById("login:password").SetAttribute("value", "***");
                webBrowser1.ScriptErrorsSuppressed = true;
                webBrowser1.Document.GetElementById("login:loginButtonPopup").InvokeMember("click");
            }
        }
    }

    Пытался реализовать модуль авторизации, требование - должны были использоваться cookie.

    qstd, 02 Мая 2014

    Комментарии (27)
  11. ActionScript / Говнокод #15880

    −127

    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
    package socialnetworks
    {
    	/* package created 17.01.2013 */
    	import flash.display.Sprite;
    
    	import socialnetworks.*;
    	public class SocialNetworks extends Sprite
    	{
    		private var window:WindowSubstrate;
    		private var img_link:ImageLink;
    		public function SocialNetworks()
    		{
    			// constructor code
    			window=new WindowSubstrate();
    			window.CreateWorkSpace();
    			img_link = new ImageLink(window,"icon's/twitter-bird-light-bgs.png","https://twitter.com/kru_kikz",0,0);
    			img_link = new ImageLink(window,"icon's/vk2.png","http://vk.com/kru_kikz",135,0);
    			img_link = new ImageLink(window,"icon's/YouTube_logo_stacked_dark.png","http://vk.com/kru_kikz",270,0);
    
    			stage.addChild(window);
    		}
    	}
    }

    qstd, 01 Мая 2014

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