#hashtag

214
.
jimy
anyone can help me to fix this?
protected function hashTag($var) {
		$regex = '/(?<!:|\s|&|"|\')(^|\s)#([-a-z0-9_-]{3,20})/si';
		$var = preg_replace_callback($regex, function($tags) {
				$src = $tags[2];
				return $tags[1].'<a href="'.$homeurl.'/page/?act=tag&amp;src="'.$src.'">'.$tags[0].'</a>';
			},$var);
		return $var;
	}

error occure when calling "$tags[2]" it didn't shown the result
.
screenshoot
Прикрепленные файлы:
.
jimy, return $tags[1].'<a href="'.$homeurl.'/page/?act=tag&amp;src="'.$src.'">'.$tags[0].'</a>';
Not the right quote
.
:lol yeah for 3 hour I try to find that " things
.
jimy, inattention
.
hahahah yeah, btw thanks again kantry
.
в какой файл его пристроить?
.
(\/)____o_O____(\/)
EMINEM, bbcode.php наверное
.
Koenig, уверен? я поставил и ничего)
.
(\/)____o_O____(\/)
EMINEM, ну надо ее еще где то сверху где ютуб прописать
.
а есть готовая страница /page/ ? код работает но нету /page/index.php
.
(\/)____o_O____(\/)
EMINEM, ну если только у ТС
.
jimy, An excellent function, is there a script that will make this function work?
Why is there no archive /page/?
.
EMINEM, Это тема о помощи а не о модуле. Функция есть - остальное писать самому
.
Koenig, Это типа хештеги... Какие там ббкоды. Поиск записей по нажатому хештегу
.
(\/)____o_O____(\/)
Eternal, но оно через ББ реализовано
.
Eternal
# Koenig (24.06.2017 / 08:57)
Eternal, но оно через ББ реализовано
Где там хоть одно упоминание о бб? Я так понял подключается в обработку на выводе текста на экран.

А ссылка ведёт на страницу результата поиска по тегу. Бб не при чем. А так логики вообще ноль.
.
(\/)____o_O____(\/)
# Eternal (25.06.2017 / 12:56)
Где там хоть одно упоминание о бб? Я так понял подключается в обработку на выводе текста на экран.

А ссылка ведёт на страницу результата поиска по тегу. Бб не при чем. А так логики вообще ноль.
текст фильтруется стандартной функцией движка, и автор уже не первую тему делает где участвуют ББ
.
Eternal
# Koenig (25.06.2017 / 14:18)
текст фильтруется стандартной функцией движка, и автор уже не первую тему делает где участвуют ББ
Ну здесь страница ББсовсем не причем. Должна быть что то по типу как в ВК. А подключатся вместе с фильтромиоекстамна выходе. Как по мне.

Подключается также как здесь, ну только для 7ки
forum/index.php?id=997486
.
(\/)____o_O____(\/)
Eternal, можно и так, тогда функция попадает в $tools и придётся $tools->checkout() изменять, или добавить ББ, оно уже прописано в чекаут
johncms.com/forum/index.php?act=post&id=1021803
первое слово protected значит из класса ;)
.
# Koenig (26.06.2017 / 10:22)
Eternal, можно и так, тогда функция попадает в $tools и придётся $tools->checkout() изменять, или добавить ББ, оно уже прописано в чекаут
johncms.com/forum/index.php?act=post&id=1021803
первое слов
Короче это и не модуль толком. Так как автор просил помощи. Страницы нет с результатами
.
kantry
Eternal, Ты чего пристал? Этого модуля нет в стандартном движке, автор придет и спросишь у него.
.
jimy
sorry long time not on.

i'll share mine
open bbcode.php

find
public function __invoke(ContainerInterface $container)

add
$this->db = $container->get(\PDO::class);


find
public function tags($var)

add
$var = $this->hashTag($var);


last add protected function
/* mod HashTag system by jimy ironyzm */
	/* author: jimy */
	protected function hashTag($var) {
		$HashTag = '/(?<!:|\s|&|"|\')(^|\s)#([-a-z0-9_-]{3,20})/si';
		$var = str_replace('>#','> #',$var);
		$var = preg_replace_callback($HashTag, function($tags) {
			$tg = htmlspecialchars(trim($tags[2]));
			return $tags[1].'<a href="'.$homeurl.'/page/?act=tags&amp;src='.$tg.'" title="'._t('In-Tags: '.$tags[0].'','system').'"><span class="tagcon">'.$tags[2].'</span></a>';
		},$var);
		
		$UserTag = '#(^|[\n\s])@([-a-z0-9_-]{3,20})#si';
		$var = preg_replace_callback($UserTag, function($name) {
			$tg = htmlspecialchars(trim($name[2]));
			$user = $this->db->prepare('SELECT * FROM `users` WHERE `name` = ? LIMIT 1');
			$user->execute([$tg]);
			if ($user->rowCount() > 0 && $this->user->isValid()) {
				$users = $user->fetchColumn();
				return $name[1].'<a href="'.$homeurl.'/profile/?user='.$users['id'].'" title="'.$name[0].'">'.$name[0].'</a>';
			} else {
				return $name[1] . '@' . $name[2];
			}
		},$var);
		return $var;
	}


then open your style.css
add
.tagcon {
	display: inline-block;
}
.tagcon:before {
	content: "#";
	font-size: 15px;
	margin-right:2px;
	font-style:italic;
}



note :
1. pls make new $act in root/page/index.php for getting tags list
2. usage = @jimy #handsome / both @jimy and #handsome will be link into user profile and page/?act=tags
.
jimy
Добавлено: 01.07.2017 / 08:05
# EMINEM (23.06.2017 / 21:15)
jimy, An excellent function, is there a script that will make this function work?
Why is there no archive /page/?
for page/?act=tag I made I myself u can make new directory / just use existing directory and change the link as you want, mine is for example.
to get the hashtag
<a href="'.$homeurl.'/page/?act=tags&amp;src='.$tg.'" title="'._t('In-Tags: '.$tags[0].'','system').'">

Добавлено: 01.07.2017 / 08:13
for example #hastag I request its from table discus (nb: u can use forum/news/guestbook/etc.)

table
DROP TABLE IF EXISTS `discus`;
CREATE TABLE `discus` (
  `id`	INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `time`	INT(10) UNSIGNED NOT NULL DEFAULT '0',
  `user_id`	int(10) unsigned NOT NULL DEFAULT '0',
  `name` TEXT	NOT NULL,
  `text` TEXT	NOT NULL,
  `close` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
  `tag_name`    VARCHAR(250)     NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  KEY `user_id` (`user_id`),
  KEY `tag_name` (`tag_name`)
)
  ENGINE = MyISAM
  DEFAULT CHARSET = utf8mb4;


code in /page/?act=tags
/* mod HashTag system by jimy ironyzm */
	/* author: jimy */
$rev = $db->query("SELECT * FROM `discus` WHERE `tag_name` = '".$src."'")->fetch();
if($src != $rev['tag_name']){
	$url = '?act=tags';
	header('refresh:5;url='.$url.'');
	echo '<div class="menu">Sorry Tags Not-Found or Maybe Deleted! <hr/> u\'ll redirect in 5 sec.</div>';
	require('../system/end.php');
	exit;
}
	/* mod HashTag system by jimy ironyzm */
	/* author: jimy */
if(empty($src) || $src != $rev['tag_name']){
	$reg = $db->query("SELECT * FROM `discus` GROUP BY `tag_name` ORDER BY `id`");
	if ($reg->rowCount()) {
		echo '<div class="menu">';
		while ($rez = $reg->fetch()) {
			$usage = $db->query("SELECT COUNT(*) FROM `discus` WHERE `tag_name` = '".$rez['tag_name']."'")->fetchColumn();
			echo '<a href="../page/?act=tags&amp;src='.$rez['tag_name'].'" title="'._t('In-Tags: #'.$rez['tag_name'].'','system').'"><span class="tagcon">'.$rez['tag_name'].' = '.
				 $usage.'</span></a>';
				++$i;
		}
		echo '</div>';
	} else {
		echo '<div class="menu center"><b>'._t('No Tags!','system').'</b></div>';
	}
}

_______________________

Только русский и английский!
.
jimy, Can you give me a example of writing in mysql base tags (form and query)
Всего: 25
Фильтр по автору
Скачать тему