На время проведения реконструкции сайт переведён в режим "ТОЛЬКО ЧТЕНИЕ" (Read only). Приносим свои извинения!
MaxHub
Полезности по Maxsite CMS

MaxSite-0.862 на CodeIgniter-2.2

Обсуждения / 3 декабря 2014

Здравствуйте, сообщество! Я впервые здесь. Теперь к делу.

В связи с неопределенностью будущего развития CMS, решил начать осваивать CodeIgniter. Скачал CI-2.2, начал разбираться, понял основные принципы его работы, а также понял, что дело долгое. Решил попытаться перевести MaxSite CMS (maxsite-0.862) на CodeIgniter-2.2. Вроде получилось - на локалке у меня всё работает (на локальной копии своего сайта lefroway.com). Но я не спешу спешить радоваться smile Мне, как дилетанту, могут быть незаметны недостатки и встала необходимость должным образом оттестировать обновлённую CMS. Пожалуйста, кто может и есть желание - помогите!

Вот ссылка на пакет: cms-master-0.862_ci-2.2.zip2

Внутри есть файл explain.txt с пояснениями.

Заранее спасибо!


У электронщиков есть мудрое правило: если сразу заработало, значит, что-то не так. А у меня заработало сразу, что и смущает rolleyes

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, то ошибки нет.

Вебмастерингом занялся после выхода на пенсию "с нуля". Бывший электронщик "от паяльника". Не программист.

Сайт

Комментариев: 12
  1. CodeIgniter 2.2 содержит несколько некритичных изменений. Там буквально несколько файлов поправлены. Не имеет смысла обновляться только ради этого.

  2. Изменения CodeIgniter пристально не смотрел, но даже так считаю, что пока нет особой нужды обновлять фреймворк в движке. Гораздо интереснее будет это делать после выхода CodeIgniter 3.0, ибо там, как обещают, должны быть более кардинальные изменения.

  3. Я пробовал 3-ю версию, но безрезультатно. Слишком кардинальные переделки.

  4. Да. У меня тоже сложилось впечатление, что CI-2.2 не сильно отличается от предыдущих.Недаром же работа сайта не нарушилась.

  5. Я пробовал 3-ю версию, но безрезультатно. Слишком кардинальные переделки.

    Максим, т.е. перевода движка на CI3 можно не ждать или всё таки есть в планах желание перевести на CI3, но позже?

  6. Третья версия далека от завершения. Сейчас говорить об её использовании просто не имеет смысла. Принципиально, какие-то новые её возможности, вряд ли будут интересны пользователям MaxSite CMS. То есть пока не будет полноценного релиза и одно-двух обновлений, строить планы о преходе преждевременно.

  7. Из всего вышесказанного выходит, что мои труды (не очень тяжёлые grin) были напрасны hmmm. Но есть надежда, что не на 100%, потому что функции "mysql_real_escape_string" и "mysqli_real_escape_string" отрабатываются лучше.

  8. Дополнил статью. Речь об ошибке PHP

    Message: mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.

    при версии PHP-5.5.9. Произошли некоторые изменения.

  9. Нужно перед этой функцией @ поставить.

  10. Max, мои познания в программировании на 80% состоят из "провалов" grin. Не понял, где поставить @.

  11. Александр, отвечу за Максима. @ ставится перед функцией для блокирования вывода ошибок - http://php.net/manual/ru/language.operators.errorcontrol.php

  12. Спасибо. Оператор "@" подавляет вывод сообщений об ошибках. Думаю, это полезно, когда ошибки не критические.