Thưa nhà văn Nguyễn Ngọc Tiến, viết về Hà Nội, đã có rất nhiều người, rất nhiều tác phẩm. Ông cũng không ngoại lệ, nào là “đi dọc”, “đi ngang”, “đi quanh” và cả “đi xuyên” Hà Nội nữa. Chắc hẳn phải là một người đặc biệt yêu Hà Nội, ông mới có thể tìm hiểu tỉ mỉ và dành tình yêu viết về Hà Nội nhiều như vậy?
– Trước hết viết là nhu cầu tự thân, hơn nữa quê tôi ở đây. Cũng như quê của mọi người ở các vùng miền khác nhau, cho nên yêu quê là bình thường. Chỉ khác quê tôi là đô thị, còn quê của mọi người ở vùng nông thôn, có cánh đồng lúa, có con sông…
Trong quá trình đọc các tác phẩm, tôi thấy có nhiều cuốn sách viết về Hà Nội, thế nhưng vẫn có những khoảng trống, khe hở mình hoàn toàn có thể khai thác được mà không đụng chạm với người đi trước. Từ đó cũng tạo cho mình được cái riêng. Những cái mọi người vẫn chưa biết, vẫn còn bị phủ lấp thì nay mình khui ra cho mọi người cùng biết, cùng đọc, thưởng thức và bản thân mình cũng được thỏa mãn.
Ông có nhiều khảo cứu công phu, tản văn về Hà Nội, đó là những tài liệu ông kỳ công tìm kiếm, khảo sát kỹ lưỡng, trong đó có một số tư liệu, tài liệu rất hiếm, đúng không ạ?
– Tôi viết dưới 2 dạng, một là khảo cứu nhưng có khác so với mọi người là vừa khảo cứu vừa ghi chép, kết hợp 2 yếu tố đó lại để cho ra được những cái mới mẻ, gần gũi, dễ đọc, đời thường hơn.
Cách thứ 2 tôi cũng viết tản văn, tôi chọn một cái gì đó dựa trên dữ liệu mình đã có, mình đọc ở đâu đó hoặc thực tế thu thập được và căn cứ viết thành tản văn. Ngôn ngữ trong tản văn ngoài văn chương bay bổng còn có thông tin trong đó để ai đó cần có thể sử dụng được.
Nếu nói sách viết về Hà Nội từ thế kỷ thứ 17 người phương Tây đã viết rất nhiều. Tất nhiên bằng tiếng Anh, Pháp, Bồ Đào Nha… Sau này có một số đơn vị, cơ quan có dịch ra tiếng Việt. Trong các ghi chép họ nhìn theo góc nhìn của phương Tây, có thể khắt khe, có thể sai, thậm chí có đoạn miệt thị, nhưng lấp lánh trong đó có nhiều tư liệu về Hà Nội như thành Thăng Long xưa, con người, lối sống… Phải nói trong giai đoạn từ thế kỷ 17 đến nửa đầu thế kỷ 20, sách của người Việt Nam viết về Thăng Long Hà Nội rất ít, chỉ có một vài cuốn ví như Vũ Trung tùy bút của danh sĩ Phạm Đình Hổ. Khi người Pháp đánh thành từ năm 1882 và biến tỉnh Hà Nội thành thành phố Hà Nội thì mô hình xã hội thay đổi từ xã hội truyền thống kiểu phong kiến thành mô hình phương Tây hiện đại. Người Pháp áp dụng cách quản lý rõ ràng, ra văn bản gì thì họ công bố trong công báo, có ghi ngày, tháng, năm và nội dung. Ví dụ như cơ cấu hành chính Hà Nội, phường xã, sở cảnh sát, nông lâm… tất cả đều rất cụ thể. Từ công báo muốn tìm hiểu sâu hơn thì tôi đọc các nghị định, báo xuất bản trước năm 1954 hay sách và báo cáo về kinh tế, xã hội hết nhiệm kỳ của các toàn quyền Đông Dương. Trong báo cáo hết nhiệm kỳ bao giờ cũng có phụ lục về Hà Nội với các mục gồm: giao thông, cây xanh, phương tiện, thuế… rất thuận tiện trong việc tra cứu. Đây là nguồn tư liệu cho tôi chọn lọc những gì phù hợp với bài viết.
Hà Nội hiện lên trên những trang sách của ông rất sống động với một hiện thực lịch sử đa chiều, đầy biến động, với bề dày và cả chiều sâu. Đó có phải là sự kết hợp giữa trải nghiệm cá nhân của một người sinh ra, lớn lên gắn bó với Hà Nội, cùng với sự tìm hiểu kỹ của một nhà nghiên cứu tư liệu, văn bản, những tư liệu sống – là những người Hà Nội?
– Tư liệu được ví như bột và có bột mới gột nên hồ nhưng chỉ đưa ra tư liệu thì chỉ dừng ở thông tin, quan trọng cuốn sách đó nói gì với bạn đọc hôm nay. Trong cuốn sách khảo cứu, tôi cố gắng qua tư liệu để khái quát một vấn đề nào đó. Ai cũng biết linh hồn của đô thị – văn hóa thị dân mang tính phổ quát hơn văn hóa cung đình và văn hóa của tầng lớp thống trị. Ví dụ khi tôi viết về nghệ thuật chèo, vậy thân phận của những người hát chèo như thế nào? Thân phận của bộ môn diễn xướng này, những người nghệ sĩ đường phố ra sao, bị thời cuộc tác động thế nào?… Đấy mới là mong muốn của tôi.
Đã có bao nhiêu cuốn sách ông viết về Hà Nội?
– Khoảng 7 cuốn khảo cứu. Khi nói về một đầu sách, tôi không tính bằng trang, tôi tính bằng chữ. 7 cuốn, mỗi cuốn ngắn nhất 100.000 chữ, dài nhất 115.000 chữ, cầm rất nặng tay. Tính như thế để thấy số chữ tôi đã viết.
Những cuốn sách đó đã chuyên chở hết những hiểu biết của ông về Hà Nội chưa?
– Chưa bao giờ, kể cả sau này có viết nữa cũng không hết vì Hà Nội là kinh đô từ năm 1010 cho đến hết thời Lê. Trong 800 năm ấy biết bao nhiêu sự kiện đã diễn ra. Một điều nữa kinh đô ngày xưa bao giờ cũng là nơi đến cuối cùng của kẻ ngoại bang xâm lược, họ chiếm được kinh đô, thì sẽ chiếm được quốc gia ấy. Vì thế kinh đô, thủ đô luôn luôn là nơi xảy ra trận đánh ác liệt, những câu chuyện rất hay và cảm động về kháng chiến chống ngoại xâm của người Việt Nam.
Đến năm 1902, người Pháp lại chọn Hà Nội là thủ đô của Liên bang Đông Dương. Chính vì vậy nên họ xây dựng nhiều công trình có giá trị về kiến trúc, mang tính nghệ thuật cao như: Phủ Chủ tịch, Nhà hát Lớn, Toà nhà Bộ Ngoại giao… và rất nhiều biệt thự khác còn hiện hữu. Bên cạnh đó cũng có nhiều sự kiện diễn ra trong thời kỳ Hà Nội là thủ đô của Liên bang Đông Dương, kéo dài đến năm 1945, cho đến ngày 2/9/1945 khi Chủ tịch Hồ Chí Minh đọc Tuyên ngôn độc lập khai sinh ra nước Việt Nam Dân chủ Cộng hòa. Nhưng nước Việt Nam Dân chủ Cộng hoà còn non trẻ chỉ tồn tại 1 năm, sau đó lại trở thành thủ đô của Liên bang Đông Dương cho đến năm 1954, năm người Pháp buộc phải ký Hiệp định Gie-ne-vơ. Rồi con người, văn hoá qua mỗi thời của Hà Nội cũng khác với các miền quê khác. Đó là mảnh đất màu mỡ cho những ai muốn khai thác về Hà Nội.
Một điều thú vị nữa là ngày hôm nay tôi nhìn nhận Hà Nội dưới góc nhìn này, thì ngày mai tôi lại nhìn dưới một góc độ khác. Và thế hệ sau sẽ lại “mở tài liệu” đó bằng chìa khóa của họ khác với góc nhìn của tôi. Bởi vậy, viết về Hà Nội có lẽ mãi không hết. Ngày hôm nay viết lại chuyện tôi đã viết, tôi cũng sẽ viết khác.
Có một điều đặc biệt khi nói về Hà Nội, người ta thường hay nói về khí chất của người Hà Nội. Vậy, là một người được coi là “sử nhân của Hà Nội”, ông nói gì về điều này? Có phải cứ sống lâu ở Hà Nội, hay có tổ tiên gốc gác ở Hà Nội, thì mới là người có khí chất Hà Nội – mà như người Hà Nội thường tự hào: “Chẳng thơm cũng thể hoa nhài/Dẫu không thanh lịch cũng người Tràng An”.
– Lâu nay người ta hay tranh luận chuyện Hà Nội gốc. Có Hà Nội gốc không, tôi khẳng định là có. Từ thế kỷ thứ 5, ở làng Long Đỗ, khi vua Lý Nam Đế xây mộc thành (thành bằng gỗ), đã đặt nền móng cho một đô thị sau này rồi. Khi nhà Đường xâm lược ở thế kỷ thứ 7, họ biến vùng Long Đỗ thành Tống Bình, nơi quan quân nhà Đường sống ở đấy. Từ khu vực Tống Bình đó sau này họ xây thành Đại La. Đến thế kỷ thứ 9, Cao Biền – một người giỏi về quân sự, phong thủy đã xây lại thành và cai quản cho đến khi Việt Nam tự chủ. Đến năm 1010, khi Lý Công Uẩn dời đô ra Thăng Long, làng Long Đỗ vẫn vị trí đó và theo quy luật, họ cũng sinh con đẻ cái ở đấy. Giờ bảo tìm người gốc gác làng Long Đỗ e là khó nhưng chắc chắn là có. Theo chiều dài lịch sử, đã có nhiều người di cư về Hà Nội.
Nhưng tôi muốn nói cái gốc văn hóa mới là quan trọng. Gốc văn hóa quan trọng hơn gốc địa lý. Cho đến hôm nay tôi vẫn luôn nói có người Hà Nội gốc.
Nếu nói về cốt cách Hà Nội, có 2 thứ. Một là lối sống, cung cách ứng xử bao gồm 3 gạch đầu dòng: thanh lịch, tao nhã, tế nhị. Còn bản lĩnh của người Hà Nội cũng có 3 gạch đầu dòng: trượng nghĩa, sành sỏi, khoáng đạt.
Một số người chứng minh Hà Nội không có lối sống thanh lịch, họ căn cứ vào việc Pháp xâm chiếm và đưa văn minh văn hóa Pháp vào, và người Hà Nội chịu ảnh hưởng của người Pháp nên mới có lối sống thanh lịch. Nhận định này tôi cho là không đúng. Một lối sống, cung cách ứng xử không phải một vài ngày, vài năm mà hình thành được, nó là cả một quá trình, chuyển từ thế hệ này sang thế hệ khác.
Một số người khác lại cho rằng Hà Nội có thanh lịch, nhưng chỉ ở tầng lớp quan lại được học hành. Điều này càng không đúng. Tầng lớp này ở vùng miền khác, thi đỗ và về Thăng Long làm quan, chính họ là người bị ảnh hưởng bởi lối sống ở Thăng Long.
Vậy thanh lịch có không, có tế nhị không, có tao nhã không? Tôi chỉ dẫn chứng sách ở phương Tây viết cho khách quan. Trong cuốn Lịch sử tự nhiên, dân sự và chính trị xứ Đàng Ngoài (Histoire naturelle civile et politique du Tonquin-1778), tác giả Jerome Richard viết: “Thăng Long là nơi nghiêm khắc nhưng cũng rất nề nếp”. Ông kể chuyện được một người trung lưu mời tới ăn cơm, tiếp đón niềm nở, lịch sự. Ông miêu tả trên mâm cơm có đĩa giò được xắt đều, điều này chứng tỏ chủ nhân muốn một sự công bằng và khi ông ăn xong, chủ nhà bê ra một chậu nước bằng đồng rất bóng, đặt một chiếc khăn trắng, nước đủ ấm cho ông lau miệng, rửa tay. Điều đó nói lên việc người Hà Nội lịch sự đối với khách.
Một cuốn sách khác là Miêu tả vương quốc xứ Đàng Ngoài (Desription of the kingdom of Tonqueen-1683), tác giả Samuel Baron kể việc đi thăm người ốm. Không bao giờ người Thăng Long hỏi “Anh khỏe chưa”, mà hỏi là “Anh ăn được mấy bát cơm”. Một câu hỏi rất tế nhị.
Hay một nhà báo Pháp đến Bắc Kỳ cuối thế kỷ 19, đầu 20, ông ta có viết cuốn sách Ở Bắc Kỳ, trong bài Đi qua Hà Nội, ông này mô tả về một người con gái: “Đằng sau cái áo dài mặc bên ngoài màu tẻ nhạt, bên trong tôi thấy rất nhiều màu sắc hiện ra, tôi đếm cả thảy 10 màu”. Tức là con gái Thăng Long mùa đông mặc nhiều áo khác nhau, bên ngoài màu tẻ nhạt nhưng bên trong họ khoe từng lớp áo khác nhau. Ngoài sự kín đáo còn là sự tao nhã.
Trong Đại Nam thực lục, bộ chính sử của nhà Nguyễn, vua Tự Đức khi nhận xét về Thăng Long: kiêu bạc, xa xỉ, khoáng đạt. 6 chữ đó đã bao hàm nên cốt cách của người Thăng Long.
Chúng ta hãy ngược dòng thời gian, quay về với lịch sử thời kỳ những ngày Hà Nội chưa giải phóng. Hà Nội khi đó là những ngày tháng bom đạn khốc liệt của chiến tranh chống thực dân Pháp. Những con người Hà Nội đã thể hiện khí chất người Hà Nội, hào khí Thăng Long như thế nào, thưa ông?
– Hà Nội hứng bom đạn rất sớm, những trận bom đầu tiên do quân Đồng minh trút xuống quân Nhật tháng 12/1943 nhưng bom đạn không có mắt đã giết hại rất nhiều người phố. Dường như không mãi chịu kiếp nô lệ, nhiều lớp người Hà Nội trong đó có trí thức đã đi theo kháng chiến. Và ngay trong gian khổ họ vẫn lãng mạn tiểu tư sản “Đêm mơ Hà Nội dáng kiều thơm” (Tây tiến của nhà thơ Quang Dũng). Hay lòng yêu nước đậm chất sĩ phu “Người ra đi đầu không ngoảnh lại/Sau lưng thềm nắng lá rơi đầy” (thơ Nguyễn Đình Thi). Người Hà Nội đi tản cư đem theo 2 “thứ” để sống: một là bán phở, hai là bán cà phê ở các vùng tự do. Điều đó để thấy, ngay trong chiến tranh lối sống tiểu tư sản thị thành thật khó bỏ.
Nhìn lại chặng đường đã qua, khi sống trong khoảnh khắc 70 năm sau ngày Giải phóng Thủ đô, là một người nghiên cứu Hà Nội và chứng kiến những thành tựu phát triển vượt bậc của Thủ đô, ông đã có những suy nghĩ như thế nào?
– Trong 70 năm đó cũng có giai đoạn chúng ta có những nhầm lẫn, quan niệm chưa đúng về văn hóa. Ví dụ cho rằng những tín ngưỡng là sản phẩm của xã hội phong kiến; đánh đồng tín ngưỡng với hủ lậu, mê tín. Nên từ đầu năm 1960 rất nhiều đình làng ở Hà Nội biến thành cơ sở sản xuất, trường học, nhà trẻ… Sai lầm nữa là cho rằng thanh lịch đó là sản phẩm của lối sống tư sản. Rất may sau này quan niệm thay đổi, đã trở lại bình thường.
Nhiều người nhắc đến thời bao cấp, nhưng thực tế bao cấp không khổ bằng giai đoạn đầu thực hiện đổi mới. Dù sao bao cấp mỗi gia đình một tháng còn được mua gạo, thịt, chất đốt giá cung cấp nhưng khi đổi mới, xóa bỏ bao cấp tất cả phải tự lo, mua ngoài thị trường và rồi lạm phát, và hàng loạt người lao động nghỉ hưu non theo nghị định 176, tôi cho rằng đó là giai đoạn vô cùng khó khăn của người Hà Nội. Nhưng nhờ bản lĩnh họ cũng vượt qua được. Cho đến bây giờ không thể phủ nhận kinh tế xã hội có sự thay đổi, văn hóa ngoài sự tiếp nối truyền thống còn có những cái mới. 70 năm trôi qua, Hà Nội rất khác.
Dù trải qua nhiều thăng trầm nhưng Hà Nội vẫn luôn xứng đáng vai trò là Thủ đô – trung tâm lớn về chính trị, kinh tế, văn hóa của cả nước. Nhưng, Hà Nội cũng có nhiều những màu sắc mới lạ, của những du nhập qua những luồng di cư, giao lưu, hội tụ của nhiều nền văn hoá khác nhau… Hà Nội đã và đang thay đổi như thế nào trong những năm gần đây, thưa ông?
– Văn hóa Hà Nội ngoài yếu tố nội sinh còn có ngoại sinh, nhưng ngoại sinh ngấm vào tới mức độ nào thì khó để đo đếm. Văn minh, văn hóa Pháp chỉ làm đậm đà thêm lối sống Hà Nội mà thôi.
Nhập cư không phải là vấn đề bây giờ mà từ xưa đã có. Khi anh ở vùng miền khác, anh mang theo lối sống, văn hóa đó về Thăng Long Hà Nội. Nhưng nhập gia phải tùy tục. Người nhập cư hiện nay rất đông, song cơ bản họ lo cho chính bản thân họ như đi học, kiếm sống, vì thế họ không gây ra điều gì tệ hại. Họ cũng thay đổi để hòa nhập và thích nghi được với cái đã có.
Tôi vẫn nói không có xã hội nào tuyệt đối, vẫn có chuyện này, chuyện kia dù có luật điều chỉnh các hành vi. Vậy nên cơ bản tôi thấy cuộc sống của người Hà Nội ngày nay vẫn không đáng lo lắng như đô thị khác. Những người ở nơi khác đến Hà Nội sinh sống cũng góp phần làm tăng trưởng GDP của thành phố. Tôi không cho những người nhập cư về đây đã làm lối sống Hà Nội xuống cấp.
Hà Nội có đang mất dần đi những nét văn hoá gốc vốn có của nó không, theo quan điểm của ông?
– Tôi thấy hiện nay có nhiều việc làm nhằm bảo tồn các văn hóa vật thể, còn với phi vật thể từng có giai đoạn khó khăn. Ví dụ ca trù từng bị coi là sản phẩm của phong kiến nhưng bây giờ ca trù được hát trở lại. Hay nghệ thuật đường phố xưa như hát xẩm. Rõ ràng đấy là những cái lưu giữ văn hóa cũ. Hà Nội hôm nay cũng du nhập văn hóa mới, tôi chưa nói là hay hay không hay nhưng tôi nghĩ thời gian và thẩm mỹ sẽ sàng lọc những gì không phù hợp và loại ra thôi, không có gì lo lắng cả. Tôi cho là văn hóa Hà Nội có xuống cấp nhưng không mất cái gốc.
Muốn phát triển, quản lý Hà Nội phải nhìn từ gốc rễ của văn hoá. Mà như ông vừa nói, văn hoá không phải là cái bất biến, nó luôn chuyển động không ngừng. Vậy theo ông, làm thế nào để Hà Nội phát triển xứng tầm nhưng vẫn giữ gìn được những giá trị văn hoá, những nét riêng của văn hiến nghìn năm, thưa ông?
– Tôi thấy trong Luật Thủ đô sửa đổi vừa qua, cũng đưa rất nhiều điều khoản liên quan đến văn hóa nên việc ban hành thêm các văn bản khác có lẽ không cần thiết. Ví dụ Luật Công chức, Luật Viên chức, Luật Di sản, Luật Giao thông… tất cả những cái đó điều chỉnh hành vi của con người. Vấn đề chỉ là thực hiện luật thế nào. Ví dụ: trước đây chúng ta có Luật Giao thông nhưng người uống bia rượu vẫn điều khiển xe máy, ô tô thoải mái. Nhưng khi luật thực hiện nghiêm thì tình trạng trên giảm đáng kể. Rõ ràng phạt là phương pháp giáo dục tốt nhất, hơn nhiều lần tuyên truyền. Khi đã có Luật Thủ đô và các bộ luật khác điều chỉnh hành vi, thì tôi nghĩ văn hóa Hà Nội và tỉnh thành khác sẽ có một sự chuyển biến tốt. Còn nói về tuyệt đối, thì tôi nghĩ là không, quốc gia nào cũng vậy thôi kể cả nước có dân trí cao, có nền hòa bình trăm năm.
Ông từng nói rằng, nếu phải xếp hạng các đô thị ở Việt Nam, ông sẽ xếp Hà Nội vào thành phố không đáng sống. Vì sao lại như vậy? Và theo ông vì sao là “thành phố không đáng sống”, nhưng Hà Nội lại vẫn hấp dẫn nhiều người ở khắp nơi đến vậy?
– Trong giai đoạn hiện nay, tôi nói Hà Nội không đáng sống, hay sống ở Hà Nội rất khổ, vất vả hơn vùng miền khác. Khi hạ tầng không theo kịp sự phát triển của các phương tiện giao thông, đặc biệt là giao thông cá nhân, mật độ dân số cao, trong khi giao thông công cộng hạn chế. Do đó sinh ra ùn tắc giao thông, mùa hè đi ngoài đường dưới cái nắng nóng và khí thải của các phương tiện xe cơ giới rất khó chịu. Đấy là cái không đáng sống.
Ngoài ra, Hà Nội quá ư chật chội. Gia đình nào ở thành phố rộng thì tầm 50- 60m2 chồng lên tầng, còn có những nơi chỉ 30m2 chồng tầng, rõ ràng điều kiện sinh hoạt không đáng sống. Ngay cả khu đô thị mới bây giờ cũng thế, vì lợi nhuận người ta xây san sát, từ đó ảnh hưởng tới thể tích không khí để hít thở cho con người.
Mật độ dân số cũng quá cao rồi bất cập khác do sự thực thi của cán bộ chưa tốt, chưa làm tròn nhiệm vụ, rồi tham nhũng…
Còn việc nhiều người ngày nay vẫn thích đến Hà Nội vì ở đây họ được hưởng thụ các di sản văn hóa không mất tiền. Hà Nội cũng như nhiều đô thị lớn khác luôn có sức hút đối với người dân ở các tỉnh thành, kể cả người nước ngoài vì có nhiều cơ hội làm việc, từ trí tuệ đến chân tay. Nói về giáo dục, Hà Nội có nhiều trường học tốt và các trường đại học tập trung nhiều. Cho nên không có lý do gì mọi người không tìm về Hà Nội học hành. Điều đó cũng chứng tỏ sức hấp dẫn của đô thị này.
“Hà Nội còn một chút này” là tác phẩm ông mới viết vào năm 2022. Hà Nội hiện ra trong cuốn sách của ông như thế nào? Vì sao lại là “còn một chút này”?
– Trong cách đặt tên cũng đã biểu lộ ý đồ của tác giả. Có những thứ trong cuốn sách tôi cho là ít người biết và không biết. Ví dụ như tại sao phố Tràng Tiền lại có mái hiên che kín vỉa hè? Tại sao nước Hồ Gươm xanh?… Cuốn sách đó trả lời nhiều câu hỏi của chính bản thân tôi và nhiều người khác. Cuốn sách gần như không đụng hàng với cuốn sách trước đó, có chăng chỉ là một vài chi tiết hoặc một vài thông tin nhỏ.
Trong khi tôi viết về Hà Nội thấy những cái rơi rụng, sứt mẻ, mình rất tiếc. Đấy cũng là tâm lý bình thường. Ví dụ như bạn sống ở quê, có một cổng làng đẹp, bạn thấy thân thuộc, bỗng nhiên giờ phá đi xây một cổng mới bằng sắt, rõ ràng bạn phải tiếc nuối rồi.
Nói và viết về Hà Nội, là một cách yêu Hà Nội. Ông còn dự định ấp ủ viết gì nữa cho Hà Nội? Trong hình dung của ông, Hà Nội sẽ thế nào trong 10 năm tới?
– Nhà xuất bản vừa in một cuốn mới nhất của tôi là Làng làng phố phố Hà Nội. Ban đầu tôi đặt tên Làng làng phố phố Hà Nội Hà Nội, nhưng cũng có trao đổi với NXB và thống nhất về tên cuốn sách mới. Cuốn sách dày 450 trang, có thể là cuối cùng về Hà Nội, bởi mình cũng mệt mỏi và còn nhiều khác phải làm. Tôi muốn phát triển về phần văn học, tôi mới có mấy tiểu thuyết và cũng không gây được tiếng vang. Tôi muốn thời gian còn lại viết một vài cuốn tiểu thuyết có chiều sâu, có tính tư tưởng, cũng để thỏa mãn bản thân.
Còn Hà Nội tương lai tôi nghĩ nếu luật pháp duy trì nghiêm, đi vào đời sống và cán bộ các cấp có trách nhiệm hơn, cộng với tăng trưởng đều, tôi nghĩ 5, 10 năm nữa Hà Nội sẽ rất khác. Các phương tiện cá nhân sẽ ít hơn khi các phương tiện giao thông công cộng phát triển và ý thức người dân được nâng cao, sẽ hạn chế được ô nhiễm và tiếng ồn. Thành phố cũng sẽ đầu tư ngân sách nhiều hơn cho hạ tầng, văn hóa. Sẽ không còn sức ép quá lớn như hiện nay về giao thông, mật độ dân số…
Xin cảm ơn những chia sẻ của ông!
if (!isNotAllow3rd) { loadJsDefer('https://apis.google.com/js/platform.js?onload=onLoadGapi'); loadJsDefer('https://connect.facebook.net/vi_VN/sdk.js#xfbml=1&version=v5.0'); }
function onLoadGapi() { gapi.load('auth2', function() { gapi.load('auth2', function() { gapi.auth2.init({ client_id: '678720187862-08lendtdt5h3nr4j2he534p15b13aieg.apps.googleusercontent.com', scope: 'email profile', fetch_basic_profile: true }); }); }); }
function deleteCookie(name) { document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"; } function lgGetCookie(name) { var value = document.cookie; var start = value.indexOf(" " + name + "="); if (start == -1) { start = value.indexOf(name + "="); } if (start == -1) { value = null; } else { start = value.indexOf("=", start) + 1; var end = value.indexOf(";", start); if (end == -1) { end = value.length; } value = unescape(value.substring(start, end)); } return value; }
function lgSetCookie(name, value, date) { var cookieValue = escape(value) + ((date == null) ? "" : "; expires=" + date.toUTCString()); document.cookie = name + "=" + cookieValue; }
function authLogin(name,isLogin=false){ if (isLogin){ $('#top-link-account .first').hide(); $('#top-link-account .second').html(`${name} | Đăng xuất`); $('#top-link-account .second').attr('data-out',1);
$("#cmt-account-header .tabs .close, #cmt-account .tabs .close") .click(); $('.comment-account').html(`
Xin chào ${name}! Đăng xuất
`); }else { if (window.confirm("Bạn muốn đăng xuất?")) { var el = $("#top-link-account"); // //el.find("a.first").html("") // // .removeAttr("style"); el.find(".first").show(); el.find("a.second").html(""); el.find("a.second").removeAttr("data-out");
$('.comment-account').html(`
`);
deleteCookie('my_dv'); $("#_btn_logout").click(); } } }
function logout(){ if (window.confirm("Bạn muốn đăng xuất?")) { var el = $("#top-link-account"); // //el.find("a.first").html("") // // .removeAttr("style"); el.find(".first").show(); el.find("a.second").html(""); el.find("a.second").attr("data-out", "0");
$('.comment-account').html(`
`); deleteCookie('my_dv'); $("#_btn_logout").click(); } } function login(){ $("#_btn_logout").click(); $("#cmt_alert").html("Vui lòng đăng nhập hoặc đăng ký để gửi bình luận"); } function register(){ $("#_btn_logout").click(); $('[data-target="signup"]').click(); fnCaptcha(); }
var aspCookie = null;
(runinit = window.runinit || []).push(function() {
if(lgGetCookie('my_dv')){ var user = JSON.parse(lgGetCookie('my_dv')); if(user.name){ authLogin(user.name, true); } }
$('.btn-refresh').click(function() { fnCaptcha(); }); $('.iconew-eye').click(function() { $(this).toggleClass('closed'); var x = $(this).siblings('input')[0]; if (x.type === "password") { x.type = "text"; } else { x.type = "password"; } });
function stripHtml(html) { var temporalDivElement = document.createElement("div"); temporalDivElement.innerHTML = html; return temporalDivElement.textContent || temporalDivElement.innerText || ""; }
// --------------------- User account // 1. Hide login/logout button -> in case API doesn't available, login/logout will not show + Init OAuth_v2 //$("#top-link-account").hide(); if (typeof gapi != "undefined") { //window._cnnd.oauth.init(); console.log("login not available"); } // 2. Remove excessive login/register form -> only 1 form available // no need // 3. Callback functions var fnPopupAction = function(id, alert, loginData) { id = id.toLowerCase(); if (id == "close") { $("#cmt-account-header .close").click(); return; } if (id == "info" && !window._isShowingInfo) { $("#cmt-account-header .close").click(); return; } window._isShowingInfo = false; if (loginData) { $("#cmt-account-header [data-target]").hide(); $("#cmt-account-header [data-target].logged-in").show().first().click(); $("#cmt-account-header [data-info-name]").html(loginData.name || "Quý vị"); $("#cmt-account-header [data-info-email]").html(loginData.email || "<không xác định>"); } else { $("#cmt-account-header [data-target]").hide(); $("#cmt-account-header [data-target].not-login").show().first().click(); $("#cmt-account-social").show(); } setTimeout(function() { $("#cmt-account-header > .wrapper").css("animation", "none"); }, 200); $("#cmt-account-header").show(); $("#cmt-account-header input[type="password"]").val(""); $("#cmt-account-header [data-target="" + id + ""]").click(); $("body").css("overflow", "hidden"); $("#nav").removeClass("active"); $("#cmt_alert").html(alert || "Vui lòng đăng nhập hoặc đăng ký để gửi bình luận"); }; var accountMessageProcess = function(data) { if (data.isLogged) { fnPopupAction("info", "Vui lòng đăng nhập hoặc đăng ký để gửi bình luận", { name: data.name, email: data.email }); } else { fnPopupAction(data.act, data.alert || "Vui lòng đăng nhập hoặc đăng ký"); if (data.act == "close" && data.raw.Data && data.raw.Data.Approved) { //window.alert("Đăng nhập thành công"); fnPopupAction("info", "Đăng nhập thành công", { name: data.raw.Data.Name, email: $("#_login_email").val() || $("#_sign_email").val() }); } } };
// 5. Action functions -> bind event to form elements
var fnPopupBindAction = function() { // Tab $("#cmt-account-header [data-target]").on('click', function() { $("#cmt-account-header [data-target], #cmt-account-header [data-tab]").removeClass( "active"); $(this).addClass("active"); var tab = $("#cmt-account-header [data-tab='" + $(this).attr("data-target") + "']"); tab.addClass("active") .find("input[type="text"], input[type="email"]").first().focus(); tab.find("input").keyup(function(event) { if (event.keyCode === 13) { tab.find(".btn.clickable").click(); } }); fnCaptcha(); $("#cmt_alert").html("Vui lòng đăng nhập hoặc đăng ký để gửi bình luận"); }); $("#cmt-account-header .close").on('click', function() { $("#cmt-account-header").hide(); $("#cmt-account-header > .wrap").removeAttr("style"); $("body").css("overflow", "unset"); fnCaptcha(); $("#cmt_alert").html("Vui lòng đăng nhập hoặc đăng ký để gửi bình luận"); }); // Reload Captcha // $("#_reload_captcha").on('click', function () { // fnCaptcha(); // }); // Btn Login
$("#comment-frame").on('click','#btn_login', function () { $("#top-link-account .first").click(); }); $("#comment-frame").on('click','#btn_signup', function () { $("#top-link-account .first").click(); $('[data-target="signup"]').click(); });
$("#_btn_login").on('click', function() { $("#cmt_alert").html("Vui lòng đăng nhập hoặc đăng ký để gửi bình luận"); var email, password; email = $("#_login_email").val(); password = $("#_login_password").val(); if (!/^[a-z0-9-_\.]+[@][0-9a-z-]+(\.[0-9a-z-]+)+$/ig.test(email) || password .length < 8) { $("#cmt_alert").html("Email hoặc mật khẩu không đúng!"); return; } $.ajax({ url: pageSettings.DomainApiComment + "/api/get-usercomment.htm", data: { email: encodeURI(email), password: password, sitename: pageSettings.commentSiteName, }, type: "get", success: function (res){ if (res && res.data == true){ var user = { email: email, name: email.substring(0, email.indexOf('@')), } let now = new Date(); lgSetCookie('my_dv',JSON.stringify(user), new Date(now.getTime() + (30 * 12 * 60000))); authLogin(user.name, true); }else { $("#cmt_alert").html("Có lỗi phát sinh, vui lòng thử lại sau"); } } }); }); // Btn Signup $("#_btn_sign").on('click', function() { $("#cmt_alert").html("Vui lòng đăng nhập hoặc đăng ký để gửi bình luận"); var email, name, password, repassword, captcha; email = $("#_sign_email").val(); name = $("#_sign_name").val(); if (name == ''){ name = email.split('@')[0]; } password = $("#_sign_password").val(); //repassword = $("#_sign_repassword").val(); captcha = $("#_sign_captcha").val(); var format = /[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]/g; if (!/^[a-z0-9-_\.]+[@][0-9a-z-]+(\.[0-9a-z-]+)+$/ig.test(email)) { $("#cmt_alert").html("Email không hợp lệ"); return; } //if (name.length <= 0) { // $("#cmt_alert").html("Vui lòng nhập họ tên của bạn!"); // return; //} //if (name.length > 20) { // $("#cmt_alert").html("Họ tên không được quá 20 ký tự (Có thể để nickname thay thế)!"); // return; //} //if (format.test(name)) { // $("#cmt_alert").html("Tên không được chứa ký tự đặc biệt!"); // return; //} if (password.length < 8) { $("#cmt_alert").html( "Mật khẩu phải có ít nhất 8 ký tự, chứa ít nhất 1 chữ số và 1 chữ cái"); return; } //if (password != repassword) { // $("#cmt_alert").html("Mật khẩu xác nhận lại không khớp!"); // return; //} if (!(/[a-z]/ig.test(password) && /[0-9]/ig.test(password))) { $("#cmt_alert").html("Mật khẩu phải chứa ít nhất 1 chữ số và 1 chữ cái"); return; } if (captcha.length <= 0) { $("#cmt_alert").html("Vui lòng điền mã xác nhận trong ảnh!"); return; } $.ajax({ type: 'POST', url: pageSettings.DomainApiComment + "/api/insert-usercomment.htm", data: { name: name, email: email, password: password, captcha: captcha, sitename: pageSettings.commentSiteName }, success: function (res){ if (res && res.message == "Success"){ var user = { email: email, name: email.split('@')[0], } let now = new Date(); lgSetCookie('my_dv',JSON.stringify(user), new Date(now.getTime() + (30 * 12 * 60000))); authLogin(user.name, true); $("#cmt-account-header .close").click(); }else { $("#cmt_alert").html("Có lỗi phát sinh, vui lòng thử lại sau"); } } }); }); // Btn logout $("#_btn_logout").on('click', function() { $("#cmt_alert").html("Vui lòng đăng nhập hoặc đăng ký để gửi bình luận"); $("#cmt-account-header .close").click(); fnPopupAction("login", "Bạn đã đăng xuất thành công"); var el = $("#top-link-account"); //el.find("a.first").html("") // .removeAttr("style"); el.find("a.first").show(); el.find("a.second").html(""); $("#cmt-account-social").show(); }); // Header login/account_info
// Header login/account_info $("#top-link-account .first").on('click', function() { if ($("#top-link-account .second").attr("data-out")) { $("#top-link-account .second").toggleClass("show"); } else { fnPopupAction("login"); } }); // Btn register/log_out $("#top-link-account .second").on('click', function() { if ($("#top-link-account .second").attr("data-out")) { //$("#_btn_logout").click();
authLogin('my_dv',false);
} else { fnPopupAction('signup'); }
//var el = $("#top-link-account"); //el.find("a.first").html("") // .removeAttr("style"); //el.find("a.second").html(""); }); }; fnPopupBindAction();
//login Facebook var otherLogin = { init: function() { var me = this; //gapi.load('auth2', function () { // gapi.auth2.init({ // client_id: '678720187862-08lendtdt5h3nr4j2he534p15b13aieg.apps.googleusercontent.com', // scope: 'email profile', // fetch_basic_profile: true // }); //}); $("#cmt-account-social button[data-type]").on('click', function() { me[$(this).attr("data-type")](function(response) { $("#cmt-account-header .tabs .close, #cmt-account .tabs .close") .click(); }); }); try { fbClient.appId = '1304555827613749'; //'211029740744825'; fbClient.version = "v14.0"; fbClient.init(); setTimeout(FB.AppEvents.logPageView, 5000); } catch (e) { // ignore } }, loginFacebook: function(cb) { var me = this;
function reloginFacebook(callback) { FB.api('/me', { fields: 'id, name, email' }, function(profile) { //console.debug(profile); if (typeof callback === "function") callback(profile); }); }; FB.login(function(response) { if (response.authResponse) { reloginFacebook(function(info) { console.log(info); info.social = "facebook"; info.accessToken = response.authResponse.accessToken;
var user = { email: info.email, name: info.name, } let now = new Date(); lgSetCookie('my_dv',JSON.stringify(user), new Date(now.getTime() + (30 * 12 * 60000))); authLogin(user.name, true); }); } else { $("#cmt_alert").html( "Bạn đã từ chối cấp quyền truy cập tài khoản Facebook"); } }, { scope: 'public_profile,email' }); }, loginGoogle: function(callback) { var me = this;
function callSocialApi(data, cb) { data.social = "google"; var user = { email: data.email, name: data.name, } let now = new Date(); lgSetCookie('my_dv',JSON.stringify(user), new Date(now.getTime() + (30 * 12 * 60000))); authLogin(user.name, true); }
// API call for Google login if (gapi.auth2.getAuthInstance().isSignedIn.get()) { //console.debug('[VCC] GAPI Process'); var profile = gapi.auth2.getAuthInstance().currentUser.get().getBasicProfile();
//var id_token = gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse().id_token; var access_token = gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse() .access_token;
var params = { id: profile.getId(), name: profile.getName(), email: profile.getEmail(), accessToken: access_token } //console.log('params: ', params); callSocialApi(params, callback); } else { //console.debug('[VCC] GAPI Login'); gapi.auth2.getAuthInstance().signIn().then( function(success) { var profile = gapi.auth2.getAuthInstance().currentUser.get() .getBasicProfile(); //var id_token = gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse().id_token; var access_token = gapi.auth2.getAuthInstance().currentUser.get() .getAuthResponse().access_token;
var params = { id: profile.getId(), name: profile.getName(), email: profile.getEmail(), accessToken: access_token } //console.log('params: ', params); callSocialApi(params, callback); }, function(error) { $("#cmt_alert").html( "Bạn đã từ chối cấp quyền cho Báo Dân Việt truy cập tài khoản Google" ); } ); } } } otherLogin.init(); });
Leave a Reply