маркировка читать статьи - PullRequest
0 голосов
/ 18 декабря 2011

У меня есть приложение, которое отображает внешние ссылки на сайт, все они статьи.Эти статьи находятся в базе данных.В настоящее время я ищу решение, которое бы показывало пользователю новые статьи при следующем посещении через простой тег, такой как «NEW» и т. Д.Я начал работать с моделями и контроллером, но в основном мне нужно передать идентификатор статьи и идентификатор пользователя в функцию jquery, когда пользователь щелкает эту статью, чтобы данные могли быть вставлены в данные, показывающие, что статья была прочитана.таким образом, метка "NEW" больше не будет отображаться для этой статьи.

Это лучший способ сделать это?Мне нужна помощь в подходе к jquery.

Спасибо.

Ответы [ 4 ]

1 голос
/ 18 декабря 2011

Опираясь на сказанное Сонни, вам не понадобится другой контроллер.Просто определите функцию в вашем контроллере для обработки этого

baseurl.com / controller / function / linkID

В этой функции вы захотите убедиться, что вы храните Artilce ID и User IDв отдельном столе.

Имя таблицы: article_views Поля: userID, articleID

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

Как только это произойдетВы можете перенаправить пользователя на сам товар.

1 голос
/ 18 декабря 2011

Если вы используете javascript, он не будет работать для людей без javascript. Я использовал ссылку, как ?out=*articleId*. Затем вы можете сохранить, что пользователь X нажал на ссылку X. Затем вы перенаправляете пользователя по ширине header("Location: *realURlFromDB*");.

0 голосов
/ 23 декабря 2011
<?php

//query that fetch unread articles
$query = "
    SELECT 
        articles.* 
    FROM 
        articles
    LEFT JOIN
        read_articles
            ON articles.id != read_articles.article_id
    WHERE
        read_articles.user_id = 1
";

/**

Test db data
CREATE TABLE IF NOT EXISTS `articles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;

INSERT INTO `articles` (`id`, `title`) VALUES
(1, 'Article 1'),
(2, 'Article 2');

-- --------------------------------------------------------

CREATE TABLE IF NOT EXISTS `read_articles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `article_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;

INSERT INTO `read_articles` (`id`, `article_id`, `user_id`) VALUES
(1, 1, 1);
0 голосов
/ 20 декабря 2011

Я сделал это, используя JOIN с параметром left.Это также возвращает пустые значения.Поэтому я могу проверить нулевое значение и показать тег NEW.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...