• avatar admin
  • 0
по установке чего? Imagemagick?
Если тебе на винду надо поставить, так там наверняка .exe ставиться.
В linux так еще проще, sudo apt-get install imagemagik
Что то нигде нет нормальной инфы по установке, или всё десятилетней давности
  • avatar admin
  • 0
ImageMagick установил на комп?
Нужно в настройках путь передать.
Должно работать.
  • avatar admin
  • 0
В контроллере определи
$data['pagination'] = $this->pagination->create_links();


А в шаблоне выводи $pagination
По теме: вообще не работает сжатие и обрезка, картинка загружается и никаких больше действий с ней не происходит, ошибок не выдает, на форуме пишут, что может оперативки не хватать, хотя на денвере 128мб выделено
И еще, в виде не работает
echo $this->pagination->create_links();

если написать в контроллере, то работает, но нельзя в шаблоне пагинацию никак позиционировать, просто она показывается в самом верху и всё, лаг какой то? Потому что делаю всё вроде по документации
$offset = $page - 1 * 4;
Вот эта строка мне и нужна было =D А я всю голову изломал как написать ее правильно
  • avatar admin
  • 0
У тебя есть ссылки вида
site.ru/page/3

В routes.php как то так
$route['page/(:num)'] = 'controller/main/$1';


Тогда в функции

    public function main($page = 1) {
        // По умолчанию $page = 1
        $offset = $page - 1 * 4; // Где 4 число новостей на страницу

        $config['base_url'] = base_url("page");
        $config['total_rows'] = $this->TABLE->count_results(); // Всего записей в базе данных
        $config['per_page'] = 4; // число записей на страницу
        $config['uri_segment'] = 2; // Сегмент
        $this->pagination->initialize($config);
        // Сегмент это что то вроде уровня вложенности папок, если /page/100/ то сегмент будет 2, если /page/folder/100/ то сегмент будет 3

        // Далее сам SQL по выбору записей
        // У тебя есть $offset, если страница 1, то он равен 0, если 2 то 4, если 3 то 8 и так далее
        // Т.е. в выборке у тебя будет лимит указан так
        $this->db->limit(4, $offset);
    }


Тогда получится следующее

    /page/1/
    $this->db->limit(4, 0);

    где /page/2/
    $this->db->limit(4, 4);

    где /page/3/
    $this->db->limit(4, 8);


Понял принцип?
Тебе главное принять цифру (страницу) в функции чтобы обработать ее.
Пока нет, смотри, получается если я вывожу например по 4 новости, то получается после первой страницы к каждому ПРЕДЫДУЩЕМУ сегменту постоянно нужно прибавлять число 3, т.е на второй странице сегмент+3, на третьей уже к предыдущей сумме нужно прибавить еще 3, но как получить ее непонятно
  • avatar admin
  • 0
тебе нужно передать в пагинацию сумму всех постов, затем указать сколько постов выводится на страницу и определить в функции текущую страницу.
Если тебе нужно могу расписать более подробно, сейчас просто не на своем ПК.
Или ты уже разобрался?
Хотя я понял почему такое смещение, ведь сегмент теперь другой, и он увеличивается всего на 1 с каждым перелистыванием, в отличии от старой пагинации, как правильно формулу вывести теперь, чтобы считало правильно?
Нашел вроде класс переделанный, но с выводом не пойму, страницы правильно выводит, но при перелистывании идет смещение всего лишь в одну картинку, т.е три первых выводятся с предыдущей страницы, и что то не осмыслю как надо правильно сделать, я вот так передаю
$data['wall'] = $this->modwall->get_post($config['per_page'], $this->uri->segment(1));
  • avatar admin
  • 0
точно не помню, вроде бы файл system/libraries/Pagination.php
отвечает за построение ссылок пагинации, там есть настройки, которые ты можешь изменить, менять можно как в этом же файле так и если создать новый файл «перехватчик» в директории application/libraries/
С название вроде бы MY_pagination.php
В нем переопределить функции обработчика пагинации.

ПС. Я делал свою версию листалки, точнее правил под свои нужды + у меня есть дополнительный хелперс который управляет и помогает построению пагинации.
Там вобщем все можно изменить, дело вкуса =)
Кстати можешь погуглить другие версии пагинации, я думаю кто нибудь да выкладывал свой класс Pagination.php
Ох начал прикручивать пагинацию и ужаснулся, какие то кривые ссылки со смещением, неужели придется их использовать?
  • avatar admin
  • 0
походу дела в htaccess проблема
В htacces все удали и размести этот код

AddDefaultCharset UTF-8
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-l
  # Main URL rewriting.
  RewriteRule ^(.*)$ index.php?$1 [L,QSA]
</IfModule>
Это то всё работает, но они всё равно не отображаются, даже если картинку кинуть в каталог с файлом и просто написать
<img src="file.jpg">
не грузится, может в routes.php надо какой то доступ к каталогу с картинкой дописать?
  • avatar admin
  • 0
Используй лучше объекты!
При выборке данный, в SQL запросе пиши нет
->result_array()

а
->result()

Тогда в PHP смело можешь выводить не так
$cell['img'];

а так
$cell->img;

Ну это вобщем то качается красоты кода и удобства, если не нужен массив для каких то либо махинаций, лучше и чище будет выводить объектом данные.
Вместо
<?=base_url();?>

Пиши
<?php echo $this->config->base_url() ?>

Если нужно указать каталог «wall», то лучше писать так
<?php echo $this->config->base_url("wall") ?>

В твоем случае получится так
<img src="<?php $this->config->base_url("wall") ?>/<?php $cell->img ?>" alt="ЧО за гумно">

или даже лучше так
<img src="<?php $this->config->base_url("wall/" . $cell->img) ?>" alt="ЧО за гумно">


Если что то не отображается, включи ошибки php в файле index.php (в корневой директории лежит) и если не понятно выкладывай сюда, помогу.

Еще не мало важно в CI есть стандартное профилирование, в контроллере можешь включить его
cidocs.ru/210/general/profiling.html

Да и вобще cidocs.ru очень поможет тебе в изучении CI, там вся поднаготная, вся дока по фрейму. НЕ читай все сразу, все равно в голове все не уложится, нужно потихоньку впитывать то что необходимо. Там кстати есть еще поиск от google, очень помогает, делаешь запрос ввиде
www.google.com/search?as_sitesearch=cidocs.ru%2F&q=%D1%84%D0%BE%D1%80%D0%BC%D0%B0+%D0%B2%D0%B0%D0%BB%D0%B8%D0%B4%D0%B0%D1%86%D0%B8%D1%8F&sa=Go
Гугл найдет что нужно =)
Отправил коммент блин)
1.
<img src="<?=base_url();?>/wall/<?=$cell['img']; ?>" alt="ЧО за гумно">

2.
<img src="test.ru/wall/<?=$cell['img']; ?>" alt="ЧО за гумно">

3.
<img src="<?=$_SERVER['DOCUMENT_ROOT'];?>/wall/<?=$cell['img']; ?>" alt="ЧО за гумно">
  • avatar admin
  • 0
tank_auth вроде как сам структуру таблицы создает.
Я если честно ей только раз пользовался, потом начал использовать стандартные средства самого фреймворка дабы не захламлять код.

В config.php сделай следующее
Создай секретны ключ для сессий
Найди
$config['encryption_key']

И замени
$config['encryption_key'] = 'fdhgjufdfdrtyujbjuyffjugfujyfuj';

Или любой другой набор букв.

Затем настройки сессий измени на
$config['sess_cookie_name']        = 'session';
$config['sess_expiration']        = 2419200;
$config['sess_expire_on_close']    = FALSE;
$config['sess_encrypt_cookie']    = FALSE;
$config['sess_use_database']    = FALSE;
$config['sess_table_name']        = 'table_name';
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent']    = TRUE;
$config['sess_time_to_update']    = $config['sess_expiration'];


После нужно подгрузить стандартные библиотеки по работе с сессиями и куками
autoload.php
$autoload['libraries'] = array('session');


Теперь нужно кодить, размещаешь форму авторизации на странице и создаешь обработчик формы.
Форму можешь проверять стандартным валидатором
cidocs.ru/210/libraries/form_validation.html

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


// $cell - объект данные о пользователе полученный из базы данных
$data = array(
       'id'           => $cell->id, // ID user
       'username'     => $cell->username, // Логин юзера
       'logged_in'    => true // Пользователь авторизирован
);
// Добавляем данные в сессию
$this->session->set_userdata($data);


Поле этого на страницах сайта делаем так

if( ! $this->session->userdata("logged_in")) {
    echo "Авторизируйтесь";
} else {
    echo "Привет: " . $this->session->userdata("username");
}
А какая структура таблицы тут в БД должна быть?)