1. PHP / Говнокод #20406

    −3

    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
    <?php
    
    if(!class_exists('avia_breadcrumb'))
    {
    	class avia_breadcrumb
    	{
    		var $options;
    
    	function __construct($options = ""){
    
    		$this->options = array( 	//change this array if you want another output scheme
    		'before' => '<span class="arrow"> ',
    		'after' => ' </span>',
    		'delimiter' => '&raquo;'
    		);
    
    		if(is_array($options))
    		{
    			$this->options = array_merge($this->options, $options);
    		}
    
    
    		$markup = $this->options['before'].$this->options['delimiter'].$this->options['after'];
    
    		global $post;
    		echo '<p class="breadcrumb"><span class="breadcrumb_info">'.__('You are here:','avia_framework').'</span> <a href="'.get_bloginfo('url').'">';
    			bloginfo('name');
    			echo "</a>";
    			if(!is_front_page()){echo $markup;}
    
    			$output = $this->simple_breadcrumb_case($post);
    
    			echo "<span class='current_crumb'>";
    			if ( is_page() || is_single()) {
    			the_title();
    			}else{
    			echo $output;
    			}
    			echo " </span></p>";
    		}
    
    		function simple_breadcrumb_case($der_post)
    		{
    			global $post;
    
    			$markup = $this->options['before'].$this->options['delimiter'].$this->options['after'];
    			if (is_page()){
    				 if($der_post->post_parent) {
    					 $my_query = get_post($der_post->post_parent);
    					 $this->simple_breadcrumb_case($my_query);
    					 $link = '<a href="';
    					 $link .= get_permalink($my_query->ID);
    					 $link .= '">';
    					 $link .= ''. get_the_title($my_query->ID) . '</a>'. $markup;
    					 echo $link;
    				  }
    			return;
    			}
    
    		if(is_single())
    		{
    			$category = get_the_category();
    			if (is_attachment()){
    
    				$my_query = get_post($der_post->post_parent);
    				$category = get_the_category($my_query->ID);
    
    				if(isset($category[0]))
    				{
    					$ID = $category[0]->cat_ID;
    					$parents = get_category_parents($ID, TRUE, $markup, FALSE );
    					if(!is_object($parents)) echo $parents;
    					previous_post_link("%link $markup");
    				}
    
    			}else{
    
    				$postType = get_post_type();
    
    				if($postType == 'post')
    				{
    					$ID = $category[0]->cat_ID;
    					echo get_category_parents($ID, TRUE, $markup, FALSE );
    				}
    				else if($postType == 'portfolio')
    				{
    					$terms = get_the_term_list( $post->ID, 'portfolio_entries', '', '$$$', '' );
    					$terms = explode('$$$',$terms);
    					echo $terms[0].$markup;
    
    				}
    			}
    		return;
    		}

    Собственно вся суть, 2а раза генерируются, смотрел в функшин где написан код, все чисто, но все равно 2а раза генерируется

    Получается грубо говоря:

    You here: Home / <b>Hello world</b> / %category% / <b>Hello world</b>

    Не могли бы помочь. Или куда смотреть, был бы благодарен.

    Запостил: olee444, 21 Июля 2016

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

    • Хранить HTML в классах - плохо! Очень плохо!
      Используй шаблоны. Если не хочешь разбираться в шаблонизаторах - хоть в том же PHP шаблонизируй.
      Ответить
      • Да я уже разобрался..
        Ответить
      • // Хранить HTML в классах - плохо!
        class Foo {
        public:
            void ShowHtml() {
                std::cout << "<html><head>";
                // ...
            }
        };
        
        // Используй шаблоны
        template <typename T> class Foo {
        public:
            void ShowHtml() {
                std::cout << "<html><head>";
                // ...
            }
        };
        Ответить
        • Я кстати регулярно вижу потуги людей сделать класс для генерации html. Всякие блядь методы table(tr(..), td(..))

          Программер не может верстку
          Пора уже понять
          Ответить
          • http://lxml.de/api/lxml.builder.ElementMaker-class.html
            Ответить
            • хмл еще пол беды так генерить
              XML генерит програмер

              а вот когда верстку на html так делают -- это песдец
              верстун потом плачен
              Ответить
              • html тоже так можно делать.
                Ответить
                • нахуя?
                  Ответить
                  • >Я кстати регулярно вижу потуги людей сделать класс для генерации html.
                    А тут их прямо в библиотеку включили.
                    Ответить
          • > класс для генерации html
            http://govnokod.ru/11549
            http://govnokod.ru/18440
            Ответить
          • > Программер не может верстку
            А дизайнер может программу?
            Ответить
            • Дизайнеры и вёрстку зачастую не могут.
              Ответить
              • Хороший дизайнер иногда может. Но серьезный фронтенд не может конечно.
                Ну правда фронтенд никто не может, потому что на джаваскрипте впринципе нельзя написать неговно
                Ответить

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