Здравствуйте, сообщество! Я впервые здесь. Теперь к делу.
В связи с неопределенностью будущего развития CMS, решил начать осваивать CodeIgniter. Скачал CI-2.2, начал разбираться, понял основные принципы его работы, а также понял, что дело долгое. Решил попытаться перевести MaxSite CMS (maxsite-0.862) на CodeIgniter-2.2. Вроде получилось - на локалке у меня всё работает (на локальной копии своего сайта lefroway.com). Но я не спешу спешить радоваться Мне, как дилетанту, могут быть незаметны недостатки и встала необходимость должным образом оттестировать обновлённую CMS. Пожалуйста, кто может и есть желание - помогите!
Вот ссылка на пакет: cms-master-0.862_ci-2.2.zip2
Внутри есть файл explain.txt с пояснениями.
Заранее спасибо!
У электронщиков есть мудрое правило: если сразу заработало, значит, что-то не так. А у меня заработало сразу, что и смущает
UPD
Получил несколько комментариев, из которых следует, что перенос на CI-2.2 не актуален. Вполне ожидаемо, поскольку я не заметил существенных изменений. Как-будто никакой разницы между "родным" CI и CI-2.2 нет.
Но одно, не очень существенное изменение, всё-таки, есть.
На странице форума http://forum.max-3000.com/viewtopic.php?f=12&t=4401 описана ошибка PHP. Там речь идёт о PHP-5.4. У меня же - PHP-5.5.9 и CMS на CI-2.2. В настройках базы: драйвер mysql. Ошибка:
A PHP Error was encountered
Severity: 8192
Message: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.
Filename: mysql/mysql_driver.php
Line Number: 319
Та же самая ошибка, если в настройках базы: драйвер mysqli.
После того, как я перенёс maxsite-0.862 на CI-2.2, ситуация несколько изменилась.
1. Если в настройках базы - драйвер mysql, то ошибка есть.
Лечение.
В system/database/drivers/mysql/mysql_driver.php
код:
if (function_exists('mysql_real_escape_string') AND is_resource($this->conn_id)) { $str = mysql_real_escape_string($str, $this->conn_id); } elseif (function_exists('mysql_escape_string')) { $str = mysql_escape_string($str); } else { $str = addslashes($str); }
я заменил на код:
if (function_exists('mysql_real_escape_string') AND is_resource($this->conn_id)) { $str = mysql_real_escape_string($str, $this->conn_id); } else { $str = addslashes($str); }
2. Если в настройках базы - драйвер mysqli, то ошибки нет.
- Сообщество maxSite CMS, а вам вообще интересно?
- Про указание дня рождения посетителями сайта на Maxsite CMS
- Вариант формы комментариев
- Какие варианты по авто-заполнению page_slug возможны?
- maxSite: SEO, шаблоны, валидность, Холиварчик?
- Как собирать идеи по движку - предложение
- Решаем проблемы: спамеры научились регистрироваться
CodeIgniter 2.2 содержит несколько некритичных изменений. Там буквально несколько файлов поправлены. Не имеет смысла обновляться только ради этого.
Изменения CodeIgniter пристально не смотрел, но даже так считаю, что пока нет особой нужды обновлять фреймворк в движке. Гораздо интереснее будет это делать после выхода CodeIgniter 3.0, ибо там, как обещают, должны быть более кардинальные изменения.
Я пробовал 3-ю версию, но безрезультатно. Слишком кардинальные переделки.
Да. У меня тоже сложилось впечатление, что CI-2.2 не сильно отличается от предыдущих.Недаром же работа сайта не нарушилась.
Максим, т.е. перевода движка на CI3 можно не ждать или всё таки есть в планах желание перевести на CI3, но позже?
Третья версия далека от завершения. Сейчас говорить об её использовании просто не имеет смысла. Принципиально, какие-то новые её возможности, вряд ли будут интересны пользователям MaxSite CMS. То есть пока не будет полноценного релиза и одно-двух обновлений, строить планы о преходе преждевременно.
Из всего вышесказанного выходит, что мои труды (не очень тяжёлые ) были напрасны . Но есть надежда, что не на 100%, потому что функции "mysql_real_escape_string" и "mysqli_real_escape_string" отрабатываются лучше.
Дополнил статью. Речь об ошибке PHP
при версии PHP-5.5.9. Произошли некоторые изменения.
Нужно перед этой функцией @ поставить.
Max, мои познания в программировании на 80% состоят из "провалов" . Не понял, где поставить @.
Александр, отвечу за Максима. @ ставится перед функцией для блокирования вывода ошибок - http://php.net/manual/ru/language.operators.errorcontrol.php
Спасибо. Оператор "@" подавляет вывод сообщений об ошибках. Думаю, это полезно, когда ошибки не критические.