Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: deafult значения в скриптах

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Помогите закончить скрипты
jonmodem
Отправлено: 27 Января, 2013 - 12:38:05
Post Id



Гость


Покинул форум
Сообщений всего: 95
Дата рег-ции: Июнь 2011  
Откуда: Москва


Помог: 0 раз(а)




Задача №1
Вот код, он вычисляет на какой странице мы находимся и общее количество страниц на сайте. Его единственная проблема, это 0 значение общего количества страниц.
Например если общее количество статей = 3, а на страницах выводится по 10 статей, то общее количество страниц сайта = 0.
Нужно установить минимальное количество страниц, то есть deafult. И оно должно равняться 1.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; // Страница по счёту, на которой вы находитесь
  3. $posts_on_page = get_option('posts_per_page'); // Количество записей на 1 странице
  4. $num_posts = wp_count_posts( 'post' );
  5. $num_posts = $num_posts->publish; // Получаем общее количество записей
  6. $num_pages = $num_posts / $posts_on_page; // Делим общее на частное
  7. $total_num_pages = round($num_pages); // Округление результата и получение общего количества страниц с записями
  8. ?>
  9. Страница <?PHP echo $paged; ?> из <?PHP echo $total_num_pages; ?>


Задача №2
Есть функция, которая выводит новости. У нее не заданы стандартные значения.
Нужно чтобы в $args = array ( 'cat' => $cat_id, 'showposts' => $number_entries, 'orderby' => 'date' );
$cat_id имело стандартное значение 1, а $number_entries имело стандартное значение 5.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. class mizter_gives_you_news extends WP_Widget {
  3. /* Конструкция: описание, имя и опции виджета */
  4. function mizter_gives_you_news() {
  5. $widget_ops = array( 'description' => __('Вывод последних новостей') );
  6. $control_ops = array( 'width' => 200, 'height' => 200, 'id_base' => 'mizter_gives_you_news_widget' );
  7. $this->WP_Widget( 'mizter_gives_you_news_widget', __('Новости'), $widget_ops, $control_ops );
  8. }
  9. /* Структура виджета, здесь заложено всё */
  10. function widget($args, $instance) {    
  11. extract( $args );
  12. $cat_id = $instance['cat_id'];
  13. $number_entries = $instance['number_entries'];
  14. $args = array ( 'cat' => $cat_id, 'showposts' => $number_entries, 'orderby' => 'date' );
  15. $mizter_gives_you_news = new WP_Query($args);
  16. ?>
  17. <div class="widget widget_news_entries"><h2 class="widgettitle">Новости</h2>
  18. <?PHP while ($mizter_gives_you_news->have_posts()) : $mizter_gives_you_news->the_post(); ?>
  19. <div class="news">
  20. <div class="clearly"><div>
  21. <div class="date_container"><span class="date"><?PHP the_time('d.m.Y'); ?></span></div>
  22. <div class="clearly"><div>
  23. <span class="txt_conteiner"><a href="<?PHP the_permalink() ?>" title="<?PHP the_title(); ?>">
  24. <span class="img_conteiner"><?PHP the_post_thumbnail(array(40,40)); ?></span>
  25. <?PHP the_title(); ?></a></span>
  26. </div>
  27. <?PHP endwhile; ?>
  28. </div>
  29. <div class="clearly"><div>
  30. <?PHP
  31. }
  32. /* Обновление данных */
  33. function update($new_instance, $old_instance) {        
  34. $instance = $old_instance;
  35. $instance['cat_id'] = strip_tags($new_instance['cat_id']);
  36. $instance['number_entries'] = strip_tags($new_instance['number_entries']);
  37. return $instance;
  38. }
  39. /* Получаемые данные */
  40. function form($instance) {
  41. $cat_id = esc_attr($instance['cat_id']);
  42. $number_entries = esc_attr($instance['number_entries']);
  43. ?>
  44. <p>
  45. <label for="<?PHP echo $this->get_field_id('cat_id'); ?>"><?PHP _e('ID Рубрики:'); ?></label>
  46. <input class="widefat" id="<?PHP echo $this->get_field_id('cat_id'); ?>" name="<?PHP echo $this->get_field_name('cat_id'); ?>" type="text" value="<?PHP echo $cat_id; ?>" />
  47. </p>
  48. <p>
  49. <label for="<?PHP echo $this->get_field_id('number_entries'); ?>"><?PHP _e('Количество записей:'); ?></label>
  50. <input class="widefat" id="<?PHP echo $this->get_field_id('number_entries'); ?>" name="<?PHP echo $this->get_field_name('number_entries'); ?>" type="text" value="<?PHP echo $number_entries; ?>" />
  51. </p>
  52. <?PHP
  53. }
  54. } // Конец класса виджета
  55. add_action('widgets_init', create_function('', 'return register_widget("mizter_gives_you_news");')); // Регистрация виджета
  56. ?>
 
 Top
thesameson
Отправлено: 27 Января, 2013 - 12:43:10
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Окт. 2012  


Помог: 3 раз(а)




Задача 1. Вместо ф-ии round() используем ф-ю ceil(), которая округляет всегда в большую сторону.
PHP:
скопировать код в буфер обмена
  1. $total_num_pages = ceil($num_pages); // 7-я строка

Задача 2. Проверяем передан ли методу массив $instance. Если нет, либо либо элементы массива пусты, присваиваем значения по умолчанию.
PHP:
скопировать код в буфер обмена
  1. $cat_id = (isset($instance['cat_id']) && !empty($instance['cat_id'])) ? $instance['cat_id'] : 1; //строка 12
  2.     $number_entries = (isset($instance['number_entries']) && !empty($instance['number_entries'])) ? $instance['number_entries'] : 5;

(Отредактировано автором: 27 Января, 2013 - 13:12:37)

 
 Top
jonmodem
Отправлено: 27 Января, 2013 - 17:03:50
Post Id



Гость


Покинул форум
Сообщений всего: 95
Дата рег-ции: Июнь 2011  
Откуда: Москва


Помог: 0 раз(а)




thesameson пишет:
Задача 1. Вместо ф-ии round() используем ф-ю ceil(), которая округляет всегда в большую сторону.
PHP:
скопировать код в буфер обмена
  1. $total_num_pages = ceil($num_pages); // 7-я строка

Задача 2. Проверяем передан ли методу массив $instance. Если нет, либо либо элементы массива пусты, присваиваем значения по умолчанию.
PHP:
скопировать код в буфер обмена
  1. $cat_id = (isset($instance['cat_id']) && !empty($instance['cat_id'])) ? $instance['cat_id'] : 1; //строка 12
  2.     $number_entries = (isset($instance['number_entries']) && !empty($instance['number_entries'])) ? $instance['number_entries'] : 5;


Спасибо, все задачи выполнены. Только во второй задаче в пользовательской части, где пишутся категория и количество постов, не отображаются эти значения. Что нужно сделать?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB