Quantcast
Channel: Discourse Meta - Latest topics
Viewing all 60707 articles
Browse latest View live

Paying for content

$
0
0

@HAWK wrote:

I’m curious – to do what?

Posts: 5

Participants: 2

Read full topic


Add users to regions in community based on geolocation

$
0
0

@KarenL wrote:

Is there a way to automatically add users to a geographic/regional group based on their address in the community? I saw something from 2015, but wasn’t sure if it had been explored further.

We have a church community of regional groups and would love to be able to add folks to groups link “northeast”, “northwest”, etc.

If not, is it something that could even be built in by a programmer? (And do you have suggested programmers?)

Thanks!
Karen

Posts: 1

Participants: 1

Read full topic

Error while doing discourse setup

$
0
0

@Onkar_Mirajkar wrote:

Hello,
I am doing this discourse setup for the first time and i am going through this issue. As I am having less knowledge about this please try to help me by giving its solution.

I entered this command ./discourse-setup through root and faced the below issue

FAILED
--------------------
Pups::ExecError: su postgres -c 'psql discourse -c "alter schema public owner to discourse;"' failed with return #<Process::Status: pid 109 exit 2>
Location of failure: /pups/lib/pups/exec_command.rb:108:in `spawn'
exec failed with the params "su postgres -c 'psql $db_name -c \"alter schema public owner to $db_user;\"'"
e21a161606cfc570d4acda8edeec8c7ced8b48c63a94b9d670eef19cfdd7e179
** FAILED TO BOOTSTRAP **

Posts: 11

Participants: 3

Read full topic

Rebuild failed due to plugin incompatibility

$
0
0

@repute wrote:

Hi I did a rebuild today but I got the following message, now my site is offline:

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 10840 exit 1>
Location of failure: /pups/lib/pups/exec_command.rb:108:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle install --deployment --verbose --without test --without development'", "su discourse -c 'bundle exec rake db:migrate'", "su discourse -c 'bundle exec rake assets:precompile'"]}
d07f84b6b2115126ba6c11e8d51bd41f7e5963a736d8142c183bb96e18919e78
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one

I’m a bit of a noob and don’t know what to do with this, hope someone can help me out, thanks!

Matt

Posts: 3

Participants: 2

Read full topic

Discourse rendering methodology - noscript, user agent sniffing

$
0
0

@Hewitt wrote:

Good day,

I’m enjoying using Discourse as the forum provider for ecommerce sites. I like the Discourse approach to SEO and have a React SPA I’m interested in following suite with. I’m curious about the following comment by @riking :

Would someone be willing to expand a little on the technical aspect of “how” you go about doing that, and where in the stack it is performed?

Thanks!

Posts: 1

Participants: 1

Read full topic

How to add verified mark to team profiles?

$
0
0

@Dexter1 wrote:

Hello

how i can add a mark to team profiles like vitrification mark? as you can see in Jeff`s profile how there is a discourse mark with profile picture.

jeff

Posts: 5

Participants: 3

Read full topic

Twitter images not appearing in onebox

$
0
0

@thirstforwine wrote:

I am having an issue with twitter images not appearing in onebox. This is not a general problem that I can replicate here as the same links posted to this instance display the images in the tweet. However, when I post the same link to my site, there are no images.

Any ideas what could be causing this? Other images load fine

Here is the same link:

Posts: 5

Participants: 3

Read full topic

Different schema type for Topics and Posts

$
0
0

@vinothkannans wrote:

Continuing the discussion from Invalid Article Schema:

Currently we are using schema type DiscussionForumPosting for every post in a topic. So if a topic having 5 posts totally then in same page we rendering DiscussionForumPosting 5 times.

In this case I think it’s better to use DiscussionForumPosting only once for whole topic and Comment schema type for remaining 4 replies like below.

<div itemscope itemtype="http://schema.org/DiscussionForumPosting">

   <span itemprop="datePublished">10/05/2017</span>
	<span itemprop="headline">Sample Topic Title</span>
	<span itemprop="image">https://meta.discourse.org/image-url9.png</span>
	<div itemprop="articleBody">Topic's First Post Content</div>
    <span itemprop="author">User 1</span>

 	<div itemprop="comment" itemscope itemtype="http://schema.org/Comment">
    	<span itemprop="author">User 2</span>
    	<div itemprop="text">Second Post Content</div>
 	</div>

 	<div itemprop="comment" itemscope itemtype="http://schema.org/Comment">
    	<span itemprop="author">User 3</span>
    	<div itemprop="text">Third <b>Post</b> Content</div>
 	</div>

</div>

Posts: 2

Participants: 2

Read full topic


How do to view rails errors?

$
0
0

@iamphi wrote:

I am writing a custom plugin to do redirects for my old vbulletin+vbseo forum urls. The import script doesn’t handle the url formats created by vbseo.
I have a docker+discourse setup.
I have created blank plugin with just the meta data stuff (name, about, version author), and used sv restart unicorn to get the plugin loaded; it shows up in the admin panel. Beyond that I am having trouble doing more. When I try to add a route, nginx/discourse would return 502 Gateway.
Where can I view errors related to my plugin? or learn more about adding routes in discourse (I assumed it is like adding routes to a rail app)?
Thanks.

Posts: 6

Participants: 3

Read full topic

Is it possible to make advertisements optional based on level?

Dark theme activated but cannot be selected

$
0
0

@Dexter1 wrote:

Hello

The dark theme is activated and marked to be selected but is not showing for users to switch to it what i can do ?

Dark theme

Posts: 5

Participants: 3

Read full topic

Wizard Introduction doesn't prefill

$
0
0

@WhatllB wrote:

I suspect this was unintended…

When rerunning the wizard after a successful install/configure, the Introduction textarea does not prefill with the response from the previous wizard run.

All other fields are prefilled, so I can “Next >”, “Next >”, “Next >”, “Next >” my way through them, but the Introduction is empty and must be supplied each time.

(I’m glad the wizard remains available after install. Great idea)

Posts: 3

Participants: 3

Read full topic

Javascript for Beginners

$
0
0

@Jasmine_Reed wrote:

My name is Jasmine and I am an independent talent acquisition specialist. Basically, I refer candidates to jobs available all over the United States. I would like to create a website that incorporates: available jobs, relocation assistance, and family-friendly activities. I need the website to look as professional as possible, so I opted out of sites like Weebly and Wix. I was wondering if there are any blogs, videos or forums I use to give myself a crash course in Javascript? How do I incorporate this pan with Discourse? I know its an open source network but don’t really understand what that means… I am a very fast learner and hope to have the website complete by the end of this year. If anyone knows any resources it will be greatly appreciated. Thanks!

Posts: 3

Participants: 3

Read full topic

1 px border missing at the bottom of topics

I need setting mp3 player script on Header

$
0
0

@Bank_Live wrote:

I try setting mp3 player script on Header But i think is script not work. Is there any way to fix it?

CSS

.header-container {
html {
	font-size: 14px;
}
body {
	font-family: Myriad Set Pro, Helvetica Neue, Helvetica, Arial, sans-serif;
	display:flex;
	justify-content:center;
	align-items:center;
	height:100vh;
	width:100vw;
	margin: 0;
    padding: 0;
}
.mediaplayer {
	background: linear-gradient(left,
		rgb(70,35,15) 0%,

		rgb(70,35,15) 22%,
		rgb(75,30,20) 25%,

		rgb(75,30,20) 47%,
		rgb(78,35,25) 50%,

		rgb(78,35,25) 72%,
		rgb(85,45,30) 75%,

		rgb(85,45,30) 100%
	);
	background-size: 50%;
  	background-repeat: repeat;
	box-shadow: 0 5px 20px rgba(0,0,0,0.3);
	width: auto;
	max-width: 600px;
	height: auto;
	display: flex;
	flex-direction: row;
	padding: 20px;
	box-sizing:border-box;
	border-radius: 100px;
}
@media (max-width: 450px) {
	.mediaplayer {
		flex-direction: column;
		border-radius: 50px;
	}
}
audio {
	width:0;
	height:0;
	position: absolute;
	left:-99999px;
}
.discarea {
	margin:10px;
}
@media (max-width: 450px) {
	.discarea {
		margin:10px auto;
	}
	.disc {
		margin-left: 40px;
	}
}
@keyframes spinDisc {
	from {transform: rotate(0deg);}
	to 	 {transform: rotate(360deg);}
}
.disc {
	position: relative;
	display: block;
	float: left;
	width: 110px;
	height: 110px;
	background-color: #E0BF57;
	border-radius: 50%;
}
.mediaplayer.play .disc {
	animation: spinDisc 2s linear 0.3s infinite forwards;
}
.disc::before,
.disc::after {
	content:" ";
	position: absolute;
	border-radius: 50%;
}
.disc::before {
	background-color: #C43D40;
	top: 32.5%;
	left: 32.5%;
	width: 35%;
	height: 35%;
	z-index:2;
}
.disc::after {
	position: absolute;
	top: 5%;
	left: 5%;
	width: 90%;
	height: 90%;
	background-color: #222;
	background: linear-gradient(#222, #222, #444, #222, #222);
	border-radius: 50%;
	z-index: 1;
}
.stylus {
	position: relative;
	display: block;
	float:left;
	width: 30px;
	height: 100px;
	margin-left: 5px;
	transform-origin: 15px 15px;
	transition: transform 0.3s ease-in-out;
}
.mediaplayer.play .stylus {
	transform: rotate(34deg);
}
.pivot {
	position: absolute;
	width:30px;
	height:30px;
	background-color: #69727B;
	border-radius: 50%;
}
.arm {
	position: absolute;
	width:5px;
	height:70px;
	background-color: #8B949D;
	top: 10px;
	left: 13px;
	border-top-right-radius: 2px;
	border-top-left-radius: 2px;
}
.arm::before {
	content:" ";
	position: absolute;
	border-radius: 50%;
	background-color: #ACB6BF;
	top: 0px;
	left: -2.5px;
	width: 10px;
	height: 10px;
}
.head {
	position: absolute;
	width: 8px;
	height: 15px;
	background-color: #69727B;
	top:76px;
	left:13px;
	border-radius:3px;
	transform-origin: 50% 0;
	transform: rotate(30deg);
}
.controls {
	margin: 10px;
	display:flex;
	flex-direction:column;
}
.title {
	width: 85%;
	box-sizing: border-box;
	padding: 3px 0 3px 10px;
	font-size: 1rem;
	color: #7F3A2B;
	background-color: beige;
	border-radius: 25px;
	border: rgba(245,245,70,0.4) 1px solid;
	overflow:hidden;
}
@media (max-width: 450px) {
	.title {
		width: 100%;
		text-align: center;
	}
}
.buttons {
	margin: 10px 0;
	display:flex;
	flex-direction:row;
}
.buttons button {
	width: 50px;
	height: 50px;
	text-align: center;
	border-radius: 50%;
	border:none;
	margin-right: 5px;
	background-color: #69727B;
	color: white;
	outline: 0;
	font-size: 1.2rem;
	border-top: #bbc 2px solid;
	border-left: #ccd 2px solid;
	border-right: #aab 2px solid;
	border-bottom: #bbc 2px solid;
}
.buttons button:hover {
	cursor: pointer;
}
.buttons button i::before {
	text-shadow: 0 0 20px rgba(255,255,255,0.4);
	transition: text-shadow 0.3s ease;
}
.buttons button:hover i::before {
	text-shadow: 0 0 20px white;
}
.mediaplayer.play .playstate {
	background-color: #C63C3C;
}
.playstate .fa-pause,
.mediaplayer.play .playstate .fa-play {
	display: none;
}
.mediaplayer.play .fa-pause {
	display: block;
}
@media (max-width: 450px) {
	.buttons button {
		margin: 0 5px;
	}
}
.subControls {
	display: flex;
	flex-direction: row;
}
@media (max-width: 450px) {
	.subControls {
		flex-direction: row nowrap;
		justify-content: space-around;
		margin-bottom: 20px;
	}
}
.duration {
	width: 110px;
	text-align: center;
	box-sizing: border-box;
	padding: 3px 10px;
	font-size: 1rem;
	color: #7F3A2B;
	background-color: beige;
	border-radius: 25px;
	border: rgba(245,245,70,0.4) 1px solid;
	margin-right: 10px;
}
.volumeSlider {
  -webkit-appearance: none;
  appearance: none;
  width: 80px;
  background: transparent;
}

.volumeSlider:focus {
  outline: none;
}

.volumeSlider::-webkit-slider-thumb {
	-webkit-appearance: none;
	height: 20px;
	width: 20px;
	border-radius: 50%;
	background-color: #69727B;
	cursor: pointer;
	margin-top: -6px;
	border-top: #bbc 2px solid;
	border-left: #ccd 2px solid;
	border-right: #aab 2px solid;
	border-bottom: #bbc 2px solid;
}

.volumeSlider::-webkit-slider-thumb:active {
	background-color: #9aa;
}
.volumeSlider::-moz-range-thumb {
	height: 20px;
	width: 20px;
	border-radius: 50%;
	background-color: #69727B;
	cursor: pointer;
	margin-top: -6px;
	border-top: #bbc 2px solid;
	border-left: #ccd 2px solid;
	border-right: #aab 2px solid;
	border-bottom: #bbc 2px solid;
}

.volumeSlider::-webkit-slider-runnable-track {
	width: 100%;
	height: 8px;
	cursor: pointer;
	background-color:#8B949D;
	border-radius: 4px;
	margin-top: 2px;
}
.volumeSlider::-webkit-slider-runnable-track:active {
	background-color: #69727B;
}

.volumeSlider::-moz-range-track {
	width: 100%;
	height: 8px;
	cursor: pointer;
	background-color:#8B949D;
	border-radius: 4px;
	margin-top: 2px;
}
}

Header

<div class="header-container">


<div class="mediaplayer" id="mediaPlayer">
	<audio id="audioPlayer" src="https://d34x6xks9kc6p2.cloudfront.net/540997b0-a35f-4b69-86d6-b1c925c4a264/540997b0-a35f-4b69-86d6-b1c925c4a264.mp3"></audio>
	<div class="discarea">
		<div class="disc">
		</div>
		<div class="stylus">
			<div class="pivot"></div>
			<div class="arm"></div>
			<div class="head"></div>
		</div>
	</div>
	<div class="controls">
		<span class="title" id="songTitleLabel">
			LA Chill Tour
		</span>
		<div class="buttons">
			<button id="backItem" class="back">
				<i class="fa fa-backward"></i>
			</button>
			<button id="playState" class="playstate">
				<i class="fa fa-play"></i>
				<i class="fa fa-pause"></i>
			</button>
			<button id="stopItem" class="stop">
				<i class="fa fa-stop"></i>
			</button>
			<button id="nextItem" class="next">
				<i class="fa fa-forward"></i>
			</button>
		</div>
		<div class="subControls">
			<span class="duration" id="currentDuration">00:00</span>
			<input class="volumeSlider" type="range" id="volumeSlider" min="0" max="1" step="0.01"/>
			<script>
var songs = [
	{
		title: "LA Chill Tour ",
		songURL: "https://d34x6xks9kc6p2.cloudfront.net/540997b0-a35f-4b69-86d6-b1c925c4a264/540997b0-a35f-4b69-86d6-b1c925c4a264.mp3"
	},
	{
		title: "This is it band",
		songURL: "https://d34x6xks9kc6p2.cloudfront.net/8bd0ca4f-1b57-47e9-8878-516d14196d86/8bd0ca4f-1b57-47e9-8878-516d14196d86.mp3"
	},
	{
		title: "LA Fusion Jam",
		songURL: "https://d34x6xks9kc6p2.cloudfront.net/0024ada8-e1c3-4d75-a2df-d19ea5eb6c79/0024ada8-e1c3-4d75-a2df-d19ea5eb6c79.mp3"
	},
]
const playerArea = document.getElementById("mediaPlayer")
const playButton = document.getElementById("playState")
const stopButton = document.getElementById("stopItem")
const nextButton = document.getElementById("nextItem")
const prevButton = document.getElementById("backItem")
const durationLabel = document.getElementById("currentDuration")
const songTitleLabel = document.getElementById("songTitleLabel")
const audioPlayer = document.getElementById("audioPlayer")
const volumeSlider = document.getElementById("volumeSlider")
let currentIndex = 0
let dataAvailable = false
let currentLength;
let timer;

timer = setInterval(updateDurationLabel, 100)

volumeSlider.addEventListener("input", () => {
	audioPlayer.volume = parseFloat(volumeSlider.value)
}, false)

playButton.addEventListener("click", () => {
	playerArea.classList.toggle("play")
	if (audioPlayer.paused) {
		setTimeout(()=> {audioPlayer.play()}, 300)
		timer = setInterval(updateDurationLabel, 100)
	} else {
		audioPlayer.pause()
		clearInterval(timer)
	}
}, false)

stopButton.addEventListener("click", () => {
	playerArea.classList.remove("play")
	audioPlayer.pause()
	audioPlayer.currentTime = 0
	updateDurationLabel()
}, false)

nextButton.addEventListener("click", () => {
	dataAvailable = false
	loadNext(true)
}, false)

prevButton.addEventListener("click", () => {
	dataAvailable = false
	loadNext(false)

}, false)

audioPlayer.addEventListener("loadeddata", () => {
    dataAvailable = true
	currentLength = audioPlayer.duration
});

// FUNCTIONS

// Converts time in ms to zero-padded string in seconds
function parseTime(time) {
	const minutes = Math.floor(time / 60)
	const seconds = Math.floor(time - minutes * 60)
	const secondsZero = seconds < 10 ? "0" : ""
	const minutesZero = minutes < 10 ? "0" : ""
	return minutesZero + minutes.toString() + ":" + secondsZero + seconds.toString()
}

// Loads next song
function loadNext(next) {
	audioPlayer.pause()
	if (next) {
		currentIndex = (currentIndex + 1) % songs.length
	} else {
		currentIndex = (currentIndex - 1) < 0 ? songs.length - 1 : currentIndex - 1
	}
	audioPlayer.src = songs[currentIndex].songURL
	songTitleLabel.innerHTML = songs[currentIndex].title
	audioPlayer.play()
}

// Updates the duration label
function updateDurationLabel(){
	if (dataAvailable) {
		durationLabel.innerText = parseTime(audioPlayer.currentTime) + " / " + parseTime(currentLength)
	} else {
		durationLabel.innerText = parseTime(audioPlayer.currentTime)
	}
}

//rewind on completion
audioPlayer.addEventListener("ended", () => {
     myAudio.currentTime = 0
});
</script>
		</div>
	</div>
</div>
	</div>

for manuscript

Posts: 6

Participants: 2

Read full topic


Discourse Docker Development Environment can't backup

$
0
0

@pfaffman wrote:

Thinking that it would be a good way for novices to be able to install a development environment to run an import, I followed discourse/README.md at master · discourse/discourse · GitHub.

It was working fine, but if I do a

./bin/docker/shell
./script/docker backup

it fails like this:

discourse@discourse:/src$ ./script/discourse backup
Expected string default value for '--verbose'; got false (boolean)
WARNING: It looks like your discourse plugins have recently changed.
It is highly recommended to remove your `tmp` directory, otherwise
plugins might not work.

Starting backup...
[STARTED]
'system' has started the backup!
Marking backup as running...
Making sure '/src/tmp/backups/default/2017-10-05-204401' exists...
Making sure '/src/public/backups/default' exists...
Pausing sidekiq...
Waiting for sidekiq to finish running jobs...
Dumping the public schema of the database...
pg_dump: [archiver (db)] connection to database "discourse_development" failed: FATAL:  Peer authentication failed for user "postgres"
EXCEPTION: pg_dump failed
/src/lib/backup_restore/backuper.rb:170:in `dump_public_schema'
/src/lib/backup_restore/backuper.rb:35:in `run'
./script/discourse:67:in `backup'
/usr/local/lib/ruby/gems/2.4.0/gems/thor-0.19.4/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.4.0/gems/thor-0.19.4/lib/thor/invocation.rb:126:in `invoke_command'
/usr/local/lib/ruby/gems/2.4.0/gems/thor-0.19.4/lib/thor.rb:369:in `dispatch'
/usr/local/lib/ruby/gems/2.4.0/gems/thor-0.19.4/lib/thor/base.rb:444:in `start'
./script/discourse:262:in `<main>'
Notifying 'system' of the end of the backup...
Removing old backups...
Cleaning stuff up...
Removing '.tar' leftovers...
Unpausing sidekiq...
Marking backup as finished...
Finished!
[FAILED]
Backup done.
Output file is in: false

I get the same problem if I crank up ./bin/docker/rails s and try to backup from the web interface.

I can’t tell why it’s trying to connect as postgres rather than discourse and why postgres wouldn’t have permission.

This seems related to Backup failed with postgresql connection error.

I can confirm that changing /etc/postgresql/9.5/main/pg_hba.conf from

local   all             postgres                                peer

(I think it was “peer”) to

local   all             postgres                                trust

solves the backup problem. I’d fix it, but not only do I think there might be a more nuance solution, I don’t have any idea what’s creating that file.

Posts: 1

Participants: 1

Read full topic

Can't get data from notifications.json (I've already enabled CORS). Help?

$
0
0

@magoz wrote:

I’m trying to get the number of notifications via /notifications.json on https://illustration.tools

I’ve enabled CORS in the app.yml file (also allowed http://illustration.tools on Discourse > Settings > cors origins).
I’m already using other .json to retrieve other information and it works perfectly ( /latest.json, for example).

Here is my code in PHP, I’m just trying to get one of the objects, to see if I can access to any of the information.

$string_notifications = file_get_contents('https://forum.illustration.tools/notifications.json');
$json_notifications = json_decode($string_notifications, true);
$notifications_total_number = $json_notifications['total_rows_notifications'];
echo $notifications_total_number;

But it doesn’t work. It doesn’t retrieve anything.
If I go to https://forum.illustration.tools/notifications.json via the browser it works.

Any ideas why is not working? Am I missing something?
Thanks!

Posts: 2

Participants: 2

Read full topic

How i connect my website to cloudflare? the explained way is difficult to me

$
0
0

@Dexter1 wrote:

Hello

can anybody tell me how i connect my website to cloudflare? i did search here but found very difficult to understand so please make it to me step by step so i will not get lost, also Let`s encrypt is activated on my website i heard that cloudflare and lets encrypt are not friends.

thank you

Posts: 2

Participants: 2

Read full topic

Is there a way to restrict interactions between youth and adults?

$
0
0

@Kyle_Franklin wrote:

Hi, All,

I moderate a site that is sensitive in nature (LGBTQIA oriented) and one concern that has been raised is interactions between youth and adults. In particular, direct messages. On our previous platform, we prevented direct messages between youth and adults. Is there a way to do so using the discourse platform? I am well aware that people can lie about their age, but at least this will serve as an initial tactic.

Thanks!

Posts: 2

Participants: 2

Read full topic

Embedding in posts with ALL CAPITAL titles

$
0
0

@clinton wrote:

With embedded enabled and using feed settings RSS/Atom to get a list of posts.

Topics get created with ‘ALL CAPITALS’, this appears to be against discourse conventions. (A user can’t create an all capital topic). Plus, it looks like posts with all capital titles break things a little. When you try setting the timestamp on an all capital topic it doesn’t get sorted correctly in the latest topic listing. Was kinda expecting the RSS/Atom import to have the same capitalisation rules applied as manually creating a topic.

Discourse version: v1.9.0.beta11 +93

Posts: 3

Participants: 2

Read full topic

Viewing all 60707 articles
Browse latest View live




Latest Images