"PHP" / Говнокод #5320 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
...
$kernel['title'] = strval( $kernel['doc']['title'] == "" ? $kernel['node']['title'] : $kernel['doc']['title'] );
$kernel['id_maket'] = intval( $kernel['doc']['id_maket'] == "" ? $kernel['node']['id_maket'] : $kernel['doc']['id_maket'] );
$kernel['keywords'] = strval( $kernel['doc']['keywords'] == "" ? $kernel['node']['keywords'] : $kernel['doc']['keywords'] );
$kernel['description'] = strval( $kernel['doc']['description'] == "" ? $kernel['node']['description'] : $kernel['doc']['description'] );
clearstatcache( );
ob_start( );
$mtime = NULL;
$path = TMP_DIR."/htdoc#".urlencode( $kernel['node']['fullpath'].$kernel['doc']['path'] ).".html#".$kernel['doc']['id'].".phpt";
if ( file_exists( $path ) )
{
    $mtime = filemtime( $path );
}
if ( $mtime && $mtime == $kernel['doc']['updated'] )
{
}
else if ( !$mtime || $mtime < $kernel['doc']['updated'] )
{
    if ( lockwrite( $path, $kernel['doc']['content'] ) && $kernel['doc']['updated'] )
    {
        touch( $path, $kernel['doc']['updated'] );
    }
}
else if ( $kernel['config']['sync'] && $kernel['doc']['updated'] < $mtime )
{
    $content = lockread( $path );
    if ( $content !== NULL )
    {
        $kernel['tree']->updatedoc( $kernel['doc']['id'], array( "content" => $content, "updated" => $mtime ) );
    }
    unset( $content );
}
if ( $kernel['doc']['eval'] )
{
    template( $path );
}
else
{
    readfile( $path );
}
$kernel['content'] = ob_get_contents( );
if ( $kernel['doc']['path'] == "index" && $kernel['content'] == "" && $kernel['node']['id'] != 1 )
{
    module( "htdocs/main.php" );
    $kernel['content'] = trim( ob_get_contents( ) );
    if ( $kernel['content'] == "" && $kernel['node']['isparent'] )
    {
        $childs = $kernel['tree']->branch( $kernel['node']['id'], array( "fullpath" ), "", true );
        if ( is_array( $childs ) && !empty( $childs['1'] ) )
        {
            $kernel['http_code'] = 403;
            header( "HTTP/1.1 301 Moved Permanently" );
            $location = "http://".$_SERVER['HTTP_HOST'].$childs['1']['fullpath'];
            if ( $_SERVER['QUERY_STRING'] != "" )
            {
                $location .= "?".$_SERVER['QUERY_STRING'];
            }
            header( "Location: ".$location );
            unset( $childs );
            exit( 0 );
        }
    }
}
$kernel['doc']['content'] =& $kernel['content'];
ob_end_clean( );
unset( $mtime );
unset( $path );
if ( $kernel['node']['eval'] != "" )
{
    $mtime = NULL;
    $path = TMP_DIR."/httree#".urlencode( $kernel['node']['fullpath'] )."#".$kernel['node']['id'].".phpt";
    if ( file_exists( $path ) )
    {
        $mtime = filemtime( $path );
    }
    if ( $mtime && $mtime == $kernel['node']['updated'] )
    {
    }
    else if ( !$mtime || $mtime < $kernel['node']['updated'] )
    {
        if ( lockwrite( $path, $kernel['node']['eval'] ) && $kernel['node']['updated'] )
        {
            touch( $path, $kernel['node']['updated'] );
        }
    }
    else if ( $kernel['config']['sync'] && $kernel['node']['updated'] < $mtime )
    {
        $content = lockread( $path );
        if ( $content !== NULL )
        {
            $kernel['tree']->update( $kernel['node']['id'], array( "eval" => $content, "updated" => $mtime ) );
        }
        unset( $content );
    }
    template( $path );
    unset( $mtime );
    unset( $path );
}

...

Весьма популярная в Красноярске Aquilon CMS (разработчик Интекмедиа http://www.intecmedia.ru/). Это кусок ядра - а именно некое кэширование. Теперь стало понятно, почему все ядро было зашифровано :)

Запостил: dew2 dew2, (Updated )

Комментарии (21) RSS

  • > почему все ядро было зашифровано 🙂
    потому что у автора, как и у всех представителей говнокодеров, высокое ЧСВ, этому классу чужд опенсурс ))
    впрочем, шифрование явно лишнее - я бегло прочитал код и нихрена не понял )))
    Ответить
  • а мне кажется, ему просто было ссыкатно выставлять такое на всеобщее обозрение)) и да, Вы правы - нихрена непонятно))) я расшифровал все это дело, чтобы добавить нормальное кэширование, но куда?..
    Ответить
    • я придумал новый способ защиты авторского права!
      надо писать приложение максимально плохо, что бы оно никому даром было не нужно

      тогда можно не боятся пиратов!
      Ответить
      • хм Дениска Попов похоже так и делает. Только не пишет расказывает.
        Ответить
  • Да давайте уже постить CMS полностью, один с кибибайта начал, потом два, теперь вот 5 кибибайт. Чего мелочиться-то? Чем больше кода, тем гуще говнокод.
    Нельзя что ли было выдернуть именно ту часть, которая гавно?
    Ответить
    • > Нельзя что ли было выдернуть именно ту часть, которая гавно?
      и настрогать тыщу постов? = )))
      Ответить
    • Вы бы знали, сколько говна из этой цмски я оставил за кадром:( это еще так, по мелочи
      Ответить
  • >>$kernel['doc']['content'] =& $kernel['content'];

    муха-ха! кернел у них! все серьезно, как у взрослых дядей
    Ответить
  • Кстати, заметили на строке 39 readfile( $path ); ? Файлы прочитанные и выведенные таким образом не кэшируются опкод кэшерами типа APC, xcache, или eAccelerator:) Т.е. постоянно читает с диска одно и тоже, что не может не радовать)))
    Ответить
  • А так везде только положительные отзывы об этой Аквилон CMS
    Ответить
  • Добрый день!
    Иногда удача сама стучится в дверь.
    Я рискнул и получилось!
    Смотрите видео, правдо не с начала, но основное снял на тел.
    Смотреть: http://yeslib.ru/news/46-game.html
    Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8