TranThanh.Name.Vn - Nơi lưu trữ những điều thú vị

Thứ Hai, 23 tháng 11, 2020

Mybb - Plugin Thanks/Like bản mới nhất Cho MYBB 1.8.2x
0

Mybb - Plugin Thanks/Like bản mới nhất Cho MYBB 1.8.2x

 Tên Phát hành:

  • Hệ thống Cảm ơn/Thích
Phiên bản phát hành:
  • v3.3.8 - 2.11.2020
Mô tả phát hành:
  • Cảm ơn bạn / Like Hệ thống cho phép người dùng "Cảm ơn" hoặc "Thích" bài viết do đó hiển thị sự đánh giá cao của họ cho một bài mà không nhất thiết phải bump các chủ đề. Plugin này là hoàn toàn tùy biến, nơi gần như mọi khía cạnh của plugin có thể được kiểm soát từ trang cài đặt. Hãy xem ảnh chụp màn hình hoặc bản demo trực tiếp để biết thêm thông tin về các tùy chọn và khả năng sử dụng có sẵn.
  • Plugin này được tạo bởi -G33K- cho MyBB v1.4/1.6. Thật không may nó đã không được duy trì trong hơn 3 năm cho đến khi ATofighi phát hành phiên bản sửa đổi đầu tiên tương thích với MyBB v1.8. Sau vài tháng, chúng tôi (Eldenroot, SvePu, Laird, chack1172 và @Dark Neo) đã quyết định tiếp tục phát triển plugin tuyệt vời này cho MyBB và làm cho nó thậm chí còn tốt hơn. Chúng tôi tập trung vào việc sửa lỗi và thêm các tính năng mới bị thiếu trong phiên bản "di sản" ban đầu.


Khả năng tương thích MyBB:
  • v1.8.*
Tính năng:
  • Hỗ trợ Full Tapatalk!
  • Hỗ trợ MyAlerts v2.0!
  • Hỗ trợ hệ thống khuyến mãi nhóm MyBB!
  • Hỗ trợ ngôn ngữ đầy đủ.
  • Bật/tắt plugin với một tùy chọn duy nhất.
  • Chuyển đổi giữa "Cảm ơn" hoặc "Thích" bằng cách thay đổi một tùy chọn đơn giản.
  • Cảm ơn Yous / Likes là hoàn toàn ajax tương thích.
  • Tùy chỉnh Cảm ơn Bạn / Thích cho bài viết đầu tiên của chủ đề chỉ hoặc cho tất cả các bài viết.
  • Tùy chọn có thể chọn để cho phép / không cho phép người dùng xóa Thank Yous / Likes của họ.
  • Loại trừ các diễn đàn mà bạn không muốn sử dụng hệ thống Thank Yous/Likes.
  • Plugin theo dõi số thank yous/likes cho người dùng, bài viết và chủ đề cũng như tổng số lớn.
  • Hiển thị Cảm ơn Bạn/Lượt thích trong postbit cũng như hồ sơ của người dùng.
  • Đếm cả cảm ơn / thích được đưa ra cũng như cảm ơn / thích nhận được và số lượng bài viết nhận được trong.
  • Tìm tất cả các chủ đề hoặc bài viết Cảm ơn / Thích bởi bất kỳ người dùng cụ thể cũng như các chủ đề hoặc bài viết mà người dùng nhận được cảm ơn / Thích.
  • Cảm ơn Yous / Thích danh sách có thể được thực hiện để sụp đổ tiết kiệm không gian cho hội đồng nơi chủ đề / bài viết nhận được rất nhiều Cảm ơn Yous / Likes.
  • Sắp xếp Thank Yous/Likes theo tên người dùng hoặc theo thứ tự Date/Time Thanked/Liked.
  • Hiện/Ẩn Ngày/Thời gian cảm ơn/Thích và cũng đặt định dạng Ngày/Giờ hoặc hiển thị ngày/giờ trên di chuột.
  • Hoạt động cho tất cả các chế độ xem, cổ điển, hiện đại, tuyến tính, ren.
  • Cảm ơn Yous / Likes có thể được kể lại và xây dựng lại nếu họ nhận được ra khỏi đồng bộ hóa vì lý do nào.
  • Định dạng danh sách người dùng đã cảm ơn / thích theo nhóm hiển thị của họ hoặc chỉ giữ cho nó đơn giản.
  • IPv6 đã sẵn sàng và được hỗ trợ đầy đủ.
  • Tệp css tùy chỉnh để tùy chỉnh dễ dàng hơn.
  • Tùy chọn để thiết lập thích / cảm ơn bạn nút chỉ cho các diễn đàn cụ thể.
  • Ẩn/hiển thị nút/danh sách cảm ơn/thích cho các nhóm người dùng cụ thể.
  • Cho phép / không cho phép thêm thích / cảm ơn trong chủ đề đóng cửa.
  • Thông báo bật lên ở góc trên cùng bên phải.
  • Đếm lại và xây dựng lại bộ nhớ cache trong ACP.
  • Tùy chỉnh cài đặt đầu ra thời gian và ngày cho Cảm ơn bạn / Lượt thích nhận được trong bài viết.
  • Khả năng cảm ơn / thích bài viết của riêng với các thiết lập tùy chỉnh.
  • Các mẫu được lưu trong bộ nhớ cache và JS được minified để có tốc độ trang web tốt hơn.
  • Làm nổi bật các bài đăng phổ biến với số tiền được xác định trước của cảm ơn / thích.
  • Hỗ trợ cho hệ thống danh tiếng MyBB.
  • Khả năng hiển thị hầu hết các cảm ơn / thích đăng bài trong một hồ sơ thành viên cho mỗi người dùng.
  • Bảo vệ chống dòng chảy.
  • Hiển thị tổng số cảm ơn / lượt thích từ bài viết đầu tiên của chuỗi chủ đề trong mẫu forumdisplay_thread bạn.
  • Diễn đàn bị loại trừ khỏi số lượng
  • Hiển thị hình đại diện của người dùng thay vì liên kết trong danh sách thx/like
  • Màu sắc của truy cập thx / like dựa trên số điểm nhận được
  • Thống kê chi tiết cho mọi người dùng trong trang hồ sơ thành viên
  • ... và nhiều hơn nữa!

Ghi chú:
  • Quyền cho nếu người dùng có thể Cảm ơn / Thích một bài viết là phụ thuộc vào việc họ có thể đăng trong chủ đề đó hay không. Khách, tuy nhiên không bao giờ có thể cảm ơn / như một bài bất kể khách đăng bài tùy chọn.
  • Rõ ràng, mở bài sẽ không thể Cảm ơn / Thích bài đăng.
  • Xóa một chủ đề / bài viết sẽ loại bỏ tất cả các liên quan của nó Cảm ơn Bạn / Thích và giảm số lượng cho những người dùng đã Cảm ơn / Thích rằng chủ đề / bài viết.
  • Việc hợp nhất các bài đăng sẽ hợp nhất Thank Yous/Likes cũng loại bỏ các bản sao và cập nhật số lượng.
  • Xóa một người dùng sẽ loại bỏ tất cả các cảm ơn của người dùng / Thích từ tất cả các bài viết.
  • Nếu bạn di chuyển một chủ đề đến một diễn đàn đã được thiết lập để loại trừ Thank Yous / likes nó sẽ không hiển thị bất kỳ Thank Yous / likes và sẽ không cho phép thêm / loại bỏ bất kỳ Thank Yous / Likes trong khi trong diễn đàn đó. Tuy nhiên, Thank Yous/Likes sẽ được bảo tồn để chúng sẽ hiển thị lại nếu chuỗi được di chuyển ra khỏi diễn đàn bị loại trừ.
  • Nếu vì bất kỳ lý do gì số liệu thống kê của bạn có vẻ tắt, bạn có thể kể lại Thank Yous / Likes. Làm như vậy sẽ loại bỏ bất kỳ mồ côi Thank Yous / Likes và kể lại chúng cho mỗi người dùng và đăng bài. Mồ côi Cảm ơn Yous / Thích là những người có thể đã bị bỏ lại phía sau trên một bài đăng hoặc người dùng bị xóa bằng cách không sử dụng giao diện mod (như trực tiếp từ databse ví dụ).
  • Để tùy chỉnh khối postbit, bạn có thể sử dụng các biến sau:
  1. $post['tyl_unumtyls']: Số cảm ơn được đưa ra
  2. $post['tyl_unumrtyls']: Đây là chuỗi được định dạng đầy đủ (xx trong bài viết yy)
  3. $post['tyl_unumrcvtyls']: Số cảm ơn nhận được
  4. $post['tyl_unumptyls']: Số lượng bài viết trong đó cảm ơn đã nhận được

Link: Extend MyBB - Thank You/Like System+MyAlerts & Tapatalk support
Định nghĩa của XML là gì?
0

Định nghĩa của XML là gì?

 

Định nghĩa của XML là gì?

  • XML là một ngôn ngữ đánh dấu được tạo ra bởi World Wide Web Consortium (W3C) để xác định cú pháp mã hóa các tài liệu mà con người và máy móc có thể đọc được. Nó thực hiện điều này thông qua việc sử dụng các thẻ xác định cấu trúc tài liệu và cách tài liệu được lưu trữ và vận chuyển.
  • Có thể dễ dàng so sánh nó với một ngôn ngữ đánh dấu khác mà bạn có thể quen thuộc – Ngôn ngữ đánh dấu siêu văn bản (HTML) được sử dụng để mã hóa các trang web. HTML sử dụng một tập hợp các ký hiệu đánh dấu được xác định trước (mã ngắn) mô tả định dạng của nội dung trên một trang web. Ví dụ: mã HTML đơn giản sau sử dụng các thẻ để làm cho một số từ in đậm và một số từ nghiêng:
  • Tuy nhiên, sự khác biệt là XML có thể mở rộng được, nó không có ngôn ngữ đánh dấu xác định trước như HTML. Thay vào đó, XML cho phép người dùng tạo các biểu tượng đánh dấu của riêng họ để mô tả nội dung, tạo một biểu tượng không giới hạn và định nghĩa chính nó. Trong đó, HTML là ngôn ngữ tập trung vào việc trình bày nội dung, còn XML là ngôn ngữ mô tả dữ liệu dùng để lưu trữ dữ liệu.

XML thường được sử dụng làm cơ sở cho các định dạng tài liệu khác. Dưới đây là một số định dạng bạn có thể biết

  • RSS và ATOM đều mô tả cách một ứng dụng đọc xử lý các nguồn cấp dữ liệu web.
  • Microsoft .NET sử dụng XML cho các File cấu hình của nó.
  • Microsoft Office 2007 và các phiên bản mới hơn sử dụng XML làm cơ sở cho cấu trúc tài liệu. “X” trong định dạng tài liệu Word .DOCX bắt nguồn từ đây. Ngoài ra, nó cũng được sử dụng trong Excel (File XLSX) và PowerPoint (File PPTX).

Đặc điểm của XML

  • XML được sử dụng cho dữ liệu có cấu trúc.
  • Về mặt trực quan, XML khá giống với HTML.
  • Văn bản, nhưng XML không có nghĩa là để đọc.
  • XML thường rất dài.
  • XML được coi là cầu nối đưa HTML đến XHTML và là nền tảng cho mã hóa RDF và Web.
  • XML là một mô-đun.
  • XML miễn phí bản quyền, độc lập với nền tảng và được hỗ trợ rất tốt.

Ưu điểm của XML

  • Ưu điểm lớn nhất của XML là tính độc lập của nó. Điều này cũng rất dễ hiểu, bởi vì XML được sử dụng để mô tả dữ liệu ở dạng văn bản, vì vậy hầu hết các phần mềm hoặc chương trình bình thường đều có thể đọc được chúng.
  • XML có thể đọc và phân tích các nguồn dữ liệu khá dễ dàng, vì vậy nó được sử dụng với mục đích chính là trao đổi dữ liệu giữa các chương trình và hệ thống khác nhau. XML được sử dụng cho các cuộc gọi thủ tục từ xa để phục vụ các dịch vụ trang web.

Nhược điểm của XML

  • Tỷ lệ lỗi khi sử dụng XML để truyền dữ liệu là khoảng 5-7%. Đây là con số không quá cao nhưng thực tế mọi người vẫn cần cân nhắc trước khi sử dụng để trao đổi thông tin.

Phần mềm nào để đọc File XML?

Không giống như PDF, trình đọc XML duy nhất hiện được đánh giá cao là iTaxViewer. Bạn có thể tải phần mềm iTaxViewer miễn phí cho máy tính của mình.

Ngoài ra, còn có một số công cụ khác được sử dụng với XML như:

  • Chỉnh sửa và chỉnh sửa các File XML: XML Notepad, Altova XMLSpy Enterprise Edition …
  • Chuyển đổi các định dạng XML: AZ XML to PDF Converter, Total CSV Converter, Word Cleaner, PDF to XML …

Ứng dụng của ngôn ngữ mở rộng XML

  • XML thường được sử dụng chủ yếu trong các định dạng tài liệu, bao gồm RSS, Atom, SOAP, SGV, … một số Microsoft office, open office, libre office, apple’s iwork đều sử dụng ngôn ngữ xml. định dạng mặc định.
  • Một số kiến ​​trúc hướng dịch vụ SOA sử dụng xml trong giao tiếp và trao đổi thông điệp với nhau. Định dạng trao đổi thông báo chuẩn hóa giống như một lược đồ XML.
  • XML thường cung cấp các ngôn ngữ cơ bản cho các giao thức giao tiếp và các ứng dụng cho khuôn khổ microsoft.net. Sử dụng xml trong vai trò cấu hình.
  • XML đã rất phổ biến trong việc trao đổi dữ liệu quan hệ trên internet. Sự thay thế bởi RFC 7303 đã đưa ra một loạt các quy tắc để xây dựng phương tiện truyền thông internet được sử dụng khi gửi xml. Nhiều chuẩn xây dựng công nghiệp hiện nay như hl7 ota fpml, … đều dựa trên xml với nhiều tính năng phong phú của lược đồ xml.
  • XML là một công cụ rất hiệu quả để truyền và chia sẻ dữ liệu. Hiệu quả của mn được chứng minh khi áp dụng cho nhiều hệ thống khác nhau. Hầu hết các nền tảng hiện có hỗ trợ cho người dùng ngôn ngữ xml
0

Lệnh kiểm tra số người dùng Online trên Linux

 Cấc bạn muốn biết số người đang online trên Sever Linux?



Đây là câu lện kiểm tra đơn giản nhất. 

netstat -ntu|awk '{print $5}'|cut -d: -f1 -s|sort|uniq -c|sort -nk1 -r

Chỉ cần copy câu lệnh trên là được, quá đơn giản phải không nào. 


Thứ Sáu, 2 tháng 10, 2020

Sửa lỗi ErrorException: Template error: Illegal string offset 'width' with SEO 2 Xenforo 2
0

Sửa lỗi ErrorException: Template error: Illegal string offset 'width' with SEO 2 Xenforo 2

 Hi all, today tuoitreit.vn will instruction how to fix ErrorException: Template error: Illegal string offset 'width' internal_data/code_cache/templates/l1/s1/public/lightbox_macros.php:88

Code:
#0 internal_data/code_cache/templates/l1/s1/public/lightbox_macros.php(88): XF\Template\Templater->handleTemplateError(2, 'Illegal string ...', '/home/admin/...', 88, Array)
#1 src/XF/Template/Templater.php(798): XF\Template\Templater->{closure}(Object(xenMade\SEo\XF\Template\Templater), Array, NULL)
#2 internal_data/code_cache/templates/l1/s1/public/bb_code_tag_attach.php(62): XF\Template\Templater->callMacro('lightbox_macros', 'single_image', Array, Array)
#3 src/XF/Template/Templater.php(1598): XF\Template\Templater->{closure}(Object(xenMade\SEo\XF\Template\Templater), Array, NULL)

Please go to public_html/src/addons/xenMade/SEO/_data/template_modifications.xml and replace all with

Code:
<?xml version="1.0" encoding="utf-8"?>
<template_modifications>
  <modification type="public" template="PAGE_CONTAINER" modification_key="seo_PAGE_CONTAINER_1" description="Change Title" execution_order="999999" enabled="1" action="preg_replace">
    <find><![CDATA[#(<title>.+?<\/title>)#is]]></find>
    <replace><![CDATA[<xf:if is="$template == 'thread_view'">
    <title><xf:title formatter="%s" fallback="" /></title>
<xf:else />
    $0
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="attachment_macros" modification_key="seo_attachment_macros_1" description="Desc Tooltip" execution_order="10" enabled="1" action="str_replace">
    <find><![CDATA[<div class="attachment-icon"]]></find>
    <replace><![CDATA[$0 data-xf-init="tooltip" title="{$attachment.Data.seo_description|for_attr}"]]></replace>
  </modification>
  <modification type="public" template="bb_code_tag_attach" modification_key="seo_bb_code_tag_attach_1" description="Add Title/Alt" execution_order="1" enabled="1" action="preg_replace">
    <find><![CDATA[/\salt\=\"\{\$attachment\.filename\}\"/is]]></find>
    <replace><![CDATA[{{ seo_image_data($attachment, $src, $attachment.filename)|raw }}]]></replace>
  </modification>
  <modification type="public" template="bb_code_tag_attach" modification_key="seo_bb_code_tag_attach_2" description="Add Arg Attachment" execution_order="1" enabled="1" action="str_replace">
    <find><![CDATA[name="single_image"]]></find>
    <replace><![CDATA[$0 arg-attachment="{$attachment}"]]></replace>
  </modification>
  <modification type="public" template="bb_code_tag_attach" modification_key="seo_bb_code_tag_attach_3" description="Thumb height/Width" execution_order="10" enabled="1" action="str_replace">
    <find><![CDATA[src="{$attachment.thumbnail_url}" class="bbImage"]]></find>
    <replace><![CDATA[$0 height="{$attachment.Data.thumbnail_height}" width="{$attachment.Data.thumbnail_width}"]]></replace>
  </modification>
  <modification type="public" template="bb_code_tag_attach" modification_key="seo_bb_code_tag_attach_4" description="Image height/Width" execution_order="10" enabled="1" action="str_replace">
    <find><![CDATA[src="{{ link('full:attachments', $attachment, {'hash': $attachment.temp_hash}) }}" class="bbImage"]]></find>
    <replace><![CDATA[$0 height="{$attachment.Data.height}" width="{$attachment.Data.width}"]]></replace>
  </modification>
  <modification type="public" template="bb_code_tag_img" modification_key="seo_bb_code_tag_img_1" description="Add Arg Attachment" execution_order="10" enabled="1" action="str_replace">
    <find><![CDATA[name="single_image"]]></find>
    <replace><![CDATA[$0 arg-attachment="{{ (!empty($attachment) ? $attachment : $post) }}"]]></replace>
  </modification>
  <modification type="public" template="bb_code_tag_quote" modification_key="seo_bb_code_tag_quote_1" description="Remove QuoteLink #2" execution_order="10" enabled="1" action="str_replace">
    <find><![CDATA[<xf:if is="$source">]]></find>
    <replace><![CDATA[<xf:if is="($source && $xf.visitor.user_id) || 
           (!$xf.visitor.user_id &&
           ($xf.options.quoteLinks == 'default' || $xf.options.quoteLinks == 'noindex'))">]]></replace>
  </modification>
  <modification type="public" template="bb_code_tag_quote" modification_key="seo_bb_code_tag_quote_2" description="Remove QuoteLink #1" execution_order="10" enabled="1" action="str_replace">
    <find><![CDATA[class="bbCodeBlock-sourceJump"]]></find>
    <replace><![CDATA[$0

{{ ((!{$xf.visitor.user_id} && {$xf.options.quoteLinks} == 'noindex') ? ' rel="noindex" ' : '') }}]]></replace>
  </modification>
  <modification type="admin" template="category_edit" modification_key="seo_category_edit_1" description="Add Macro" execution_order="1" enabled="1" action="str_replace">
    <find><![CDATA[<xf:macro template="node_edit_macros" name="style" arg-node="{$node}" arg-styleTree="{$styleTree}" />]]></find>
    <replace><![CDATA[$0

<hr class="formRowSep" />
<xf:macro template="public:seo_macro" name="meta" arg-data="{$category}"
          arg-meta_title_explain="{{ phrase('seo_forum_meta_description_explain') }}"
          arg-meta_description_explain="{{ phrase('seo_forum_meta_description_explain') }}"
          />


<xf:if is="{$xf.options.categoryOwnPage}">
    <xf:macro template="seo_node_edit_macros" 
              name="seo_ogimage" 
              arg-node="{$node}" 
              arg-category="{$category}" />
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="category_view" modification_key="seo_category_view_1" description="Add Macro" execution_order="1" enabled="1" action="str_replace">
    <find><![CDATA[<xf:macro template="metadata_macros" name="canonical_url" arg-canonicalUrl="{{ link('canonical:categories', $category) }}" />]]></find>
    <replace><![CDATA[$0

<xf:if is="{$xf.options.categoryOwnPage}">
    <xf:set var="$ogImagePath">{{ $category.Node.getSeoOgImageUrl($category.seo) }}</xf:set>
    <xf:if is="{$ogImagePath} != ''">
        <xf:macro template="metadata_macros" name="image_url" arg-imageUrl="{$ogImagePath}" />
    </xf:if>
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="category_view" modification_key="seo_category_view_2" description="Meta" execution_order="1" enabled="1" action="preg_replace">
    <find><![CDATA[#(<xf:title.+?<\/xf:title>).+?(<xf:description>.+?<\/xf:description>)#is]]></find>
    <replace><![CDATA[<xf:if is="$category.seo.meta_title">
    <xf:title>{$category.seo.meta_title}</xf:title>
    <xf:else />
    $1
</xf:if>
<xf:if is="$category.seo.meta_description">
    <xf:description>{$category.seo.meta_description|raw}</xf:description>
    <xf:else />
    $2
</xf:if>]]></replace>
  </modification>
  <modification type="admin" template="forum_edit" modification_key="seo_forum_edit_1" description="Add Macro" execution_order="99999" enabled="1" action="preg_replace">
    <find><![CDATA[#<\/div>\s*?([\n\r?]?)\<xf\:submitrow icon\=\"save\" sticky\=\"true\" \/\>#is]]></find>
    <replace><![CDATA[<h3 class="block-formSectionHeader">
    <span class="collapseTrigger collapseTrigger--block" data-xf-click="toggle" data-target="< :up:next">
        <span class="block-formSectionHeader-aligner">{{ phrase('seo_set_seo_for_threads_in_this_node') }}</span>
    </span>
</h3>
<div class="block-body block-body--collapsible">
    <xf:macro template="seo_node_edit_macros" 
              name="seo_ogimage" arg-forum="{$forum}" arg-node="{$node}" />

    <xf:macro template="seo_node_edit_macros" 
              name="seo" arg-forum="{$forum}" />
</div>

<xf:macro template="seo_node_edit_macros" name="forum_seo" arg-forum="{$forum}" />

$0]]></replace>
  </modification>
  <modification type="public" template="forum_list" modification_key="seo_forum_list_1" description="Meta Title" execution_order="10" enabled="1" action="str_replace">
    <find><![CDATA[<xf:wrap]]></find>
    <replace><![CDATA[<xf:if is="$xf.options.seo_forumMetaTitle && {$xf.options.forumsDefaultPage} == 'forums'">
    <xf:title>{$xf.options.seo_forumMetaTitle}</xf:title>
</xf:if>
$0]]></replace>
  </modification>
  <modification type="public" template="forum_post_thread" modification_key="seo_forum_post_thread_1" description="Add SEO Fields" execution_order="10" enabled="1" action="str_replace">
    <find><![CDATA[<xf:submitrow]]></find>
    <replace><![CDATA[<xf:include template="seo_forum_post_thread" />

<xf:include template="seo_own_thread_edit" />
$0]]></replace>
  </modification>
  <modification type="public" template="forum_view" modification_key="seo_forum_view_1" description="Add Macro" execution_order="1" enabled="1" action="str_replace">
    <find><![CDATA[<xf:description>{$forum.Node.description|raw}</xf:description>
]]></find>
    <replace><![CDATA[$0

<xf:set var="$ogImagePath">{{ $forum.Node.getSeoOgImageUrl($forum.seo) }}</xf:set>
<xf:if is="{$ogImagePath} != ''">
    <xf:macro template="metadata_macros" name="image_url" arg-imageUrl="{$ogImagePath}" />
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="forum_view" modification_key="seo_forum_view_2" description="Meta" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[#(<xf:title.+?<\/xf:title>)#is]]></find>
    <replace><![CDATA[<xf:if is="$forum.seo.meta_title">
    <xf:title page="{$page}">{$forum.seo.meta_title}</xf:title>
    <xf:else />
    $1
</xf:if>

<xf:if is="{$forum.seo.meta_description}">
    <xf:head option="meta_description">
        <meta name="description" content="{{ snippet($forum.seo.meta_description|strip_tags, 160)|for_attr }}" />
        <meta property="og:description" content="{{ snippet($forum.seo.meta_description|strip_tags, 300)|for_attr }}" />
        <meta property="twitter:description" content="{{ snippet($forum.seo.meta_description|strip_tags, 200)|for_attr }}" />
    </xf:head>
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="forum_view" modification_key="seo_forum_view_3" description="Robots" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[$0
<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />]]></replace>
  </modification>
  <modification type="public" template="google_analytics" modification_key="seo_google_analytics_1" description="Exclude Groups" execution_order="10" enabled="1" action="str_replace">
    <find><![CDATA[<xf:if is="$xf.options.googleAnalyticsWebPropertyId">]]></find>
    <replace><![CDATA[<xf:if is="$xf.options.googleAnalyticsWebPropertyId && !$xf.visitor.isMemberOf($xf.options.googleAnalyticsWebUserGroups)">]]></replace>
  </modification>
  <modification type="public" template="help_page" modification_key="seo_help_page_1" description="Robots" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />
]]></replace>
  </modification>
  <modification type="public" template="helper_attach_upload" modification_key="seo_helper_attach_upload_1" description="InputFields" execution_order="1" enabled="1" action="preg_replace">
    <find><![CDATA[/(<xf:if is="\(\$attachment\.has_thumbnail OR \$attachment\.is_video\) AND \!\$noJsFallback">)|(<xf:if is="\$attachment\.has_thumbnail AND \!\$noJsFallback">)/is]]></find>
    <replace><![CDATA[<xf:if is="$xf.visitor.canSetAltTitle() || $xf.visitor.canSetAttachmentDesc()">
    <xf:if is="{$attachment.content_type} == 'post'">
        <div class="contentRow-spaced">
            <ul style="list-style-type: none; padding-left: 0;">

                <xf:if is="$xf.visitor.canSetAltTitle() && $attachment.thumbnail_url">
                    <li>
                        <p>
                            <span>{{ phrase('seo_image_alt:') }}</span>
                            <span class="buttonGroup buttonGroup--aligned">
                                <xf:textbox name="seo_image_alt[{$attachment.attachment_id}]" value="{{ ($attachment.Data.seo_alt ? $attachment.Data.seo_alt : '') }}" />
                            </span>
                        </p>
                    </li>
                    <li>
                        <p>
                            <span>{{ phrase('seo_image_title:') }}</span>
                            <span class="buttonGroup buttonGroup--aligned">
                                <xf:textbox name="seo_image_title[{$attachment.attachment_id}]" value="{{ ($attachment.Data.seo_title ? $attachment.Data.seo_title : '') }}" />
                            </span>
                        </p>
                    </li>
                </xf:if>

                <xf:if is="$xf.visitor.canSetAttachmentDesc() && !$attachment.thumbnail_url">
                    <li>
                        <p>
                            <span>{{ phrase('seo_attachment_description:') }}</span>
                            <span class="buttonGroup buttonGroup--aligned">
                                <xf:textbox name="seo_description[{$attachment.attachment_id}]" value="{{ ($attachment.Data.seo_description ? $attachment.Data.seo_description : '') }}" />
                            </span>
                        </p>
                    </li>
                </xf:if>

                <li>
                    <p>
                        <span>{{ phrase('seo_new_filename:') }}</span>
                        <span class="buttonGroup buttonGroup--aligned">
                            <xf:textbox name="seo_new_filename[{$attachment.attachment_id}]" value="{{ ($attachment.Data.filename ? $attachment.Data.filename : '') }}" />
                        </span>
                    </p>
                </li>
            </ul>
        </div>
    </xf:if>
</xf:if>
$0]]></replace>
  </modification>
  <modification type="public" template="helper_attach_upload" modification_key="seo_helper_attach_upload_2" description="InputFields" execution_order="2" enabled="1" action="str_replace">
    <find><![CDATA[<xf:mustache name="^link">]]></find>
    <replace><![CDATA[<xf:if is="$xf.visitor.canSetAltTitle() || $xf.visitor.canSetAttachmentDesc()">
    <xf:mustache name="#content_post">
        <div class="contentRow-spaced">
            <ul style="list-style-type: none; padding-left: 0;">
                <xf:if is="$xf.visitor.canSetAttachmentDesc()">
                    <xf:mustache name="#thumbnail_url">
                        <li>
                            <p>
                                <span>{{ phrase('seo_image_alt:') }}</span>
                                <span class="buttonGroup buttonGroup--aligned">
                                    <xf:textbox name="seo_image_alt[{{ mustache('attachment_id') }}]" value="" />
                                </span>
                            </p>
                        </li>

                        <li>
                            <p>
                                <span>{{ phrase('seo_image_title:') }}</span>
                                <span class="buttonGroup buttonGroup--aligned">
                                    <xf:textbox name="seo_image_title[{{ mustache('attachment_id') }}]" value="" />
                                </span>
                            </p>
                        </li>
                    </xf:mustache>
                </xf:if>

                <xf:mustache name="^thumbnail_url">
                    <xf:if is="$xf.visitor.canSetAttachmentDesc()">
                        <li>
                            <p>
                                <span>{{ phrase('seo_attachment_description:') }}</span>
                                <span class="buttonGroup buttonGroup--aligned">
                                    <xf:textbox name="seo_description[{{ mustache('attachment_id') }}]" value="" />
                                </span>
                            </p>
                        </li>
                    </xf:if>
                </xf:mustache>

                <xf:mustache name="#filename">
                    <li>
                        <p>
                            <span>{{ phrase('seo_new_filename:') }}</span>
                            <span class="buttonGroup buttonGroup--aligned">
                                <xf:textbox name="seo_new_filename[{{ mustache('attachment_id') }}]" value="{{ mustache('filename') }}" />
                            </span>
                        </p>
                    </li>
                </xf:mustache>
            </ul>
        </div>
    </xf:mustache>
</xf:if>
$0]]></replace>
  </modification>
  <modification type="public" template="lightbox_macros" modification_key="seo_lightbox_macros_1" description="Add Title/Alt" execution_order="1" enabled="1" action="preg_replace">
    <find><![CDATA[/(alt="{\$alt\|for_attr\}")|(alt="{\$alt}")/is]]></find>
    <replace><![CDATA[{{ seo_image_data($attachment, $src, $alt)|raw }}]]></replace>
  </modification>
  <modification type="public" template="lightbox_macros" modification_key="seo_lightbox_macros_2" description="Add Arg Attachment" execution_order="1" enabled="1" action="str_replace">
    <find><![CDATA[name="single_image"]]></find>
    <replace><![CDATA[$0 arg-attachment=""]]></replace>
  </modification>
<modification type="public" template="lightbox_macros" modification_key="seo_lightbox_macros_3" description="height/Width" execution_order="10" enabled="1" action="str_replace">
    <find><![CDATA[class="bbImage"]]></find>
    <replace><![CDATA[$0 {{ ($attachment && $attachment.Data) ? 'height="' . $attachment.Data.height . '" width="' . $attachment.Data.width . '"']]></replace>
  </modification>
  <modification type="public" template="login" modification_key="seo_login_1" description="Robots" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />
<xf:if is="{$xf.options.seo_loginMetaDesc} is not empty">
    <xf:macro template="metadata_macros" name="description" arg-description="{$xf.options.seo_loginMetaDesc}" arg-output="{{ true }}" />
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="login" modification_key="seo_login_2" description="Meta Desc" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:if is="{$xf.options.seo_loginregister_desc.login}">
    <xf:description>{$xf.options.seo_loginregister_desc.login}</xf:description>
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="login_password_confirm" modification_key="seo_login_password_confirm_1" description="Robots" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />
<xf:if is="{$xf.options.seo_loginMetaDesc} is not empty">
    <xf:macro template="metadata_macros" name="description" arg-description="{$xf.options.seo_loginMetaDesc}" arg-output="{{ true }}" />
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="login_password_confirm" modification_key="seo_login_password_confirm_2" description="Meta Desc" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:if is="{$xf.options.seo_loginregister_desc.login}">
    <xf:description>{$xf.options.seo_loginregister_desc.login}</xf:description>
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="member_about" modification_key="seo_member_about_1" description="Robots" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />
]]></replace>
  </modification>
  <modification type="public" template="member_list" modification_key="seo_member_list_1" description="Robots" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />
]]></replace>
  </modification>
  <modification type="public" template="member_notable" modification_key="seo_member_notable_1" description="Robots" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />
]]></replace>
  </modification>
  <modification type="public" template="member_view" modification_key="seo_member_view_1" description="Robots" execution_order="10000" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />
]]></replace>
  </modification>
  <modification type="public" template="metadata_macros" modification_key="seo_metadata_macros_1" description="MetaDesc length" execution_order="10" enabled="1" action="str_replace">
    <find><![CDATA[<meta name="description" content="{{ snippet($description|strip_tags, 160)|for_attr }}" />]]></find>
    <replace><![CDATA[<meta name="description" content="{{ snippet($description|strip_tags, $xf.options.seo_threadDescriptionLength)|for_attr }}" />]]></replace>
  </modification>
  <modification type="admin" template="node_edit_macros" modification_key="seo_node_edit_macros_1" description="Add Macro" execution_order="1" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[$0
<xf:include template="seo_node_edit_macros" />]]></replace>
  </modification>
  <modification type="public" template="post_edit" modification_key="seo_post_edit_1" description="Owner SEO" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[#(<xf:submitrow.+?\/>)#is]]></find>
    <replace><![CDATA[<xf:if is="$post.isFirstPost()">
<xf:include template="public:seo_own_thread_edit" />
</xf:if>
$0]]></replace>
  </modification>
  <modification type="public" template="register_complete" modification_key="seo_register_complete_1" description="Robots" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />
<xf:if is="{$xf.options.seo_registerMetaDesc} is not empty">
    <xf:macro template="metadata_macros" name="description" arg-description="{$xf.options.seo_registerMetaDesc}" arg-output="{{ true }}" />
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="register_complete" modification_key="seo_register_complete_2" description="Meta Desc" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:if is="{$xf.options.seo_loginregister_desc.register}">
    <xf:description>{$xf.options.seo_loginregister_desc.register}</xf:description>
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="register_confirm" modification_key="seo_register_confirm_1" description="Robots" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />
<xf:if is="{$xf.options.seo_registerMetaDesc} is not empty">
    <xf:macro template="metadata_macros" name="description" arg-description="{$xf.options.seo_registerMetaDesc}" arg-output="{{ true }}" />
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="register_confirm" modification_key="seo_register_confirm_2" description="Meta Desc" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:if is="{$xf.options.seo_loginregister_desc.register}">
    <xf:description>{$xf.options.seo_loginregister_desc.register}</xf:description>
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="register_connected_account" modification_key="seo_register_connected_account_1" description="Robots" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />
<xf:if is="{$xf.options.seo_registerMetaDesc} is not empty">
    <xf:macro template="metadata_macros" name="description" arg-description="{$xf.options.seo_registerMetaDesc}" arg-output="{{ true }}" />
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="register_form" modification_key="seo_register_form_1" description="Robots" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />

<xf:if is="{$xf.options.seo_registerMetaDesc} is not empty">
    <xf:macro template="metadata_macros" name="description" arg-description="{$xf.options.seo_registerMetaDesc}" arg-output="{{ true }}" />
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="register_form" modification_key="seo_register_form_2" description="Meta Desc" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:if is="{$xf.options.seo_loginregister_desc.register}">
    <xf:description>{$xf.options.seo_loginregister_desc.register}</xf:description>
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="thread_edit" modification_key="seo_thread_edit_1" description="Add Macro" execution_order="10" enabled="1" action="str_replace">
    <find><![CDATA[<xf:macro template="helper_thread_options" name="thread_status" arg-thread="{$thread}" />]]></find>
    <replace><![CDATA[$0
<xf:include template="seo_thread_edit" />]]></replace>
  </modification>
  <modification type="admin" template="thread_prefix_edit" modification_key="seo_thread_prefix_edit_1" description="SEO for Prefix" execution_order="1" enabled="1" action="str_replace">
    <find><![CDATA[<xf:set var="$extraOptions">]]></find>
    <replace><![CDATA[$0

<xf:macro template="public:seo_macro" name="robot" 
          arg-data="{$prefix}"
          arg-robot_index_explain="{{ phrase('seo_prefix_robot_index_explain') }}"
          arg-robot_follow_explain="{{ phrase('seo_prefix_robot_follow_explain') }}"
          />]]></replace>
  </modification>
  <modification type="public" template="thread_view" modification_key="seo_thread_view_1" description="Change Meta" execution_order="1" enabled="1" action="str_replace">
    <find><![CDATA[<xf:macro template="metadata_macros" name="metadata"]]></find>
    <replace><![CDATA[<xf:if is="{$thread.seo.og_image_link}">
    <xf:macro template="metadata_macros" name="image_url" arg-imageUrl="{$thread.seo.og_image_link}" arg-twitterCard="{$thread.seo.twitter_card}" />
</xf:if>

<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />

$0
arg-twitterCard="{$thread.seo.twitter_card}"]]></replace>
  </modification>
  <modification type="public" template="thread_view" modification_key="seo_thread_view_2" description="Button" execution_order="1" enabled="1" action="str_replace">
    <find><![CDATA[<xf:if is="$canInlineMod">]]></find>
    <replace><![CDATA[<xf:include template="seo_thread_view_button" />
$0]]></replace>
  </modification>
  <modification type="public" template="thread_view" modification_key="seo_thread_view_3" description="Change Title" execution_order="1" enabled="1" action="preg_replace">
    <find><![CDATA[#(<xf:title.*xf:title>)#is]]></find>
    <replace><![CDATA[<xf:title>{{ change_thread_title($thread, $page)|raw }}</xf:title>]]></replace>
  </modification>
  <modification type="public" template="thread_view" modification_key="seo_thread_view_4" description="Change Description" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[(<xf:set\svar=\"\$fpSnippet\".+?\/>)]]></find>
    <replace><![CDATA[<xf:if is="$forum.seo.meta_description || $thread.seo.meta_description">
    <xf:set var="$newDesc" value="{{ ($thread.seo.meta_description ? $thread.seo.meta_description : $firstPost.message) }}" />
    <xf:set var="$fpSnippet" value="{{ snippet($newDesc, 0, {'stripBbCode': true}) }}" />
    <xf:else />
    $0
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="thread_view" modification_key="seo_thread_view_5" description="canonicalUrl" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[#arg\-canonicalUrl\=\".+?\"#is]]></find>
    <replace><![CDATA[arg-canonicalUrl="{{ seoCanonical($thread, link('canonical:threads', $thread, {'page': $page})) }}"]]></replace>
  </modification>
  <modification type="public" template="thread_view" modification_key="seo_thread_view_6" description="AMP Link" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:if is="$xf.options.seo_AMP && !{$amp_noindex}">
    <xf:head option="seo_amp">
        <link rel="amphtml" href="{{ link('canonical:amp-threads', $thread) }}">
    </xf:head>
</xf:if>]]></replace>
  </modification>
  <modification type="public" template="whats_new_wrapper" modification_key="seo_whats_new_wrapper_1" description="Robots" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[/$/]]></find>
    <replace><![CDATA[<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />
]]></replace>
  </modification>
  <modification type="admin" template="xfrm_category_edit" modification_key="seo_xfrm_category_edit_1" description="SEO for XFRM" execution_order="10" enabled="1" action="str_replace">
    <find><![CDATA[<xf:if is="$availableFields is not empty">]]></find>
    <replace><![CDATA[<xf:macro template="public:seo_macro" name="robot" arg-data="{$category}" />
$0]]></replace>
  </modification>
  <modification type="public" template="xfrm_resource_history" modification_key="seo_xfrm_resource_history_1" description="Change Title &amp;&amp; Meta" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[#(<xf:title.*xf:title>)#is]]></find>
    <replace><![CDATA[<xf:set var="$title">
    <xf:if is="{$resource.seo.meta_title}">{$resource.seo.meta_title} - {{ phrase('history') }}<xf:else />{{ prefix('resource', $resource, 'escaped') }}{$resource.title} - {{ phrase('history') }}</xf:if>
</xf:set>
<xf:title page="{$page}"><xf:trim>{$title}</xf:trim></xf:title>

<xf:if is="$resource.seo.meta_description">
    <xf:set var="$newDesc" value="{$resource.seo.meta_description}" />
    <xf:set var="$descSnippet" value="{{ snippet($newDesc, 0, {'stripBbCode': true}) }}" />    
</xf:if>

<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />
]]></replace>
  </modification>
  <modification type="public" template="xfrm_resource_reviews" modification_key="seo_xfrm_resource_reviews_1" description="Change Title &amp;&amp; Meta" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[#(<xf:title.*xf:title>)#is]]></find>
    <replace><![CDATA[<xf:set var="$title">
    <xf:if is="{$resource.seo.meta_title}">{$resource.seo.meta_title} - {{ phrase('xfrm_reviews') }}<xf:else />{{ prefix('resource', $resource, 'escaped') }}{$resource.title} - {{ phrase('xfrm_reviews') }}</xf:if>
</xf:set>
<xf:title page="{$page}"><xf:trim>{$title}</xf:trim></xf:title>

<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />
]]></replace>
  </modification>
  <modification type="public" template="xfrm_resource_updates" modification_key="seo_xfrm_resource_updates_1" description="Change Title &amp;&amp; Meta" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[#(<xf:title.*xf:title>)#is]]></find>
    <replace><![CDATA[<xf:set var="$title">
    <xf:if is="{$resource.seo.meta_title}">{$resource.seo.meta_title} - {{ phrase('xfrm_updates') }}<xf:else />{{ prefix('resource', $resource, 'escaped') }}{$resource.title} - {{ phrase('xfrm_updates') }}</xf:if>
</xf:set>
<xf:title page="{$page}"><xf:trim>{$title}</xf:trim></xf:title>

<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />
]]></replace>
  </modification>
  <modification type="public" template="xfrm_resource_view" modification_key="seo_xfrm_resource_view_1" description="Meta" execution_order="10" enabled="1" action="str_replace">
    <find><![CDATA[<xf:set var="$descSnippet" value="{{ snippet($description.message, 250, {'stripBbCode': true}) }}" />
]]></find>
    <replace><![CDATA[<xf:if is="$resource.seo.meta_description">
    <xf:set var="$newDesc" value="{$resource.seo.meta_description}" />
    <xf:set var="$descSnippet" value="{{ snippet($newDesc, 0, {'stripBbCode': true}) }}" />
    <xf:else />
    <xf:set var="$descSnippet" value="{{ snippet($description.message, 250, {'stripBbCode': true}) }}" />
</xf:if>

<xf:macro template="seo_macro" name="metaNoindex" arg-metaNoindex="{$meta_noindex}" />
]]></replace>
  </modification>
  <modification type="public" template="xfrm_resource_view" modification_key="seo_xfrm_resource_view_2" description="Change Title" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[#(<xf:title.*xf:title>)#is]]></find>
    <replace><![CDATA[<xf:set var="$title">
    <xf:if is="{$resource.seo.meta_title}">{$resource.seo.meta_title}<xf:else />{{ prefix('resource', $resource, 'escaped') }}{$resource.title}</xf:if>
</xf:set>

<xf:title page="{$page}"><xf:trim>{$title}</xf:trim></xf:title>]]></replace>
  </modification>
  <modification type="public" template="xfrm_resource_view" modification_key="seo_xfrm_resource_view_3" description="canonicalUrl" execution_order="10" enabled="1" action="preg_replace">
    <find><![CDATA[#arg\-canonicalUrl\=\".+?\"#is]]></find>
    <replace><![CDATA[arg-canonicalUrl="{{ seoCanonical($resource, link('canonical:resources', $resource)) }}"]]></replace>
  </modification>
  <modification type="public" template="xfrm_resource_wrapper_macros" modification_key="seo_xfrm_resource_wrapper_macros_1" description="Button" execution_order="10" enabled="1" action="str_replace">
    <find><![CDATA[<xf:macro name="action_buttons" arg-resource="!">]]></find>
    <replace><![CDATA[$0

<xf:if is="$resource.canEdit() && $xf.visitor.canSetSeo()">
    <xf:include template="seo_button">
        <xf:set var="$link" value="{{ link('resources/seo', $resource) }}" />
    </xf:include>
</xf:if>]]></replace>
  </modification>
</template_modifications>
This error file health check, please go to
Code:
https://tuoitreit.vn/threads/how-to-disable-warning-file-health-check-results-xenforo-2-x.36691
Good luck for you!
Source by tuoitreit.vn

Thứ Tư, 30 tháng 9, 2020

0

[OzzModz] Text Logo 2.0.0 - Add-on Logo bằng chữ Cho Xenforo 2.1, 2.2

 [OzzModz] Text Logo 2.0.0 - Add-on Logo bằng chữ Cho Xenforo 2.1, 2.2

With this addon, you will have a text based logo instead of a image bases one. By default, the addon will use your board title you have set in the XF options as the text. The addon also comes with a option to use your own custom text.

Với addon này, bạn sẽ có một logo cho xenforo dựa trên văn bản thay vì một cơ sở hình ảnh. Theo mặc định, addon sẽ sử dụng tiêu đề bảng của bạn mà bạn đã đặt trong tùy chọn XenForo làm văn bản. Addon cũng đi kèm với một tùy chọn để sử dụng văn bản tùy chỉnh của riêng bạn.



Ngoài ra có thể sử dụng các biểu tượng vui cho addon này





Tải về: [OzzModz] Text Logo 2.0.0 - Add-on Logo bằng chữ Cho Xenforo 2.1, 2.2

Nguồn: tuoitreit.vn

Thứ Tư, 9 tháng 9, 2020

TOP +10 CÁCH KIẾM TIỀN ONLINE TẠI NHÀ TỐT NHẤT 2020
0

TOP +10 CÁCH KIẾM TIỀN ONLINE TẠI NHÀ TỐT NHẤT 2020

 Kiếm tiền online, MMO (make money online) hay làm việc tại nhà là những chủ đề luôn được nhiều người quan tâm, tuy nhiên khi tìm kiếm trên Google hiện nay có quá nhiều thứ khiến bạn như bị lạc vào mê cung vậy, không biết đi đâu, về đâu.


Mình cũng từng như thế, rất khó để chọn riêng cho mình một cách kiếm tiền online phù hợp khi chưa hiểu biết rõ về nó. Bài viết dưới đây của DauTuMMO.Com sẽ giới thiệu và hướng dẫn top phương pháp kiếm tiền online, kiếm tiền qua mạng internet uy tín và tốt nhất.

Lưu ý* : không có bất kỳ cách kiếm tiền nhanh nào có thể giúp bạn giàu nhanh sau một buổi tối, để tạo nguồn thu nhập thụ động (Passive Income) trước đó bạn phải bỏ ra nhiều thời gian nghiên cứu, thực hành và nhiều ngày lao động không ngừng nghỉ.
Nếu bạn đồng ý thì hãy đọc tiếp phía dưới nhé, mình hứa sẽ giúp bạn có cái nhìn tổng quan, đánh giá được hình thức kiếm tiền online nào tốt và phù hợp nhất với bản thân!

Vậy điều mong muốn nhất của bạn là gì? trên đây là một số lý do mà có thể bạn đang có, nó chưa phải tất cả, hơn thế nữa MMO quả thực rất tốt đẹp, rất phi thường, nó có thể mang đến cho con người ta những thứ mà nhiều người mơ ước!

Thế nhưng, không phải ai cũng thành công! Để đạt được thành công từ MMO thì cần cả một quá trình nỗ lực, nhiệt huyết, kiên trì.

MMO là gì? đây là viết tắt của cụm từ tiếng Anh “Make Money Online” nó mang ý nghĩa là kiếm tiền trên mạng, kiến tiền online hay kiếm tiền trực tuyến.

Từ khóa chính nhiều người nói là “kiếm tiền online” – thế nhưng đây lại là thuật ngữ mà trong từ điển Việt Nam không có. Nó là một từ ghép được sinh ra từ khi internet phát triển tại Việt Nam và tạo ra một số hình thức kiếm tiền thông qua mạng internet.

Cụ thể là bạn có thể sử dụng máy tính, điện thoại hay các thiết bị có kết nối internet để kiếm tiền.

MMO đang là xu hướng ngày càng gia tăng, bạn có thể xem biểu đồ trên Google Trend để xem xu hướng của chủ đề này.

Với sự tiềm năng của nó, rất nhiều cá nhân đã kiếm được sốt tiền rất khủng từ 1000$, 2000$ tới vài chục ngàn đô, báo chí cũng đã đưa tin rằng nhiều người kiếm được rất nhiều tiền, hàng chục tỷ nhưng lại “quên đóng thuế” hihi 😀

Bạn hãy để ý thật kỹ xung quanh bạn, sẽ thỉnh thoảng gặp những người hàng xóm, người bạn trên facebook họ không đi làm gì nhưng vẫn có nhiều tiền tiêu sài, ăn chơi..Nhưng đâu biết rằng họ đang kiếm rất nhiều tiền từ internet?

Do tính chất tự do, thoải mái và rất nhiều tiềm năng nên MMO hiện tại đang là xu hướng trở thành một nghề nghiệp thực thụ. Rất nhiều người đã bỏ công việc cũ để kiếm tiền online toàn thời gian.

Khi bạn tìm từ khóa “thu nhập thụ động” trên Google ngay lập tức sẽ ra rất nhiều kết quả kiểu như: cách kiếm tiền ngay cả khi đang ngủ, cách làm giàu nhanh mà không cần làm việc… thật sự có tồn tại không?

Câu trả lời là có đấy! Thế nhưng để đạt được tới cảnh giới “tiền về túi ngay cả khi bạn đang ngủ” thì trước đó bạn phải trải qua quá trình không ngừng học hỏi, nỗ lực và kiền trì làm việc.

Bạn đi làm ngày 8 tiếng, tháng 24 ngày để được trả lương thì đó là thu nhập cố định, bạn phải đi làm thì mới có tiền. Đó là đổi công sức để lấy tiền.

Còn trong lĩnh vực kiếm tiền online thì bạn có thể tạo ra nguồn thu nhập thụ động như:

Tóm lại: Thu nhập thụ động tức là bạn không phải làm gì hoặc làm rất ít nhưng vẫn có tiền.

Cách tạo nguồn thu nhập thụ động mình từng tham gia như kiếm tiền youtube, kiếm tiền qua affiliate, Google Adsense..Đây cũng là những cách mình sẽ giới thiệu và hướng dẫn các bạn ở phía dưới.

Kiềm tiền online có rất nhiều hình thức, đa dạng lĩnh vực vì vậy MMO nó phù hợp với tất cả mọi người từ học sinh, sinh viên, công nhân, dân công sở cho đến các mẹ nội trợ..

Thật vậy bạn chỉ cần một chiếc laptop rẻ tiền có kết nối internet là có thể làm việc, thậm chí chỉ cần một chiếc điện thoại kết nối 4G là có thể kiếm tiền qua mạng bất kỳ lúc nào.

Mình từng như các bạn, khi mới tìm hiểu lĩnh vực MMO phải đọc, nghiên cứu qua rất nhiều công cụ, kiến thức, tuy nhiên sau khi tìm hiểu kỹ thấy rằng bạn không nhất thiết phải biết tất cả bởi không ai có thể giỏi được tất cả mọi thứ.

Bạn chỉ cần tập trung vào thế mạnh + sở thích của mình rồi làm việc hăng say, sau đó tìm ngách để kiếm tiền cho nó là được.

Không nên như mình một thời cứ đừng núi này lại trông núi nọ, thấy người khác kiếm được nhiều tiền là lại bỏ dở thứ mình đang làm.

Sau quá trình đó mình khuyên các bạn nên chuẩn bị một số đạo cụ như sau:

Sự phát triển của internet và xu hướng kiếm tiền online ngày càng gia tăng hiện nay nên nhà nhà, người người đang tìm cách để kiếm tiền.

Vì vậy kiến thức marketing online là không thể thiếu được, các kiến thức ở đây bao gồm: SEO, quảng cáo, email marketing,..

Những kiến thức này bạn hoàn toàn có thể tìm trên Google như “cách làm seo, cách chạy quảng cáo google, cách chạy quảng cáo facebook..” tất cả đều có người hướng dẫn miễn phí.

Hoặc muốn nhanh hơn, bạn có thể chi chút tiền ra học vài khóa học online để tiếp thu một cách bài bản hơn.

Tạo blog kiếm tiền là một trong những cách kiếm tiền bền vững và nhiều người thành công nhất (chứng minh thu nhập bạn đọc ở phía dưới).

Hiện nay có rất nhiều nền tảng giúp bạn tạo một blog cá nhân hoặc một website chuyên nghiệp một cách dễ dàng mà không cần phải biết lập trình hay biết quá nhiều về kỹ thuật.

Bạn nên đọc ngay bài viết hướng dẫn làm website bằng wordpress và kiếm tiền từ A-Z của mình tại đây để tìm hiểu thêm.

Bạn cần biết ít nhất một số hình thức thanh toán tiền online phổ biến như: internet banking, paypal, payoneer, wesbtern union.. để nhận tiền thanh toán khi bạn có tiền.

VD nếu làm ở thị trường Việt Nam thì chỉ cần thẻ ATM có internet banking là đủ, khi đó nơi bạn hợp tác sẽ gửi tiền vào đó cho bạn.

Tuy nhiên vẫn cần thẻ Visa để thanh toán quốc tế khi cần mua hosting, hoặc mua tên miền để tạo blog.

Cần Paypal hoặc Payoneer để nhận thanh toán quốc tế, đa số công ty quốc tế sẽ thanh toán qua đó.

Bạn đừng lo vội, cách làm thẻ visa rất dễ: chỉ cần ra ngân hàng ACB chẳng hạn bảo “tạo giúp tôi một thẻ visa debit (thẻ trả trước” sau khoảng 15 – 20 phút là có ngay.

Còn tài khoản Paypal, Payoneer thì cũng tự tìm hiểu Google rồi đăng ký trong vòng 30 phút thôi là xong.

Dưới đây là gợi ý và hướng dẫn những cách kiếm tiền online, kiếm tiền tại nhà tốt nhất dành cho bạn. Mình sẽ xếp hạng theo thứ tự ưu tiên từ trên xuống dưới nhé.

Lưu ý: mình đã từng và chỉ tham gia một số hình thức kiếm tiền online để tập trung phát triển như (Affiliate marketing, Google Adsense, Youtube, bán hàng online), tương lai thì có thể sẽ mở rộng thêm.

Vì vậy danh sách cách kiếm tiền online dưới đây chắc chắn sẽ chỉ mang tính giới thiệu/ gợi ý và sẽ chưa chuyên sâu. Các lĩnh vực mình có nhiều kinh nghiệm sẽ cố gắng viết đầy đủ hơn để bạn dễ hình dung, còn lại sẽ là chủ đề mở để bạn có chút kiến thức cơ bản, sau đó nếu hứng thú thì tự tìm tòi học hỏi thêm nhé.


1, Viết blog kiếm tiền



Viết blog kiếm tiền là một chủ đề rất lớn vì nó liên quan đến hầu hết các cách kiếm tiền online dưới đây. Ví dụ bạn muốn kiếm tiền qua Google Adsense thì bắt buộc phải có một blog hay website, hoặc muốn kiếm tiền với Affiliate thì việc sở hữu một blog để quảng bá sản phẩm sẽ giúp bạn bán hàng tốt hơn.

Vì vậy với ai muốn tham gia kiếm tiền online lâu dài, bền vững thì hãy tạo một blog ngay từ đầu, khi blog phát triển có lượng truy cập ổn định thì sẽ tự nhiên mở ra nhiều cách kiếm tiền khác nhau.

Vd một số hình thức kiếm tiền từ blog như:

  • Viết bài review, đánh giá sản phẩm làm affiliate
  • Gắn quảng cáo Google Adsense
  • Viết bài pr quảng cáo cho khách hàng
  • Bán hàng online trên blog
  • Làm blogger du lịch (quảng bá dịch vụ đặt phòng, địa điểm hot..)
  • Blog tư vấn làm đẹp, tư vấn sức khỏe, marketing..
  • Tạo khóa học online trên blog

Viết blog có thực sự kiếm được nhiều tiền không? Đây là câu hỏi mà rất khó để một blogger nào tại Việt Nam trả lời cho bạn, bởi vấn đề thu nhập cá nhân ở Việt Nam luôn nhạy cảm, không ai muốn tiết lộ cho bạn biết cả.

Tuy nhiên với người nước ngoài thì khác, đa số các blogger họ đều báo cáo thu nhập từ blog của họ đều đặn hàng tháng. Bạn có thể tham khảo danh sách dưới đây:


Đó là các blogger thế giới, còn ở Việt Nam cũng rất nhiều blogger kiếm được số tiền rất khủng nhưng chưa tiết lộ cho bạn mà thôi.

Nếu bạn cảm thấy cần bắt đầu một blog để tiếp tục quá trình kiếm tiền online thì đọc bài viết hướng dẫn từng bước này của mình để làm theo nhé. Rất dễ thôi, ai cũng làm được.


2. Kiếm tiền với Affiliate marketing



Kiếm tiền online với Affiliate marketing luôn là hình thức kiếm tiền thụ động “kinh điển” nhất từ xưa đến nay. Với sự phát triển không ngừng của internet và thương mại điện tử hiện nay thì xu hướng kiếm tiền này sẽ còn phát triển mạnh mẽ hơn nhiều nữa.

Affiliate có nghĩa là tiếp thị liên kết, tức là khi bạn đăng ký tham gia chương trình tiếp thị liên kết (Affiliate Program) của một công ty sản phẩm, dịch vụ nào đó, họ sẽ tạo cho bạn 1 đường link (url) có kí hiệu/mã số riêng. Sau đó bạn quảng bá sản phẩm dịch vụ đó qua đường link này, nếu người dùng mua hàng thông qua liên kết của bạn, bạn sẽ được phía công ty đó trả hoa hồng.

Một số công ty sẽ tạo ra hệ thống affiliate của riêng họ, còn lại đa phần họ sẽ hợp tác với một bên chuyên làm Affiliate Network. Ví dụ ở Việt Nam hiện nay đang có Accesstrade và Adflex là 2 Affiliate Network lớn rất nhiều publisher tham gia.

Affiliate Network này đã hợp tác với rất nhiều công ty sản phẩm, dịch vụ đa dạng mọi ngành nghề ở Việt Nam như: thương mại điện tử (tiki, lazada, shopee, sendo, fahasa, concung); tài chính (các ngân hàng, dịch vụ vay tiền); du lịch (tour du lịch, đặt phòng, vé máy bay, vé xe, taxi,.. ); Giáo dục (khóa học online, offline, phần mềm, ứng dụng học tập..); làm đẹp, điện máy, mẹ bé.. rất nhiều.

Affiliate Network là mạng lưới tiếp thị liên kết, họ đóng vai trò là người trung gian để kết nối giữa các nhà cung cấp sản phẩm, dịch vụ với những người làm tiếp thị liên kết như chúng ta.

Họ sẽ cung cấp hệ thống kỹ thuật, thống kê, tạo link affiliate, banner, theo dõi lượng click chuột, chuyển đổi, hoa hồng. Và họ là người sẽ thu tiền hộ và thanh toán cho bạn.

Ưu điểm khi tham gia Affiliate Network này là bạn sẽ được chọn nhiều sản phẩm, dịch vụ khác nhau tại 1 nơi, tiền bạn kiếm được sẽ tập chung 1 chỗ, không rải rác khi bạn phải đi đăng ký riêng từng công ty.

Cách kiếm tiền với Affiliate marketing:
Bước 1: tìm một ngách sản phẩm/ dịch vụ bạn yêu thích, có hiểu biết về nó và đánh giá xem sản phẩm đó có tiềm năng không, giá trị không.

  • Ví dụ bạn là một phụ nữ có kiến thức làm đẹp, sức khỏe, chăm sóc gia đình thì sẽ tìm các sản phẩm mỹ phẩm, thực phẩm chức năng hay đồ dùng gia đình..
  • Nếu bạn là một người thích du lịch thì tìm hiểu dịch vụ book phòng, thuê xe, giới thiệu tour du lịch..
  • Nếu bạn là người có kiến thức về tài chính, thì tìm hiểu các dịch vụ vay vốn, thẻ visa..
  • Hoặc bạn thích làm vườn thì làm về các sản phẩm, dụng cụ làm vườn, trang trí nhà..

Bước 2: Tìm kiếm xem top các công ty về sản phẩm đó họ có chương trình tiếp thị liên kết (Affiliate) không? bằng cách tìm trên trang của họ hoặc search trên Google theo từ khóa “tên công ty website + affiliate”, ví dụ shopee affiliate, lazada affiliate, booking.com affiliate, unica affiliate, kyna affiliate..

Nếu công ty đó không có hệ thống affiliate riêng, thì rất có thể họ đã liên kết với một Affiliate Network nào đó như Acesstrade, vì vậy bạn cũng có thể đăng ký làm Publisher của Accesstrade rồi vào phần Chiến dịch của họ để tìm kiếm xem có thấy sản phẩm, dịch vụ mà bạn đang cần tìm hay không.

Ví dụ mình vào Accesstrade sau đó tìm kiếm và lọc theo từng lịch vực ra rất nhiều công ty sản phẩm dịch vụ như sau:

chien dich accesstrade


Hoặc với Affiliate Network Adflex, một mạng lưới tiếp thị liên kết dạng CPO (Cost Per Order), hình thức này sẽ giúp bạn kiếm được tiền ngay (tiền hòa hồng sẽ được cộng ngay vào tài khoản khi khách hàng đồng ý mua), khác biệt với loại affiliate thông thường (khách hàng phải nhận hàng và thanh toán xong bạn mới được cộng tiền).

Tức là khi khách hàng bấm vào liên kết affiliate của bạn và đăng ký mua hàng, lúc này nhân viên chăm sóc khách hàng từ phía công ty sản phẩm kia sẽ gọi điện từ vấn, nếu khách hàng nói đồng ý mua thì bạn sẽ được cộng tiền ngay.

Ưu điểm khác với đối hình thức Affiliate CPO:

  • Hoa hồng cực cao, giao động từ 200-600k/ 1 đơn
  • Thanh toán nhanh hàng tuần, khi đủ 200k là thanh toán
  • Tính hoa hồng nhanh, khách hàng alo báo đồng ý mua là được tính ngay
  • Hỗ trợ sẵn trang Landing page đẹp, chuyển đổi cao
  • Giao diện đơn giản, dễ sử dụng

Đây là giao diện của Adflex, bạn có thể để ý thấy sản phẩm rất đa dạng lĩnh vực, chủ yếu về: làm đẹp, mỹ phẩm, thực phẩm chức năng, sinh lý..và giá hoa hồng cực lớn. (Giá chia sẻ kia chính là hoa hồng bạn nhận được khi bán thành công 1 đơn).

adflex affiliate cpo kiem tien 1


Bước 3: Sau khi tìm được sản phẩm dịch vụ để làm Affiliate và đăng ký thành công rồi, việc tiếp theo là bạn cần xác định hình thức tiếp thị liên kết của bạn.

Lúc này bạn có thể quay lại cách kiếm tiền online số 1 ở trên là “Viết blog kiếm tiền”, tức là sẽ tạo ra một blog chủ đề chuyên biệt về sản phẩm dịch vụ đó, hằng ngày bạn viết bài review, đánh giá sản phẩm, tư vấn mua hàng..các nội dung liên quan đến sản phẩm đó.

Trong mỗi bài viết bạn sẽ gắn link affiliate của mình vào (link này bạn đăng nhập vào tài khoản Affiliate ở các công ty bạn đã đăng ký hoặc ở trên Accesstrade, Adflex).

Khi người dùng vào blog của bạn đọc bài, bấm vào link mua hàng này để mua hàng thì bạn sẽ được trả hoa hồng.

Lưu ý*: bạn chỉ việc tiếp thị, còn khi người dùng bấm vào liên kết affiliate của bạn trình duyệt sẽ chuyển hướng tới trang công ty bán hàng kia để đặt hàng, công ty đó sẽ tự tư vấn, chốt đơn, ship hàng và thu tiền. Bạn không cần làm gì cả! đó là cái lợi hại của Affiliate 😀

Ngoài cách tiếp thị liên kết bằng blog ra, bạn còn nhiều cách khác như: dùng mạng xã hội (tức bạn tạo nội dung chia sẻ lên mạng xã hội, xong gắn link affiliate của bạn vào bài viết đó, người dùng mua hàng qua đó bạn sẽ được tiền tương tự).

Hoặc làm kênh youtube review sản phẩm cũng khá hay, tuy nhiên việc làm tiếp thị liên kết qua blog vẫn là hình thức tốt nhất, rất nhiều người thành công.

Bạn có thể tưởng tượng rằng chỉ 1 bài viết review về 1 sản phẩm dịch vụ nào đó khi lên top Google thì bạn sẽ được nhận tiền về túi đều đặn hàng tháng và mãi mãi không? Miễn là người dùng còn vào đọc và click vào mua hàng là bạn có tiền.



3. Kiếm tiền với Google Adsense



Kiếm tiền với Google Adsense cũng là một hình thức kiếm tiền online, tạo thu nhập thụ động rất tốt, bán sẽ ít phải suy nghĩ hơn so với kiếm tiền Affiliate marketing.

Bởi vì bạn chỉ cần quan tâm việc duy nhất là phát triển nội dung, tăng trưởng traffic sau khi đã đăng ký kiếm tiền Google Adsense thành công.

Tiền bạn kiếm được sẽ được tính bằng số lượt xem trang + số lượt click vào banner quảng cáo trên trang web của bạn, điều đặc biệt là tùy thuộc vào loại nội dung mà Google sẽ tính toán giá trị để trả tiền cho bạn khác nhau.

Ví dụ ở Việt Nam, với mỗi 1000 lượt xem bạn sẽ được 1$ với chủ đề bình thường, trong một số trường hợp chủ đề hot hơn như tài chính, nghỉ hưu, visa.. thì sẽ kiếm được nhiều hơn, hoặc với chủ để giải trí, hài hước thì ít hơn.

Giả xử bạn có một blog có 5 ngàn lượt xem 1 ngày thì ít nhất bạn sẽ có khoảng 5-10$/ngày => 1 tháng được 150-300$ <=> khoảng 3,5 – 6 triệu. Nếu có 10 ngàn lượt xem /ngày thì sẽ có khoảng 6 -12 triệu (lưu ý đây là con số trung bình, trong trường hợp thực tế có thể sẽ cao hơn nhiều hoặc thấp hơn chút tùy thuộc vào cách bố trí vị trí quảng cáo + loại nội dung của bạn có tốt hay không).

Google Adsense là mạng lưới quảng cáo được phát triển bởi Google. Đây là nền tảng để kết nối giữa người đặt mua quảng cáo (doanh nghiệp, công ty kinh doanh sản phẩm, dịch vụ) với những người xây dựng nguồn traffic từ (blog, website, app..) để kiếm tiền như chúng ta.

Cách kiếm tiền với Google Adsense:

Bước 1
: Tìm ngách phát triển nội dung, tương tự ở kiếm tiền Affiliate

Bước 2: Xây dựng và hoàn thiện website, tạo đủ các mục cần thiết (giới thiệu, liên hệ, chính sách bảo mật..), giao diện thân thiện người dùng, chuẩn SEO. Có thể tham khảo theme tại Mythemeshop.

Bước 3: Phát triển nội dung chất lượng, tạo nội dung liên quan đến 1 chủ đề nhất định trên website, blog của bạn, lưu ý là nội dung chỉ được phép tự viết, không được copy y nguyên, tránh các nội dung bạo lực, nhạy cảm, bản quyền, độc hại. Có thể xem chính sách của Google Adsense tại đây.

Bước 4: Đăng ký kiếm tiền với Google Adsense tại đây, để được Google chấp nhận cho bạn kiếm tiền thì website của bạn phải tuân thủ chính sách, ngoài ra phải có lượng truy cập nhất định rồi nhé. Mình từng đăng ký thành công khi blog của mình có khoảng 300 lượt truy cập đều đặn mỗi ngày.

Bước 5: Gắn code của Google Adsense lên website của bạn, bạn chỉ việc gắn mã javascript mà Google cung cấp lên vị trí bạn muốn, sau đó Google sẽ tự động lựa chọn các nội dung quảng cáo/ banner phù hợp với người dùng.

Ví dụ khi bạn vào trang web của mình sẽ thấy những banner của Google như sau:

adsense banner 1


Hiện nay Google có hình thức quảng cáo tự động rất hay, bạn chỉ gắn 1 mã code duy nhất lên website, sau đó Google sẽ tự động đi tìm vị trí thích hợp để hiển thị banner mà bạn không cần phải làm gì thêm.

Top website kiếm được nhiều tiền với Google Adsense nhất thế giới:

Công thức để kiếm tiền với Google Adsense là:

Content + traffic = money!
4. Kiếm tiền qua Youtube



Còn gì thích thú hơn “vừa làm như vừa chơi” khi bạn ở hữu một kênh youtube triệu view với các video như “review địa điểm du lịch hot nhất Việt Nam abc, nơi nghỉ dưỡng đẳng cấp nhất cho nhà giàu…”

Hoặc đơn giản hơn như các video tự quay “thử thách ăn tôm hùm mấy triệu đồng 1 con, các món siêu to khổng lồ như Bà Tân Vlog” 😀

Thực sự mà nói Youtube vẫn đang là một “mỏ vàng” cho những ai sáng tạo và biết cách tạo dựng nội dung video hấp dẫn.

Bạn có thể kiếm tiền trên Youtube với nhiều lĩnh vực khác nhau như: review sản phẩm công nghệ, hướng dẫn làm đẹp, khóa học online, video hài hước giải trí, vlog ẩm thực, vlog troll, thể thao, võ thuật, nghệ thuật, ảo thuật, đọc truyện, cover, karaoke, săn bắt hái lượm, làm nông..

Youtube là một nền tảng chia sẻ video của Google phát triển, khi bạn có nội dung hay, hữu ích sẽ được phép đăng ký kiếm tiền thông qua Google Adsense.

Lưu ý: loại Google Adsense này là Hosted, tức là bạn chỉ được phép kiếm tiền trên Youtube (nền tảng của Google) chứ khác với hình thức kiếm tiền với Google Adsense (content) ở trên kia bạn có thể gắn code quảng cáo của Google lên bất kỳ website nào của bạn, hoặc trên ứng dụng của bạn.

Tương tự như kiếm tiền với Google Adsense, tiền bạn kiếm được sẽ thông qua số lượt xem + lượt bấm chuột vào quảng cáo của người dùng. Tùy thuộc vào loại nội dung, chất lượng nội dung và thời lượng video sẽ kiếm được số tiền khác nhau.

Thông thường với mỗi 1000 lượt xem bạn sẽ kiếm được khoảng 1$, với các video triệu view thì sẽ kiếm được 1000$.

Các bước kiếm tiền với Youtube:

Bước 1: nghĩ 1 chủ đề hay, hấp dẫn, có ích, hoặc giải trí tốt

Bước 2: tạo một kênh youtube tại đây (chỉ cần gmail).

Bước 3: lên ý tưởng và quay video, biên tập video rồi upload lên Yotube, lưu ý tối ưu ảnh đại diện thật bắt mắt, viết tiêu đề, mô tả hấp dẫn).

Bước 4: khi kênh youtube đủ 1000 người đăng ký và 4000 giờ xem thì được phép đăng ký kiếm tiền (theo quy định mới của Youtube).

Ban đầu bạn không cần mua sắm gì nhiều vẫn có thể làm được, đơn giản chỉ cần 1 chiếc smartphone là đủ, quay xong, chỉnh sửa chút qua ứng dụng trên đó rồi upload lên tương tự bạn Sang Vlog này.

Hoặc cũng có thể đầu tư bài bản, mua sắm máy quay xịn sò, máy tính khỏe để biên tập video chuyên nghiệp hơn.


5. Bán hàng online



Bán hàng online chắc hẳn không có gì mới lạ với anh chị em, công việc sẽ là bạn tìm một mặt hàng tiềm năng sau đó nhập hàng với giá sỉ về rồi rao bán lấy lời.

Nghe thì có vẻ đơn giản nhưng không phải ai cũng kiếm được tiền và thành công, vì bạn phải tìm hiểu và học hỏi rất nhiều các vấn đề như: nên chọn mặt hàng nào, mua ở đâu giá tốt, chất lượng, cách bán hàng ra sao, chọn hình thức nào, cách chăm sóc khách hàng, xử lý hàng tồn kho, bom hàng..

Với sự cạnh tranh rất lớn hiện nay, để bán hàng thành công thì thứ nhất bạn phải có mặt hàng tốt, giá cạnh tranh, hoặc hàng đặc biệt ít người bán.

Hoặc bạn phải marketing giỏi (biết cách chạy quảng cáo, xây dựng thương hiệu tốt). Có thể kết hợp mạng xã hội, tạo website, email để bán hàng đa dạng, tiếp cận nhiều khách hàng hơn.


6. Mở dịch vụ tư vấn online



Nếu bạn là một chuyên gia trong lĩnh vực nào đó, hoặc đã có nhiều kinh nghiệm chuyên sâu về 1 mảng nhất định thì đừng ngần ngại mở dịch vụ tư vấn online. Chắc chắn sẽ có nhiều người tìm đến bạn để thuê bạn.

Ví dụ như có kinh nghiệm về làm đẹp (giảm cân, tăng cân, giảm eo, thể hình 3 vòng săn chắc..) hoặc đặc trị (mỡ bụng, trị mụn, mờ sẹo, dạn da sau sinh..); hoặc một số lĩnh vực khác như marketing, SEO, email marketing, ads, social, content marketing, tài chính, chứng khoán, tiền điện tử, nội thất, ô tô xe máy, đầu tư bất động sản, làm giàu..

Gợi ý cách kiềm tiền bằng tư vấn: có thể tạo nội dung chuyên sâu và đều đặn trên mạng xã hội Facebook, đăng tải nhiều hình ảnh chứng minh bạn đẹp, bạn dáng chuẩn, nhiều khách hàng, học viên của bạn đã thành công tương tự lên Instagram, hoặc sử dụng youtube, tiktok để upload các video của bạn lên.

Kết hợp thêm tạo website để phát triển nội dung, xây dựng thương hiệu..khi tiếng thơm đồn xa thì tự khách hàng tìm đến bạn.


7. Kiềm tiền với Tiền điện tử (Bitcoin, ETH..) 4 cách



Tiền mã hóa hay tiền ảo, bitcoin đều là về chủ đề Tiền điện tử, có rất nhiều cách để kiếm tiền với chủ đề này như:

  • Đầu tư (mua trữ lúc giá thấp rồi giá lên bán lấy lời).
  • Trade coin: mua và bán coin trong một thời gian ngắn.
  • Khai thác (đào bitcoin): Dùng máy móc, phần mềm để đào coin
  • Referral Program: một hình thức giống affiliate (môi giới đàu tư, giới thiệu thành viên..)

Mình từng tham gia kiếm tiền điện tử theo 2 cách đó là: đầu tư bitcoin, ethereum; affiliate.

Cụ thể mình hay mua bitcoin hoặc ethereum tại Remitano, sau đó đợi nó tăng giá lên cao rồi bán, ngoài ra cũng làm affiliate bằng cách giới thiệu nhà đầu tư mua bitcoin trên các sàn Remitano hoặc Binance để hưởng hoa hồng.

Để kiếm tiền với hình thức này bạn phải biết:

  • Phân tích thị trường, kỹ thuật (phải tự học)
  • Bám trend (cập nhật tin tức thị trường liên tục)
  • Theo tín hiệu người uy tín

Lưu ý quan trọng: thị trường này rất nhiều tiềm năng, cơ hội kiếm tiền rất nhanh, tuy nhiên cũng đầy rủi ro và cạm bẫy. Rất nhièu dự án lừa đảo theo mô hình ponzi (đa cấp, lấy tiền người sau trả cho người trước).

Một số hình thức lừa đảo phổ biến bạn nên tránh như:

  • Đầu tư vốn ủy thác không phải làm gì và hưởng lãi mấy %/ngày hoặc mấy chục %/tháng.
  • Đầu tư ICO (các loại coin rác, không có tiềm năng): dự án quảng cáo, pr hoành tráng, hứa hẹn là mua đồng coin/ token của họ sau 1 vài tháng sẽ tăng lên cả 10, 100 lần.
  • Đầu tư thuê máy đào coin, bot trade hưởng lãi thụ động: tương tự đầu tư ủy thác, rất nhiều rủi ro.



8. Viết và bán Ebook



Khi bạn đã có thương hiệu hoặc là chuyên gia và thành công ở một lĩnh vực nào đó thì hãy thử viết một Ebook và đăng bán trên trang cá nhân, blog của bạn.

Giả xử một Ebook trị giá khoảng 300k mà bạn bán được cho 1000 người thì sẽ kiếm được bao nhiêu tiền? Thực tế rất nhiều người đã thành công với hình thức này.

Ebook bạn chỉ viết 1 lần và bán mãi mãi, không giới hạn tiền thu về, chỉ phụ thuộc vào chất lượng và khả năng marketing của bạn mà thôi.

Thông thường để thành công với phương pháp này, chủ Ebook đầu tiên phải xây dựng thương hiệu bằng cách phát triển nội dung chuyên sâu, tạo độ tin tưởng trên trang cá nhân, blog của họ. Thậm chí phải bỏ tiền ra mua bài viết pr trên báo chí để được nhiều người biết đến và tăng độ uy tín.

VD 1 blogger tại Việt Nam đang rao bán 1 Ebook Tiếp thị liên kết của anh ấy với giá 420k như sau:

ebook tiep thi lien ket


9. Bán khóa học online



Bạn có thể thấy ngày xưa rất ít khóa học online nhưng ngày ngay internet phát triển, người người dùng máy tính, nhà nhà dùng smartphone nên nhu cầu học online là vô cùng lớn.

Nếu bạn giỏi một lĩnh vực nào đó thì hãy thử tạo cho mình một khoa học online rồi đăng bán nó, tương tự như bán Ebook ở trên vậy.

Có nhiều cách để bạn tạo một khóa học như: quay video, viết nội dung hoặc sử dụng các nền tảng chuyên nghiệp để tích hợp vào website của bạn như https://www.learndash.com/ chẳng hạn (plugin giúp bạn tạo khóa học online dễ dàng).


10. Kiếm tiền với ứng dụng điện thoại



Hiện nay trên internet có rất nhiều ứng dụng có thể giúp bạn kiếm tiền nhanh chóng, nếu đủ thông minh và nhanh nhẹn bạn có thể kiếm được khá nhiều tiền thông qua hình thức affiliate.

Một số tiêu chí đánh giá ứng dụng kiếm tiền tốt, uy tín:

  • Không bắt đầu tư nạp tiền (rất có thể là mô hình ponzi)
  • Ứng dụng có giá trị thực, sản phẩm thật (có ích cho người dùng).
  • Thanh toán đơn giản (dễ rút tiền)
  • Thông tin rõ ràng, biết rõ chủ sở hữu, công ty phía sau
  • Ứng dụng quảng cáo, pr quá lố (hứa hẹn làm giàu nhanh)
  • Được nhiều trang web, blog uy tín review.

11. Khảo sát kiếm tiền online

Khảo sát trực tuyến là công việc thực hiện trả lời các câu hỏi trắc nghiệm của các công ty, dịch vụ nghiên cứu thị trường đưa ra nhằm khai thác sở thích, thói quen mua sắm, tiêu dùng, đánh giá, ý kiến của người dùng với mục đích cuối cùng để cải thiện sản phẩm, dịch vụ của họ.

Với việc tham gia khảo sát này bạn có thể kiếm được thêm chút tiền nhỏ để nạp thẻ điện thoại, hoặc rút tiền mặt về tài khoản.

Tuy nhiên hình thức này chỉ dành cho ai kiên nhẫn, cần mẫn làm nhiệm vụ hàng ngày và số tiền kiếm được khá ít, ngoài ra mất khá nhiều thời gian.

So với các hình thức khác thì khảo sát kiếm tiền lại dễ làm hơn, ai cũng làm được, làm ra tiền ngay lập tức, công việc đơn giản, làm mọi lúc mọi nơi với ứng dụng trên điện thoại. Cũng là cách tận dụng thời gian rảnh (như đang đứng chờ, đi xe buýt chẳng hạn).

Nếu cảm thấy hứng thú bạn có thể tham khảo top trang web khảo sát kiếm tiền tốt nhất tại đây.

Tạm kết


Trên đây là hơn +10 cách kiếm tiền online, kiếm tiền tại nhà 2020 mà DauTuMMO.Com đánh giá có nhiều tiềm năng và tốt nhất để bạn tham khảo, lời khuyên của mình là bạn hãy chọn cho mình 1 lĩnh vực mà cảm thấy yêu thích và có kiến thức về nó nhất rồi theo đuổi đến cùng, cho đến khi ra kết quả thì thôi.