Server : Apache/2.4.18 (Ubuntu) System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64 User : oppastar ( 1041) PHP Version : 7.0.33-0ubuntu0.16.04.15 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, Directory : /var/www/laciasmara.com/public_html/shop/application/views/ |
Upload File : |
<div class="figma-container"> <div class="view-toggle"> <button id="web-toggle" class="toggle-btn active">Web View</button> <button id="mobile-toggle" class="toggle-btn">Mobile View</button> </div> <!-- Loading Spinner --> <div class="loading-spinner" id="loading-spinner"> <div class="spinner"></div> <p>Loading, please wait...</p> </div> <iframe id="figma-web" class="figma-frame active" style="border: 1px solid rgba(0, 0, 0, 0.1);" width="100%" height="100%" src="https://embed.figma.com/proto/QBGSAfwRoYNnLgeslODmLV/Laci-Asmara---New?page-id=3%3A5&node-id=513-594&node-type=canvas&viewport=-1194%2C185%2C0.42&scaling=min-zoom&content-scaling=fixed&starting-point-node-id=513%3A594&embed-host=share" allowfullscreen></iframe> <!-- Mobile --> <iframe id="figma-mobile" class="figma-frame" style="border: 1px solid rgba(0, 0, 0, 0.1);" width="450" height="850" src="https://embed.figma.com/proto/QBGSAfwRoYNnLgeslODmLV/Laci-Asmara---New?page-id=3%3A5&node-id=523-624&node-type=canvas&viewport=-1194%2C185%2C0.42&scaling=min-zoom&content-scaling=fixed&starting-point-node-id=523%3A624&embed-host=share" allowfullscreen></iframe> </div> <div class="comment-section"> <h3 class="comment-title">Comments</h3> <div class="comments-list"> <?php if (!empty($comments)): ?> <?php foreach ($comments as $comment): ?> <div class="comment-card"> <div class="comment-header"> <span class="comment-name"><?= htmlspecialchars($comment['name']); ?></span> <span class="comment-date"><?= date('F j, Y, g:i a', strtotime($comment['created_at'])); ?></span> </div> <p class="comment-content"><?= nl2br(htmlspecialchars($comment['content'])); ?></p> <button class="reply-btn" onclick="toggleReplyForm(<?= $comment['id']; ?>)">Reply</button> <div id="reply-form-<?= $comment['id']; ?>" class="reply-form" style="display: none;"> <form method="POST" action="<?= site_url('preview/add_reply_comment'); ?>"> <input type="hidden" name="comment_id" value="<?= $comment['id']; ?>" /> <input type="hidden" name="<?= $this->security->get_csrf_token_name(); ?>" value="<?= $this->security->get_csrf_hash(); ?>" /> <textarea name="reply_comment" rows="4" class="comment-textarea" placeholder="Add a reply..." required></textarea> <button type="submit" class="comment-submit">Submit</button> </form> </div> <?php if (!empty($comment['replies'])): ?> <div class="replies"> <?php foreach ($comment['replies'] as $reply): ?> <div class="reply-card"> <div class="reply-header"> <span class="reply-name"><?= htmlspecialchars($reply['name']); ?></span> <span class="reply-date"><?= date('F j, Y, g:i a', strtotime($reply['created_at'])); ?></span> </div> <p class="reply-content"><?= nl2br(htmlspecialchars($reply['content'])); ?></p> </div> <?php endforeach; ?> </div> <?php endif; ?> </div> <?php endforeach; ?> <?php else: ?> <p>No comments yet.</p> <?php endif; ?> </div> <form method="POST" action="<?= site_url('preview/add_comment'); ?>" class="comment-form"> <input type="hidden" name="<?= $this->security->get_csrf_token_name(); ?>" value="<?= $this->security->get_csrf_hash(); ?>" /> <textarea name="comment" rows="4" class="comment-textarea" placeholder="Any suggestion..." required></textarea> <button type="submit" class="comment-submit">Submit</button> </form> </div> <style> .comment-section { margin-top: 40px; padding: 30px; font-family: 'Roboto', sans-serif; background-color: #fafafa; border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); } .comment-title { font-size: 1.75rem; font-weight: 600; color: #333; margin-bottom: 15px; } .comments-list { margin-top: 25px; } .comment-card { padding: 20px; margin-bottom: 20px; background-color: #ffffff; border-radius: 10px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.12); transition: box-shadow 0.3s ease; } .comment-card:hover { box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2); } .comment-header { display: flex; justify-content: space-between; font-size: 0.9rem; color: #6c757d; margin-bottom: 10px; } .comment-name { font-weight: 600; color: #5a5a5a; } .comment-date { color: #9e9e9e; } .comment-content { margin-top: 10px; font-size: 1rem; color: #333; } .reply-btn { margin-top: 15px; padding: 10px 18px; background-color: #7A4397; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 1rem; transition: background-color 0.3s ease; } .reply-btn:hover { background-color: #5e2a76; } .reply-form { margin-top: 20px; padding: 15px; background-color: #f9f9f9; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); } .reply-card { margin-top: 15px; padding-top: 24px; padding-bottom: 24px; padding-left: 24px; background-color: #f9f9f9; border-radius: 8px; box-shadow: 0 3px 6px rgba(0, 0, 0, 0.1); } .reply-header { display: flex; justify-content: space-between; font-size: 0.875rem; color: #6c757d; margin-bottom: 8px; } .reply-name { font-weight: bold; color: #5a5a5a; } .reply-date { color: #9e9e9e; } .reply-content { margin-top: 8px; color: #333; font-size: 1rem; } .comment-form { margin-top: 30px; background-color: #ffffff; padding: 20px; border-radius: 8px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .comment-textarea { width: 100%; padding: 12px; border: 1px solid #ccc; border-radius: 8px; box-sizing: border-box; font-size: 1rem; resize: vertical; transition: border-color 0.3s ease; } .comment-textarea:focus { border-color: #7A4397; outline: none; } .comment-submit { margin-top: 15px; padding: 12px 25px; background-color: #7A4397; color: white; border: none; border-radius: 8px; cursor: pointer; font-size: 1rem; transition: background-color 0.3s ease; } .comment-submit:hover { background-color: #5e2a76; } .figma-container { position: relative; height: 100vh; } .view-toggle { position: fixed; top: 20px; left: 50%; transform: translateX(-50%); z-index: 1000; display: flex; gap: 10px; background-color: white; padding: 10px; border-radius: 12px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } .toggle-btn { padding: 10px 20px; border: none; border-radius: 8px; cursor: pointer; font-size: 1rem; transition: all 0.3s ease; background-color: #f0f0f0; color: #666; } .toggle-btn.active { background-color: #7A4397; color: white; } .toggle-btn:hover:not(.active) { background-color: #e0e0e0; } .figma-frame { display: none; } .figma-frame.active { display: block; } /* Center mobile frame */ #figma-mobile.active { position: absolute; left: 50%; transform: translateX(-50%); } .loading-spinner { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -60%); text-align: center; display: flex; flex-direction: column; justify-content: center; align-items: center; color: #7A4397; font-size: 1.2rem; } .spinner { border: 4px solid #f3f3f3; border-top: 4px solid #7A4397; border-radius: 50%; width: 50px; height: 50px; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } #figma-embed { display: none; width: 100%; height: 100%; } .loading-spinner p { margin-top: 12px; font-size: 1.2rem; color: #7A4397; font-weight: 500; } </style> <!-- JavaScript --> <script> window.onload = function() { const webIframe = document.getElementById('figma-web'); const mobileIframe = document.getElementById('figma-mobile'); const loadingSpinner = document.getElementById('loading-spinner'); const webToggle = document.getElementById('web-toggle'); const mobileToggle = document.getElementById('mobile-toggle'); function switchView(view) { if (view === 'web') { webIframe.classList.add('active'); mobileIframe.classList.remove('active'); webToggle.classList.add('active'); mobileToggle.classList.remove('active'); } else { webIframe.classList.remove('active'); mobileIframe.classList.add('active'); webToggle.classList.remove('active'); mobileToggle.classList.add('active'); } } // Initial view based on screen size function setInitialView() { if (window.innerWidth <= 768) { switchView('mobile'); } else { switchView('web'); } } setInitialView(); // Event listeners for toggle buttons webToggle.addEventListener('click', () => switchView('web')); mobileToggle.addEventListener('click', () => switchView('mobile')); // Hide loading spinner when either frame loads webIframe.onload = mobileIframe.onload = function() { loadingSpinner.style.display = 'none'; }; // Optional: Update view on resize window.addEventListener('resize', setInitialView); }; function toggleReplyForm(commentId) { var form = document.getElementById("reply-form-" + commentId); form.style.display = form.style.display === "none" || form.style.display === "" ? "block" : "none"; } </script>