Jump to content

Gideon So

Members
  • Posts

    468
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Gideon So

  1. I migrated a site to a hosting company which provides cPanel to manage the domain. I have some errors like the following:

    2021-07-09 05:09:32.453548 [ERROR] [5674] [HTAccess] Failed to open [/home/misfmorg/public_html/site/.htaccess]: Permission denied
    2021-07-09 05:09:28.141643 [ERROR] [5674] [HTAccess] Failed to open [/home/misfmorg/public_html/site/assets/files/1058/.htaccess]: Permission denied
    2021-07-09 05:09:27.067796 [ERROR] [5674] [HTAccess] Failed to open [/home/misfmorg/public_html/site/assets/files/1093/.htaccess]: Permission denied
    2021-07-09 05:09:26.775691 [ERROR] [5674] [HTAccess] Failed to open [/home/misfmorg/public_html/site/assets/files/1091/.htaccess]: Permission denied
    2021-07-09 05:09:26.672877 [ERROR] [5674] [HTAccess] Failed to open [/home/misfmorg/public_html/site/assets/files/1099/.htaccess]: Permission denied
    2021-07-09 05:09:26.471388 [ERROR] [5674] [HTAccess] Failed to open [/home/misfmorg/public_html/site/assets/files/1092/.htaccess]: Permission denied
    2021-07-09 05:09:26.086949 [ERROR] [5674] [HTAccess] Failed to open [/home/misfmorg/public_html/site/assets/files/1053/.htaccess]: Permission denied

    I checked the permission if the .htaccess file is correct and I wonder why the web server keep searching .htaccess file in every folder in the site assets folder.

    Any hint is welcome.

    Gideon

     

  2. Hi @milo695,

    <?php foreach ($homepage->children as $item): ?>
                    <li class="nav-item">
                        <a class="nav-link" href="<?php echo $item->url; ?>"<?php if ($item->id == $page->rootParent->id): ?> class="active"<?php endif; ?> title="<?php echo $item->title; ?>">
                            <?php echo $item->title; ?>
                        </a>
                    </li>
                <?php endforeach; ?>
                

    This piece of code only loop through the children page of the home page. Therefore only first level menu items are shown.

    You need to loop through the sub page of each $item to show all the subitems.

    <?php foreach ($homepage->children as $item): ?>
                    <li class="nav-item">
                        <a class="nav-link" href="<?php echo $item->url; ?>"<?php if ($item->id == $page->rootParent->id): ?> class="active"<?php endif; ?> title="<?php echo $item->title; ?>">
                            <?php echo $item->title; ?>
                        </a>
    					<?php if($item->children->count()): // if there is a child page, loop through all the child page ?>
    						<ul>
    							<?php foreach($item->children as $subitem): //loop through all the sub-page of the current $item ?>
                              	<li class="nav-item">
                        			<a class="nav-link" href="<?php echo $subitem->url; ?>"<?php if ($subitem->id == $page->rootParent->id): ?> class="active"<?php endif; ?> title="<?php echo $subitem->title; ?>">
                            		<?php echo $subitem->title; ?>
                        			</a>
    							</li>
    							<?php endforeach; ?>
    						</ul>
    					<?php endif; ?>
                    </li>
                <?php endforeach; ?>
                

    You can modify  it to suit your theme to make the dropdown work,

     

    Gideon

  3. For now, if a site needs non ascii page name, there are two setting needed to be set:

    1. $config->pageNameCharset = "UTF8"

    This is OK.

    1. $config->pageNameWhitelist = "A very long Chinese Character List"

    It is very hard to put all the Chinese character there. I always get complaint from my client that they find missing character in the url.

    Then I have to add that character manual. This is very painful and troublesome.

    If there is another way to whitelist all the non-ascii character would be a big plus to ProcessWire multi-language support.

    Forum thread: https://processwire.com/talk/topic/12776-pw-3012-support-for-extended-utf8-page-namesurls/?page=2&tab=comments#comment-146652
     

    Feature request: https://github.com/processwire/processwire-requests/issues/393

    If you think this feature is essential to you, please consider to up-vote the request to draw attention to Ryan.

    Thanks.

    Gideon

  4. Hi,

    I got this error too.

    Quote

    SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''50'' at line 1

    PHP 7.1
    MariaDB 10
    ProcessWire 3.0.149

    Gideon

  5. Hi @spercy16,

    First of all, Please be kind to someone who just want to help you out even his answer is not that you want or need. Generally speaking the ProcessWire community is very kind and willing to help. I am sure you will have your help if you are kind and patient enough.

    For the code, @ottogal is right. You call the listChildrenTree function inside itself. This is a fatal error and your code will never work until you fix it.

    You cannot use $page here. $page is the reserved variable that represents the current page object. You may use $child instead.

    foreach ($children as $page) {

    Like I said above, don't call the same function within itself.

    if ($page->numChildren) listChildrenTree($page->children);

    The complete code:

    echo "<ul class='w-full text-white lg:block lg:float-left'>";
    			foreach ($children as $child) {
    				echo "<li class='relative w-full lg:w-auto'>
    							<a href='{$child->url}'>
    								<div onclick='showSub()' class='block pt-2 pb-3 pl-6 lg:pr-6 button'>
    									{$child->title}
    								</div>
    							</a>
    							";
    				if ($child->numChildren) {
      					echo "<ul>";
      					foreach ($child->children as $grandchild) {
    					echo "<li class='relative w-full lg:w-auto'>
    							<a href='{$grandchild->url}'>
    								<div onclick='showSub()' class='block pt-2 pb-3 pl-6 lg:pr-6 button'>
    									{$grandchild->title}
    								</div>
    							</a>
    							";
      					echo "</li>";
      					}
      				echo "</ul>";
    				echo "</li>";
    			}
    			echo "</ul>";
    		

    Hope this helps or someone can improve the answer.

    Gideon

  6. dbHost is the mysql server. Mostly is localhost.

    dbPass is your DB password that your mysql server host provide to you.

    dbName is the DB name that your host provide to you.

    dbUser is the username thst can use the database server. It should be provided by your host.

    httpHosts is the domain of your site like www.yourdomain.com

    Gideon

×
×
  • Create New...