Ответы пользователя по тегу ООП
  • Итерация javascript объекта с разбивкой на группы по N элементов?

    Добрый день!

    Мне кажется, что получился некий каламбур. Не совсем пойму: каждый проект делится на страницы или же на страницах выводятся проекты?

    Исходя из Вашего кода, можно сделать вывод, что происходит и то, и то, что невозможно :)

    Также, хочу заметить, что не имел дел с этим шаблонизатором, но, на мой взгляд, должно выйти что-то в духе:
    - var projects = getCollection('projects').toJSON()
    - var count = projects.length
    - var ppage = 16 // per page
    - var pages = Math.ceil(count / ppage)
    - var cpage = 1 // current page
    
    // добавляем пустые элементы в projects
    - if (count < ppage*pages)
    	- for (var n = count+1; n <= ppage*pages; n++)
    		projects[n] = null
    
    .entry-list
        each project, i in projects
        	- if (i == (1 + ppage * (cpage - 1)))	// 1,17,33,etc
            .entry-list-page.page$cpage				// не знаю, как вывести переменную
            // тут, возможно, нужен endif какой-то
    
            	- if (project != null)
                .hentry
                    a(href=project.url).entry-link
                        h3= project.title
                - else
                .hentry.empty


    Вместо добавления пустых элементо в projects можно было бы просто после each (когда он закончится уже) сделать еще for, который дописал бы "пустые" теги, но, насколько понимаю, этого сделать нельзя, т.к. див .entry-list-page.page2 будет закрыт внутри последней итерации each.

    Исходя из этого есть такой вариант еще:
    - var projects = getCollection('projects').toJSON()
    - var count = projects.length
    - var ppage = 16 // per page
    - var pages = Math.ceil(count / ppage)
    - var cpage = 1 // current page
    
    .entry-list
        each project, i in projects					// это подсмотрел на stackoverflow, должно возвращать индекс
        	- if (i == (1 + ppage * (cpage - 1)))	// 1,17,33,etc
            .entry-list-page.page$cpage				// не знаю, как вывести переменную
            // тут, возможно, нужен endif какой-то
    
                .hentry
                    a(href=project.url).entry-link
                        h3= project.title
    
                - if (i == count && count < ppage*pages)
                	- for (var n = count+1; n <= ppage*pages; n++)
                	.hentry.empty


    Извиняюсь, если мои идеи только запутают, но алгоритмически это должно работать.
    Необходимо пофиксить вывод переменной и проверить each.
    Ну и все прочие элементы синтаксиса :)
    Ответ написан
    Комментировать
  • Как получить имя caller класса PHP

    class ParentClass {
        function action() {
            echo get_class($this);
        }
    }
    Ответ написан
    Комментировать