Перейти к содержимому

Фото
- - - - -

PHP. Считалка кол-ва работ.


  • Вы не можете создать новую тему
  • Please log in to reply
21 ответов в этой теме

#1 iljamiskov

iljamiskov
  • Пользователь
  • 44 сообщений
  • Откуда:Estonia, Tallinn

Отправлено 05 февраля 2012 - 16:25

Нужна помощь по PHP.

На моем сайте: http://iljamiskov.com/portfolio/ в меню выводится кол-во работ в портфолио. Я это число постоянно при добавлении новых работ меняю вручную.

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

Как это сделать?
  • 0
Creative designer from Tallinn
[email protected]

#2 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 05 февраля 2012 - 16:47

А чего у тебя табличная вёрстка на сайте?

Можно сделать массив работ и автоматом отрисовывать их в портфолио + появится возможность узнать их кол-во. Делается просто. Столько же времени сколько я потратил на печать этого сообщения и просмотр твоего сайта.
  • 0

#3 w00dyy

w00dyy

    sh

  • Постоялец
  • 937 сообщений

Отправлено 05 февраля 2012 - 17:07

Самый простой вариант:

пропиши в head или отдельный js файл и убери цифру из тега sup

<script>
$(function() {
$('sup').html($('ul.previews div[class=preview]').size());
});
</script>

попробовать напрямую можно из браузера, вбив прямо на сайте

javascript: $('sup').html($('ul.previews div[class=preview]').size() + 100500);

Если PHP то <?=count($array);?> в помощь. (больше подойдет для постраничного листинга)

Сообщение изменено: w00dyy (05 февраля 2012 - 17:12 )

  • 0

#4 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 05 февраля 2012 - 17:41

У него эта цифра на всех страницах сайта, по этому не прокатит.
  • 0

#5 ruslan)

ruslan)
  • Постоялец
  • 1 796 сообщений

Отправлено 05 февраля 2012 - 18:00

автор ты каждый раз создаешь страничку под новую работу и изменяешь ее код? + добавляешь ее на главную таким же способом?
  • 0

#6 w00dyy

w00dyy

    sh

  • Постоялец
  • 937 сообщений

Отправлено 05 февраля 2012 - 18:08

У него эта цифра на всех страницах сайта, по этому не прокатит.


тогда так

$.get('/portfolio/',function(data) { $('sup').html($('ul.previews div[class=preview]',data).size()); });

2 кб левого текста per page для такого маленького сайта не беда.
  • 1

#7 iljamiskov

iljamiskov
  • Пользователь
  • 44 сообщений
  • Откуда:Estonia, Tallinn

Отправлено 06 февраля 2012 - 02:29

w00dyy, Большое спасибо, работает отлично. Мелочь, а приятно :-)

ruslan), Да, именно так.

Setor, А разве табличная верстка является какой-то особенной? Понимаю, не трендово уже, но она работает как надо. А вообще я просто дивами не умею нормально верстать)
  • 0
Creative designer from Tallinn
[email protected]

#8 Talk-To-Frank

Talk-To-Frank

    :)

  • Постоялец
  • 1 518 сообщений

Отправлено 06 февраля 2012 - 12:00

iljamiskov,
поставь сайт на движок
  • 0

j2j


#9 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 06 февраля 2012 - 12:02

iljamiskov,
поставь сайт на движок

Думаешь движок сам всё сделает? :) Как говорится, не умеешь - не лезь. Если программирование не является твоей работой, иначе убьёшь вагон времени и сделаешь всё равно не так как планировал. Движок будет всячески препятствовать кастомайзингу сайта.
  • 5

#10 Talk-To-Frank

Talk-To-Frank

    :)

  • Постоялец
  • 1 518 сообщений

Отправлено 06 февраля 2012 - 12:07

Setor,
что мешает переписать движок?
"не умеешь - не лезь" - это ты правильно сказал
  • -3

j2j


#11 iljamiskov

iljamiskov
  • Пользователь
  • 44 сообщений
  • Откуда:Estonia, Tallinn

Отправлено 08 февраля 2012 - 09:26

Talk-To-Frank, Он дело говорит. Лучше не лезть в это. Да и движок мало что изменит. Если появится на сайте админка с кнопочкой добавить работу, все равно придется писать для этой работы текст, задавать превьюшки, заливать картинки. Это все намного проще по старинке через FTP делать. Зачем все усложнять?
  • 1
Creative designer from Tallinn
[email protected]

#12 iljamiskov

iljamiskov
  • Пользователь
  • 44 сообщений
  • Откуда:Estonia, Tallinn

Отправлено 23 февраля 2012 - 16:34

Слушайте, а вот как сделать, что бы работало и на поддомене blog.iljamiskov.com? У меня не получилось так сделать.
  • 0
Creative designer from Tallinn
[email protected]

#13 Delete__

Delete__
  • Постоялец
  • 1 959 сообщений

Отправлено 23 февраля 2012 - 16:51

Слушайте, а вот как сделать, что бы работало и на поддомене blog.iljamiskov.com? У меня не получилось так сделать.

По-моему самый простой вариант это обозначить где-то переменную которую вручную инкрементировать и считывать на каждой странице

Ну или тогда полноценный сайт на cms поднимать

Сообщение изменено: Inori (23 февраля 2012 - 16:52 )

  • 1

#14 Talk-To-Frank

Talk-To-Frank

    :)

  • Постоялец
  • 1 518 сообщений

Отправлено 23 февраля 2012 - 16:55

Лично я уже не могу работать без CMS
Все эти вложенные папки, прописывание путей и т.д. у меня вызывают стресс
  • 0

j2j


#15 iljamiskov

iljamiskov
  • Пользователь
  • 44 сообщений
  • Откуда:Estonia, Tallinn

Отправлено 24 февраля 2012 - 20:42

Так а как это сделать? Я же в джаве вообще 0. Что писать, где и как?
  • 0
Creative designer from Tallinn
[email protected]

#16 w00dyy

w00dyy

    sh

  • Постоялец
  • 937 сообщений

Отправлено 24 февраля 2012 - 21:01

нужно чтобы считалка работ работала на поддомене или что?
  • 0

#17 iljamiskov

iljamiskov
  • Пользователь
  • 44 сообщений
  • Откуда:Estonia, Tallinn

Отправлено 25 февраля 2012 - 06:10

Да.
  • 0
Creative designer from Tallinn
[email protected]

#18 w00dyy

w00dyy

    sh

  • Постоялец
  • 937 сообщений

Отправлено 25 февраля 2012 - 08:08

jquery не поддерживает кросс-доменные запросы. можно это обойти но не помню как (можно попасть на уведомление от браузера что этот сайт не безопасен бла бла бла)
поэтому один из вариантов сделать php файл содержанием

if(isset($_GET['url'])) echo file_get_contents($_GET['url']);

и яваскрипт менять так

$.get('/myphpfile.php',{url: 'http://iljamiskov.com/portfolio'},function(data) { $('sup').html($('ul.previews div[class=preview]',data).size()); });



не проверял работает ли это

Сообщение изменено: w00dyy (25 февраля 2012 - 08:10 )

  • 0

#19 tot_ra

tot_ra
  • Пользователь
  • 28 сообщений
  • Откуда:Tallinn

Отправлено 27 февраля 2012 - 00:42

И хорошо что не проверял.. file_get_contents таким элегантным движением превращается в универсальный бэкдор. Я уж не говорю про костыль

Ключевой вопрос - где хранятся сами работы? Тоесть что ты конкретно хочешь считать.. можно ли их считать как число файлов-картинок для описания (судя по всему нет, потому что они из разных папок), или же работы хранятся в БД и добавляются как статьи? Ну и наконец, если это на Эгее от Бирмана и файлы обфускованы.. то врядли там удобно просунуть запрос в БД что-бы посчитать работы.
  • 0
☦ php разработчик

#20 w00dyy

w00dyy

    sh

  • Постоялец
  • 937 сообщений

Отправлено 27 февраля 2012 - 08:12

И хорошо что не проверял.. file_get_contents таким элегантным движением превращается в универсальный бэкдор. Я уж не говорю про костыль

Ключевой вопрос - где хранятся сами работы? Тоесть что ты конкретно хочешь считать.. можно ли их считать как число файлов-картинок для описания (судя по всему нет, потому что они из разных папок), или же работы хранятся в БД и добавляются как статьи? Ну и наконец, если это на Эгее от Бирмана и файлы обфускованы.. то врядли там удобно просунуть запрос в БД что-бы посчитать работы.

кому оно надо?
  • 0

#21 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 27 февраля 2012 - 09:03

кому оно надо?

Вот из-за таких как ты 90% сайтов на PHP подвержены взлому. Используй как минимум basename().

Автору: вы тут на базар потратили больше времени, чем руками обновлять счётчик кол-ва работ в течение следующих 2х лет. Сделай для всех страниц сайта общий header и пропиши там эту цифру руками.
  • 0

#22 w00dyy

w00dyy

    sh

  • Постоялец
  • 937 сообщений

Отправлено 27 февраля 2012 - 15:29

ааа чорд, забыл что она и из файлов может брать
  • 0