Вход • Регистрация

Всего найдено: 5692

  • 05 апреля 2011 г.
  • Ребята, давайте я один раз напишу принцип и вы будете его применять везде сами, как сильные программисты?
    В HTML есть такое понятие, как таблица:
    Код
    <table> - это таблица
    <tr> - это 1 строка
    <td></td> - это 1 колонка 1 строки
    <td></td> - это 2 колонка 1 строки
    </tr>
    <tr>
    - это 2 строка
    <td></td> - это 1 колонка 2 строки
    <td></td> - это 2 колонка 2 строки
    </tr>
    <tr>
    - это 3 строка
    <td></td> - это 1 колонка 3 строки
    <td></td> - это 2 колонка 3 строки
    </tr>
    </table>

    Видите принцип?
    По краям стоит <table></table>
    Каждая строка начинается и заканчивается <tr></tr>
    И внутри каждой строки есть колонки <td>содержимое</td>
    Т.е. у нас в таблице повторяются <tr></tr> - это строки в таблице, а в каждой строке повторяются по две колонки <td></td>.

    Соответственно, чтобы в РНР вывести таблицу надо сделать цикл:

    Код
    echo "<table>";
    цикл { //for или while или foreach
    echo "<tr><td></td><td></td></tr>";
    }
    echo "</table>";


    Понятно? Если будет цикл в 3 круга, этот код выведет таблицу с тремя строками и двумя колонками в каждой, как в примере выше.

    Или вложенный цикл:
    Код
    echo "<table>";
    foreach() {
    echo "<tr>";
    foreach() {
    echo "<td></td>";
    }
    echo "</tr>";
    }
    echo "</table>";


    Надеюсь, это понятно.

    Теперь: если у вас один цикл, в котором куча товаров выводятся подряд, один за одним:
    Код
    foreach {
    вывод товара;
    }
    и их надо вывести в две колонки, что надо сделать? Первым делом надо вывести снаружи цикла таблицу.
    Код
    <table>
    foreach {
    вывод товара;
    }
    </table>
    Почему снаружи, а не в цикле? Потому, что таблица одна будет.
    Теперь каждое содержимое цикла надо выводить в ячейке таблицы. Для этого надо вывести начало строки <tr> и начало колонки <td>. Затем вывести содержимое цикла и закрыть колонку и строку:
    Код
    <table>
    foreach {
    echo "<tr>";
    echo "<td>";
    вывод товара;
    echo "</td>";
    echo "</tr>";
    }
    </table>

    Этот цикл выведет товары в одну колонку, а нам надо в две.
    Т.е. надо <tr> <td>один товар</td> и еще раз <td>второй товар</td> </tr>
    Или другими словами в цикле надо первый раз вывести
    Код
    echo "<tr>";
    echo "<td>";
    вывод товара;
    echo "</td>";
    И второй раз вывести
    Код
    echo "<td>";
    вывод товара;
    echo "</td>";
    echo "</tr>";

    Затем то же самое снова:
    первая колонка - вторая
    первая-вторая
    первая-вторая
    и т.д.

    Для этого нам надо знать, какой товар по счету выводится, первый или второй. Введем любую переменную $pipka и будем ею считать колонки:
    Код
    <table>
    $pipka=0; //сделаем наш счетчик 0, чтобы понимать, что не выведено пока ничего и будет выводиться первая колонка
    foreach {
    if ($pipka==0) echo "<tr>";
    //т.е. выводим tr для первого раза, когда счетчик
    echo "<td>";
    вывод товара;
    echo "</td>";
    $pipka++; // делаем наш счетчик +1, потому, что товар вывели
    if ($pipka==2) { echo "</tr>"; $pipka=0; } // если первый товар выведен, то $pipka будет равна 1 и строка </tr> не закроется. А если уже второй раз цикл пройдется, то $pipka станет 2 и тогда </tr> закроется и $pipka станет 0, для очередного цикла. И тогда сработает первое условие if ($pipka==0) которое откроет новую строку.
    }
    </table>


    Таким образом цикл настрочит таблицу с кучей строк и с двумя колонками, в каждой из которых будет товар!

    Еще яснее объяснить не могу!
  • 06 апреля 2011 г.
  • Сколько времени... Много! С час точно.
    Но это уже третий раз только на форуме, когда спрашивают одно и тоже, только для разных в оформлении функций. Лучше потом сюда сослать и не отвечать, чем каждому править!
    Замечание... Если бы я еще про закрытие ячеек стал рассказывать, я бы завис еще на полчаса... Начинающим и так сойдет! Потом копнут, сами поправят!
  • 21 апреля 2011 г.
  • Ребят, надоело, честно. Это первый класс программирования. К diafan.CMS отношения прямого не имеет. Эта тема максимально информационна, проще рассказать я не могу. Если тему замусорить файлами "Сделайте мне", "И мне сделайте то же самое", "И мне", "И для меня" и так далее еще 50 человек одно и то же - несерьезно.
    Могу только посоветовать echo "1";
    Ставьте "методом тыка", смотрите: где выходит, сколько раз выходит, после чего выходит, делайте выводы.
    Если не можете разобраться с примитивным циклом одной вложенности, то лучше бросить программирование, заказать у программиста эту доработку за пару сотен рублей и пару минут и все.
  • 15 октября 2012 г. , редакция: 1350327228
  • Немного подправлю пост с учетом актуальности последних версий
    Можно так, как пишет Петр. А можно шаги 3-7 пропустить, а вместо шага 9 в "Дополнительно" в поле javascript вписать то, что выдал Яндекс. Затем уже на шаге 10 в HTML источник вставляется оставшийся код, как описано.
  • 20 декабря 2010 г.
  • Не, тут не совсем так. Сейчас перелинковка идет больше для пользователей, а не для сео. Для поисковым систем вес ссылки выше, если нет обратной. В нашем случае получается, что каждый товар ссылается друг на друга, а это гасит весь эффект. Чтобы что-то было от перелинковки в плане веса - лучше оставить ссылки только "Следующий" и убрать "Предыдущий". Тогда каждая страница будет качать следующую, что получше.
    Конечно, надо заниматься в целом исходящими ссылками на странице. Идеально, когда с главной страницы идет ссылка только на карту сайта. С карты - только на страницы 2УВ, далее глубже. А со всех внутренних страниц идет только ссылка на главную.
    Вот тогда у главной будет такой вес, что ух-х
  • 21 декабря 2010 г.
  • Ну перелинковка такая и получится. Ссылка с главной на разделы. С разделов на товары. Тогда с товаров на главную ссылку можно скрыть. А товары пустить по кольцу без обраток, только через show_next/
    Рекомендую программу PageWeight, с ее помощью очень удобно смотреть, как веса распределяются по сайту.
  • 21 декабря 2010 г.
  • Да с чего у Вас в голове сидит "кольцо" и его катастрофический "разрыв"?
    В этом разрыве единственное, что потеряется, так это вес у первого товара, потому что на него не зайдет ссылка с последнего. Остальные товары будут иметь все как надо.
    Ну если так критично, поставьте ссылку на первый товар вручную с последнего товара, например из описания.
  • 20 декабря 2010 г.
  • Спасибо, старались :) Да, все сами сделали, наш сотрудник озвучивал. Сценарии уроков писали отделом.
    Основная проблема контор, которые предлагают "профессиональное" создание видеоуроков в том, что текст читает профессионал в озвучке, но не профессионал в том, ЧТО он читает. Получаются заминки в спецтерминах, не те ударения, в общем, звучит дилетантски, хоть и красиво.
  • 10 декабря 2010 г.
  • Это да...
    Дело в том, что мы делали на заказ нескольим клиентам такую функцию. Это не проблема. Договариваемся с конкретными людьми о содержимом xls-файла и, зная его магазин и его характеристики, легко делаем такой импортник... Каждый раз разный
    В том-то и дело, что готовить надо файл. И это целесообразно, если надо еженедельно обновлять сайт с тысячами наименований.
    Мы подумываем сделать какой-нибудь универсальный импорт, только наименование, цену и описание, т.е. базовые поля. Но не знаем, будет ли толк.
  • 07 декабря 2010 г. , редакция: 1291751897
  • Первым делом надо эту структуру создать в админке. Идете в "Страницы сайта" и там создаете "меню слева" и "меню справа", или "меню1", "меню2", и "меню3", смотря что надо.

    Затем в "меню слева" создаете плюсиками подстраницы "о нас", "услуги", "контакты" - это будет одно меню.
    А в "меню справа" создаете "предложение 1", "предложение 2" и "предложение 3" - это будет второе меню.
    Естественно, везде ставите галочки "Показывать на сайте" и "Показывать в меню".

    Теперь как их вывести в шаблоне. Меню выводится тегом
    Код
    <insert name="show_menu">

    Просто вписываете в шаблоне в нужном месте этот тег и там выведется меню. По умолчанию этот тег выводит все пункты меню, которые в корне сайта с галочкой "показывать в меню".

    А чтобы вывести пункты из раздела (а нам надо в одном месте вывести подпункты из "меню слева", а в другом из "меню справа") надо просто указать ID этих пунктов в теге в параметре koren.
    Допустим, у "меню слева" ID=16, а у "меню справа" ID=20.
    Тогда в одном месте пишите
    Код
    <insert name="show_menu" koren="16">
    - там выведется "о нас", "услуги", "контакты"
    А в другом месте пишите тег
    Код
    <insert name="show_menu" koren="20">
    - там выведется "предложение 1", "предложение 2" и "предложение 3"
    Все описано в документации: http://cms.diafan.ru/dokument/full-manual/templates/shared-functions/

    И вот гляньте, общие сведения о шаблонах и подключении дизайна: http://cms.diafan.ru/dokument/webmaster/themes/
  • 23 ноября 2010 г. , редакция: 1290467711
  • У нас внутренний лог ведется, естественно. Он же завязан с автообновлением.

    Примерно в таком виде:
    4.3.4.2
    вчера, 12:35 modules/shop/shop.model.php
    Исправлена ошибка, возникающая при поиске товаров
    вчера, 12:34 modules/shop/shop.ajax.php
    Доработана возможность указывать количество товара при покупке
    4.3.4.1
    19 ноября, пт modules/faq/faq.model.php
    Исправлена работа ограничения на количество прикрепляемых файлов в форме
    ...

    В принципе, это не секрет, можно и публиковать списком где-нибудь Это вы имеете ввиду?
    В личных кабинетах пользователям со статусом "Партнер"?
  • 10 ноября 2010 г.
  • Спасибо за столь тщательно высказанное мнение! Мы очень ценим! Со многим согласны и многое планируем реализовать!
    По пунктам:
    1. Да, аватарки сделаем. Но не первоочередно, это все-таки больше фича, чем функционально важный момент.
    2. Стиль ника именно тут? Или вообще в модуле форума. Если вообще в модуле форума, то пожалуйста, меняйте, он class=author
    3. Ну тут кому как. Мы знаем примеры форумов, где редактирование своих сообщений свободно всё время и ничего, не заспамливают. Текстареа в модуле также может быть оформлена как угодно, в любую высоту.
    4. Ну по звездам должно быть видно, вроде как... В общем, проработаем и этот вопрос!
    5. Смайлик упустили. Добавим!
    6. А какой анкор очевиднее по-вашему?
    7. Модератор может удалять сообщения, гуляя по форуму, не обязательно заходить в админку. Если на сообщение ответов не было, оно как раз сразу и бесследно удаляется. А если на удаленное сообщение были ответы, то как раз тогда на его месте появляется "Удалено модератором" и та самая галка ;)
    8. Именно на этой форуме рейтинг настроен по количеству лицензий на diafan.CMS. Чем больше пользователь установил и настроил diafan.CMS, тем больше у него звезд А по умолчанию по количеству постов.
    Над остальным покумекаем, сделаем так или иначе.
    Баги исправили.
  • 10 ноября 2010 г.
  • Ну это глюк JQuery, то добавляется, то глючит. Разбираемся, что там за дела. Исправим.
    Но сообщение не дублируются, тут вы зря! Мы проверяем сообщения на дубли, они возникать не должны.
Показывать по:

Новости

  • 19 сентября
  • Мы внесли изменения в лицензию и объявляем, что прекращаем техническую консультационную поддержку сайтов на DIAFAN.CMS версий старше 7.0. А это все минорные версии платформы, предшествующие актуальной линейке, а именно: версии серии 4.x, 5.x, 6.x.
  • 15 сентября
  • У нас отличные новости! Мы выпустили новую сборку DIAFAN.CMS 7.3, которая включает встроенные нейросети непосредственно в административной панели. Это значит, что создание контента для вашего сайта больше не будет проблемой — искусственный интеллект возьмет эту задачу на себя, избавляя вас от необходимости привлекать копирайтеров или тратить время на написание текстов самостоятельно.
  • 25 марта
  • Мы обновили систему тарифов, учитывая опыт работы с клиентами и современные рыночные условия. Новая тарифная сетка разработана специально для того, чтобы лучше отвечать вашим потребностям. Резкого повышения цен не произошло. Более того, некоторые тарифы даже стали выгоднее и доступнее. 

Блоги

  • 10.09.2025
  • DIAFAN.CMS славится нагрузоустойчивостью и безопасностью, про инциденты со взломом сайта на нашей системе давненько не слышали, но недавно получили мы письмо от fstec.ru такого характера:

    Обнаружена уязвимость в CMS-системе DIAFAN, позволяющая нарушителю, действующему удалённо, красть сессионные куки через XSS-атаку.

Форум