Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 05.09.2013
Сообщений: 5
1

Школьный журнал - настроить отправку SMS и исправить ошибку при авторизации по пин-коду

05.09.2013, 12:04. Просмотров 5239. Ответов 20
Метки нет (Все метки)

Для общеобразовательной школы нашел скрипт школьного журнала. Все у него работает, кроме отправки SMS и пустая страница при авторизации родителей по пин-коду. Помогите разобраться что сделать. В PHP новичок, поэтому с кодом работаю методом логики и подстановки готовых решений в кусок кода. Этот код нужен для учителя и класса. СПАСИБО ЗА ПОМОЩЬ.
Ход установки и сам файл со скриптом найдете здесь - http://bitbucket.org/SlZ/schoo... eshInstall
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.09.2013, 12:04
Ответы с готовыми решениями:

Как исправить ошибку при установке Ansys Workbench 18.2 ? Прилагаю скрин и журнал ошибок
Есть еще файл install.err , где тоже че-то про ошибки, он открывается автоматически блокнотом, но...

При двухфакторной авторизации не приходит пин
Проблема получилась вот такая...Решил попробывать двухфакторную авторизацию и включив её больше не...

БД школьный журнал
Добрый день. Хочу сделать БД школьного журнала. И вот такой вопрос. Можно ли как-то сделать, чтобы...

Школьный журнал
Всем доброго времени суток! Хочу создать базу данных "Электронный школьный журнал". Создала...

20
283 / 282 / 73
Регистрация: 06.05.2013
Сообщений: 1,613
05.09.2013, 12:07 2
Вряд ли кто устанавливать будет себе это)
Лучше опишите проблему подробнее, скрины или куски кода предоставьте - тогда попробую помочь)
0
0 / 0 / 0
Регистрация: 05.09.2013
Сообщений: 5
05.09.2013, 16:38  [ТС] 3
Цитата Сообщение от sMockingbird Посмотреть сообщение
Вряд ли кто устанавливать будет себе это)
Лучше опишите проблему подробнее, скрины или куски кода предоставьте - тогда попробую помочь)
Спасибо. Попытаюсь. Буду выкладывать все что могу. Итак.
Входим на главную страницу сайта на локальном хосте. Появляется адрес .../login.php
и страница

Код login.php:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
include_once ('init.php');
include_once ('include/students.php');
 
$loginError = '';
if (isset($_REQUEST['action'])) {
  $action = $_REQUEST['action'];
  if ($action == 'login') {
    $pin = intval($_POST['pin_code']);
    $student = student_login($pin);
    if ($student and intval($student['student_id']) != 0) {
        $_SESSION['student_id'] = $student['student_id'];
        header('Location: index.php');
        exit();
    } else {
        $loginError = 'ПИН неверен';
    }
  } elseif ($action == 'logout') {
    unset($_SESSION['student_id']);
    header('Location: index.php');
    exit();
  }
 
}
 
$renderArray = array();
$template_name = 'login.html';
$renderArray['loginError']=$loginError;
 
$template = $twig->loadTemplate('students/'.$template_name);
echo $template->render($renderArray);
?>
Вводим пин авторизации родителя, который формируется в админке. После этого в адресной строке появляется такой адрес - .../index.php и страница
Код index.php:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
define('STUDENT_ZONE', true);
include_once ('init.php');
include_once ('include/students.php');
include_once ('include/classes.php');
include_once ('include/curriculums.php');
 
$renderArray = array();
$fromAjax = intval($_REQUEST['fromAjax']);
$template_name = 'index.html';
 
if ($fromAjax) {
    $template_name = 'index-ajax.html';
    $quarter_id = intval($_REQUEST['quarter_id']) or die('Invalid quarter_id');
    $quarter = get_quarter($quarter_id) or die("No quarter for $quarter_id=$quarter_id");
    $date_from = $quarter['started'];
    $date_to = $quarter['finished'];
    $day_of_week = array(0 => 'Пн', 1 => 'Вт'
    , 2 => 'Ср', 3 => 'Чт'
    , 4 => 'Пт', 5 => 'Сб', 6 => 'Вс');
    $class_id = get_student_class_id($student_id) or die('Unknown student');
    $student_grades = get_student_grades($student_id, $date_from, $date_to);
    $disciplines = get_disciplines_from_class($class_id);
    $dates = array();
    $grades = array();
    foreach ($student_grades as $grade) {
        $lesson_monthyear = $grade['lesson_month'].'.'.$grade['lesson_year'];
        $dates[$lesson_monthyear][$grade['lesson_date']] = array('lesson_weekday'   => $grade['lesson_weekday']
        , 'lesson_weekday_w'    => $day_of_week[$grade['lesson_weekday']]
        , 'lesson_day'      => $grade['lesson_day']
        , 'lesson_month'    => $grade['lesson_month']
        , 'lesson_year'         => $grade['lesson_year']);
        $grades[$grade['discipline_id']][$grade['lesson_date']][] = array('grade'=>$grade['grade'],
        'topic' => $grade['topic'], 'lesson_id'=> $grade['lesson_id'],
        'lesson_type_id' => $grade['lesson_type_id'], 'lesson_type_name' => $grade['lesson_type_name']);
    }
    $quarter['started_date'] = date("d.m.Y",strtotime($quarter['started']));
    $quarter['finished_date'] = date("d.m.Y",strtotime($quarter['finished']));
    $renderArray['quarter'] = $quarter;
    $renderArray['dates'] = $dates;
    $renderArray['disciplines'] = $disciplines;
    $renderArray['grades'] = $grades;
} else {
    $year = get_current_year() or die('Now current year');
    $quarters = get_quarters_in_year($year['school_year_id'],1);
    $renderArray['ui_theme'] = $config['ui']['theme'];
    $renderArray['year'] = $year;
    $renderArray['quarters'] = $quarters;
}
 
$template = $twig->loadTemplate('students/'.$template_name);
echo $template->render($renderArray);
?>
При этом должны выводиться внизу данные ученика родителя, который ввел уникальный пин: оценки за предметы по каждому дню...

Продолжение следует...

Добавлено через 9 минут
Данные не выводятся. Пустая страница, только заголовок.

s018.***********/i523/1309/c3/aad89ccd5b6b.jpg - login.php

s020.***********/i722/1309/eb/771884681bfe.jpg - index.php

Добавлено через 8 минут
Данные не выводятся. Белая страница, только вверху заголовок.

Подозреваю, что за вывод этих данных отвечает кусок кода внизу в двух этих файлах:

PHP
1
2
$template = $twig->loadTemplate('students/'.$template_name);
echo $template->render($renderArray);
Добавлено через 11 минут
Предполагаю, что формируется нужный список где-то в этом коде (файл class_lessons.php):

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
define('TEACHER_ZONE', true);
include_once ('../init.php');
include_once ('../include/classes.php');
include_once ('../include/lessons.php');
 
$subject_id = intval($_REQUEST['subject_id']) or die('No subject_id parameter');
$fromAjax = intval($_REQUEST['fromAjax']);
 
$action = $_REQUEST['action'];
$queryResult = '';
if ($action == 'close') {
    $grades = $_POST['grades'];
    update_lesson_grades($grades,true);
    $queryResult = "Уроки сохранены и закрыты.";
} elseif ($action == 'update') {
    $grades = $_POST['grades'];
    update_lesson_grades($grades,false);
    $queryResult = "Уроки обновлены.";;
} elseif ($action == 'addlesson') {
    $lesson_date = implode('-', array_reverse(explode('.', $_REQUEST['lesson_date'])));
    $topic = addslashes($_REQUEST['topic']);
    $lesson_type_id = intval($_REQUEST['lesson_type_id']);
    $res = add_lesson($lesson_date, $subject_id, $topic, $lesson_type_id);
    if ($res) {
        $queryResult = "Новый урок успешно добавлен.";
    } else {
        $queryResult = "Ошибка при добавлении урока.";
    }
} elseif ($action == 'changeDates') {
    $_SESSION['date_from'] = $_REQUEST['lesson_date_from'];
    $_SESSION['date_to'] = $_REQUEST['lesson_date_to'];
}
 
if ( !isset($_SESSION['date_from']) or $_SESSION['date_from'] == '') {
    $_SESSION['date_from'] = date("d.m.Y", strtotime('-10 days',time()));
}
if ( !isset($_SESSION['date_to']) or $_SESSION['date_to'] == '') {
    $_SESSION['date_to'] = date("d.m.Y");
}
 
$date_from = implode('-', array_reverse(explode('.', $_SESSION['date_from'])));
$date_to = implode('-', array_reverse(explode('.', $_SESSION['date_to'])));
$template_name = 'class_lessons.html';
$renderArray = array('date_from'=>$_SESSION['date_from'], 'date_to'=> $_SESSION['date_to'], 'ui_theme'=>$config['ui']['theme']);
$renderArray['subject_id']=$subject_id;
$renderArray['queryResult']=$queryResult;
 
if ($fromAjax) {
    $template_name = 'class_lessons_ajax.html';
    $subject = get_lesson_subject($subject_id);
    $lessons = get_lessons($subject_id, $date_from, $date_to);
    $lessons_count = count($lessons);
    $students_list = get_student_classes_list($subject['class_id'],0);
    $active_leson = false;
    foreach ($students_list as $key => $student) {
        $students_list[$key]['grades'] = get_student_lesson_grades($student['student_id'], $subject_id, $date_from, $date_to); 
    }
    
    $renderArray['lessons']=$lessons;
    $renderArray['lessons_count']=$lessons_count;
    $renderArray['students_list']=$students_list;
} else {
    $renderArray['lesson_types'] = get_lesson_types();
}
 
$template = $twig->loadTemplate('teachers/'.$template_name);
echo $template->render($renderArray);
?>
0
283 / 282 / 73
Регистрация: 06.05.2013
Сообщений: 1,613
06.09.2013, 09:12 4
Цитата Сообщение от serfting Посмотреть сообщение
include_once ('init.php');
include_once ('include/students.php');
include_once ('include/classes.php');
include_once ('include/curriculums.php');
Цитата Сообщение от serfting Посмотреть сообщение
$template_name = 'index-ajax.html'

а у Вас все эти файлы присутствуют и в них что то есть?
1
0 / 0 / 0
Регистрация: 05.09.2013
Сообщений: 5
06.09.2013, 10:57  [ТС] 5
Цитата Сообщение от sMockingbird Посмотреть сообщение
а у Вас все эти файлы присутствуют и в них что то есть?
Вот они (вначале указываю название PHP-файла, потом код):

init.php:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
/*****************************************************************************\
+-----------------------------------------------------------------------------+
| SchoolReg                                                                   |
| Copyright (c) 2010 Z.                                                       |
| Copyright (c) 2009 Sergey V. Kuzin <sergey@kuzin.name>                      |
| All rights reserved.                                                        |
+-----------------------------------------------------------------------------+
\*****************************************************************************/
 
#
# $Id: init.php 4 2010-02-02 18:52:58Z kuzmich $
#
 
 
session_start();
 
if (file_exists(dirname(__FILE__).'/config.php')) {
    include_once 'config.php';
}
 
if (!isset($config)) {
    $prefix = '';
    if (defined('TEACHER_ZONE') or defined('ADMIN_ZONE') 
        or defined('TEACHER_ZONE_LOGIN') or defined('ADMIN_ZONE_LOGIN')) {
        $prefix = '../';
    }
    header('Location: '.$prefix.'install/index.php');
}
 
include_once 'include/mysql_db.php';
include_once 'lib/json_encode_r.php';
include_once 'lib/utils.php';
 
db_connect($config['db']['db_host'], $config['db']['db_user'], $config['db']['db_passwd'], $config['db']['db_base']);
db_query('SET NAMES UTF8;');
 
require_once 'lib/Twig/Autoloader.php';
Twig_Autoloader::register();
 
$twig_loader = new Twig_Loader_Filesystem(dirname(__FILE__).'/lib/templates');
$twig = new Twig_Environment($twig_loader, array('cache' => dirname(__FILE__).'/cache', 'trim_blocks' => true, 'auto_reload' => true));
 
if (defined('TEACHER_ZONE')) {
  if (!isset($_SESSION['teacher_id'])) {
    header('Location: login.php');
  } else {
    $teacher_id = $_SESSION['teacher_id'];
  }
} elseif (defined('ADMIN_ZONE')) {
  if (!isset($_SESSION['admin_id'])) {
    header('Location: login.php');
  } else {
    $admin_id = $_SESSION['admin_id'];
  }
} elseif (defined('STUDENT_ZONE')) {
  if (!isset($_SESSION['student_id'])) {
    header('Location: login.php');
  } else {
    $student_id = $_SESSION['student_id'];
  }
}
 
?>

include/students.php:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
/*****************************************************************************\
+-----------------------------------------------------------------------------+
| SchoolReg                                                                   |
| Copyright (c) 2009 Sergey V. Kuzin <sergey@kuzin.name>                      |
| All rights reserved.                                                        |
+-----------------------------------------------------------------------------+
\*****************************************************************************/
 
#
# $Id: students.php 4 2010-02-02 18:52:58Z kuzmich $
#
 
function get_student($student_id)
{
  $sql = "SELECT * FROM students WHERE student_id = $student_id ORDER BY 1, 2, 3";
  $res = db_query($sql);
  $users_list = array();
  return mysql_fetch_assoc($res);
}
 
function student_login($pincode) {
    $sql = "SELECT student_id FROM students WHERE pin_code=%n and pin_code>0";
    $res = db_query($sql,$pincode);
    if (!$res) {
        return false;
    }
    $row = mysql_fetch_assoc($res);
    return $row;
}
 
function get_student_class_id($student_id) {
    $sql = 'SELECT class_id FROM students_in_class WHERE student_id=%n';
    $result = db_query($sql,$student_id);
    if (!$result) {
        return false;
    }
    $row = mysql_fetch_assoc($result);
    return $row['class_id'];
}
 
function get_student_grades($student_id, $date_from, $date_to) {
    $sql = <<<EOS
SELECT
  students_in_class.student_id AS student_id,
  lessons.lesson_date          AS lesson_date,
  WEEKDAY(lessons.lesson_date) AS lesson_weekday,
  lessons.lesson_id            AS lesson_id,
  DATE_FORMAT(lessons.lesson_date,'%%d') AS lesson_day,
  DATE_FORMAT(lessons.lesson_date,'%%m') AS lesson_month,
  DATE_FORMAT(lessons.lesson_date,'%%Y') AS lesson_year,
  lessons.lesson_type_id       AS lesson_type_id,
  lt.lesson_type_name          AS lesson_type_name,
  subjects.discipline_id       AS discipline_id,
  disciplines.discipline       AS discipline,
  lessons.topic                AS topic,
  students_on_lesson.grade     AS grade
FROM students_in_class
  JOIN subjects
    ON subjects.class_id = students_in_class.class_id
  JOIN lessons
    ON lessons.subject_id = subjects.subject_id
  LEFT JOIN lesson_types lt ON lt.lesson_type_id=lessons.lesson_type_id
  LEFT JOIN students_on_lesson
    ON students_on_lesson.student_id = students_in_class.student_id
      AND students_on_lesson.lesson_id = lessons.lesson_id
  LEFT JOIN disciplines
    ON disciplines.discipline_id = subjects.discipline_id
WHERE grade IS NOT NULL
    AND students_in_class.student_id = %n
    AND lesson_date BETWEEN '%s' AND '%s'
ORDER BY lessons.lesson_date, disciplines.discipline, lessons.lesson_id
EOS;
    $result = db_query($sql, $student_id, $date_from, $date_to);
    if (!$result) {
        return false;
    }
    $array = array();
    while($row = mysql_fetch_assoc($result)){
        $array[] = $row; 
    }
    return $array;
}
?>
Добавлено через 2 минуты
nclude/classes.php:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php
/*****************************************************************************\
+-----------------------------------------------------------------------------+
| SchoolReg                                                                   |
| Copyright (c) 2010 Z.                                                       |
| Copyright (c) 2009 Sergey V. Kuzin <sergey@kuzin.name>                      |
| All rights reserved.                                                        |
+-----------------------------------------------------------------------------+
\*****************************************************************************/
 
#
# $Id: classes.php 4 2010-02-02 18:52:58Z kuzmich $
#
 
function add_new_class($p_class, $p_letter, $p_school_year_id, $p_teacher_id) {
    $retArray = array('isError' => false);
    //check if class alresy exists
    $sql = "SELECT class_id FROM classes WHERE class=%n AND letter='%s' AND school_year_id=%n";
    $res = db_query($sql, $p_class, $p_letter, $p_school_year_id);
    $row = mysql_fetch_row($res);
    if ($row) {
        $retArray['isError'] = true;
        $retArray['errorText'] = 'Класс с такимим параметрами уже существует.'; 
    } else {
        $sql = "INSERT INTO classes (class, letter, school_year_id, teacher_id) VALUES(%n,'%s',%n,%n)";
        $res = db_query($sql, $p_class, $p_letter, $p_school_year_id, $p_teacher_id);
        if (!res) {
            $retArray['isError'] = true;
            $retArray['errorText'] = "INSERT MySQL error ".mysql_errno().": ".mysql_error();
        } else {
            $retArray['newClassId'] = db_get_insert_id();
        }
    }
    return $retArray;
}
 
function get_classes_list($school_year_id = null)
{
  $sql = "SELECT class_id, CONCAT_WS('', class, '-', letter) AS name, class, letter, CONCAT_WS('', last_name, ' ', SUBSTRING(first_name, 1, 1), '. ', SUBSTRING(middle_name, 1, 1),'.') AS teacher_name, school_year FROM classes LEFT JOIN teachers ON classes.teacher_id=teachers.teacher_id";
  $params = array();
  if (!is_null($school_year_id)) {
    $sql .= ' WHERE school_year_id=%n';
    $params[] = $school_year_id;
  }
  $sql .= ' ORDER BY class, letter';
  $res = db_query($sql,$params);
  $list_classes = array();
  while($row = mysql_fetch_assoc($res)){
    $list_classes[] = $row;
  }
  return $list_classes;
}
 
function get_student_classes_list($class_id, $expeled = null)
{
    $sql = "SELECT students.student_id, CONCAT_WS('', last_name, ' ', first_name, ' ', SUBSTRING(middle_name, 1, 1),'.') AS student_name FROM students_in_class LEFT JOIN  students ON students_in_class.student_id=students.student_id";
    $sql .= ' WHERE class_id=%n';
    $params = array($class_id);
    if (!is_null($expeled)) {
        $sql  .= ' AND expeled=%n';
        $params[] = $expeled;
    }
    $sql .= ' ORDER BY student_name';
    $res = db_query($sql, $params);
    $list_classes = array();
    while($row = mysql_fetch_assoc($res)){
        $list_classes[] = $row;
    }
    return $list_classes;
}
 
function get_classe_list_from_teacher($teacher_id)
{
  $sql = "SELECT classes.class_id, subject_id, class, letter, discipline
FROM classes
LEFT JOIN subjects ON classes.class_id = subjects.class_id
LEFT JOIN disciplines ON subjects.discipline_id=disciplines.discipline_id
WHERE subjects.teacher_id=".$teacher_id.' ORDER BY class, letter, discipline';
  $res = db_query($sql);
  $list_classes = array();
  while($row = mysql_fetch_assoc($res)){
    $list_classes[] = $row;
  }
  return $list_classes;
}
 
function get_grade_from_lesson($student_id, $subject_id)
{
    $res = db_query('SELECT * FROM lessons WHERE subject_id='.intval($subject_id));
  $grades = array();
  while ($row = mysql_fetch_assoc($res)) {
    $grades[$row['lesson_id']] = 0;
  }
 
    $res = db_query('SELECT * FROM students_on_lesson WHERE student_id='.intval($student_id));
  while ($row = mysql_fetch_assoc($res)) {
    $grades[$row['lesson_id']] = $row['grade'];
  }
  return $grades;
}
 
function get_disciplines_from_class($class_id)
{
    $sql = 'SELECT disciplines.discipline_id, discipline FROM disciplines'
          .' INNER JOIN subjects ON subjects.discipline_id = disciplines.discipline_id'
          .' WHERE subjects.class_id=%n'
          .' ORDER BY discipline';
    $res = db_query($sql,intval($class_id));
    $disciplines = array();
    while ($row = mysql_fetch_assoc($res)) {
        $disciplines[$row['discipline_id']] = $row['discipline'];
    }
    return $disciplines;
}
 
?>
include/curriculums.php:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
/*****************************************************************************\
+-----------------------------------------------------------------------------+
| SchoolReg                                                                   |
| Copyright (c) 2010 Z.
| Copyright (c) 2009 Sergey V. Kuzin <sergey@kuzin.name>                      |
| All rights reserved.                                                        |
+-----------------------------------------------------------------------------+
\*****************************************************************************/
 
#
# $Id: curriculums.php 11 2010-03-20 21:11:22Z kuzmich $
#
 
function get_school_years()
{
  $sql = "SELECT school_year_id, name_year, current, started, finished FROM school_years ORDER BY started";
  $res = db_query($sql);
  $school_years = array();
  while($row = mysql_fetch_assoc($res)){
    $school_years[] = $row;
  }
  return $school_years;
}
 
function get_school_year($school_year_id)
{
  $sql = "SELECT school_year_id, name_year, current, started, finished FROM school_years WHERE school_year_id = $school_year_id";
  $res = db_query($sql);
  $school_year = mysql_fetch_assoc($res);
  return $school_year;
}
 
 
function get_quarters_in_year($school_year_id, $quarter_type = null)
{
    $sql = 'SELECT * FROM quarters q WHERE q.school_year_id=%n';
    $params = array($school_year_id);
    if (!is_null($quarter_type)) {
      $sql  .= ' AND q.quarter_type=%n';
      $params[] = $quarter_type;
    }
    $res = db_query($sql,$params);
    if (!$res) {
        return false;
    }
    $quarters_in_year = array();
    while($row = mysql_fetch_assoc($res)){
        $quarters_in_year[] = $row;
    }
    return $quarters_in_year;
}
 
function get_quarter($quarter_id)
{
  $sql = "SELECT * FROM quarters WHERE quarter_id = %n";
  $res = db_query($sql, $quarter_id);
  $quarter = mysql_fetch_assoc($res);
  return $quarter;
}
 
function get_current_year() {
  $sql = "SELECT * FROM school_years sy WHERE DATE(NOW()) BETWEEN started AND finished";
  $res = db_query($sql);
  if (!$res) {
    return false;
  }
  $school_year = mysql_fetch_assoc($res);
  return $school_year;
}
?>
Добавлено через 8 минут
lib\templates\students\index-ajax.html:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<div>
<h3>{{quarter.started_date}} - {{quarter.finished_date}}</h3>
<div id="accordion">
{% for month, monthdays in dates %}
    <h3><a href="#">{{month}}</a></h3>
    <div>
        <table id="rounded-corner" width="100%">
        <thead>
        <tr>
            <th><font size="1px">Дисциплина</font></th>
{% for encdate, day in monthdays %}
            <th><font size="1px">{{day.lesson_day}}<br />{{day.lesson_weekday_w}}</font></th>
{% endfor %}
 
        </tr>
        </thead>
{% for discipline_id, discipline in disciplines %} 
        <tr>
            <td nowrap="nowrap"><font size="1px">{{discipline}}</font></td>
{% for encdate, day in monthdays %}
            <td>
{% for grade in grades[discipline_id][encdate] %}
 <div title="{{grade.lesson_type_name}}{{grade.topic?': ':''}}{{grade.topic}}" {% if grade['lesson_type_id']>1 %}class="grade_special"{% endif %}>{{grade['grade']}}</div>
{% else %}
&nbsp;
{% endfor %}
            </td>
{% endfor %}
        </tr>
{% endfor %}
        <tr>
        </tr>
        </table>
    </div>
{% endfor %}
</div>
</div>
<script type="text/javascript">
  $(document).ready(function(){
        $( "#accordion" ).accordion();
    });
</script>
Добавлено через 55 минут
Цитата Сообщение от sMockingbird Посмотреть сообщение
Вряд ли кто устанавливать будет себе это)
Лучше опишите проблему подробнее, скрины или куски кода предоставьте - тогда попробую помочь)
Спасибо. Чем смогу отблагодарю. На самом деле этот проект не коммерческий, просто классный руководитель (учительница) для своего класса хочет организовать небольшой классный журнал успеваемости, который будут также вести дети. На этот форуме я не знаю как правильно пишут контактную информацию с других сервисов. Дайте мне знать каким-то образом ваш номер кошелька WebMoney, чтобы не противоречило правилам форума. Еще раз спасибо за помощь... Думаю у нас все получится.
0
sMockingbird
06.09.2013, 11:02
  #6
 Комментарий модератора 
Обсуждение ведется на форуме.
0
0 / 0 / 0
Регистрация: 05.09.2013
Сообщений: 5
06.09.2013, 11:58  [ТС] 7
Согласен вести обсуждение только на форуме. Так и делаю.

Добавлено через 27 минут
При запуске в корневом каталоге index.php должна быть оценки по каждому дню и предмету, но они почему-то не отображаются. И желательно тип и тема урока по каждому дню. За тип урока отвечает id="$lesson_type_id" в коде файла \lib\templates\teachers\class_lessons.html, а тему урока затрудняюсь пока ответить что отвечает, но тоже где-то в коде файла class_lessons.html по-видимому.

class_lessons.html:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
{% extends "teachers/teachers-base.html" %}
 
{% block headcss %}
{% parent %}
{% endblock headcss %}
{% block headjavascript %}
{% parent %}
<script type="text/javascript" src="../js/jquery.form.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    var $dialog = $("#new-lesson-dialog").dialog({
        autoOpen: false,
        resizable: false,
        modal: true,
        width: 400,
        buttons: {
            "Сохранить": function() {
                //alert("Нажата кнопка Применить");
                $("#new-lesson-form").submit();
                $(this).dialog("close");
            },
            "Закрыть": function() {
              $(this).dialog("close");
            }}
    });
    $('#link-new-lesson').click(function() {
        $dialog.dialog('open');
        // prevent the default action, e.g., following a link
        return false;
    });
    $(".date_input").datepicker({
        changeMonth: true,
        changeYear: true
    });
    $("button, input:submit").button();
 
    $('#dateRangeForm').ajaxForm ({ 
        target: '#gradesBlock' 
    }); 
 
    $('#new-lesson-form').submit(function() {
        $(this).ajaxSubmit({target: '#gradesBlock'}); 
        return false; 
    }); 
 
    $("#gradesBlock").ajaxSuccess(function(evt, request, settings){
        //alert("Table successfully loaded!");
    });
    $('#dateRangeForm').submit();
 
});
</script>
{% endblock headjavascript %}
{% block content %}
<br />
<div>
<form id="dateRangeForm" action="class_lessons.php" method="post">
    <input name="action" value="changeDates" type="hidden">
    <input name="fromAjax" value="1" type="hidden">
    <input name="subject_id" value="{{subject_id}}" type="hidden">
    <button id="link-new-lesson">Новый урок</button>
    <input name="lesson_date_from" class="date_input" value="{{date_from}}" size="12" type="text"></td>
    <input name="lesson_date_to" class="date_input" value="{{date_to}}" size="12" type="text"></td>
    <input type="submit" id="reloadgradesBlock" value="Обновить таблицу оценок" />
</form>
</div>
<div id="gradesBlock"></div>
<div id="new-lesson-dialog" title="Новый урок">
<form id="new-lesson-form" action="class_lessons.php" method="post">
<input name="action" value="addlesson" type="hidden">
<input name="fromAjax" value="1" type="hidden">
<input name="subject_id" value="{{subject_id}}" type="hidden">
<table>
  <tbody><tr>
    <td>Дата урока</td>
    <td>
    <input name="lesson_date" id="lesson_date_id" class="date_input" value="" size="26" type="text"></td>
  </tr>
 
    <tr>
    <td>Тема урока</td>
    <td><input name="topic" value="" size="26" type="text"></td>
  </tr>
    <tr>
    <td>Тип оценки</td>
    <td>
    <select name="lesson_type_id" id="$lesson_type_id">
{% for lesson_type in lesson_types %}
<option value="{{lesson_type['lesson_type_id']}}">{{lesson_type['lesson_type_name']}}</option>
{% endfor %} 
</select>
    
    </td>
  </tr>
</tbody></table>
 
</form>
</div>
{% endblock %}
{% block footer %}
{% parent %}
{% endblock %}
Добавлено через 2 минуты
На всякий случай повторю информацию с источника по установке скрипта:


Порядок установки и начальной настройки электронного Школьного журнала "с нуля"

Перед началом установки нужно убедится, что выполнены следующие условия:

На сервере установлена версия PHP не ниже 5-й. Работа с более старыми версиями принесет вам много неожиданностей и не рекомендуется. Иными словами - с PHP4 что-то будет работать, а что-то нет.
База данных, в которой будут созданы таблицы для работы с журналом существует и у пользователя есть на нее соответствующие права.

Если вышеприведенные условия выполнены - переходим к установке.

Скачиваем последнюю версию журнала. Сделать это можно несколькими способами, например скачав архив с последней ревизией журнала.
Размещаем скачанные файлы на сервере и пробуем зайти на начальную страницу журнала. Должен запустится скрипт начальной установки.
Проходим все шаги скрипта начальной установки, контролируя отсутствие ошибок.

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

Заходим в "Учебный план" и добавляем учебный год.
Заходим в Учебный год, кликнув на названии учебного года, который вы задали на предыдущем шаге, и добавляем учебные периоды (четверти/семестры).
Заходим в "Дисциплины" и добавляем преподаваемые дисциплины
Заходим в "Учителя" и добавляем преподавателей, которые будут вводить оценки по дисциплинам, а так же тех, кто является классным руководителем.
Заходим в "Классы" и добавляем учебный класс
Добавляем учеников класса, клинкнув на кнопку "Редаактировать" в строке с классом. При добавлении ученика можно записать его ПИН-код, который будут использовать родители для просмотра оценок. Там же добавляем предметы, преподаваемые в данном классе.

На этом начальная настройка завершена. Можно переходить в область учителя (teachers/login.php), используя логин преподавателя, где и вводить проведенные уроки и оценки, выставленные на них.
0
283 / 282 / 73
Регистрация: 06.05.2013
Сообщений: 1,613
06.09.2013, 12:08 8
А Вы пробовали вводить оценки и прочее?
В базу всё необходимое вбили?
Я сейчас на работе, но вечером могу попробовать установить себе и посмотреть)
0
0 / 0 / 0
Регистрация: 05.09.2013
Сообщений: 5
06.09.2013, 14:54  [ТС] 9
Да, вводил, в том числе в базу MySql. Эти параметры вводятся в админке учителя /teachers/login.php, а добавляются учителя тут /admin/login.php. В /index.php, как я писал ранее, не выводятся вышеназванные параметры, а должны. Укажите номер кошелька, если можно, здесь. Спасибо.

Добавлено через 2 часа 21 минуту
Добавляю еще одну ссылку на исходник скрипта школьного журнала на случай, если первоначальная исчезнет.
0
Вложения
Тип файла: zip SlZ-schoolreg-09488ecf7c52.zip (315.9 Кб, 103 просмотров)
283 / 282 / 73
Регистрация: 06.05.2013
Сообщений: 1,613
06.09.2013, 14:59 10
я короче не знаю, как тут иначе, но напишите мне в скайп superdiogen
0
33 / 33 / 6
Регистрация: 24.11.2015
Сообщений: 330
14.04.2016, 21:15 11
sMockingbird, Почему та у меня не работает этот скрипт помогите........люди....
Ошибка
Notice: Undefined index: fromAjax in D:\xamp\htdocs\SlZ\index.php on line 22
Now current year
0
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1835 / 1335 / 596
Регистрация: 12.01.2011
Сообщений: 5,362
14.04.2016, 21:18 12
Khaker_tt,
Цитата Сообщение от Khaker_tt Посмотреть сообщение
sMockingbird
Этот человек был тут последний раз в 2015 году.
тема 3 летней давности. Создавайте свою тему.
1
283 / 282 / 73
Регистрация: 06.05.2013
Сообщений: 1,613
25.05.2016, 21:18 13
Khaker_tt, получилось разобраться?
0
33 / 33 / 6
Регистрация: 24.11.2015
Сообщений: 330
26.05.2016, 12:21 14
sMockingbird, нет !! помогите пожалуйста
0
283 / 282 / 73
Регистрация: 06.05.2013
Сообщений: 1,613
28.07.2016, 21:47 15
Напишите мне на почту лучше, o.dopusteam@gmail.com
0
1 / 1 / 4
Регистрация: 20.10.2016
Сообщений: 123
25.10.2016, 15:10 16
может кто разбирался с журналом?
не могу снять ограничение на вид вводимых (записывающихся в бд) символов.
перекопал все файлы
в базу пишутся только цифры от 1 до 999 (я ограничил 999)
а вот 0 и буквы не пишет, не рус, не латиницу

перекопал все preg_match
0
Эксперт PHP
4198 / 3127 / 1012
Регистрация: 06.01.2011
Сообщений: 9,093
25.10.2016, 15:23 17
Может тип поля в базе -- INT?
0
1 / 1 / 4
Регистрация: 20.10.2016
Сообщений: 123
25.10.2016, 15:26 18
Para bellum, поле в базе первым делом проверил
в данный момент оставил varchar(50) utf8_general_ci
0
1 / 1 / 4
Регистрация: 20.10.2016
Сообщений: 123
27.10.2016, 08:19 19
есть ещё какие варианты?
может в:
jquery.validate.js
jquery.maskedinput.js
jquery.form.js
jquery.jeditable.js
jquery.validate-ru.js
jquery-ui.datepicker-ru.js

я их смотрел, беглым взглядом, на вид там нет ничего подходящее под описание "запретить запись таблицу бд любые знаки, буквы, ноль".
может пропустил или не то смотрел?
0
33 / 33 / 6
Регистрация: 24.11.2015
Сообщений: 330
27.10.2016, 12:58 20
LOMANI, Я недавно решил эту проблему то есть автоматизация АСУ школы напиши на этот адрес помогу.Khaker_tt@mail.ru
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.10.2016, 12:58

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Школьный журнал
Дан массив. Первая колонка Фамилии. Нужно ввести оценки Иванова. К примеру первые 3. При каждом...

Школьный журнал
Помогите создать журнал,чтобы можно было вводить инициалы ученика и его оценки.И ещё,чтобы Pascal...

Школьный журнал
Доброго времени суток, облазил кучу тем, так и не нашел решения. Мне нужно сделать школьный...

Электронный школьный журнал
Помгите найти прогамму &quot;электронный школьный журнал&quot; или переделать данную под школьный журнал!

Электронный школьный журнал
Нужно создать электронный школьный журнал. Не получается самостоятельно разобраться со структурой...

ER-диаграмма Школьный журнал
Вообщем составляю ER-диаграмму, хотел уточнить в связи ученик и класс, какая будет связь? в одном...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.